ブロックチェーン開発のためのイベントを開催

今回は毎月行われているBlockchain EXEからさらに焦点をエンジニアに絞り、ハンズオン形式で実装を行いました。第一回目のBlockchain EXE Codeは「ブロックチェーンを使ったアプリケーション開発」です。

Ethereumネットワーク上でのアプリケーション開発とは?

コミュニティ規模、開発ツールの充実ぶりから一番ニーズの多かった「Ethereum」ネットワークを使って、スマートコントラクトを開発しました。

一言にEthereumネットワークのアプリケーションといっても何を始めれば良いのかわからない人も多いかと思います。今回はブロックチェーンそのものを開発するのではなく、Ethereumネットワーク上で動くアプリケーション、すなわちスマートコントラクトをデプロイしてみようという試みです。

スマートコントラクトはどうやって開発するのかに関してはこの辺を参考にしていただければと思います。

Ethereumの開発本を出版している西村 祥一氏によるハンズオン

今回は以前Blockchain EXEにも登壇していただいた西村さんをお招きし、ハンズオン形式で実際にスマートコントラクトを作成し独自のトークンを作成して送金するところまでをレクチャーして頂きました。

西村 祥一 | Comps ITL Pte. Ltd. CEO / KAULA Inc. Chief Architect
日本オラクルにて DB コンサルティングに従事。その後、独立。自然言語処理・機械学習などの学術系案件の開発・コンサルティングを行うと共に、ブロックチェーン技術を用いた開発に取り組んでいる。Global Blockchain Summit 2016ではブロックチェーン技術による位置情報プラットフォームを提案し、Best Innovation Awardを受賞。著書に「はじめてのブロックチェーンアプリケーション~Ethereumによるスマートコントラクト開発入門」(2017年、翔泳社)がある。

当日の様子をスライドを交えてご覧ください。

今回のメインテーマは「独自トークンの発行」です。昨年一気に知名度をあげたICOやプレセール等でよく使われていたetherと互換性を持たせるための開発手法を実装をしながら学びました。独自トークンを実際にビジネスで活用するにはセキュリティの実装などが必要になりますが、今回のハンズオンを通じて感覚をつかむことはできます。

では、もう少し詳しく独自のトークンを発行する上でのポイントを保管しながらまとめてみましょう。

簡単に開発できるMetaMaskというツールを利用

MetaMaskはブラウザの拡張機能ツールで、インストールする事で簡単にetherの送金を行う事ができます。(※今のMetaMaskをインストールできるのはGoogle ChromeかBraveのみ)

また、MetaMaskは今回のハンズオンの様に本番ではなく、Ethereumのテストネット(今回使ったのはRopstenネットワーク)上のアドレスやデプロイしたコントラクトへ送金できるので開発環境としては非常によく使われるツールとなっています。

Ethereum開発の代表格であるERC20

Ethereumはご存知の通り、非中央集権プラットフォームであり、世界中でガバナンスについて議論がなされていて、EIP(Ethereum Improval Proposals)という改善の提案が開発者からできる仕組みになっています。

Ethereumプラットフォーム上では誰でも自由にコントラクトをデプロイできる為、これまで様々なトークンの種類を扱う上で統一化が求められていました。そこでVitalik Buterin氏とFabian Vogelsteller氏によってEthereumベースのトークンでは標準のインターフェースを使いましょうという草案が提出され、2017年9月に採用が決定されました。また、なぜ20かというと、Ethereum公式のGithub上でのissue番号が20だったからという理由だそうです。(参考)

ではなぜ、EIP20ではないのかというと、それについてもGithub上で議論され、もともとソフトウェアの開発で標準化をする上ではよく使われていた、RFC(Request for Comments)を用いて、ERC(Ethereum Request for Comments)という呼び方にしましょうという決定がされていました。(参考)

コントラクト

今回デプロイしたコードはこちらで確認できます。

コントラクトは今回Webブラウザ上で動作するSolidity用のIDE(browser-solidity)を使いました。現状Solidityの開発で活発なのはこちらのbrowser-solidityか、Consensysが提供している総合開発ツール「truffle」となっています。

ちなみに truffleを使う場合、テスト用のアカウント一括管理、blockの検索やログ管理、マイニングのカスタマイズ等ができるツール「ganache」(旧 testrpc)も併せて使うとよりSolidityを使った開発の理解が深まると思いますのでおすすめです。

Ethereumのテストネットで送金テスト

デプロイが正常に完了すると、コントラクトのアドレスがbrowser-solidity上で確認できるようになります。そのアドレスを先ほど紹介したMetaMaskに登録すると、晴れて自分のトークンをMetaMask上で誰かに送金が可能となります。

送金に関してはMyEtherWalletも有名ですが、MetaMaskには秘密鍵をインポートできる機能があるのでMyEtherWalletのウォレットにアクセスできたり、何かと便利ですね。

まとめ

今回はハンズオン形式という初めての試みでしたが、スマートコントラクトをどの様に開発できるのかがなんとなく掴めたかと思います。開発ツールも今後増えて行ったり、Cryptozombies等のオンラインチュートリアルも登場して、ますますSolidity開発が活発になってきています。

次回はHyperldger Fabric編を開催し、それ以外にも様々なゲストを迎えてのハンズオンを企画中です。キャンセル待ちの連絡が増えておりますが、こちらではキャンセル待ち予約などは設けておりません。特にBlockchain EXE Codeは少人数制で理解を深めることを目的としていますので人数枠を増やしにくいです。そのため是非Blockchain EXEのpeatixをフォローしてみてください。

おすすめの記事