はまったので備忘録として。
#現象
gethでプライベートネットを起動していて、truffleでデプロイしたコントラクトをmistで確認しようとしたら、表示されるはずのコントラクトから読む・書くが表示されずに焦りました。コントラクトアドレスやJSONインターフェースは正しく、コントラクト一覧に表示はされているが詳細が確認できないという状況。
#解決
分かってみれば何のことはなく、ポートが違っただけでした。。。
truffleはデフォルトでは9545で接続に行くみたいですが、truffle.jsに以下のような書き込みとmigrate時コマンドのオプションでOKでした。
module.exports = {
networks: {
dev: {
host: "localhost",
port: 8545,
network_id: "15"
},
}
};
truffle migrate --network dev
devの所は一致していれば何でもOKです。ここに複数の接続先を書いておけばメインネットやテストネットへの接続も切り替えられます。
host, port, network_idはgethで起動する時のものと一致させます。
これで無事にmistからコントラクトの確認や起動ができました。
mistはGUIでコントラクトが確認できるし、truffleはライブラリの依存関係等をうまく処理してくれるしで便利なので早く使いこなせるようになりたいですね。
#参考
詳細はtruffle公式で。
http://truffleframework.com/docs/advanced/configuration
truffleやmistの基本については以下を参考にさせていただきました。
Truffle で始める Ethereum 入門 - ERC20 トークンを作ってみよう
【Ethereum】実務で使う開発環境