Ошибка блокировки учетной записи миграции Truffle с командой --network

Я запустил приватную цепочку блоков с помощью команды

geth --networkid 1337 --datadir ~/home/xyz/testnet --ipcpath /home/xyz/.ethereum/geth.ipc --rpc --rpcapi eth,web3 --rpcport 8545 --rpcaddr localhost --rpccorsdomain "*";

Далее в другой терминальной консоли запускаю майнер и разблокирую свой тестовый аккаунт,

> miner.start(1)
true


> personal.unlockAccount(web3.eth.coinbase)
  Unlock account 0xSomeAddress
  Passphrase: 
  true

Мой файл truffle.js содержит следующее:

module.exports = {
build: {
  "index.html": "index.html",
   "app.js": [
     "javascripts/app.js"
   ],
  "app.css": [
    "stylesheets/app.css"
   ],
  "images/": "images/"
},
networks: {
"staging": {
  network_id: 1337, 
  from: "0xAddress" // Unlocked Address
 }
},
rpc: {
  host: "localhost",
  port: 8545
 }
};

Наконец, в другом терминале я запускаю и компилирую приложение трюфеля, используя

truffle compile
truffle migrate --network staging

Я получаю ниже Account locked Error, как показано ниже,

Running migration: 1_initial_migration.js
  Deploying Migrations...
  Migrations: 0xSomeAddress
Saving successful migration to network...
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: account is locked
   at Object.InvalidResponse (/usr/lib/node_modules/truffle/node_modules/ether-pudding/node_modules/web3/lib/web3/errors.js:35:16)
   at /usr/lib/node_modules/truffle/node_modules/ether-pudding/node_modules/web3/lib/web3/requestmanager.js:86:36
   at request.onreadystatechange (/usr/lib/node_modules/truffle/node_modules/web3/lib/web3/httpprovider.js:114:13)
   at dispatchEvent (/usr/lib/node_modules/truffle/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:591:25)
   at setState (/usr/lib/node_modules/truffle/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:610:14)
   at IncomingMessage.<anonymous> (/usr/lib/node_modules/truffle/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:447:13)
   at emitNone (events.js:91:20)
   at IncomingMessage.emit (events.js:185:7)
   at endReadableNT (_stream_readable.js:974:12)
   at _combinedTickCallback (internal/process/next_tick.js:74:11)
   at process._tickDomainCallback (internal/process/next_tick.js:122:9)

Какую часть мне здесь не хватает? Правилен ли процесс, которому я следовал? Тот же самый код прекрасно работает, testrpcно не в этой частной цепочке блоков, какую важную часть я упускаю?

Пожалуйста посоветуй.

Пожалуйста подтвердите . Вы запустили команду geth в одном терминале и разблокировали учетную запись в другом.
@АК Да. Я разблокировал учетную запись в другом терминале.

Ответы (2)

Может быть, он не был разблокирован достаточно долго?

web3.personal.unlockAccount(web3.personal.listAccounts[0],"password",15000); // 1st account, pw & time in seconds ...

У меня была та же проблема, но вы можете попробовать проверить состояние своей учетной записи, используя gethсебя, это помогло мне.

Когда вы синхронизируете/воздействуете на блокчейн, gethиспользует файл для межпроцессного взаимодействия (IPC). Проверьте, что это за файл в вашем случае, например:

INFO [10-02|17:49:23] IPC endpoint opened: /Users/josealves/Library/Ethereum/testnet/geth.ipc

Затем вы можете «присоединиться» gethк этому, набрав:

geth attach /Users/josealves/Library/Ethereum/testnet/geth.ipc

Затем у вас будет подсказка, в которой вы можете отправлять команды в блокчейн и взаимодействовать с текущим сеансом. Набрав personalкоманду, вы сможете узнать текущее состояние вашего «кошелька» счетов:

{
  listAccounts: ["0xcb7fab56b707a54d17c791de41eaa9a399b3efef", "0x3a05b7c9f420f6b7c5f39ae29deab1352750bf26"],
  listWallets: [{
      accounts: [{...}],
      status: "Locked",
      url: (..)
  }, {
      accounts: [{...}],
      status: "Locked",
      url: (...)
  }],

Там вы получите текущее состояние вашей учетной записи, и, вероятно, обе они находятся в состоянии «Заблокировано». Затем вы можете разблокировать их, набрав:

personal.unlockAccount('0x3a05b7c9f420f6b7c5f39ae29deab1352750bf26')

Затем вас попросят ввести пароль вашей учетной записи, и она будет разблокирована.

После этого можно было мигрировать.