出版社内容情報
Solidityによる開発の基本から、Webアプリケーションの実装まで実際に試しながら習得できる、ブロックチェーン、スマートコントラクトの解説書です。ブロックチェーンの研究と実務に携わる著者陣が詳しく丁寧に解説していきます。
【特徴】
・ブロックチェーンやスマートコントラクトが基礎から学べる
・スマートコントラクトの設計、構築、実装まで
・実務に役立つ応用的、発展的トピックまで解説
これから入門する方から、より発展的なスキルを身につけたい方まで、ブロックチェーンとスマートコントラクトに興味のあるエンジニア必携の1冊です。
【構成】
Chapter1 はじめてのスマートコントラクト
Chapter2 Solidityによるスマートコントラクト開発
Chapter3 スマートコントラクトのプロダクトデザイン
Chapter4 DApps開発環境の構築
Chapter5 開発用ブロックチェーンの構築
Chapter6 スマートコントラクトの設計
Chapter7 テスト手法と自動化
Chapter8 Webアプリケーションの実装
Chapter9 テストネットへのデプロイと監査
Chapter10 発展的なDApps開発
Chapter11 DApps開発の未来
Chapter1 はじめてのスマートコントラクト
1 スマートコントラクトとは
1 広義のスマートコントラクト
2 狭義のスマートコントラクト
3 ブロックチェーンの特徴
2 ブロックチェーンで実現できること
1 ブロックチェーンが提供する5つの価値
2 トークンエコノミクス
3 インセンティブ・ディセンティブの設計
4 KYCによる信用担保
5 DApps開発での懸念事項
3 既存サービスの実例
1 ブロックチェーンを用いたサービス
2 スマートコントラクトで実装されたサービス
4 テストネットでのDAppsの利用
1 テストネットとは
2 ウォレットの基礎知識
3 ウォレットのセットアップ(MetaMask)
4 ウォレットのセットアップ(Coinbase Wallet)
5 テストネットでのEtherの入手
6 テストネットで試せるDApps
Chapter2 Solidityによるスマートコントラクト開発
1 Ethereumの固有概念
1 Ethereumの内部通貨
2 手数料としてのガス
3 アカウントの種類
4 チェーンの採用を担うGhostプロトコル
5 EVM
2 Solidity概論
1 Solidityの特徴
2 コントラクト
3 型の種類
3 CryptoZombiesによるSolidityの学習
1 CryptoZombiesの概要
2 レッスン1:ゾンビファクトリーの作成
3 レッスン2:ゾンビは人間を襲う
4 レッスン3:Solidityの高度なコンセプト
5 レッスン4:ゾンビのバトルシステム
6 レッスン5:ERC721とクリプト収集物
7 レッスン6:フロントエンドとWeb3.js
4 RemixによるSolidityの実践
1 統合開発環境Remix
2 サンプルプロジェクト
3 Remixによる実践
4 Remixのログ機能による確認
Chapter3 スマートコントラクトのプロダクトデザイン
1 プロジェクトにおけるUXデザインの意義
1 UXデザインの必要性
2 プロダクトのユーザビリティ
3 開発プロセスでのUX/UIデザイン
4 非ウォータフォール開発の推奨
5 プロダクトの成果を定義する
2 リーンUXによる開発
1 リーンスタートアップとリーンUX
2 プロダクトとチームを成長させる
3 リーンUXの基本プロセスでのポイント
4 開発フェーズのポイント
3 プロトタイピングによるアプローチ
1 2種類のプロトタイピングの活用
2 戦術的プロトタイピング
3 体験的プロトタイピング
4 プロトタイプは最終成果物ではない
4 ユーザーテストの設計
1 ユーザーテストとは
2 従来的なユーザーテストの流れ
3 短期開発におけるユーザーテスト
4 軽量化ポイント
5 ユーザーテストのアンチパターン
5 サンプルプロダクトの設計
1 DApps『Quest α版』
2 戦術的プロトタイピング
3 体験的プロトタイピング
Chapter4 DApps開発環境の構築
1 各ツールの紹介
1 Docker
2 Geth
3 Ganache
4 Node.js(npm)
5 Truffle
6 Git
7 Visual Studio Code
8 Solidity対応の統合開発環境・エディタ
2 macOSでの環境構築
1 Homebrew
2 Docker
3 Geth
4 Ganache
5 Node.js(npm)
6 Truffle
7 Git
8 Visual Studio Code
3 Windowsでの環境構築
1 Windows Sybsystem for Linux
2 Docker
3 Geth
4 Ganache
5 Node.js(npm)
6 Truffle
7 Git
8 Visual Studio Code
4 Linuxでの環境構築
1 Docker
2 Geth
3 Ganache
4 Node.js(npm)
5 Truffle
6 Git
7 Visual Studio Code
Chapter5 開発用ブロックチェーンの構築
1 プライベートネットの構築
1 ローカル環境でのプライベートネットの構築
2 gethoによるプライベートネットの構築
2 より発展的なノード構築
1 Google Cloud Platformの登録
2 Google Cloud SDKのインストール
3 Google Cloud SDKの初期設定
4 kubectlのインストール
5 Kubernetes Engineクラスタの作成
6 Kubernetesで動作させるコンテナの作成
7 コンテナのデプロイ
3 Ethereumのネットワーク
1 P2Pネットワークの基礎
2 Ethereumのプロトコル
3 ノード探索
4 ログによる実践的な動作確認
Chapter6 スマートコントラクトの設計
1 データモデリング
1 概念データモデル設計
2 アトリビュートの洗い出し
3 論理データモデル設計
4 物理データモデル設計
2 コントラクトの設計
1 コントラクトの役割分担とデザインパターン
2 コントラクトが保持すべきデータの精査
3 機能の洗い出し
3 Truffleフレームワークによる開発準備
1 Truffleプロジェクトの作成
2 Truffle Develop
3 デプロイ先のEthereumネットワーク設定
4 Truffleコンソール
4 コントラクトの実装
1 OpenZeppelinのインストール
2 コントラクトの作成
3 コントラクトの機能実装
4 コンパイル
5 プライベートネットへのデプロイ
5 プライベートネットでの動作確認
1 デプロイとコントラクトオブジェクトの作成
2 コントラクトの状態呼び出し(call)
3 コントラクトの状態変更(transaction)
4 結果の確認
Chapter7 テスト手法と自動化
1 テストコードの記述
1 Truffleでのテストコード
2 テストコードの作成
3 テストの実行
4 テストカバレッジ
2 セキュリティチェック
1 自動セキュリティチェックツール
2 Mythril Classicでのセキュリティチェック
3 Quantstamp Betanetでのセキュリティチェック
3 テストの自動化
1 リポジトリによる管理
2 CI(継続的インテグレーション)
3 GitHubとGoogle Cloud Buildの連携
Chapter8 Webアプリケーションの実装
1 実装するアプリケーションの構成
1 一般的なWebアプリケーションの構成
2 DAppsの構成
3 本書で実装するDAppsの構成
2 フロントエンド実装
1 フロントエンドのフレームワーク
2 JSON-RPC
3 実装前の準備
4 Web3.js
5 Room一覧
6 Room作成
3 ミドルウェアとしてのデータベース構築
1 取り得るデータベースの種類
2 MySQLの構築
3 MySQLの動作確認
4 バックエンドAPIの開発
1 開発言語の選択
2 バックエンドのフレームワーク
3 開発に役立つ主要ライブラリ
5 データベースとコントラクトのデータ同期
1 データ不整合によるリスク
2 イベント取得の事前準備
3 コントラクトでのイベントの宣言と発火
4 イベントの検知とデータ同期
6 各コンテナの疎通確認
1 Docker Composeによる複数コンテナの起動
2 ブラウザでの確認
Chapter9 テストネットへのデプロイと監査
1 テストネットへのデプロイ
1 デプロイの準備
2 Truffleによるデプロイ
3 コントラクトの確認
2 セキュリティ監査
1 セキュリティ監査の重要性
2 監査サービス
3 ユーザーテスト
1 テストネットでのユーザーテスト
2 メインネットでのユーザーテスト
3 DAppsを育てるフェーズ
Chapter10 発展的なDApps開発
1 Ethereumでの開発に便利なプロジェクト群
1 Swarm
2 IPFS
3 Oracle
4 Ethereum Name Service
5 Kyber Network
2 ERC規格で進む標準化
1 ERCとは
2 EIPとERC
3 ERCトークン規格の例
3 スマートコントラクトのデザインパターン
1 Factory Contract Pattern
2 Name Registry Pattern
3 Access Restriction Pattern
4 Pull Payment Pattern
5 Self Destruction Pattern
6 Circuit Breaker Pattern
7 Upgradable Contract Pattern
Chapter11 DApps開発の未来
1 Ethereumの先端技術
1 Plasma
2 Casper
3 Sharding
4 eWASM
5 Vyper
6 Yul
7 Serenity
8 MetaMask Privacy Mode
2 Ethereum以外のスマートコントラクトプラットフォーム
1 EOS
2 NEO
3 Zilliqa
4 Kadena
3 新しい暗号技術
1 ゼロ知識証明
2 シュノア署名
3 BLS署名
4 秘密分散
5 準同型暗号
4 情報収集
1 日本国内での情報源
2 海外における情報源
3 情報ツールとしてのTwitter
加嵜 長門[カサキ ナガト]
著・文・その他
篠原 航[シノハラ ワタル]
著・文・その他
河西 紀明[カワニシ ノリアキ]
著・文・その他
金 志京[キム ジキョウ]
著・文・その他
佐々木 亮彰[ササキ ヒロアキ]
著・文・その他
田中 克典[タナカ カツノリ]
著・文・その他
平野 浩司[ヒラノ コウジ]
著・文・その他
前川 彰[マエガワ アキラ]
著・文・その他
DMM.comブロックチェーン研究室[ディーエムエムドットコムブロックチェーンケンキュウシツ]
著・文・その他
丸山 弘詩[マルヤマ ヒロシ]
編集
内容説明
Solidityによる開発の基本から、Webアプリケーションの実装まで。現場で役立つスキルを身につける。ブロックチェーンやスマートコントラクトが基礎から学べる。スマートコントラクトの設計、構築、実装まで。実務に役立つ応用的、発展的トピックまで解説。
目次
1 はじめてのスマートコントラクト
2 Solidityによるスマートコントラクト開発
3 スマートコントラクトのプロダクトデザイン
4 DApps開発環境の構築
5 開発用ブロックチェーンの構築
6 スマートコントラクトの設計
7 テスト手法と自動化
8 Webアプリケーションの実装
9 テストネットへのデプロイと監査
10 発展的なDApps開発
11 DApps開発の未来
著者等紹介
加嵜長門[カサキナガト]
合同会社DMM.comブロックチェーン研究室室長/エヴァンジェリスト。慶應義塾大学大学院政策・メディア研究科修士課程修了。ビッグデータ活用基盤の構築に携わり、SparkやSQL on Hadoopを用いた分散処理技術やブロックチェーン技術の研究開発、事業提案などを担当
篠原航[シノハラワタル]
合同会社DMM.comブロックチェーン研究室テックリード。サーバーサイドアプリケーションの設計・実装に携わり、ビッグデータ基盤の構築、計算リソースの効率化やCI/CDの整備などを担当したのちに現職
金志京[キンシキョウ]
合同会社DMM.comブロックチェーン研究室リードエンジニア。コンシューマーゲームの開発をはじめ、サーバーサイドなどWeb関連の開発に携わる。現在はブロックチェーンベースのプロダクト開発を中心に、先端技術の研究・開発を担当
河西紀明[カワニシノリアキ]
合同会社DMM.comブロックチェーン研究室所属。地域情報出版社のサービスデザインからキャリアをスタートし、フリーランスやデザインコンサルタントを経て現職。デジタルコマースのグロースや開発環境改善、チーム組成などに携わる。ビジネス設計からテックもこなすユーティリティなデザイナーとして、DApps開発とデザインワークのチーム共業を推進
田中克典[タナカカツノリ]
合同会社DMM.comブロックチェーン研究室所属。動画配信や電子書籍、プラットフォームなどの大規模開発に携わった後に、フロントエンドエンジニアを率いる開発グループのリーダーを担当。専門領域はフロントエンドとDAppsのコントラクト開発
佐々木亮彰[ササキヒロアキ]
同会社DMM.comブロックチェーン研究室所属。Web制作会社やソーシャルゲーム開発を経て現職。横断的な技術サポートやプラットフォーム開発を経て、現在はDAppsのバックエンド開発を担当
平野浩司[ヒラノコウジ]
同会社DMM.comブロックチェーン研究室所属。ブログ、POSレジ、ECサービスの開発を経て、現在はDAppsのフロントエンド開発を担当
前川彰[マエガワアキラ]
同会社DMM.comブロックチェーン研究室所属(インターン)。立命館大学理工学部電子工学科在籍。ブロックチェーン、特にマイニングや合意形成アルゴリズムに興味を持つ。現在はDAppsのコントラクト開発を担当(本データはこの書籍が刊行された当時に掲載されていたものです)
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。