なんとなくEthereum入門してERC20トークンをテストネットに作成するまでやった雑メモ
ちょっと調査する機会があったので、自分メモ的な感じで残しておく。
ブロックチェーンやEthereumについての概要
堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門
- 作者: 田篭照博
- 出版社/メーカー: 技術評論社
- 発売日: 2017/10/27
- メディア: 大型本
- この商品を含むブログを見る
ざっとこの本を読んで、コマンドとか写経しながら実際にローカル環境で試してなんとなく理解した。 セキュリティ周りの事例の話とかも結構してくれて大変なんだな...というのを実感できて良かった。
ERC20トークンについてなど
ざっとインターネットで独自トークンの発行をするにはどうしたらいいんだろう?とググってたら Ethereum Advent Calendar 2017 - Qiita にたどり着いた。
とりあえず25日分をざーっと読むとみんなERC20トークン作っててなるほど〜って感じだった。
主に参考になった記事はこちら
truffleがすごい便利だった
普通にプログラミング経験者だったらこれで何も考えずにERC20トークンをつくるところまでいけそうだな〜と思った。(その後困りそうだけど)
Migrationの挙動がよくわからなかった...(T_T)
一回目のmigrateはうまくいくけど、tokenの量とか変更して二回目のmigrateするとなんかエラーになる... 理由は正直わからんかった... -resetとかすればうまくいくけど、migrateに期待してる挙動はそうじゃないので困った。(誰か知ってる人がいたら教えてください...)
./node_modules/.bin/truffle migrate --network ropsten cricket rib insane siege quote scorpion slot seven dynamic motor innocent kind Using network 'ropsten'. TypeError: Cannot read property 'call' of undefined at /xxxxxxx/node_modules/truffle/build/cli.bundled.js:176221:50 at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7)
SolidityのIDEについて
Remixが一番よさそう? Remix - Solidity IDE
安定のInteliJ IDEA pluginもある様子だけど補完とかがうまいこと効かなかった... (設定かな?) Intellij-Solidity :: JetBrains Plugin Repository
go-ethereumで適当なCLIツール作ってtransactionを呼び出す
この辺を参考にした.
コード自体はすぐにgenerateして簡単に実行できた。gasの設定をちゃんとしないと結構実行に失敗する。
GAE/Goにdeployしようとしたけど、どうやらcgoを一部利用している様子でdeployに失敗した。(残念)
github.com/ethereum/go-ethereum/crypto/secp256k1
とかだった気がする
セキュリティについてとか
必読っぽい: https://github.com/ConsenSys/smart-contract-best-practices
日本語訳がある...圧倒的感謝...!: https://github.com/sot528/smart-contract-best-practices/blob/master/README-ja.md
まとめ
なんかすごく色々な方々のお陰で参入の障壁は下がってきてるけど、セキュリティとかまともに運用してる事例がまだまだ足りてなさそう?
その辺を「やっていくぞ!」って人じゃないと本格的な参入は難しそうですね(KONAMI) という印象でした。