Go-Ethereum

truffle 遷移與 testrpc vs geth testnet

  • July 19, 2017

當我使用 testrpc 而不是 geth 時,Truffle migrate 有效。

這是我為 testrpc 所做的:在一個控制台中

node-modules/.bin/testrpc

在另一個

truffle console
compile
migrate

導致

Using network 'development'.

Running migration: 2_deploy_contracts.js
 Deploying GoodFund...
 GoodFund: 0x18c9f7f2468714dab06264cf06446f66251ac930
Saving successful migration to network...
Saving artifacts...

但是,當我使用

geth --testnet console
admin.startRPC("127.0.0.1", 8545, "*", "web3,db,net,eth")
personal.newAccount('blah')
personal.unlockAccount('account key', 'blah', 15000)

在另一個控制台中

truffle  migrate

導致

Running migration: 1_initial_migration.js
 Deploying Migrations...
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: authentication needed: password or unlock

我嘗試將 truffle.js 主機從 ’localhost’ 更改為 ‘127.0.0.1’ 並得到相同的錯誤。

這就是我在 2_deploy_contracts.js 中所擁有的

var GoodFund = artifacts.require("./GoodFund.sol");

module.exports = function(deployer) {
 deployer.deploy(GoodFund, '0x6196bc7c252ac811ce06824cd5abbbe4b36db6dc', {gas:4000000});
};

謝謝大家的幫助!

如果您在節點設置時創建的 geth 可能使用以下帳戶,您需要解鎖預設帳戶 -

geth --datadir path_to_dir/ account new

您可以像這樣解鎖預設帳戶 -

personal.unlockAccount(eth.accounts[0], 'password', 0)

如果您不記得預設帳戶密碼,那麼我建議您再次設置 geth 節點,解鎖預設帳戶並執行truffle migrate.

您可以按照此答案中提到的步驟進行私有網路設置 -如何設置私有乙太坊網路?

引用自:https://ethereum.stackexchange.com/questions/21608