注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計區(qū)塊鏈DApp開發(fā):基于以太坊和比特幣公鏈

區(qū)塊鏈DApp開發(fā):基于以太坊和比特幣公鏈

區(qū)塊鏈DApp開發(fā):基于以太坊和比特幣公鏈

定 價:¥99.00

作 者: 林冠宏 著
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787302563952 出版時間: 2020-10-01 包裝: 平裝
開本: 16開 頁數: 411 字數:  

內容簡介

  本書以Go編程語言為例,從必要的理論知識到編碼實踐,循序漸進地介紹了當前區(qū)塊鏈兩大公鏈應用—以太坊和比特幣DApp開發(fā)的技術要點。全書共分為7章,第1章介紹區(qū)塊鏈的重要基礎知識;第2章介紹以太坊公鏈的基礎知識,內容包含但不限于以太坊的大量概念與術語;第3章介紹以太坊智能合約的開發(fā)與部署實踐;第4章和第5章以以太坊DApp中繼服務作為范例,介紹以太坊區(qū)塊鏈DApp的開發(fā)流程;第6章介紹比特幣公鏈的基礎技術;最后的第7章介紹基于比特幣公鏈的DApp開發(fā)實例,包括錢包和交易所應用中的內存池解析器與去中心化數據存儲系統(tǒng)的開發(fā)。 本書技術先進,注重實踐,代碼注釋詳盡,適合廣大IT技術開發(fā)者閱讀,對于想了解以太坊和比特幣DApp開發(fā)技術的開發(fā)者尤為合適。

作者簡介

  林冠宏,網名:指尖下的幽靈。全棧開發(fā)者,擁有多年C/S雙端開發(fā)經驗,擅長于使用Java語言開發(fā)Android應用與Go語言開發(fā)后端程序。技術布道者,長期編寫技術博文與造輪開源,同時也是多個知名技術社區(qū)的簽約作家。曾任職中心化交易所高級開發(fā)工程師與區(qū)塊鏈公司技術經理,現任某國際知名區(qū)塊鏈通證打賞工具的核心開發(fā)。對區(qū)塊鏈技術,特別是基于以太坊與比特幣公鏈的DApp開發(fā)擁有較豐富的經驗。

圖書目錄

第1章  區(qū)塊鏈基礎知識 1
1.1  認識區(qū)塊鏈 1
1.1.1  區(qū)塊鏈的概念 1
1.1.2  鏈的分類 2
1.1.3  區(qū)塊鏈能做什么 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  鏈的分叉 15
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  區(qū)塊的組成 29
2.4.1  區(qū)塊的定義 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樹 46
2.5.4  默克爾樹(Merkle Tree) 47
2.5.5  以太坊MPT樹 50
2.5.6  MPT樹節(jié)點存儲到數據庫 54
2.5.7  組建一棵MPT樹 54
2.5.8  MPT樹如何體現默克爾樹的驗證特點 57
2.5.9  以太坊錢包地址存儲余額的方式 57
2.5.10  余額查詢的區(qū)塊隔離性 58
2.5.11  余額的查詢順序 59
2.5.12  UTXO模型和Account模型的對比 59
2.6  以太坊的版本演變 60
2.6.1  以太坊與PoW共識機制 60
2.6.2  君士坦丁堡 61
2.7  以太坊Ghost協(xié)議 62
2.8  Casper:PoS的變種共識機制 63
2.8.1  如何成為驗證人 63
2.8.2  驗證人如何獲取保證金 64
2.8.3  候選區(qū)塊的產生 64
2.8.4  勝出區(qū)塊的判斷 64
2.9  智能合約 64
2.9.1  簡介與作用 64
2.9.2  合約標準 66
2.10  以太坊交易 75
2.10.1  交易的發(fā)起者、類型及發(fā)起交易的函數 76
2.10.2  交易和智能合約的關系 76
2.10.3  交易參數的說明 77
2.10.4  交易方法的真實含義 80
2.10.5  交易的狀態(tài) 80
2.10.6  交易的打包 83
2.11  “代幣”余額 84
2.12  以太坊瀏覽器 85
2.12.1  區(qū)塊鏈瀏覽器訪問合約函數 87
2.12.2  區(qū)塊鏈瀏覽器查看交易記錄 89
2.12.3  非ETH交易記錄不能作為資產轉賬成功的依據 91
2.12.4  區(qū)塊鏈瀏覽器查看智能合約的代碼 92
2.13  以太坊零地址 94
2.13.1  零地址的交易轉出假象 94
2.13.2  零地址的意義 96
2.14  以太坊2.0 97
2.14.1  核心組件 97
2.14.2  共識的流程 98
2.14.3  嚴謹的隨機選擇 99
2.15  小結 99
第3章  智能合約的編寫、發(fā)布和調用 101
3.1  智能合約與以太坊DApp 101
3.2  認識Remix 102
3.3  實現加法程序 104
3.4  實現ERC20代幣智能合約 106
3.4.1  定義標準變量 106
3.4.2  事件與構造函數 106
3.4.3  Solidity的常見關鍵字 107
3.4.4  授權與余額 109
3.4.5  轉賬函數 109
3.4.6  合約的代碼安全 112
3.5  鏈上的合約 113
3.6  認識Mist 114
3.6.1  節(jié)點的切換 116
3.6.2  區(qū)塊的同步方式 116
3.7  創(chuàng)建以太坊錢包 116
3.8  使用Mist轉賬代幣 119
3.9  使用Mist發(fā)布智能合約 122
3.9.1  合約Solidity源碼 123
3.9.2  認識ABI 125
3.9.3  提取ABI和Bytecode 127
3.9.4  使用Bytecode發(fā)布合約 128
3.9.5  使用合約的函數 131
3.10  Mist的替換品 MyCrypto 133
3.10.1  安裝MyCrypto 134
3.10.2  切換節(jié)點網絡 134
3.10.3  使用MyCrypto創(chuàng)建錢包 136
3.10.4  使用MyCrypto轉賬代幣 137
3.10.5  使用MyCrypto部署智能合約 140
3.11  小結 141
第4章  以太坊中繼基礎接口 142
4.1  認識以太坊中繼 142
4.2  區(qū)塊遍歷 143
4.3  RPC接口 145
4.4  以太坊接口 146
4.4.1  重要接口詳解 147
4.4.2  節(jié)點鏈接 152
4.4.3  獲取鏈接 152
4.4.4  進行測試 156
4.4.5  獲取測試幣 158
4.5  項目準備 159
4.6  創(chuàng)建項目 162
4.7  個Go程序 165
4.8  封裝RPC客戶端 167
4.8.1  下載依賴庫 167
4.8.2  編寫RPC客戶端 169
4.8.3  單元測試 172
4.9  編寫訪問接口代碼 173
4.9.1  認識Call函數 174
4.9.2  查找請求的參數 175
4.9.3  實現獲取交易信息 177
4.9.4  認識BatchCall函數 181
4.9.5  批量獲取交易信息 182
4.9.6  批量獲取代幣余額 184
4.9.7  獲取區(qū)塊號 191
4.9.8  根據區(qū)塊號獲取區(qū)塊信息 192
4.9.9  根據區(qū)塊哈希值獲取區(qū)塊信息 196
4.9.10  使用eth_call訪問智能合約函數 197
4.10  小結 201
第5章  中繼服務程序的開發(fā) 202
5.1  創(chuàng)建以太坊錢包 202
5.1.1  以太坊錢包術語 203
5.1.2  創(chuàng)建錢包 204
5.2  實現以太坊交易 208
5.2.1  以太坊交易的原理 208
5.2.2  以太坊ETH的交易 216
5.3  區(qū)塊事件監(jiān)聽 233
5.3.1  創(chuàng)建數據庫 235
5.3.2  實現數據庫的連接器 235
5.3.3  生成數據表 239
5.3.4  區(qū)塊遍歷器 242
5.3.5  理解監(jiān)聽區(qū)塊事件 256
5.4  小結 257
第6章  比特幣技術基礎 258
6.1  比特幣的架構 258
6.2  獎勵機制 260
6.3  再看 PoW 共識 260
6.3.1  比特幣區(qū)塊頭 260
6.3.2  比特幣PoW的源碼實現 261
6.3.3  比特幣難度值的計算 263
6.4  地址的格式 264
6.4.1  私鑰 264
6.4.2  公鑰 270
6.4.3  地址 272
6.5  比特幣虛擬機 283
6.5.1  虛擬機的特點 283
6.5.2  數據源 284
6.5.3  常見的操作碼 286
6.5.4  虛擬機源碼解析 287
6.6  再看UTXO 292
6.6.1  輸入轉換 292
6.6.2  交易的結構 293
6.6.3  統(tǒng)計余額 297
6.6.4  構建交易 298
6.7  驗簽過程 308
6.8  比特幣鎖定腳本 309
6.8.1  P2PKH 310
6.8.2  P2PK 312
6.8.3  P2SH 313
6.8.4  P2WPKH與P2WSH 313
6.9  小結 314
第7章  基于比特幣公鏈的DApp案例 315
7.1  搭建比特幣私有鏈 315
7.1.1  下載節(jié)點源碼 315
7.1.2  目錄結構 318
7.1.3  配置文件 319
7.1.4  啟動比特幣節(jié)點 321
7.1.5  啟動終端控制程序 325
7.1.6  創(chuàng)建比特幣錢包 327
7.1.7  導出或導入錢包私鑰 328
7.1.8  主網的挖礦操作 329
7.1.9  私有網絡挖礦 330
7.1.10  獲得挖礦獎勵 332
7.1.11  發(fā)送交易 333
7.2  OP_RETURN與智能合約 338
7.2.1  公鏈存儲數據的需求 338
7.2.2  比特幣的存儲數據之法 339
7.2.3  智能合約方案—OP_RETURN 339
7.2.4  代碼實現含有OP_RETURN的交易 340
7.2.5  發(fā)送OP_RETURN交易 344
7.2.6  解碼默認的OP_RETURN 347
7.2.7  OP_RETURN數據的利用 348
7.3  比特幣的常用RPC接口 349
7.3.1  重要接口介紹 349
7.3.2  獲取節(jié)點連接 358
7.3.3  獲取測試幣 359
7.3.4  編寫訪問RPC接口代碼 359
7.4  案例:實現獲取交易狀態(tài)的解析器 369
7.4.1  相關程序組件 370
7.4.2  流程設計 371
7.4.3  用鏈表實現隊列功能 372
7.4.4  實現解析器 375
7.4.5  啟動解析器 380
7.5  案例:構建去中心化數據存儲系統(tǒng) 383
7.5.1  比特幣區(qū)塊遍歷器的實現流程 383
7.5.2  創(chuàng)建數據庫 384
7.5.3  區(qū)塊遍歷器的代碼實現 387
7.5.4  把交易發(fā)送到本地節(jié)點 404
7.5.5  把數據存儲到鏈上 408
7.5.6  解析所存儲的數據 410
7.6  小結 411

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號