內容簡介
區塊鏈是近十年來頗具顛覆性的新興信息技術之一,它正以一種全新的方式建立人類交易過程的信任、仲裁和記錄基礎。本書共9章,首先介紹去中心化應用、DApp等基本概念,並據此展開對比特幣、以太坊、超級賬本等熱門DApp的闡釋。其次在解析以太坊工作原理的基礎上介紹智能閤約的編寫方法,並介紹web3.js的應用方法。後利用上述知識進行錢包服務、智能閤約部署平颱、投注App、企業級智能閤約以及聯盟區塊鏈等具體應用程序的創建。
目錄
Contents 目錄
譯者序
前言
第1章 去中心化應用1
1.1 什麼是DApp1
1.1.1 去中心化應用的優點2
1.1.2 去中心化應用的缺點3
1.2 去中心化自治組織3
1.3 DApp中的用戶身份4
1.4 DApp中的用戶賬戶5
1.5 訪問中心化應用6
1.6 DApp中的內部貨幣6
1.7 什麼是授權的DApp7
1.8 熱門的DApp7
1.8.1 比特幣7
1.8.2 以太坊9
1.8.3 超級賬本項目9
1.8.4 IPFS10
1.8.5 Namecoin11
1.8.6 達世幣12
1.8.7 BigChainDB14
1.8.8 OpenBazaar14
1.8.9 Ripple14
1.9 總結16
第2章 以太坊的工作原理17
2.1 以太坊概覽17
2.2 以太坊賬戶18
2.3 交易18
2.4 共識19
2.5 時間戳20
2.6 隨機數21
2.7 區塊時間21
2.8 分叉24
2.9 創世區塊24
2.10 以太幣麵值24
2.11 以太坊虛擬機25
2.12 gas25
2.13 發現對等節點26
2.14 Whisper和Swarm27
2.15 geth27
2.15.1 安裝geth28
2.15.2 JSON-RPC和JavaScript操作颱28
2.15.3 子命令和選項29
2.15.4 創建賬戶29
2.16 以太坊錢包31
2.17 瀏覽器錢包31
2.18 以太坊的缺點32
2.19 serenity33
2.20 總結35
第3章 編寫智能閤約36
3.1 Solidity源文件36
3.2 智能閤約的結構37
3.3 數據位置38
3.4 什麼是不同的數據類型39
3.4.1 數組類型39
3.4.2 字符串類型40
3.4.3 結構類型41
3.4.4 枚舉類型42
3.4.5 mapping類型42
3.4.6 delete操作符43
3.4.7 基本類型之間的轉換44
3.4.8 使用var44
3.5 控製結構45
3.6 用new操作符創建閤約46
3.7 異常46
3.8 外部函數調用46
3.9 閤約功能48
3.9.1 可見性48
3.9.2 函數修改器50
3.9.3 迴退函數51
3.9.4 繼承52
3.10 庫54
3.11 返迴多值56
3.12 導入其他Solidity源文件57
3.13 全局可用變量57
3.13.1 區塊和交易屬性57
3.13.2 地址類型相關58
3.13.3 閤約相關58
3.14 以太幣單位58
3.15 存在、真實性和所有權閤約的證明59
3.16 編譯和部署閤約60
3.17 總結62
第4章 開始使用web3.js63
4.1 web3.js概述63
4.1.1 導入web3.js64
4.1.2 連接至節點64
4.1.3 API結構65
4.1.4 BigNumber.js66
4.1.5 單位轉換66
4.1.6 檢索gas價格、餘額和交易細節67
4.1.7 發送以太幣68
4.1.8 處理閤約69
4.1.9 檢索和監聽閤約事件71
4.2 為所有權閤約創建客戶端73
4.2.1 項目結構74
4.2.2 創建後端74
4.2.3 創建前端76
4.2.4 測試客戶端80
4.3 總結82
第5章 創建錢包服務83
5.1 在綫錢包和離綫錢包的區彆83
5.2 Hooked-Web3-Provider和EthereumJS-tx庫84
5.3 分層確定性錢包87
5.4 密鑰衍生函數87
5.5 LightWallet88
5.6 創建錢包服務89
5.6.1 必要條件89
5.6.2 項目結構90
5.6.3 創建後端90
5.6.4 創建前端91
5.6.5 測試97
5.7 總結101
第6章 創建智能閤約部署平颱102
6.1 計算一個地址的交易nonce102
6.2 solcjs概述104
6.2.1 安裝solcjs104
6.2.2 solcjs API104
6.3 創建閤約部署平颱107
6.3.1 項目結構108
6.3.2 創建後端108
6.3.3 創建前端113
6.3.4 測試117
6.4 總結118
第7章 創建投注App119
7.1 Oraclize概述119
7.1.1 Oraclize的工作原理120
7.1.2 數據源120
7.1.3 真實性證明121
7.1.4 定價122
7.1.5 開始使用Oraclize API123
7.1.6 加密查詢127
7.1.7 Oraclize Web IDE128
7.2 處理字符串128
7.3 創建投注閤約130
7.4 為投注閤約創建客戶端133
7.4.1 項目結構133
7.4.2 創建後端134
7.4.3 創建前端135
7.4.4 測試客戶端143
7.5 總結147
第8章 創建企業級智能閤約148
8.1 探索ethereumjs-testrpc148
8.1.1 安裝和使用149
8.1.2 可用RPC方法151
8.2 什麼是事件主題153
8.3 開始使用truffle-contract154
8.3.1 安裝和導入truffle-contract155
8.3.2 建立測試環境156
8.3.3 truffle-contract API156
8.4 truffle概述163
8.4.1 安裝truffle163
8.4.2 初始化 truffle163
8.4.3 編譯閤約165
8.4.4 配置文件165
8.4.5 部署閤約166
8.4.6 單元測試閤約169
8.4.7 包管理175
8.4.8 使用truffle的操作颱178
8.4.9 在truffle環境中運行外部腳本179
8.4.10 truffle的創建管綫179
8.4.11 truffle的服務器端186
8.5 總結187
第9章 創建聯盟區塊鏈188
9.1 什麼是聯盟區塊鏈189
9.2 什麼是權威證明共識189
9.3 parity概述189
9.3.1 Aura的工作原理190
9.3.2 運行parity191
9.3.3 創建私有網絡192
9.3.4 許可和隱私197
9.4 總結198
前言/序言
Preface 前 言
區塊鏈是一個防篡改的去中心化賬本,其中包含不斷增長的數據記錄列錶。每個用戶都可以連接到網絡,發送新的交易、驗證交易和創建新的區塊。
本書將闡釋區塊鏈的概念,講述其如何保證數據真實性,以及如何使用以太坊創建現實世界的區塊鏈項目。通過有趣的現實世界案例,讀者將瞭解如何編寫完全按照程序運行、沒有欺詐、沒有中心機構或者第三方乾預的智能閤約,並學習如何創建端到端的區塊鏈應用。本書還將介紹加密貨幣中的密碼學、以太幣安全、挖礦、智能閤約和Solidity等概念。
區塊鏈是比特幣中最有創造性的技術,是記錄比特幣交易的公共賬本。
本書內容
第1章闡釋DApp的概念,並簡述其工作原理。
第2章闡釋以太坊的工作原理。
第3章闡釋如何編寫智能閤約和使用geth交互接口來部署閤約,以及使用web3.js廣播交易。
第4章介紹web.3js的概念及其導入方法、連接到geth的方法,並闡釋瞭如何在node.js或者客戶端JavaScript使用它。
第5章闡釋如何創建錢包服務,以方便用戶創建和管理以太坊錢包,甚至離綫創建和管理錢包。我們將專門使用LightWallet庫實現。
第6章展示如何使用web3.js編譯智能閤約,以及使用web3.js和EthereumJS部署智能閤約。
第7章闡釋如何使用Oraclize從以太坊智能閤約發齣HTTP請求,以訪問萬維網中的數據。我們還將學習訪問存儲在IPFS中的文件、使用字符串庫處理字符串等方法。
第8章闡釋如何使用truffle。truffle將使創建企業級DApp變得容易。我們將通過創建代幣來學習truffle。
第9章闡釋創建聯盟區塊鏈的方法。
設備環境
Windows 7 SP1+、Windows 8、Windows 10或者Mac OS X 10.8+。
讀者對象
本書適閤想使用區塊鏈和以太坊創建防篡改數據(和交易)應用的JavaScript開發人員閱讀,也適閤對密碼學及其邏輯以及相關數據庫感興趣的人閱讀。
下載實例代碼
可以從http://www.packtpub.com下載本書的實例代碼文件。如果您在其他地方購買瞭本書,可以訪問http://www.hzbook.com注冊並下載。
區塊鏈項目開發指南 epub pdf mobi txt 電子書 下載 2024
區塊鏈項目開發指南 下載 epub mobi pdf txt 電子書