このエントリーをはてなブックマークに追加

MacOSでtruffleを使う

サクサク開発したいときはこっちの方が便利かも。

nodejsをインストール

gethをダウンロード

tar xvf geth-darwin-amd64-1.6.7-ab5646c5.tar.gz
ln -s geth-darwin-amd64-1.6.7-ab5646c5 geth

testrpcのインストール

npm install -g ethereumjs-testrpc

truffleのインストール

npm install -g truffle

test rpcの起動

testrpc -b 1

プロジェクト作成

別のターミナルを開いて実行

mkdir project
cd project
truffle init webpack

コンパイル/テスト/デプロイ

truffle compile
truffle test
truffle deploy

webapp起動

さらに別のターミナルを開いて実行

cd project
npm run dev

プライベートネットにデプロイしたい場合

testrpcを止めてgethでプライベートネットを起動してtruffle deployすればOK

cd geth
vi private.json
{
  "config": {
      "chainId": 1,
      "homesteadBlock": 0,
      "eip155:Block": 0,
      "eip158Block": 0
  },
  "nonce": "0x0000000000000042",
  "timestamp": "0x00",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x00",
  "gasLimit": "0x8000000",
  "difficulty": "0x01",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {}
}
./geth --datadir=./private init ./private.json
./geth --networkid "1" --nodiscover --ipcpath ${HOME}/.ethereum/geth.ipc  --rpc --rpcaddr 0.0.0.0 --rpcport 8545 -ws --wsaddr 0.0.0.0 --wsport 8546 --port 30303 --minerthreads 1 --rpccorsdomain "*" --datadir ./private console 2>> ./private.log

アカウントを作ってマイニングを初めて、getbalanceが0ではなくなるまで待ってアンロックする

> personal.newAccount("pass")
"0x65474bd903a10ff0954e5a86b4a28ce01fe86a80"
> miner.start()
> eth.getBalance("0x65474bd903a10ff0954e5a86b4a28ce01fe86a80")
90000000000000000000
> personal.unlockAccount("0x65474bd903a10ff0954e5a86b4a28ce01fe86a80")

この状態でtruffle deplayを行う

truffle deploy
Using network 'development'.

Running migration: 1_initial_migration.js
  Deploying Migrations...
  Migrations: 0xa4c0c8ea5aa6653e3f98bcdad65072428e0aa0fa
Saving successful migration to network...
Saving artifacts...
Running migration: 2_deploy_contracts.js
  Deploying ConvertLib...
  ConvertLib: 0x262845cb19de2d17c47e56d91b32bbde06f5ee22
  Linking ConvertLib to MetaCoin
  Deploying MetaCoin...
  MetaCoin: 0xc2b347b01cdb98fe7745aacb46e354dc4cad0b13
Saving successful migration to network...
Saving artifacts...

プライベートネットに、truffleを介してブラウザからアクセスする場合、 gethのオプションに–rpccorsdomain “*”をつけておかないとうまくいかないので注意。

name:
email:
comment: