Error de cuenta bloqueada de Migraciones de Truffle con el comando --network

Comencé una cadena de bloques privada usando el comando,

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

Luego, en otra consola de terminal, inicio el minero y desbloqueo mi cuenta de prueba,

> miner.start(1)
true


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

Mi archivo truffle.js contiene lo siguiente,

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
 }
};

Finalmente, en otra terminal, ejecuto y compilo la aplicación truffle usando,

truffle compile
truffle migrate --network staging

Obtengo lo siguiente Account locked Errorcomo a continuación,

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)

¿Qué parte me estoy perdiendo aquí? ¿Es correcto el proceso que seguí? El mismo código se ejecuta de manera sublime testrpcpero no en esta cadena de bloques privada, ¿qué parte esencial me estoy perdiendo?

Por favor aconséjame.

Por favor confirmar . Ejecutaste el comando geth en un terminal y desbloqueaste la cuenta en otro.
@AK Sí. Desbloqueé la cuenta en otra Terminal.

Respuestas (2)

¿Es posible que no esté desbloqueado el tiempo suficiente?

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

Estaba teniendo el mismo problema, pero puede intentar verificar el estado de su cuenta por gethsí mismo, funcionó para mí.

Cuando está sincronizando/actuando en la cadena de bloques, gethutiliza un archivo para la comunicación entre procesos (IPC). Compruebe cuál es ese archivo en su caso, algo como:

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

Luego puede "adjuntar" getha esto escribiendo:

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

Entonces tendría un aviso donde puede enviar comandos a la cadena de bloques e interactuar con la sesión actual. Al escribir el personalcomando, puede encontrar el estado actual de su "billetera" de cuentas:

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

Allí obtendrá el estado actual de su cuenta, y probablemente ambos estén en el estado "Bloqueado". A continuación, puede desbloquearlos escribiendo:

personal.unlockAccount('0x3a05b7c9f420f6b7c5f39ae29deab1352750bf26')

A continuación, se le pedirá la contraseña de su cuenta y se desbloqueará.

Después estuvo bien migrar.