Go-Ethereum
truffle 遷移與 testrpc vs geth testnet
當我使用 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
.您可以按照此答案中提到的步驟進行私有網路設置 -如何設置私有乙太坊網路?