本書從實戰(zhàn)的角度對區(qū)塊鏈技術進行了全面的介紹和剖析,非常適合區(qū)塊鏈開發(fā)人員由淺入深地學習區(qū)塊鏈技術。全書共分為4個部分:第一部分對區(qū)塊鏈進行全景分析,介紹其概念、歷史、技術流派、主要公司和典型應用場景;第二部分對知名開源區(qū)塊鏈平臺以太坊和HyperLedger進行詳細解讀;第三部分對企業(yè)級區(qū)塊鏈平臺的核心技術進行分析;第四部分介紹了6個區(qū)塊鏈實際應用項目案例。第2版對調研數(shù)據(jù)、 平臺介紹、開發(fā)實踐和項目案例進行了全面補充和更新。
本書適用于對區(qū)塊鏈技術感興趣的程序員、架構師和高校學生,非常適合作為高校教材和培訓資料。
區(qū)塊鏈暢銷書全新升級,第2版對調研數(shù)據(jù)、平臺介紹、開發(fā)實踐和項目案例進行了全面補充和更新。
* 浙江大學和趣鏈科技研發(fā)團隊聯(lián)合出品
* 中國工程院院士陳純等業(yè)內專家大力推薦
* 全面講解區(qū)塊鏈核心原理和應用技術
* 詳細解讀區(qū)塊鏈平臺以太坊和HyperLedger
* 注重實戰(zhàn),全書包含6個完整實際項目案例
* 配有開發(fā)者平臺,邊學邊做,快速上手
* 浙江省普通高校“十三五”新形態(tài)教材
* 來自一線開發(fā)者和研究者的經驗。作者團隊為國內區(qū)塊鏈技術**研究者和一線開發(fā)者,在區(qū)塊鏈行業(yè)具有很高的知名度和豐富的項目實戰(zhàn)經驗,并且依托高層次科研平臺積累了大量的區(qū)塊鏈科研和產業(yè)項目的經驗,在本書中向讀者介紹了更新更實用的區(qū)塊鏈技術內容。
* 真實區(qū)塊鏈案例,注重實戰(zhàn)。書中6個實戰(zhàn)案例都是基于區(qū)塊鏈實際落地項目撰寫。作者團隊在國內多家銀行和金融機構都實施了多個區(qū)塊鏈項目,合作機構包括谷歌、上海證券交易所、中國銀聯(lián)、農業(yè)銀行、光大銀行和浙商銀行等,本書的案例具有顯著的實戰(zhàn)特點和真實參考價值,可以指導技術人員快速上手做出實際可用的區(qū)塊鏈應用項目。
蔡亮,博士生導師,浙江大學軟件學院副院長,浙江大學區(qū)塊鏈研究中心常務副主任,浙江省區(qū)塊鏈技術研究院院長,同時兼任中國計算機學會區(qū)塊鏈專業(yè)委員會副主任。主要研究方向為區(qū)塊鏈、云計算、金融科技及信息安全。帶領團隊研發(fā)的國產自主可控聯(lián)盟區(qū)塊鏈平臺在金融領域區(qū)塊鏈技術測評中名列第一,是國內第一批通過工信部電子標準院與信通院區(qū)塊鏈標準測試并符合國家戰(zhàn)略安全規(guī)劃的區(qū)塊鏈核心技術平臺。
李啟雷,碩士生導師,浙江大學區(qū)塊鏈研究中心主任助理,CCF區(qū)塊鏈專委會委員。主持研發(fā)了國產自主可控的聯(lián)盟區(qū)塊鏈Hyperchain系統(tǒng),參與多項國家重點研發(fā)項目,在核心期刊發(fā)表學術論文20余篇,獲得國家發(fā)明專利10余項,入選寧波市領軍和拔尖人才培養(yǎng)工程。
梁秀波,碩士生導師,浙江大學區(qū)塊鏈研究中心主任助理,CCF區(qū)塊鏈專委會委員,全國金融標準化技術委員會銀行間市場技術標準工作組專家。長期從事區(qū)塊鏈、智能信息處理、金融信息技術、移動互聯(lián)網等方面的研究和開發(fā)工作,曾赴法國進行為期一年的訪問研究。主持或參與國家重點研發(fā)計劃、國家科技支撐計劃、863計劃、國家自然科學基金、浙江省公益技術應用研究等***和省部級科研項目十余項,主持企事業(yè)單位委托項目二十余項。已發(fā)表SCI/EI檢索論文十余篇,已申請區(qū)塊鏈領域的發(fā)明專利數(shù)十項。
第一部分 區(qū)塊鏈基礎
第1章 區(qū)塊鏈基礎入門 2
1.1 區(qū)塊鏈基礎知識 2
1.1.1 從比特幣到區(qū)塊鏈 2
1.1.2 區(qū)塊鏈定義 3
1.1.3 區(qū)塊鏈相關概念 4
1.1.4 區(qū)塊鏈分類 6
1.2 區(qū)塊鏈發(fā)展歷程 8
1.2.1 技術起源 8
1.2.2 區(qū)塊鏈1.0:“數(shù)字貨幣” 9
1.2.3 區(qū)塊鏈2.0:智能合約 9
1.2.4 區(qū)塊鏈3.0:超越“貨幣”、經濟和市場 10
1.3 區(qū)塊鏈關鍵技術 10
1.3.1 基礎模型 10
1.3.2 數(shù)據(jù)層 11
1.3.3 網絡層 16
1.3.4 共識層 17
1.3.5 激勵層 20
1.3.6 合約層 21
1.4 區(qū)塊鏈產業(yè)現(xiàn)狀 22
1.4.1 區(qū)塊鏈發(fā)展態(tài)勢 22
1.4.2 區(qū)塊鏈政府規(guī)劃 23
1.4.3 區(qū)塊鏈生態(tài)圖譜 26
1.5 區(qū)塊鏈應用場景 27
1.5.1 數(shù)字票據(jù) 27
1.5.2 供應鏈金融 28
1.5.3 應收賬款 28
1.5.4 數(shù)據(jù)交易 29
1.5.5 債券交易 29
1.5.6 大宗交易 29
1.5.7 跨境支付 29
1.5.8 其他場景 30
1.6 區(qū)塊鏈主流平臺 31
1.7 小結 33
第二部分 開源區(qū)塊鏈平臺
第2章 以太坊深入解讀 36
2.1 以太坊基礎入門 36
2.1.1 以太坊發(fā)展歷史 36
2.1.2 以太坊基本概念 37
2.1.3 以太坊客戶端 39
2.1.4 以太坊賬戶管理 42
2.1.5 以太坊網絡 44
2.2 以太坊核心原理 44
2.2.1 以太坊共識機制 46
2.2.2 以太坊虛擬機 48
2.2.3 以太坊數(shù)據(jù)存儲 50
2.2.4 以太坊加密算法 52
2.3 以太坊智能合約 53
2.3.1 智能合約與Solidity簡介 53
2.3.2 智能合約的編寫與部署 55
2.3.3 智能合約測試與執(zhí)行 66
2.3.4 智能合約實例分析 72
2.4 以太坊歷史、問題與未來發(fā)展 75
2.4.1 歷史事件 75
2.4.2 以太坊現(xiàn)存問題 76
2.4.3 以太坊2.0 78
2.5 小結 79
第3章 以太坊應用開發(fā)基礎 80
3.1 以太坊開發(fā)環(huán)境搭建 80
3.1.1 配置以太坊環(huán)境 80
3.1.2 搭建以太坊私有鏈 82
3.2 以太坊Remix IDE 86
3.2.1 編譯智能合約 86
3.2.2 獲得字節(jié)碼和ABI文件 88
3.2.3 合約方法測試 90
3.3 以太坊編程接口 91
3.3.1 JSON RPC 91
3.3.2 JavaScript API 95
3.4 DApp開發(fā)框架與流程 98
3.4.1 Meteor 98
3.4.2 Truffle 101
3.4.3 分層可擴展開發(fā)流程 105
3.5 第一個以太坊應用 107
3.5.1 優(yōu)化MetaCoin應用 107
3.5.2 MetaCoin代碼詳解 109
3.5.3 MetaCoin應用運行 114
3.6 部署至以太坊公有鏈(Mainnet) 116
3.6.1 Infura 116
3.6.2 項目配置 118
3.6.3 部署MetaCoin 119
3.7 小結 119
第4章 Hyperledger Fabric深入解讀 120
4.1 項目介紹 120
4.1.1 項目背景 120
4.1.2 項目簡介 121
4.2 Fabric簡介 123
4.3 核心概念 124
4.4 架構詳解 128
4.4.1 架構解讀 128
4.4.2 成員服務 130
4.4.3 區(qū)塊鏈服務 134
4.4.4 合約代碼服務 138
4.5 合約代碼分析 139
4.5.1 合約代碼概述 139
4.5.2 合約代碼結構 139
4.5.3 CLI命令行調用 142
4.5.4 合約代碼執(zhí)行泳道圖 143
4.6 交易流程 144
4.6.1 通用流程 144
4.6.2 流程詳解 146
4.6.3 背書策略 149
4.6.4 驗證賬本和PeerLedger
檢查點 150
4.7 小結 151
第5章 Hyperledger Fabric應用開發(fā)
基礎 152
5.1 環(huán)境部署 152
5.1.1 軟件下載與安裝 152
5.1.2 開發(fā)環(huán)境搭建 154
5.1.3 Go和Docker 156
5.2 合約代碼開發(fā)指南 159
5.2.1 接口介紹 159
5.2.2 案例分析 160
5.2.3 私有數(shù)據(jù)的相關介紹 163
5.3 CLI應用實例 165
5.3.1 準備工作 165
5.3.2 編寫代碼 167
5.3.3 啟動網絡與合約代碼調用 172
5.3.4 手動開啟網絡 173
5.4 SDK應用實例 175
5.4.1 SDK介紹 176
5.4.2 SDK應用開發(fā) 177
5.5 小結 182
第三部分 企業(yè)級區(qū)塊鏈平臺 Hyperchain
第6章 企業(yè)級區(qū)塊鏈平臺核心原理
剖析 184
6.1 Hyperchain整體架構 184
6.2 基礎組件 187
6.2.1 共識算法 187
6.2.2 網絡通信 193
6.2.3 智能合約 194
6.2.4 賬本數(shù)據(jù)存儲機制 198
6.3 拓展組件 205
6.3.1 隱私保護 205
6.3.2 加密機制 207
6.3.3 成員管理 210
6.3.4 區(qū)塊鏈治理 213
6.3.5 消息訂閱 214
6.3.6 數(shù)據(jù)管理 216
6.3.7 基于硬件加速的驗簽 219
6.4 小結 220
第7章 Hyperchain應用開發(fā)基礎 222
7.1 平臺功能 222
7.1.1 平臺交互 222
7.1.2 交易調用 223
7.1.3 合約管理 227
7.1.4 區(qū)塊查詢 230
7.2 平臺部署 233
7.2.1 Hyperchain配置 234
7.2.2 Hyperchain部署 234
7.2.3 Hyperchain運行 236
7.3 第一個Hyperchain應用 237
7.3.1 編寫智能合約 237
7.3.2 部署與合約調用 238
7.4 小結 239
第四部分 區(qū)塊鏈應用案例
第8章 以太坊應用實戰(zhàn)案例詳解 242
8.1 基于以太坊的通用積分系統(tǒng)案例
分析 242
8.1.1 項目簡介 242
8.1.2 系統(tǒng)功能分析 243
8.1.3 系統(tǒng)總體設計 244
8.1.4 智能合約設計 246
8.1.5 系統(tǒng)實現(xiàn) 253
8.1.6 系統(tǒng)部署 262
8.2 基于以太坊的電子優(yōu)惠券系統(tǒng)案例
分析 265
8.2.1 項目簡介 265
8.2.2 系統(tǒng)功能分析 266
8.2.3 系統(tǒng)總體設計 267
8.2.4 智能合約設計 269
8.2.5 系統(tǒng)實現(xiàn)與部署 276
8.3 小結 279
第9章 Hyperledger Fabric應用實戰(zhàn)
案例詳解 280
9.1 基于Fabric的社會文物管理平臺
案例分析 280
9.1.1 項目背景分析 280
9.1.2 系統(tǒng)功能分析 281
9.1.3 系統(tǒng)總體設計 282
9.1.4 智能合約總體設計 284
9.1.5 核心功能合約設計 284
9.1.6 工具合約設計 287
9.1.7 部署實現(xiàn) 288
9.2 基于Fabric的高端食品安全系統(tǒng)
案例分析 289
9.2.1 背景分析 290
9.2.2 方案提出 290
9.2.3 系統(tǒng)功能分析 291
9.2.4 系統(tǒng)總體設計 292
9.2.5 API設計 294
9.2.6 智能合約設計 294
9.2.7 利用Node.js SDK 308
9.2.8 部署實現(xiàn) 310
9.3 小結 317
第10章 企業(yè)級區(qū)塊鏈應用實戰(zhàn)案例
詳解 318
10.1 基于Hyperchain的應收賬款管理
系統(tǒng)案例分析 318
10.1.1 項目簡介 318
10.1.2 系統(tǒng)功能分析 320
10.1.3 系統(tǒng)總體設計 321
10.1.4 智能合約設計 325
10.1.5 系統(tǒng)安全設計 328
10.2 基于Hyperchain的出行打車平臺
案例分析 329
10.2.1 項目簡介 329
10.2.2 系統(tǒng)功能分析 330
10.2.3 系統(tǒng)總體設計 333
10.2.4 智能合約設計 335
10.2.5 系統(tǒng)實現(xiàn)與部署 350
10.3 小結 352