ブロックチェーン エンジニア集中講座 week6 ~Ethereum応用編~ 参加レポート
HashHubでは毎週日曜日に2ヶ月集中して学習をするブロックチェーンエンジニア集中講座をフレセッツと共同で運営しています。詳しくはこちらをご確認ください。
ブロックチェーンエンジニア集中講座:https://www.blockchain-edu.jp/
<参加レポート>
week1 ~ブロックチェーンの仕組みと概要~:参加レポート
week2 ~ビットコイン基礎編~:参加レポート
week3 ~ビットコイン応用編~ :参加レポート
week4 ~ビットコイン実践編~ :参加レポート
week5 ~Ethereum基礎編~ :参加レポート
week7 ~Ethereum実践編~ :参加レポート
week8 ~Ethereum挑戦編~ :参加レポート
week9 ~特別講義~:参加レポート
講義開始
前回は一旦 Ethereum に触れてみて感覚を掴む事が目標でしたが、今回は 実際のコードを見ながらSolidityを理解する事が目標です。最初はデータ構造について説明していきます。各データ型は符号なし整数型、文字列型、アドレス型、配列型、マッピング型、構造体などがあります。
次に関数ですが、ブロックチェーンに書き込むもの、書き込まないものを考える必要がある事を説明されました。それを踏まえた上でコントラクトの説明に移ります。コントラクトはそれぞれ継承できるため、コントラクト内で別トランザクションを呼ぶ方法などを説明されました。
次にICOなどでもよく使われるERC20についての説明です。
先ほどまでの説明を踏まえて、実際にあるERC20のインターフェイスを見ながらより詳しいSolidityの文法を見ていきます。トークンの実装部分はコードが長くなるため、4つのパートに分けて説明されました。
最初は initialSupply = 初期供給(発 行)量、tokenName = トークン名、tokenSymbol =トークンを表す記号を設定します。他にも送金する際にどうやって送金するのか、送金元アカウントが本当にトークンを持っているのか、送金された際にどのように反映するのかなどをどのように書けばいいかを、コードを見ながら説明されました。
より詳しく見るために、コントラクトアドレスに対して ETH が送られてきたら、送金数量に応じてトークンを新規発行するICOコントラクトを例に出されました。
ICOコントラクトでは1ETHにつきどのくらいトークンを発行するか、売り切れた際の動きや、お釣りが必要な場合はどうすればいいかなどを考える必要があります。これも実際のコードを見ながら説明していきます。
ここまでテキストやスライドを元に説明されましたが、マルチシグコントラクトの説明からは講師が前で動かしてます。Bitcoinではマルチシグアカウントを作るのはそう大変ではありませんでしたが、Ethereumではコードを一定量書かなくてはいけません。これを作り上げるのは大変ですので、すでにGitHub上に存在するコードを使って動かしてみます。これを前回作ったGethのプライベートネットワークにデプロイし、Remixと繋げて動作を見てみます。
ただし毎回Remixを使ってマルチシグコントラクトを作るのは大変です。そのため既に存在するマルチシグウォレットソフトを使用します。これを使って送金などを試してみます。これら一連の動作を確認したところで講義は終了しました。
終了後は講師が行なったものを受講者が実際にやってみたり、演習問題を解く時間になりました。
まとめ
今回はICOコントラクトやERC20など比較的聞き覚えのあるものも解説されました。実際に話題になっているものがどうやって作るのかを知れてとても面白かったです。ただし Solidity 特有のコントラクトの書き方だったり、アカウントのアンロックやマイニングなどを忘れてうまく動かなかったりなど、まだまだ四苦八苦する場面も多かったです。そんな中でもみんな諦めずに、熱量高く勉強していてとても良い雰囲気でした。
お知らせ
■HashHubでは入居者募集中です!
HashHubは、ブロックチェーン業界で働いている人のためのコワーキングスペースを運営しています。ご利用をご検討の方は、下記のWEBサイトからお問い合わせください。また、最新情報はTwitterで発信中です。
HashHub:https://hashhub.tokyo/
Twitter:https://twitter.com/HashHub_Tokyo
■ブロックチェーンエンジニア集中講座開講中!
HashHubではブロックチェーンエンジニアを育成するための短期集中講座を開講しています。お申込み、詳細は下記のページをご覧ください。
ブロックチェーンエンジニア集中講座:https://www.blockchain-edu.jp/
■HashHubでは下記のポジションを積極採用中です!
・コミュニティマネージャー
・ブロックチェーン技術者・開発者
・ビジネスディベロップメント
詳細は下記Wantedlyのページをご覧ください。
Wantedly:https://www.wantedly.com/companies/hashhub/projects