概要
truffleを使ってSolidityを勉強していた時に,gethで作成したプライベートブロックチェーンネットワークに接続したくなり,その方法について調べた.自分用の備忘録として投稿する.
gethを使ってプライベートブロックチェーンを作成する.
- 任意のディレクトリに移動する.
- ブロックチェーンのgenesisブロックの設定を記入したjsonファイルを作成する
- 以下のコマンドを用いてブロックチェーンを作成する.
geth --networkid "15" --nodiscover --datadir "directory/path/to/genesis/json/file" --rpc --rpcaddr "127.0.0.1" --rpcport "8545" --rpccorsdomain "*" console 2>> directory/path/to/genesis/json/file/geth_err.log
それぞれのオプションについては,他に多くのサイトがあるため割愛.
truffleでSolidityのプロジェクト作成する.
- 任意のディレクトリに移動する.
-
truffle init
を実行して,雛形を作成する. -
truffle create contract ContractName
でContractNameというコントラクトの雛形を作成する.そして,そのファイルに自分の作成したいコントラクトをSolidityで実装する. -
truffle create migration ContractName
でContractNameのmigrationファイルを作成する. - truffle.jsを下のようにする.この設定はgethに合わせる.
-
truffle console --network dev
を実行する.
truffle.js
module.exports = {
networks: {
dev: {
host: "127.0.0.1",
port: 8545,
network_id: "15"
},
}
};
まとめ
truffleの実行をdevelopではなく,consoleで行う点でハマった.
developはtruffle.jsを無視して,テストネットを作成するらしい.