Я настроил частную сеть с Geth с помощью следующей команды:
geth --datadir="PathToDatadir" --mine -minerthreads 2 -verbosity 3 -maxpeers 5 --ipcapi "admin,debug,eth,miner,net,personal,shh,txpool,web3" --ipcpath "geth.ipc" --port 30301 --rpc --rpcport 8101 --rpcapi eth,web3,personal --etherbase "e04fe31f4133f25ef3e5bfb39146edcf28724acd" --networkid 9990
Все идет нормально.
Я разработал систему контрактов, используя truffle и testrpc, и теперь пытаюсь развернуть ее на нескольких узлах. При запуске трюфельной миграции у меня возникают проблемы:
Выполнение миграции: 1_initial_migration.js Замена миграций... Произошла ошибка, спасение. Состояние сети неизвестно. Просмотрите успешные транзакции вручную. Ошибка: учетная запись заблокирована
Я настроил трюфель на отправку с нужного мне адреса (того же, который определен как etherbase), но учетная запись заблокирована. Есть несколько способов разблокировать учетную запись с помощью Geth. Единственный способ, которым это работает для меня, - это разблокировать учетную запись следующим образом:
geth --unlock "e04fe31f4133f25ef3e5bfb39146edcf28724acd" --password "fullPathtoTxtPasswordfile"
Остается ли учетная запись разблокированной для будущих вызовов Geth? Разблокировка через personal.unlockAccount("address","fullPathtoTxtPasswordfile") в консоли тоже не работает. web3.accounts также не определен.
Итак, мне, кажется, удалось разблокировать учетные записи, но миграция трюфелей по-прежнему выдает ошибку блокировки учетной записи. Я обнаружил похожие проблемы с разблокировкой учетной записи, но не нашел решения для своей конкретной проблемы.
personal.unlockAccount
не принимает путь к файлу, он принимает пароль. См.: https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console#personalunlockaccount
В командной строке попробуйте использовать это:
geth --unlock 0 --password "fullpathtofile"
- аргумент разблокировки принимает индекс. Вы можете увидеть индексы, запустив geth account list
.
Если вы хотите убедиться, что это не проблема с файлом, вы также можете сделать это:
geth --unlock 0 --password <(echo "PASSWORD_HERE")
Форма <(command)
выполняет команду внутри круглых скобок и создает именованный канал, который передается программе, действуя как файл с содержимым этого вывода. Вы можете использовать это как тест для неконфиденциальных тестовых учетных записей.
Превращаться