rinkeby deploy
問題点
これに毎度やられている。他のropstenとか使ったり、infura使っても良いんだけど、なんとか対策したい。
基本的な懸念ポイント
% truffle migrate --network rinkeby Using network 'rinkeby'. Running migration: 1_initial_migration.js Deploying Migrations... ... undefined Error encountered, bailing. Network state unknown. Review successful transactions manually. Error: insufficient funds for gas * price + value
問題はgasが足りないこと?
ただ、既存のgethtestnet上のgetBalanceもetherscan上は増えているのだけれどもcli上には反映されない。
原因っぽいところ。
WARN [08-21|17:20:35.730] Rolled back headers count=22 header=2851299->2851277 fast=2851213->2851213 block=0->0 INFO [08-21|17:20:35.735] Imported new state entries count=768 elapsed=4.430ms processed=14674025 pending=10082 retry=0 duplicate=0 unexpected=657 WARN [08-21|17:20:35.735] Synchronisation failed, dropping peer peer=eb941411bbf432b1 err="retrieved hash chain is invalid"
おそらくこのerrorが原因を表している。
例えば、今は
geth --rinkeby --rpc --rpcaddr "localhost" --rpcport "8545" --unlock="0xf90fd9c529b52e82e50b67ca3612eaad7781647b" --fast
このコマンドを起動してgethノードを立ち上げている。
--fast
は任意。
unlock="0xf90fd9c529b52e82e50b67ca3612eaad7781647b"
をしないと
truffle migrate --network rinkeby Using network 'rinkeby'. Running migration: 1_initial_migration.js Deploying Migrations... ... undefined Error encountered, bailing. Network state unknown. Review successful transactions manually. Error: authentication needed: password or unlock
こう行った風に別のエラーが出るので考えなくてはいけない。
とりあえず今解決しないといけないこと。
geth上でのtestネットアカウントのbalanceを増やすこと。
ここを解決できれば他の部分も全て解決される気がするので、解決方法を特定することが必要っぽい。
infuraでの実装
infuraでやってみたところなんの問題もなく動くっぽい?
truffle migrate --network rinkeby Using network 'rinkeby'. Running migration: 1_initial_migration.js Deploying Migrations... ... 0x308a5eb49faf41f0006b1a837953619ccd7ef396fc9a8bdeca612f43278a49e4 Migrations: 0x655213695fcb5fd1b2cfb4dd9631091c16ba3388 Saving artifacts... Running migration: 2_deploy_contracts.js Deploying TutorialToken... ... 0xc79a2db32bbfca9e098c526c6a58a19c2584e22fc2caf2dcefe7fdbea6a4bb6b TutorialToken: 0xaa09a1adcd5f4e481234c746d3a3adc37d366ace Saving artifacts...
と思いきや新しい問題に遭遇。
erc20trackerでは
errorが出てしまう。
Sorry, We were unable to locate any valid Token Transfer Events for Contract
と出てくるので
おそらくこの辺を参考にする感じかと思われる。
cf. 原因として考えられるもの
直接の原因としてあるのかはわからないが,
- デプロイの起点となっているアカウントのbalanceが0の状態でmigrateしたこと
- 操作するアカウントをtruffle compileする時に表示されたアカウントをmetamaskで操作したこと
などが少し影響しているかもしれないなあとも感じているので、
使用アカウントはコンソール上で作ったものかメタマスク上で作ったユニークなものだけを使うことにしようと感じた。
- p.s
myetherwalletやメタマスクにつなげて、トークンのやり取りをしたら表記が変わって正常に扱われるようになった。
balanceとholderの部分はあとで調整をしたい。
参考
Ethereum Clients — Ethereum Homestead 0.1 documentation
How to Import Account? · Issue #3475 · ethereum/mist · GitHub