SolidityとEthereumによる実践スマートコントラクト開発
Truffle Suiteを用いた開発の基礎からデプロイまで
- Kevin Solorio、Randall Kanna、David H. Hoover 著、中城 元臣 監訳、株式会社クイープ 訳
- 2021年01月 発行
- 272ページ
- ISBN978-4-87311-934-2
- フォーマット Print PDF ePub
- 原書: Hands-On Smart Contract Development with Solidity and Ethereum
3,740円
書籍のご注文はオーム社サイトへ
内容
本書は、ブロックチェーン開発をこれから始めるエンジニア向けに、スマートコントラクト開発をわかりやすく解説します。EVM(イーサリアム仮想マシン)上で実行可能なSolidity言語と、人気の高いフレームワークTruffle Suiteを使って、独自のスマートコントラクトの作成から、テスト、フロントエンドの作成までを順を追って丁寧に説明していきます。実際に、資金調達のアプリケーションを構築していく過程をたどりながら、スマートコントラクトをデプロイしてユーザーがアプリケーションとやり取りできるようにするまでのプロセスを習得することができ、本書をひと通り学べば、独自のブロックチェーンアプリケーションを、このフレームワークに基づいて開発できるようになるでしょう。Web3、スマートコントラクトのセキュリティについても解説。
関連書籍
目次
はじめに 第I部 イーサリアムブロックチェーンの紹介 1章 ブロックチェーンの概念 1.1 ブロックチェーンの略史 1.2 ブロックチェーンの特徴 1.2.1 非中央集権ネットワーク 1.2.2 コンセンサスプロトコル 1.2.3 トランザクションの処理 1.2.4 トランザクションのファイナリティ 1.2.5 ハードフォーク 1.3 イーサリアムの基礎 1.3.1 イーサとガス 1.3.2 アカウント 1.3.3 コントラクト 1.3.4 ブロックとトランザクション 1.3.5 今何時? 1.3.6 トランザクションの署名 1.4 まとめ 2章 非中央集権アプリケーション 2.1 トークン 2.1.1 ERC-20 2.1.2 ERC-721:ノンファンジブルトークン 2.2 サプライチェーン 2.3 永続的な記録 2.4 アプリケーションに対するブロックチェーンの適性評価 2.4.1 検証可能 2.4.2 透明性 2.4.3 回復力 2.5 まとめ 3章 スマートコントラクトを開発するための準備 3.1 イーサリアムクライアント 3.1.1 Parity のインストール 3.2 MetaMask のインストール 3.3 Node.js のインストール 3.3.1 Ubuntu でのインストール(Windows WSL Ubuntu を含む) 3.3.2 macOS でのインストール 3.4 Truffle Suite のインストール 3.4.1 Truffle 3.4.2 Ganache 3.5 まとめ 第II部 スマートコントラクトの開発 4章 初めてのスマートコントラクト 4.1 セットアップ 4.2 最初のテスト 4.3 Hello World! 4.4 コントラクトを動的にする 4.5 Greeter を Ownable にする 4.6 まとめ 5章 コントラクトのデプロイと操作 5.1 コントラクトのコンパイルとデプロイ 5.1.1 デプロイプロセス 5.2 UI のセットアップ 5.3 Ganache へのデプロイ 5.4 Parity を使った Goerli へのデプロイ 5.5 Infura を使った Rinkeby へのデプロイ 5.6 まとめ 6章 資金調達アプリケーション 6.1 アプリケーションの概要 6.2 プロジェクトの作成 6.3 資金調達の初期化 6.3.1 受取人と管理人の設定 6.4 受取人の編集 6.5 寄付 6.5.1 構造体 6.5.2 マッピング 6.5.3 寄付のテスト 6.5.4 myDonations 6.5.5 資金調達の集計 6.5.6 イベント 6.6 資金の引き出し 6.7 フォールバック関数 6.8 まとめ 7章 FundraiserFactory 7.1 FundraiserFactory のマイグレーション 7.2 Fundraiser インスタンスを作成する 7.3 利用可能な Fundraiser インスタンスを表示する 7.3.1 空のコレクションでページングをテストする 7.3.2 上限をテストする 7.3.3 オフセットをテストする 7.4 UI のセットアップ 7.5 まとめ 第III部 Web3 を使ったスマートコントラクトの操作 8章 Web3 とは何か 8.1 フロントエンド、Web3、ブロックチェーン 8.2 Web3 のメソッド 8.2.1 getAccounts() 8.2.2 getBlockNumber() 8.2.3 getBalance() 8.2.4 sendTransaction() 8.2.5 プロバイダ 8.2.6 Web3 と Promise 8.2.7 Web3 インジェクションのための MetaMask 8.2.8 send(状態の更新/書き込み) 8.2.9 call(読み取り) 8.3 まとめ 9章 UI をコントラクトに接続する 9.1 React を選んだのはなぜか 9.1.1 開発環境のセットアップ 9.2 Truffle 9.2.1 React Truffle Box のセットアップ 9.2.2 Greeter コントラクトのインポート 9.2.3 Greeter コントラクトの機能を追加する 9.2.4 React を使ってあいさつ文を設定する 9.3 まとめ 10章 さらに大規模な DApp 10.1 React Truffle Box から始める 10.1.1 Fundraiser のセットアップ 10.1.2 React のルーティング 10.2 React と Material-UI 10.2.1 New Fundraiser ページビューを作成する 10.2.2 現在の Fundraiser を一覧表示する 10.3 まとめ 11章 Fundraiser UI を完成させる 11.1 各 Fundraiser の詳細情報を追加する 11.1.1 Material-UI のダイアログを実装する 11.2 React を使って寄付をする 11.2.1 寄付をテストする 11.3 ETH の現在のレートを表示する 11.4 寄付の領収書を発行する 11.5 コントラクトからの資金の引き出し 11.5.1 コントラクトの受取人を編集する 11.6 まとめ 第IV部 スマートコントラクトの保護 12章 スマートコントラクトのセキュリティ 12.1 セキュリティに配慮する必要があるのはなぜか 12.2 スマートコントラクトの脆弱性の種類 12.2.1 保護されていない関数 12.2.2 Transaction Ordering Dependence 12.2.3 整数のオーバーフローとアンダーフロー 12.2.4 リエントランシー 12.2.5 ブロックのガスリミット 12.2.6 Timestamp Dependence 12.2.7 その他さまざまな攻撃 12.3 コントラクトの外部監査の準備 12.3.1 外部監査 12.3.2 監査会社 12.3.3 Solidified 12.4 監査に利用できる無償のリソース 12.5 監査のスキルを養う 12.6 まとめ 監修者あとがき 索引