區塊鏈原理、設計與應用 区块链原理、设计与应用
楊保華, 陳昌
- 出版商: 人民郵電
- 出版日期: 2017-08-01
- 定價: $534
- 售價: 8.5 折 $454
- 語言: 簡體中文
- 頁數: 354
- 裝訂: 平裝
- ISBN: 7111577825
- ISBN-13: 9787111577829
-
相關分類:
區塊鏈 Blockchain
立即出貨 (庫存=1)
買這商品的人也買了...
-
$250鳳凰計畫:一個 IT計畫的傳奇故事 (The Phoenix Project : A Novel about IT, DevOps, and Helping your business win)(沙盤特別版)
-
$352區塊鏈技術指南
-
$834$792 -
$403深度學習原理與TensorFlow實踐
-
$590$460 -
$301區塊鏈開發指南
-
$265Web API 的設計與開發 (Web API : the Good Parts)
-
$403$379 -
$301Node.js 區塊鏈開發
-
$958深度學習
-
$580$458 -
$500$390 -
$380$323 -
$221TensorFlow機器學習項目實戰 (Building Machine Learning Projects with TensorFlow)
-
$380$300 -
$350$315 -
$403深度探索區塊鏈:Hyperledger技術與應用
-
$207區塊鏈技術進階與實戰
-
$354$336 -
$403深入理解 TensorFlow 架構設計與實現原理
-
$354$336 -
$352區塊鏈開發實戰:以太坊關鍵技術與案例分析
-
$403區塊鏈開發實戰:Hyperledger Fabric 關鍵技術與案例分析
-
$301區塊鏈 2.0 以太坊應用開發指南
-
$480$408
相關主題
商品描述
本書由超級賬本核心設計和開發者撰寫,是區塊鏈開發落地專業指南。由淺入深、系統化介紹超級賬本Fabric設計精華、應用開發等。全書分為理論篇和實踐篇兩大部分;第1~3章介紹區塊鏈技術的由來、核心思想及典型的應用場景;第4~5章重點介紹區塊鏈技術中大量出現的分佈式系統技術和密碼學安全技術;第6~8章介紹區塊鏈領域的三個典型開源項目:比特幣、以太坊以及超級賬本;第9-11章以超級賬本Fabric項目為例,具體講解了安裝部署、配置管理,以及使用 Fabric CA 進行證書管理的實踐經驗;第12章重點剖析超級賬本Fabric項目的核心架構設計;第13章介紹區塊鏈應用開發的相關技巧和示例;第14章介紹區塊鏈服務平臺的設計與開發,並講解應用超級賬本Cello項目構建服務平臺的相關知識。本書覆蓋了區塊鏈和分佈式賬本領域的*新技術,可幫助讀者深入理解區塊鏈核心原理和典型設計實現,以及高效地開發基於區塊鏈平臺的分佈式應用。
作者簡介
楊保華:博士,畢業於清華大學。超級賬本(Hyperledger)大中華區技術工作組主席,IBM大中華區Blockchain技術社區首席顧問,資深研究員。曾主持多個大規模系統平台的架構設計和研發實施,是區塊鏈、雲計算、大數據等技術的早期研究者和實踐者。他熱愛開源技術,曾貢獻OpenStack、OpenDaylight等開源項目,是超級賬本Fabric項目核心設計和開發者,也是Cello和Fabric-SDK-Py項目的發起人。
陳昌:畢業於清華大學。紙貴科技CTO,曾任IBM高級研究員。技術方向包括雲計算、區塊鏈、機器學習等。他是區塊鏈技術的早期研究和推動者,是超級賬本(Hyperledger)項目核心開發者。他有豐富的區塊鏈應用實踐經驗,曾負責金融行業區塊鏈解決方案的架構設計和實施,並主導開發了若干區塊鏈服務平台。
目錄大綱
序言
前言
理論篇
第1章區塊鏈思想的誕生2
1.1從實體貨幣到數字貨幣2
1.2站在巨人的肩膀上5
1.3了不起的社會學實驗5
1.4潛在的商業價值7
1.5本章小結8
第2章核心技術概覽9
2.1定義與原理9
2.2技術的演化與分類11
2.3關鍵問題和挑戰13
2.4趨勢與展望17
2.5認識上的誤區19
2.6本章小結19
第3章典型應用場景20
3.1應用場景概覽20
3.2金融服務22
3.2.1銀行業金融管理22
3.2.2證券交易24
3.2.3眾籌投資25
3.3徵信和權屬管理26
3.4資源共享28
3.5貿易管理29
3.6物聯網30
3.7其他場景31
3.8本章小結33
第4章分佈式系統核心問題34
4.1一致性問題34
4.1.1定義與重要性34
4.1.2問題與挑戰35
4.1.3一致性要求36
4.1.4帶約束的一致性36
4.2共識算法37
4.2.1問題與挑戰38
4.2.2常見算法38
4.2.3理論界限38
4.3 FLP不可能原理39
4.3.1定義39
4.3.2正確理解39
4.4 CAP原理40
4.4.1定義40
4.4.2應用場景41
4.5 ACID原則41
4.6 Paxos算法與Raft算法42
4.6.1 Paxos算法42
4.6.2 Raft算法45
4.7拜占庭問題與算法45
4.8可靠性指標48
4.8.1幾個9的指標48
4.8.2兩個核心時間49
4.8.3提高可靠性49
4.9本章小結49
第5章密碼學與安全技術50
5.1 Hash算法與數字摘要50
5.1 .1 Hash定義50
5.1.2常見算法51
5.1.3性能51
5.1.4數字摘要52
5.1.5 Hash攻擊與防護52
5.2加解密算法52
5.2.1加解密系統基本組成53
5.2.2對稱加密算法53
5.2.3非對稱加密算法54
5.2.4選擇明文攻擊55
5.2.5混合加密機制56
5.2.6離散對數與Diffie–Hellman密鑰交換協議57
5.3消息認證碼與數字簽名57
5.3.1消息認證碼58
5.3.2數字簽名58
5.3.3安全性59
5.4數字證書59
5.4.1 X.509證書規範60
5.4.2證書格式61
5.4.3證書信任鏈62
5.5 PKI體系63
5.5.1 PKI基本組件63
5.5.2證書的簽發63
5.5.3證書的撤銷66
5.6 Merkle樹結構66
5.7布隆過濾器67
5.8同態加密68
5.9其他問題70
5.10本章小結71
第6章比特幣——區塊鏈思想誕生的搖籃72
6.1比特幣項目簡介72
6.1.1比特幣大事記73
6.1.2其他數字貨幣74
6.2原理和設計75
6.2.1基本交易過程75
6.2.2重要概念76
6.2 .3創新設計78
6.3挖礦80
6.3.1基本原理80
6.3.2挖礦過程81
6.3.3如何看待挖礦81
6.4共識機制82
6.4.1工作量證明82
6.4.2權益證明83
6.5閃電網絡83
6.6側鏈85
6.6.1 SPV證明85
6.6.2雙向掛鉤86
6.6.3最新進展87
6.7熱點問題87
6.7.1設計中的權衡87
6.7.2分叉87
6.7.3交易延展性88
6.7.4擴容之爭89
6.7.5比特幣的監管和追踪90
6.8相關工具91
6.9本章小結92
第7章以太坊——掙脫數字貨幣的枷鎖93
7.1以太坊項目簡介93
7.1.1以太坊項目簡史94
7.1.2主要特點95
7.2核心概念95
7.3主要設計97
7.3.1智能合約相關設計97
7.3.2交易模型97
7.3.3共識97
7.3.4降低攻擊98
7.3.5提高擴展性98
7.4相關工具98
7.4.1客戶端和開發庫98
7.4.2以太坊錢包99
7.4.3 IDE 100
7.4.4網站資源100
7.5安裝客戶端100
7.5.1從PPA直接安裝100
7.5.2從源碼編譯101
7.6使用智能合約102
7.6.1搭建測試用區塊鏈102
7.6.2創建和編譯智能合約104
7.6.3部署智能合約105
7.6.4調用智能合約106
7.7智能合約案例:投票106
7.7.1智能合約代碼107
7.7.2代碼解析109
7.8本章小結111
第8章超級賬本——面向企業的分佈式賬本112
8.1超級賬本項目簡介112
8.2社區組織結構114
8.2.1基本結構114
8.2.2大中華區技術工作組114
8.3項目介紹115
8.3.1 Fabric項目116
8.3.2 Sawtooth項目117
8.3.3 Iroha項目117
8.3.4 Blockchain Explorer項目117
8.3.5 Cello項目118
8.3.6 Indy項目118
8.3.7 Composer項目118
8.3.8 Burrow項目119
8.4開發必備工具119
8.4.1 Linux Foundation ID 119
8.4.2 Jira——任務和進度管理119
8.4.3 Gerrit——代碼倉庫和Review管理120
8.4.4 RocketChat——在線溝通121
8.5貢獻代碼121
8.6本章小結126
實踐篇
第9章超級賬本Fabric部署和使用128
9.1簡介128
9.2本地編譯安裝129
9.2.1操作系統130
9.2.2環境配置130
9.2.3獲取代碼131
9.2.4編譯安裝fabric-peer組件131
9.2.5編譯安裝fabric-orderer組件132
9.2.6編譯安裝fabric-ca組件133
9.2.7編譯安裝輔助工具133
9.2.8獲取chaintool 133
9.2.9安裝Go語言相關工具134
9.2.10示例配置134
9.3使用Docker鏡像134
9.3.1安裝Docker服務134
9.3.2安裝docker-compose 135
9.3.3獲取Docker鏡像135
9.3.4鏡像Dockerfile 138
9.4啟動Fabric網絡143
9.4.1網絡拓撲143
9.4.2準備相關配置文件144
9.4.3啟動Orderer節點150
9.4.4啟動Peer節點151
9.4.5操作網絡152
9.4.6基於容器方式156
9.5鏈碼的概念與使用157
9.5.1鏈碼操作命令158
9.5.2命令參數158
9.5.3安裝鏈碼159
9.5.4實例化鏈碼162
9.5.5調用鏈碼165
9.5.6查詢鏈碼167
9.5.7升級鏈碼168
9.5.8打包鏈碼和簽名169
9.6使用多通道170
9.6.1通道操作命令170
9.6.2命令選項171
9.6.3創建通道172
9.6.4加入通道174
9.6 .5列出所加入的通道175
9.6.6獲取某區塊176
9.6.7更新通道配置177
9.7 SDK支持178
9.8生產環境注意事項179
9.9本章小結181
第10章超級賬本Fabric配置管理182
10.1簡介182
10.1.1配置文件182
10.1.2配置管理工具183
10.2 Peer配置剖析183
10.2.1 logging部分184
10.2.2 peer部分184
10.2.3 vm部分188
10.2.4 chaincode部分189
10.2.5 ledger部分190
10.3 Orderer配置剖析191
10.4 cryptogen生成組織身份配置194
10.4.1配置文件195
10.4.2子命令和參數196
10.4.3生成密鑰和證書文件196
10.4.4查看配置模板信息198
10.5 configtxgen生成通道配置199
10.5.1 configtx.yaml配置文件199
10.5.2命令選項203
10.5.3生成Orderer初始區塊並進行查看203
10.5.4生成新建通道交易文件並進行查看211
10.5.5生成錨節點更新交易文件215
10.6 configtxlator轉換配置215
10.6.1 RESTful接口215
10.6.2解碼為Json格式216
10.6.3編碼為二進制格式217
10.6.4計算配置更新量217
10.6.5更新通道配置218
10.7本章小結219
第11章超級賬本Fabric CA應用與配置220
11.1簡介220
11.2安裝服務端和客戶端221
11.2.1本地編譯221
11.2.2獲取和使用Docker鏡像223
11.2.3示例Dockerfile 223
11.3啟動CA服務225
11.4服務端命令剖析228
11.4.1全局命令參數228
11.4.2 init命令230
11.4.3 start命令230
11.5服務端配置文件解析231
11.6與服務端進行交互235
11.7客戶端命令剖析237
11.7.1全局命令參數237
11.7.2 enroll命令239
11.7.3 getcacert命令240
11.7.4 reenroll命令241
11.7.5 register命令241
11.7.6 revoke命令242
11.8客戶端配置文件解析243
11.9生產環境部署245
11.10本章小結247
第12章超級賬本Fabric架構與設計248
12.1整體架構概覽248
12.1.1核心特性248
12.1.2整體架構249
12.1.3典型工作流程249
12.2核心概念與組件251
12.2.1網絡層相關組件252
12.2.2共識相關組件254
12.2.3權限管理相關組件255
12.2.4業務層相關組件257
12.3 gRPC消息協議262
12.3.1 Envelope消息結構262
12.3.2客戶端訪問Peer節點263
12.3.3客戶端、Peer節點訪問Orderer 265
12.3.4鏈碼容器和Peer節點之間的操作265
12.3.5多個節點之間的操作266
12.4權限管理和策略267
12.4.1策略應用場景267
12.4.2身份證書268
12.4.3權限策略的實現268
12.4.4通道策略272
12.4.5背書策略273
12.4.6實例化策略273
12.5用戶鏈碼274
12.5.1基本結構274
12.5.2鏈碼與Peer的交互過程275
12.5.3鏈碼處理狀態機277
12.6系統鏈碼279
12.7排序服務281
12.7.1 gRPC服務接口282
12.7.2鍊和賬本管理283
12.7.3通道配置更新284
12.7.4共識插件286
12.8本章小結288
第13章區塊鏈應用開發290
13.1簡介290
13.2鏈碼的原理、接口與結構292
13.2.1 Chaincode接口292
13.2.2鏈碼結構293
13.2.3鏈碼基本工作原理294
13.3鏈碼開發API 295
13.3.1賬本狀態交互API 296
13.3.2交易信息相關API 296
13.3.3參數讀取API 297
13.3.4其他API 297
13.4應用開發案例一:轉賬298
13.4.1鏈碼結構298
13.4.2 Init方法299
13.4.3 Invoke方法300
13.5應用開發案例二:資產權屬管理301
13.5.1鏈碼結構301
13.5.2 Invoke方法303
13.6應用開發案例三:調用其他鏈碼312
13.7應用開發案例四:發送事件313
13.8開發最佳實踐小結314
13.9本章小結316
第14章區塊鏈服務平台設計317
14.1簡介317
14.1.1參考架構318
14.1.2考量指標318
14.2 IBM Bluemix雲區塊鏈服務319
14.3微軟Azure雲區塊鏈服務321
14.4使用超級賬本Cello搭建區塊鏈服務324
14.4.1基本架構和特性324
14.4.2環境準備325
14.4.3下載Cello源碼325
14.4.4配置Worker節點325
14.4.5配置Master節點326
14.4.6使用Cello管理區塊鏈327
14.4 .7基於Cello進行功能擴展330
14.5本章小結330
附錄
附錄A術語表334
附錄B常見問題解答338
附錄C Golang開發相關342
附錄D ProtoBuf與gRPC 349
附錄E參考資源353