Truffle Migrations-Konto gesperrt Fehler mit dem Befehl --network

Ich habe eine private Blockchain mit dem Befehl gestartet,

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

Als nächstes starte ich in einer anderen Terminalkonsole den Miner und entsperre mein Testkonto.

> miner.start(1)
true


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

Meine truffle.js-Datei enthält Folgendes:

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

Schließlich führe und kompiliere ich in einem anderen Terminal die Truffle-Anwendung mit

truffle compile
truffle migrate --network staging

Ich bekomme das unten Account locked Errorwie unten,

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)

Welchen Teil übersehe ich hier? Ist der von mir befolgte Prozess korrekt? Derselbe Code läuft hervorragend auf testrpc, aber nicht auf dieser privaten Blockchain. Welchen wesentlichen Teil übersehe ich?

Bitte beraten.

Bitte bestätigen . Sie haben den Befehl geth in einem Terminal ausgeführt und das Konto in einem anderen entsperrt.
@AK Ja. Ich habe das Konto in einem anderen Terminal entsperrt.

Antworten (2)

Kann es sein, dass es nicht lange genug freigeschaltet ist?

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

Ich hatte das gleiche Problem, aber Sie können versuchen, den Status Ihres Kontos mit gethsich selbst zu überprüfen, es hat den Trick für mich getan.

Wenn Sie auf der Blockchain synchronisieren/einwirken, gethwird eine Datei für die Interprozesskommunikation (IPC) verwendet. Überprüfen Sie, was diese Datei in Ihrem Fall ist, etwa so:

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

Sie können dann daran "anhängen" geth, indem Sie Folgendes eingeben:

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

Sie hätten dann eine Eingabeaufforderung, an der Sie Befehle an die Blockchain senden und mit der aktuellen Sitzung interagieren können. Durch Eingabe des personalBefehls können Sie den aktuellen Status Ihrer "Brieftasche" von Konten finden:

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

Dort erhalten Sie den aktuellen Status Ihres Kontos, und wahrscheinlich befinden sich beide im Status "Gesperrt". Sie können sie dann entsperren, indem Sie Folgendes eingeben:

personal.unlockAccount('0x3a05b7c9f420f6b7c5f39ae29deab1352750bf26')

Sie werden dann nach dem Passwort Ihres Kontos gefragt und es wird entsperrt.

Danach war es ok zu migrieren.