きょこみのーと

元六本木でGo書いてました。今はVRでGo書いてます。

なんとなくEthereum入門してERC20トークンをテストネットに作成するまでやった雑メモ

ちょっと調査する機会があったので、自分メモ的な感じで残しておく。

ブロックチェーンやEthereumについての概要

ざっとこの本を読んで、コマンドとか写経しながら実際にローカル環境で試してなんとなく理解した。 セキュリティ周りの事例の話とかも結構してくれて大変なんだな...というのを実感できて良かった。

ERC20トークンについてなど

ざっとインターネットで独自トークンの発行をするにはどうしたらいいんだろう?とググってたら Ethereum Advent Calendar 2017 - Qiita にたどり着いた。

とりあえず25日分をざーっと読むとみんなERC20トークン作っててなるほど〜って感じだった。

主に参考になった記事はこちら

tech.pepabo.com

qiita.com

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を呼び出す

この辺を参考にした.

github.com

lotz84.hatenablog.com

コード自体はすぐに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) という印象でした。