《區塊鏈以太坊DApp開發實戰》是清華大學出版社2019年出版的圖書,作者是林冠宏。
基本介紹
- 書名:區塊鏈以太坊DApp開發實戰
- 作者:林冠宏
- ISBN:9787302531265
- 定價:79元
- 出版時間:2019年8月1日
圖書簡介,圖書目錄,
圖書簡介
本書以Go程式語言講解,從必要的理論知識到編碼實踐,循序漸進地介紹以太坊DApp開發的技術要點。全書主要內容分4大部分:第一部分介紹區塊鏈的一些重要基礎知識;第二部分全面地介紹以太坊公鏈的套用基礎,內容包含但不限於以太坊的大量術語;第三部分介紹以太坊智慧型契約整體開發與部署實踐;第四部分以以太坊DApp中繼服務作為綜合範例,介紹以太坊區塊鏈DApp的開發流程與實戰。 本書注重套用,代碼注釋詳盡,適合IT技術開發者閱讀,對於想了解以太坊及其DApp開發技術的人員或想開發一款基於以太坊的DApp開發者尤為合適。
圖書目錄
第1章 區塊鏈基礎知識準備 1
1.1 認識區塊鏈 1
1.1.1 區塊鏈的概念 1
1.1.2 鏈的分類 2
1.1.3 區塊鏈能做什麼 3
1.2 共識的作用 3
1.3 常見的共識算法 4
1.3.1 PoW算法 5
1.3.2 PoS算法 7
1.3.3 DPoS算法 8
1.3.4 共識算法的編碼嘗試 9
1.4 鏈的分叉 14
1.4.1 軟分叉 16
1.4.2 硬分叉 18
1.4.3 常見的分叉情況 18
1.4.4 PoW共識機制的51%算力攻擊 20
1.5 小結 22
第2章 以太坊基礎知識準備 23
2.1 什麼是以太坊 23
2.2 以太坊的架構 24
2.3 什麼是DApp 26
2.3.1 DApp概述 26
2.3.2 以太坊上的DApp 28
2.4 區塊的組成 29
2.4.1 區塊的定義 29
2.4.2 以太坊地址(錢包地址) 31
2.4.3 Nonce的作用 33
2.4.4 燃料費 34
2.4.5 GasUsed的計算 35
2.4.6 叔塊 38
2.4.7 挖礦獎勵 40
2.5 賬戶模型 42
2.5.1 比特幣UTXO模型 43
2.5.2 Trie樹 45
2.5.3 Patricia Trie樹 47
2.5.4 默克爾樹(Merkle Tree) 47
2.5.5 以太坊MPT樹 50
2.5.6 MPT樹節點存儲到資料庫 53
2.5.7 組建一棵MP...
2.5.8MPT樹如何體現默克爾樹的驗證特點57
2.5.9以太坊錢包地址存儲餘額的方式57
2.5.10餘額查詢的區塊隔離性58
2.5.11餘額的查詢順序58
2.5.12UTXO模型和Account模型的對比59
2.6以太坊的版本演變60
2.6.1以太坊與PoW共識機制60
2.6.2君士坦丁堡60
2.7以太坊Ghost協定61
2.8Casper:PoS的變種共識機制62
2.8.1如何成為驗證人63
2.8.2驗證人如何獲取保證金63
2.8.3候選區塊的產生64
2.8.4勝出區塊的判斷64
2.9智慧型契約64
2.9.1簡介與作用64
2.9.2契約標準66
2.10以太坊交易75
2.10.1交易的發起者、類型及發起交易的函式75
2.10.2交易和智慧型契約的關係76
2.10.3交易參數的說明77
2.10.4交易方法的真實含義79
2.10.5交易的狀態80
2.10.6交易被打包82
2.11“代幣”餘額83
2.12以太坊瀏覽器84
2.12.1區塊鏈瀏覽器訪問契約函式86
2.12.2區塊鏈瀏覽器查看交易記錄89
2.12.3非ETH交易記錄不能作為資產轉賬成功的依據90
2.12.4區塊鏈瀏覽器查看智慧型契約的代碼91
2.13以太坊零地址94
2.13.1零地址的交易轉出假象94
2.13.2零地址的意義96
2.14小結97
第3章智慧型契約的編寫、發布和調用98
3.1智慧型契約與以太坊DApp98
3.2認識Remix99
3.3實現加法程式101
3.4實現ERC20代幣智慧型契約103
3.4.1定義標準變數103
3.4.2事件與構造函式103
3.4.3Solidity的常見關鍵字104
3.4.4授權與餘額105
3.4.5轉賬函式106
3.4.6契約的代碼安全109
3.5鏈上的契約110
3.6認識Mist111
3.6.1節點的切換112
3.6.2區塊的同步方式113
3.7創建以太坊錢包113
3.8使用Mist轉賬代幣116
3.9使用Mist發布智慧型契約119
3.9.1契約Solidity源碼121
3.9.2認識“ABI”122
3.9.3提取ABI和Bytecode124
3.9.4使用Bytecode發布契約125
3.9.5使用契約的函式128
3.10小結130
第4章實現以太坊中繼——基礎接口131
4.1認識以太坊中繼131
4.2區塊遍歷132
4.3RPC接口134
4.4以太坊接口135
4.4.1重要接口詳解136
4.4.2節點連結141
4.4.3獲取連結141
4.4.4進行測試144
4.4.5獲取測試幣147
4.5項目準備148
4.6創建項目151
4.7第一個Go程式154
4.8封裝“RPC”客戶端156
4.8.1下載依賴庫156
4.8.2編寫“RPC”客戶端158
4.8.3單元測試161
4.9編寫訪問接口代碼162
4.9.1認識“Call”函式163
4.9.2查找請求的參數164
4.9.3實現獲取交易信息166
4.9.4認識“BatchCall”函式170
4.9.5批量獲取交易信息171
4.9.6批量獲取代幣餘額173
4.9.7獲取最新區塊號179
4.9.8根據區塊號獲取區塊信息181
4.9.9根據區塊哈希值獲取區塊信息184
4.9.10使用“eth_call”訪問智慧型契約函式186
第5章實現以太坊中繼——套用191
5.1創建以太坊錢包191
5.1.1以太坊錢包術語192
5.1.2創建錢包194
5.2實現以太坊交易197
5.2.1以太坊交易的原理197
5.2.2以太坊ETH的交易206
5.3區塊事件監聽224
5.3.1創建資料庫225
5.3.2實現資料庫的連線器226
5.3.3生成數據表230
5.3.4區塊遍歷器232
5.3.5理解監聽區塊事件246
5.4小結247
後記248