買這商品的人也買了...
-
$580$493 -
$520$442 -
$403Go語言編程入門與實戰技巧
-
$398區塊鏈 2.0實戰 : 以太坊 + Solidity 編程從入門到精通
-
$454Hyperledger Fabric 源代碼分析與深入解讀
-
$403DAG 區塊鏈技術:原理與實踐
-
$250分佈式緩存 原理、架構及 Go 語言實現
-
$500$390 -
$403Stellar 區塊鏈:原理與實踐
-
$454Go 語言高級編程
-
$331EOS 實戰與源碼分析
-
$403Flutter:從0到1構建大前端應用
-
$454區塊鏈開發實戰:基於 JavaScript 的公鏈與 DApp 開發
-
$600$468 -
$580$493 -
$580$493 -
$254自學區塊鏈:原理、技術及應用
-
$403區塊鏈智能合約與 DApp 應用實戰
-
$454一本書讀懂區塊鏈(第2版)
-
$454從實踐中學習 Web 防火牆構建
-
$709Unix/Linux 系統編程
-
$403區塊鏈背景下能源互聯網信息基礎架構研究與實踐
-
$709區塊鏈原理、設計與應用, 2/e
-
$352Go並發編程實戰
-
$505區塊鏈應用開發實戰
相關主題
商品描述
本書系統地介紹區塊鏈設計原理和開發技術,包含公鏈的整體架構和開發細節,主要內容包括:
第1章介紹公鏈設計架構。第2~4章介紹比原鏈的交互工具、核心進程bytomd,以及API Server實現原理和接口設計。第5~6章詳細介紹區塊鏈核心部分,包括區塊、區塊鏈、交易的核心數據結構,以及UTXO模型、隔離見證、交易腳本、驗證等技術概念的實現。第7~8章講解比原鏈智能合約以及智能合約在BVM虛擬機上的運行過程。第9~10章介紹區塊鏈錢包的設計與交易流程,包括密鑰、賬戶、資產管理、交易管理等,還詳解了區塊鏈P2P分佈式網絡實現原理。第11~13章介紹數據存儲、共識算法以及挖礦相關的概念和流程。第14章展望了區塊鏈技術未來的發展趨勢。
區塊鏈是構建人類社會下一個數字大航海時代的基礎設施之一,而公有鏈技術的發展無疑是最受關註的領域。本書以比原鏈為實例,全面、詳盡地剖析了公鏈整個技術棧,涵蓋公鏈設計原理、系統架構、底層模型、數據結構與算法、編程環境、上層應用開發等主題,內容深入淺出。通過學習本書內容,可對公鏈技術有全面瞭解,為親身參與這場變革做好準備。
本書是我見過的為數不多的剖析區塊鏈技術面面俱到,並兼具深度的專業著作,從公鏈的整體架構開始,到接口,再到內核,從外及里一步步揭示公鏈的技術原理。在揭示這些技術原理的過程中,作者不滿足於淺嘗輒止,而是深入參數解析層面,使本書除了適用於知識學習之外,更成為一本頗具實操性的參考書籍。本書雖然以比原鏈為藍本,但實際上所用技術在區塊鏈中也都大致通用。
雖然公鏈技術始終是區塊鏈技術愛好者的一片熱土,但是對新入門的開發人員而言,並無體系成熟、翔實可靠的開發指導,初學者往往淹沒在各種問答式的經驗帖中,這無助於形成完備的技術體系。本書是市面上不多見的體系完備之作,在兼顧將公鏈核心技術講通透的同時,不囿於細節,致力於呈現給讀者全局的脈絡。
作者簡介
鄭東旭,在靠前一線互聯網公司任職,對公鏈底層運行原理及技術實現有深入了解。某公鏈項目技術委員會成員。
目錄大綱
推薦序一
推薦序二
前言
章公鏈設計架構1
1.1概述1
1.2公鏈總體架構2
1.3比原鏈各模塊功能2
1.3.1用戶交互層2
1.3.2接口層4
1.3.3內核層4
1.3. 4錢包層6
1.3.5共識層6
1.3.6數據存儲層7
1.3.7P2P分佈式網絡8
1.4編譯部署及應用9
1.5本章小結12
第2章交互工具13
2.1概述13
2.2bytomcli交互工具13
2.2. 1bytomcli命令flag參數13
2.2.2使用bytomcli查看節點信息15
2.2.3bytomcli運行案例16
2.3dashboard交互工具21
2.3.1使用dashboard發送一筆交易22
2.3.2使用dashboard開啟挖礦模式22
2.4本章小結24
第3章守護進程的初始化與運行25
3.1概述25
3.2bytomd守護進程初始化流程及命令參數25
3.3bytomd守護進程的初始化實現27
3.3.1Node對象28
3.3.2配置初始化29
3.3.3創建文件鎖32
3.3.4初始化網絡類型33
3.3.5初始化數據庫(持久化存儲)35
3.3.6初始化交易池35
3.5.7創建一條本地區塊鏈36
3.3.8初始化本地錢包37
3.3.9初始化網絡同步管理37
3.3.10初始化Pprof性能分析工具38
3.3.11初始化CPU挖礦功能38
3.4bytomd守護進程的啟動方式和停止方式39
3.5本章小結40
第4章接口層41
4.1概述41
4.2實現一個簡易HTTPServer41
4.3APIServer創建HTTP服務42
4.3.1創建API對象42
4.3.2創建路由項43
4.3.3實例化http.Server44
4.3.4啟動APIServer45
4.3.5接收並響應請求45
4.4HTTP請求的完整生命週期47
4.5比原鏈API接口描述48
4.6API接口調用工具50
4.6.1使用curl命令行調用API接口50
4.6.2使用Postman調用API接口50
4.7比原鏈HTTP錯誤碼一覽51
4.8本章小結52
第5章內核層:區塊與區塊鏈53
5.1概述53
5.2區塊53
5.2.1區塊的數據結構53
5.2.2區塊頭的數據結構54
5.2.3區塊標識符55
5.2.4創世區塊56
5.2.5生成創世區塊57
5.2.6區塊驗證58
5.2.7計算下一個區塊的難度目標60
5.2.8孤塊管理60
5.3區塊鏈63
5.3.1區塊鏈的數據結構63
5.3.2區塊上鍊64
5.3.3區塊連接65
5.3.4鏈重組66
5.3.5主鏈的69
5.4本章小結70
第6章內核層:交易71
6.1概述71
6.2交易的概念71
6.2.1現實生活中的交易71
6.2.2虛擬世界中的交易72
6.3核心數據結構72
6.3.1普通交易核心數據結構73
6.3.2Coinbase交易核心數據結構78
6.3.3交易Action數據結構81
6.3.4MUX交易類型85
6.4BUTXO模型86
6.4.1BUTXO模型原理87
6.4.2MUX結構88
6.5交易的流程89
6.5.1構建交易89
6.5.2簽名交易93
6.5.3提交交易95
6.6隔離見證97
6.7交易腳本97
6.7.1支付到公鑰98
6.7.2支付到腳本99
6.7.3資產上鍊100
6.7.4資產銷毀102
6.7.5見證腳本102
6.7.6棧語言103
6.8交易驗證105
6.8.1標準交易105
6.8.2交易驗證流程106
6.9交易費108
6.9.1估算交易手續費108
6.9.2計算交易手續費110
6.10交易池111
6.11樹112
6.12本章小結115
第7章內核層:智能合約116
7.1概述116
7.2基礎知識116
7.2.1智能合約116
7.2.2圖靈完備的智能合約117
7.2.3UTXO模型和Account模型117
7.3合約層設計118
7.4智能合約語言119
7.4.1Equity語言119
7.4.2Equity合約組成119
7.5基於UTXO模型合約開發實戰122
7.5.1編寫合約123
7.5.2編譯合約123
7.5.3部署合約125
7.5.4解鎖合約129
7.6本章小結132
第8章內核層:虛擬機133
8.1概述133
8.2BVM介紹134
8.2.1虛擬機的棧134
8.2.2具有圖靈完備性的BVM135
8.2.3equity&;vm代碼結構135
8.3virtualMachine對象136
8.4棧實現137
8.5BVM操作指令集139
8.6智能合約在BVM上的運行過程141
8.6.1智能合約數據結構141
8.6.2合約編譯流程與原理142
8.6.3合約程序字節碼示例156
8.6.4合約程序字節碼的執行157
8.6.5合約程序字節碼的執行示例159
8.7BVM指令集160
8.8本章小結165
第9章錢包層166
9.1概述166
9.2錢包對象167
9.3密鑰管理167
9.3.1密鑰對生成169
9.3.2密鑰對生成算法170
9.3. 3密鑰加密存儲172
9.4賬戶管理174
9.4.1賬戶創建175
9.4.2賬戶地址176
9.4.3賬戶餘額178
9.5資產管理179
9.5.1初始默認資產179
9.5.2發行資產180
9.6交易管理182
9.6 .1篩選交易182
9.6.2篩選UTXO183
9.6.3UTXO花費選擇算法184
9.7錢包管理186
9.7.1數據更新186
9.7.2備份187
9.7.3恢復188
9.8本章小結188
0章P2P分佈式網絡189
10.1概述189
10.2P2P的四種網絡模型189
10.3網絡節點初始化191
10.3.1SyncManager初始化191
10.3.2P2PSwitch初始化194
10.4節點發現機制196
10.4.1種子節點196
10.4.2Kademlia算法197
10.4.3UPnP協議203
10.4.4RLPX網絡協議205
10.5節點發現代碼實現206
10.5.1節點發現初始化206
10.5.2路由表實現207
10.5.3Kademlia通信協議212
10.5.4鄰居節點發現實現212
10.6節點機219
10.7區塊同步223
10.7.1區塊同步流程223
10.7.2快速同步算法225
10.7 .3普通同步算法230
10.7.4區塊數據請求與發送231
10.8交易同步233
10.9快速廣播235
10.9.1新交易快速廣播236
10.9.2新區塊快速廣播238
10.10節點管理239
10.10.1TCP連接數管理240
10.10.2Outbound連接數管理240
10.10.3動態節點評分機制DynamicBanScore241
10.11本章小結245
1章數據存儲246
11.1概述246
11.2為什麼使用鍵值數據庫246
11.3LevelDB常用操作247
11.3.1增刪改查操作247
11.3.2迭代查詢248
11.3.3按前綴查詢249
11.3.4批量操作249
11.4存儲層緩存250
11.4.1緩存淘汰算法250
11.4.2比原鏈緩存實現252
11.5存儲層持久化254
11.5.1比原鏈數據庫254
11.5.2持久化存儲接口255
11.5.3持久化key數據前綴255
11.5.4持久化存儲區塊過程256
11.6Varint變長編碼257
11.7本章小結258
2章共識算法259
12.1概述259
12.2PoW和PoS259
12.3實現一個簡易PoW共識算法261
12.4比原鏈PoW共識算法266
12.4.1PoWhash值266
12.4.2難度動態調整267
12.4.3Tensority算法268
12.5本章小結278
3章礦池及挖礦流程279
13.1概述279
13.2與礦池相關的基本概念279
13.3礦池總架構280
13.4挖礦流程解析(礦池視角)282
13.5挖礦流程解析(礦機視角)283
13.6拒絕數與拒絕率286
13.7礦池的收益分配模式286
13.8交易打包至區塊287
13.8.1Coinbase交易獎勵288
13.8.2交易手續費Gas289
13.9礦池優化建議290
13.10本章小結291
4章展望292
14.1概述292
14.2跨鏈293
14.2.1打通鏈與鏈的連接293
14.2.2BTC、ETH與BTM的跨鏈資產交換293
14.3閃電網絡294
14.4子鏈295
14.5本章小結296