注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計GO語言公鏈開發(fā)實戰(zhàn)

GO語言公鏈開發(fā)實戰(zhàn)

GO語言公鏈開發(fā)實戰(zhàn)

定 價:¥89.00

作 者: 鄭東旭,楊明珠,潘盈瑜,翟萌 著
出版社: 機械工業(yè)出版社
叢編項: 區(qū)塊鏈技術叢書
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111629870 出版時間: 2019-07-01 包裝: 平裝
開本: 16開 頁數: 308 字數:  

內容簡介

  本書系統地介紹區(qū)塊鏈設計原理和開發(fā)技術,包含公鏈的整體架構和開發(fā)細節(jié),主要內容包括:第1章介紹公鏈設計架構;第2~4章介紹比原鏈的交互工具、核心進程bytomd,以及API Server實現原理和接口設計。第5章和第6章詳細介紹區(qū)塊鏈核心部分,包括區(qū)塊、區(qū)塊鏈、交易的核心數據結構,以及UTXO模型、隔離見證、交易腳本、驗證等技術概念的實現。第7章和第8章講解比原鏈智能合約以及智能合約在BVM虛擬機上運行的過程。第9章和第10章介紹區(qū)塊鏈錢包的設計與交易流程,包括密鑰、賬戶、資產管理、交易管理等,還詳解了區(qū)塊鏈P2P分布式網絡實現原理。第11~13章介紹數據存儲、共識算法,以及挖礦相關的概念和流程。第14章展望了區(qū)塊鏈技術未來的發(fā)展趨勢。

作者簡介

暫缺《GO語言公鏈開發(fā)實戰(zhàn)》作者簡介

圖書目錄

推薦序一
推薦序二
前言
第1章 公鏈設計架構 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.7 P2P分布式網絡 8
1.4 編譯部署及應用 9
1.5 本章小結 12
第2章 交互工具 13
2.1 概述 13
2.2 bytomcli交互工具 13
2.2.1 bytomcli命令flag參數 13
2.2.2 使用bytomcli查看節(jié)點狀態(tài)信息 15
2.2.3 bytomcli運行案例 16
2.3 dashboard交互工具 21
2.3.1 使用dashboard發(fā)送一筆交易 22
2.3.2 使用dashboard開啟挖礦模式 22
2.4 本章小結 24
第3章 守護進程的初始化與運行 25
3.1 概述 25
3.2 bytomd守護進程初始化流程及命令參數 25
3.3 bytomd守護進程的初始化實現 27
3.3.1 Node對象 28
3.3.2 配置初始化 29
3.3.3 創(chuàng)建文件鎖 32
3.3.4 初始化網絡類型 33
3.3.5 初始化數據庫(持久化存儲) 35
3.3.6 初始化交易池 35
3.5.7 創(chuàng)建一條本地區(qū)塊鏈 36
3.3.8 初始化本地錢包 37
3.3.9 初始化網絡同步管理 37
3.3.10 初始化Pprof性能分析工具 38
3.3.11 初始化CPU挖礦功能 38
3.4 bytomd守護進程的啟動方式和停止方式 39
3.5 本章小結 40
第4章 接口層 41
4.1 概述 41
4.2 實現一個簡易HTTP Server 41
4.3 API Server創(chuàng)建HTTP服務 42
4.3.1 創(chuàng)建API對象 42
4.3.2 創(chuàng)建路由項 43
4.3.3 實例化http.Server 44
4.3.4 啟動API Server 45
4.3.5 接收并響應請求 45
4.4 HTTP請求的完整生命周期 47
4.5 比原鏈API接口描述 48
4.6 API接口調用工具 50
4.6.1 使用curl命令行調用API接口 50
4.6.2 使用Postman調用API接口 50
4.7 比原鏈HTTP錯誤碼一覽 51
4.8 本章小結 52
第5章 內核層:區(qū)塊與區(qū)塊鏈 53
5.1 概述 53
5.2 區(qū)塊 53
5.2.1 區(qū)塊的數據結構 53
5.2.2 區(qū)塊頭的數據結構 54
5.2.3 區(qū)塊標識符 55
5.2.4 創(chuàng)世區(qū)塊 56
5.2.5 生成創(chuàng)世區(qū)塊 57
5.2.6 區(qū)塊驗證 58
5.2.7 計算下一個區(qū)塊的難度目標 60
5.2.8 孤塊管理 60
5.3 區(qū)塊鏈 63
5.3.1 區(qū)塊鏈的數據結構 63
5.3.2 區(qū)塊上鏈 64
5.3.3 區(qū)塊連接 65
5.3.4 鏈重組 66
5.3.5 主鏈的狀態(tài) 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.2 Coinbase交易核心數據結構 78
6.3.3 交易Action數據結構 81
6.3.4 MUX交易類型 85
6.4 BUTXO模型 86
6.4.1 BUTXO模型原理 87
6.4.2 MUX結構 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 估算交易手續(xù)費 108
6.9.2 計算交易手續(xù)費 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.3 UTXO模型和Account模型 117
7.3 合約層設計 118
7.4 智能合約語言 119
7.4.1 Equity語言 119
7.4.2 Equity合約組成 119
7.5 基于UTXO模型合約開發(fā)實戰(zhàn) 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.2 BVM介紹 134
8.2.1 虛擬機的棧 134
8.2.2 具有圖靈完備性的BVM 135
8.2.3 equity & vm代碼結構 135
8.3 virtualMachine對象 136
8.4 棧實現 137
8.5 BVM操作指令集 139
8.6 智能合約在BVM上的運行過程 141
8.6.1 智能合約數據結構 141
8.6.2 合約編譯流程與原理 142
8.6.3 合約程序字節(jié)碼示例 156
8.6.4 合約程序字節(jié)碼的執(zhí)行 157
8.6.5 合約程序字節(jié)碼的執(zhí)行示例 159
8.7 BVM指令集 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 賬戶創(chuàng)建 175
9.4.2 賬戶地址 176
9.4.3 賬戶余額 178
9.5 資產管理 179
9.5.1 初始默認資產 179
9.5.2 發(fā)行資產 180
9.6 交易管理 182
9.6.1 篩選交易 182
9.6.2 篩選UTXO 183
9.6.3 UTXO花費選擇算法 184
9.7 錢包管理 186
9.7.1 數據更新 186
9.7.2 備份 187
9.7.3 恢復 188
9.8 本章小結 188
第10章 P2P分布式網絡 189
10.1 概述 189
10.2 P2P的四種網絡模型 189
10.3 網絡節(jié)點初始化 191
10.3.1 SyncManager初始化 191
10.3.2 P2P Switch初始化 194
10.4 節(jié)點發(fā)現機制 196
10.4.1 種子節(jié)點 196
10.4.2 Kademlia算法 197
10.4.3 UPnP協議 203
10.4.4 RLPX網絡協議 205
10.5 節(jié)點發(fā)現代碼實現 206
10.5.1 節(jié)點發(fā)現初始化 206
10.5.2 路由表實現 207
10.5.3 Kademlia通信協議 212
10.5.4 鄰居節(jié)點發(fā)現實現 212
10.6 節(jié)點狀態(tài)機 219
10.7 區(qū)塊同步 223
10.7.1 區(qū)塊同步流程 223
10.7.2 快速同步算法 225
10.7.3 普通同步算法 230
10.7.4 區(qū)塊數據請求與發(fā)送 231
10.8 交易同步 233
10.9 快速廣播 235
10.9.1 新交易快速廣播 236
10.9.2 新區(qū)塊快速廣播 238
10.10 節(jié)點管理 239
10.10.1 TCP連接數管理 240
10.10.2 Outbound連接數管理 240
10.10.3 動態(tài)節(jié)點評分機制DynamicBanScore 241
10.11 本章小結 245
第11章 數據存儲 246
11.1 概述 246
11.2 為什么使用鍵值數據庫 246
11.3 LevelDB常用操作 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 持久化存儲區(qū)塊過程 256
11.6 Varint變長編碼 257
11.7 本章小結 258
第12章 共識算法 259
12.1 概述 259
12.2 PoW和PoS 259
12.3 實現一個簡易PoW共識算法 261
12.4 比原鏈PoW共識算法 266
12.4.1 PoW hash值 266
12.4.2 難度動態(tài)調整 267
12.4.3 Tensority算法 268
12.5 本章小結 278
第13章 礦池及挖礦流程 279
13.1 概述 279
13.2 與礦池相關的基本概念 279
13.3 礦池總架構 280
13.4 挖礦流程解析(礦池視角) 282
13.5 挖礦流程解析(礦機視角) 283
13.6 拒絕數與拒絕率 286
13.7 礦池的收益分配模式 286
13.8 交易打包至區(qū)塊 287
13.8.1 Coinbase交易獎勵 288
13.8.2 交易手續(xù)費Gas 289
13.9 礦池優(yōu)化建議 290
13.10 本章小結 291
第14章 展望 292
14.1 概述 292
14.2 跨鏈 293
14.2.1 打通鏈與鏈的連接 293
14.2.2 BTC、ETH與BTM的跨鏈資產交換 293
14.3 閃電網絡 294
14.4 子鏈 295
14.5 本章小結 296

本目錄推薦

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