Я запустил приватную цепочку блоков с помощью команды
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
но не в этой частной цепочке блоков, какую важную часть я упускаю?
Пожалуйста посоветуй.
Может быть, он не был разблокирован достаточно долго?
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')
Затем вас попросят ввести пароль вашей учетной записи, и она будет разблокирована.
После этого можно было мигрировать.
Аникет
Годимедиа