-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Hyperledger Fabric核心技術

( 簡體 字)
作者:陳樹寶,鄭少華,佟艷娟類別:1. -> 程式設計 -> 區塊鏈
譯者:
出版社:電子工業出版社Hyperledger Fabric核心技術 3dWoo書號: 51344
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:6/1/2019
頁數:348
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121366871
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序
眾所周知,區塊鏈技術的核心是一種去中心化的對等網絡協議。基于此核心思想,位于世界上任何地方的兩個陌生人,可以在不依賴第三方中介機構背書的情況下進行點對點的交易,所有的對等節點共同維護一套賬本以保障數據的完整性和正確性,理論上可以抵御不高于51%的作惡節點的篡改行為。比特幣就是經典的區塊鏈應用案例,其市值高峰達到了420億美元。
通常來說,通過挖礦獲得獎勵的類比特幣區塊鏈技術為第一代區塊鏈技術。第二代區塊鏈技術以以太坊為代表,任何人和機構都可以基于以太坊智能合約發布自己的代幣,因此第二代技術也稱為可編程的區塊鏈技術。這也造成了從2016年開始,很多ICO項目應運而生,出現了一系列金融亂象。
隨著R3、IBM、微軟、亞馬遜、BATJ等科技巨頭的加入,區塊鏈技術才逐漸脫虛向實,服務于實體經濟,實現產業化改造和升級。其中,具有代表性的框架為Linux基金會和IBM推出的Hyperledger,也稱為超級賬本。截至目前,Hyperledger已經擁有十幾個子項目,涉及代碼約360萬行,200多家企業成員入駐。
Hyperledger著名的項目為Fabric,目前Fabric框架參與開發人員達150人之多。Fabric提供了一個無幣的聯盟鏈開源基礎設施。基于Fabric CA身份認證技術,我們可以很方便地實現聯盟成員準入控制;基于Fabric多通道技術,我們可以很方便地實現業務數據隔離和訪問控制;基于Fabric交易背書機制,我們可以實現在保證交易安全的前提下高效驗證和打包;基于Fabric智能合約技術,我們可以很方便地將現實世界的人、物、行為、權益等信息資產數字化,實現可信身份認證、數據確權、數據流轉、數據審計,從而實現信息時代到數字時代的重大轉變。
區塊鏈是一種通過技術手段改變信任關系的紐帶,是一種身份互認、行為互信、信任共建的思想,是一種實現數據共享、業務共生、生態共建的思想。通過區塊鏈技術,我們可以很方便地將現實世界中不可信或不易協調的場景邏輯遷移到鏈內,由智能合約自動執行,這樣就可以真正地實現點對點信任,從而真正消除中間商。
區塊鏈典型的應用場景就是供應鏈金融場景,供應鏈金融是指將供應鏈上的核心企業及其相關的上下游企業看作一個整體,以核心企業為依托,以真實貿易為前提,運用自償性貿易融資方式,對供應鏈上下游企業提供綜合性金融產品和服務。我們可以通過區塊鏈技術,將銀行等金融機構、核心企業、上下游企業組建一個聯盟鏈,參與方通過區塊鏈節點簽名、共享數據,并得到多方共識,保障數據不可篡改。通過以上方法可以很方便地對供應鏈企業進行信用評估和風險控制,減少欺詐行為,從而降低整個供應鏈的融資成本,使大部分中小企業能夠享受到融資便利,提高企業的生產效率。
北京鏈圈科技致力區塊鏈核心技術和原理的研究,目前已經搭建了自主可控的產業化BaaS平臺,后續將會深耕溯源、供應鏈金融場景,實現全過程溯源、全鏈金融的產業化發展戰略。
李鍇
北京鏈圈科技CEO
前 言
近幾年,隨著區塊鏈技術的興起和蓬勃發展,以及其廣闊的應用前景,從企業到學校,越來越多的人對其產生濃厚的興趣并投入區塊鏈技術的學習和研究中。從比特幣到以太坊,再到現在應用廣泛的超級賬本(Hyperledger Fabric),區塊鏈技術也在飛速更新中。
在這些開源的區塊鏈項目(比特幣、以太坊、超級賬本等)中,比特幣是筆者最早開始研究的。當時就想撰寫比特幣方面的書籍,但在這些零亂的工作中,很難有足夠的時間去完成,后來想撰寫時市面上已經出現了很多成熟的作品,當然也包括以太坊。但超級賬本幾乎沒有,而且Hyperledger Fabric 1.0版本在部署時很容易遇到問題,熟讀源碼理解整個構架是一個比較困難的過程,因此本書自1.0版本開始著手撰寫,現在已經更新到2.0版本。整個過程經歷了無數次的修改、整理、重構,盡量做到邏輯嚴謹、結構清晰,力求為讀者提供更好的讀書體驗和更有價值的參考。Fabric項目的源碼仍然是比較巨大的,除了需要從宏觀上整體把控外,還需要在細節上深入概述,以便讀者多角度研讀。
對區塊鏈的初學者來說,在無人指導的情況下直接進入代碼學習確實有一定的難度,很難快速地掌握整體架構及其主要實現原理,本書的作者都是區塊鏈一線研發及應用人員,本書也是作者長時間學習和研究過程中的經驗總結,希望為那些想學習超級賬本的讀者提供一些提示和引導,使讀者能夠快速掌握其精髓。
作為Fabric項目開發過程的見證者,筆者時刻關注Fabric項目的變化,查看每一位貢獻者的代碼,查看源碼守護者的評論,這已經成為一種常態。很多人上網是瀏覽新聞、聽歌、看電影,但筆者喜歡看Commit的Subject。看得多了,自然而然也就會了解更多。
在撰寫本書時筆者也遇到了很多困難,要寫哪些內容,如何進行布局,如何將專業知識講解得更加通俗易懂,因此進行了多種嘗試和修改,同時在比較難理解的地方增加了備注和實例,以幫助讀者理解和接受。不斷修改的過程對筆者來說也是一個知識不斷重塑的過程。本書幾乎涵蓋了底層技術中的所有相關內容,所以整體框架變得更加清晰。
本書不僅講解了Fabric中的核心技術,包括Chaincode、MSP、加密算法、賬本管理、orderer、peer、Gossip、gRPC,還詳細講述了Hyperledger Fabric開發環境的搭建、源碼的編譯過程,以及如何運行一個網絡,并且在引言部分演示了環境部署運行的整個過程。本書不是停留在理論層面上,而是深入Fabric的底層代碼詳細講述各功能模塊的具體實現過程,做到了由點到面的深入講解。不管是區塊鏈的開發人員、測試人員、運維人員,或是區塊鏈技術的愛好者,都可以在本書中找到所需要的內容。因此,如果想更進一步學習和研究區塊鏈技術,本書絕對是一個不錯的選擇。
當然,筆者相信這本書仍然不是最好的,還有很多不足之處,歡迎廣大讀者提出寶貴的建議或意見,共同交流,共同推動區塊鏈技術的發展。
內容簡介:

本書通過精選十分重要和極其巧妙的代碼片段,剖析了超級賬本Hyperledger Fabric的技術細節、底層原理和整體架構。本書涵蓋開發環境的部署、源碼如何編譯、第一個示例網絡的運行,以及orderer、peer、Chaincode、MSP、Ledger、Consensus和Gossip幾個重要的組成部分。 讀者閱讀本書,可以更加清晰地理解超級賬本的核心技術和設計思想,了解分布式賬本一致性的具體實現;同時,可以識別在區塊鏈應用過程中遇到的問題,實現區塊鏈功能和性能的最大化。
目錄:

第1章 搭建Hyperledger Fabric開發環境 1
1.1 下載Go語言安裝包 1
1.2 Windows MSI安裝 2
1.3 Linux、mac OS和FreeBSD 安裝 4
1.4 Linux下安裝Docker和docker-compose 5
1.5 Windows下安裝Git 7
1.6 Windows下安裝tdm-gcc 9
1.7 Windows下安裝 Visual Studio Code 10
第2章 編譯Hyperledger Fabric源碼 14
2.1 Fabric源碼下載 14
2.2 Fabric Makefile 15
2.3 構建peer 17
2.4 構建peer-docker 19
2.5 構建orderer 22
2.6 構建orderer-docker 22
2.7 構建tools-docker 23
2.8 查看構建的鏡像 24
第3章 第一個網絡 26
3.1 克隆fabric-samples 26
3.2 運行第一個網絡 27
3.2.1 生成證書 28
3.2.2 啟動網絡 29
3.2.3 關閉網絡 32
3.3 基本步驟 33
3.3.1 生成證書 33
3.3.2 生成配置交易 35
3.3.3 啟動網絡 38
3.3.4 CLI容器命令 39
3.4 數據持久性 44
3.5 出錯處理 45
第4章 Chaincode 46
4.1 Chaincode接口 47
4.2 Chaincode實現 58
4.3 Chaincode安裝 62
4.4 Chaincode實例化 62
4.5 Chaincode交易 62
4.6 Chaincode查詢 62
第5章 區塊鏈加密算法 63
5.1 RSA加密算法 63
5.1.1 相關的數論知識 63
5.1.2 RSA原理 64
5.1.3 加密過程 65
5.1.4 解密過程 65
5.1.5 RSA正確性證明 65
5.1.6 具體實例 66
5.1.7 數字簽名 67
5.2 橢圓曲線加密算法 67
5.2.1 橢圓曲線 68
5.2.2 群 68
5.2.3 橢圓曲線上的群公理 69
5.2.4 橢圓曲線上的加法 69
5.2.5 有限域上的橢圓曲線 70
5.2.6 具體實例 71
5.2.7 ECC加密原理 72
5.2.8 ECC簽名原理 72
第6章 MSP 74
6.1 整體架構 75
6.2 MSP概述 77
6.3 BCCSP 80
6.4 Setup(證書關聯) 87
6.4.1 setupCAs(建立根證書和中間證書列表) 88
6.4.2 setupAdmins(建立管理員證書列表) 94
6.4.3 setupCRLs(建立撤銷證書) 95
6.4.4 finalizeSetupCAs(建立證書樹內部節點映射列表) 95
6.4.5 newSigningIdentity(建立簽名身份列表) 96
6.4.6 Sign(簽名) 99
6.4.7 Verify(驗證) 99
6.4.8 Serialize(序列化) 100
6.4.9 DeserializeIdentity(反序列化) 101
6.4.10 Validate(校驗身份) 102
6.4.11 SatisfiesPrincipal(檢查規則) 106
6.4.12 setupTLSCAs(建立TLS根證書和中間證書列表) 110
6.4.13 setupOUs(建立組織單元列表) 111
6.5 簽名策略 112
6.5.1 簽名策略定義 112
6.5.2 簽名策略封裝 114
6.5.3 策略編譯 115
第7章 賬本管理 121
7.1 賬本關系 121
7.2 賬本管理概述 126
7.2.1 Initialize初始化賬本提供者 126
7.2.2 CreateLedger創建賬本 137
7.2.3 OpenLedger打開賬本 140
7.2.4 GetLedgerIDs獲取賬本ID 141
7.2.5 Close關閉賬本 141
7.3 賬本ID存儲idStore 142
7.4 賬本存儲提供者ledgerStoreProvider 144
7.4.1 區塊數據存儲提供者blkStoreProvider 146
7.4.2 私有數據儲存提供者pvtStoreProvider 155
7.5 記賬提供者bookkeepingProvider 161
7.6 版本數據庫提供者vdbProvider 162
7.7 歷史數據庫提供者historydbProvider 165
7.8 建立賬本newKVLedger 168
7.8.1 初始化交易管理器 170
7.8.2 實例化私有數據清除管理器 173
7.8.3 新建有效期記賬管理器 176
7.8.4 創建驗證管理器 179
第8章 orderer 182
8.1 入口函數 183
8.2 總體描述 185
8.3 賬本工廠 186
8.4 共識接口 190
8.4.1 solo模式 196
8.4.2 kafka模式 198
第9章 Gossip 210
9.1 Gossip協議 211
9.2 映射器idMapper 215
9.3 發現層disc 218
9.4 通信層Comm 228
9.5 分批發射器emitter 232
9.6 安全顧問secAdvisor 233
9.7 消息加密服務mcs 234
9.8 調停器Mediator 236
9.9 拉取引擎PullEngine 242
9.10 狀態模塊state 245
9.10.1 go s.listen() 246
9.10.2 go s.deliverPayloads() 246
9.10.3 go s.antiEntropy() 251
9.10.4 go s.processStateRequests() 251
第10章 gRPC 254
10.1 發現Discovery 255
10.1.1 注冊服務端實例 255
10.1.2 新建客戶端實例 256
10.2 流言蜚語Gossip 258
10.2.1 注冊服務端實例 258
10.2.2 新建客戶端實例 260
10.3 原子廣播AtomicBroadcast 261
10.3.1 注冊服務端實例 262
10.3.2 新建客戶端實例 269
10.4 管理Admin 269
10.4.1 注冊服務端實例 270
10.4.2 新建客戶端實例 271
10.5 鏈碼支持ChaincodeSupport 272
10.5.1 注冊服務端實例 272
10.5.2 新建客戶端實例 279
10.6 投遞Deliver 284
10.6.1 注冊服務端實例 284
10.6.2 新建客戶端實例 285
10.7 背書Endorser 285
10.7.1 注冊服務端實例 286
10.7.2 新建客戶端實例 288
第11章 peer 294
11.1 peer command 294
11.2 main 295
11.3 node start 299
11.4 新建訪問控制列表提供者 301
11.5 新建操作系統 307
11.6 賬本管理器初始化 308
11.7 鏈碼開發模式 309
11.8 新建投遞事件服務 310
11.9 啟動鏈碼服務 310
11.10 啟動管理服務 312
11.11 新建背書服務 312
11.12 初始化Gossip服務 313
11.13 peer初始化 314
11.14 注冊發現服務 315
11.15 啟動peer服務 319
11.16 啟動性能分析服務 319
11.17 node end 320

序: