官术网_书友最值得收藏!

前言

2016年12月,“區塊鏈”(BlockChain)被列入國家十三五規劃,并作為未來重點突破與發展的六大關鍵技術之一。2018年5月,兩院院士大會將區塊鏈的發展趨勢表述為“以人工智能、量子信息、移動通信、物聯網、區塊鏈為代表的新一代信息技術加速突破應用”。區塊鏈領域正在以前所未有的速度聚集著社會資源,加速技術應用與關鍵技術的突破,并受到國家、企業、資本等各方的廣泛關注。當前,區塊鏈作為風口概念受到國內外媒體的火熱炒作,同時受到大量VC風投的極力熱捧。

根據產業創新創投數據平臺Innov100的數據統計,2017年全球ICO(Initial Coin Offering,首次代幣發行)融資金額高達350億元。2018年1月至5月,ICO融資規模為118億美元。博鏈研究發布的《全球區塊鏈+創投報告》指出,截至2017年4月底,全球455家區塊鏈公司累計獲得融資金額達19.47億美元。在獲投公司數量上,中國共有61家位列全球第二。2018年第1季度,“俄羅斯微信”Telegram進行了兩輪ICO融資分別獲得8.5億美元共17億美元。中國平安旗下金融管理門戶金融壹賬通獲得SBI投資(思佰益)和IDG資本的6.5億美元融資,成為2018年第1季度中國區塊鏈行業融資額最高的項目。2018年6月,Block.one推出的加密數字貨幣EOS結束了為期350天的眾籌活動,總融資額近42億美元。

截至2018年3月底,我國以區塊鏈業務為主營業務的區塊鏈公司數量已經達到了456家,區塊鏈產業初步形成規模。同時,區塊鏈明星創業公司如井通科技、智鏈、量子鏈、小蟻、趣鏈、布比等如雨后春筍般紛紛出現并迅速成長,國內BAT、小米等互聯網巨頭與眾安保險等新型互聯網公司相繼投入資源,研發核心技術與探索應用落地,傳統行業巨頭如中國平安、萬向集團等也耗巨資,成立新型網絡科技公司或實驗室,研究區塊鏈技術與應用。這些企業都試圖在未來的科技競爭中彎道超車,搶占先發優勢,積累資源與技術壁壘。鑒于國內行業發展的碎片化,以及應用存在一定的盲目性,國家工信部在區塊鏈產業整合上積極引導,由中國電子技術標準化研究院牽頭,聯合國內典型區塊鏈企業成立中國區塊鏈技術和產業發展論壇,共同制定我國區塊鏈技術的相關標準與推動產業發展。該組織于2016年10月18日發布了《2016年中國區塊鏈技術和應用發展白皮書》;2017年5月與12月分別提出了我國區塊鏈技術和產業發展論壇標準《區塊鏈參考架構》與《區塊鏈數據格式規范》,其中,《區塊鏈參考架構》已處于國家標準立項階段;2018年5月發布了《2018年中國區塊鏈產業白皮書》,2018年6月擬籌建全國區塊鏈和分布式記賬技術標準化技術委員會,推進區塊鏈標準體系框架工作,提出了基礎、業務和應用、過程和方法、可信和互操作、信息安全等標準,并初步明確了21個標準化重點方向及相關標準化方案。同時,2016年12月以來,中國信息通信研究院聯合數據中心聯盟等單位相繼發布了可信區塊鏈系列標準《第1部分 區塊鏈技術參考框架》 《第2部分 總體要求和評價指標》 《第3部分 評測方法》等,2018年4月9日,牽頭與158家企業聯手啟動了“可信區塊鏈推進計劃”,截至2018年9月初,推進計劃成員已發展至225家,陸續成立了標準與評測、知識產權、云服務等10個工作組,積極推動國內外企業的可信區塊鏈標準以及產品評測工作。另外,中國電子產品可靠性與環境試驗研究所、中國銀聯電子支付研究院與同濟蘇州區塊鏈研究院、貴陽區塊鏈測試中心等都在研究與提供相應的區塊鏈平臺測評服務。國內的這些工作都在積極推動和促進國內區塊鏈產業的發展,并積極與國際標準(ISO/TC 307等)、ITU-T FGDLT組與SG16研究組等進行接軌及交流,這有利于統一對區塊鏈新興技術的認知和共同解決區塊鏈關鍵技術問題,對我國區塊鏈產業的發展具有重大意義。

與此同時,國際上影響力較大的主流區塊鏈開源平臺逐漸融合發展,互相借鑒,目前已經涌現出數個典型的生態體系及平臺。

□ 以比特幣為代表的“虛擬貨幣”平臺開源社區生態體系。比特幣就是以區塊鏈作為底層技術進行設計與研發的,中本聰(Satoshi Nakamoto)在2008年發表的論文《Bitcoin: A Peer-to-Peer Electronic Cash System》中就曾指出,比特幣是通過隨機哈希值為全部交易加上時間戳,并將它們融入不斷延伸的、基于隨機哈希值的工作量證明鏈條中作為交易記錄(即區塊),除非重新完成全部的工作量證明,否則形成的交易記錄將不可更改。這種獨特的記賬方式使得比特幣的發行可以不依賴于任何政府與貨幣機構的公信力,而是根據特定共識算法并通過大規模計算來生成的,由全系統所有節點共同背書,其記賬權由全網51%的算力決定,第一次在全球范圍內實現了一個去中心化的真實的點對點電子現金系統。這完全顛覆了以往人們對“貨幣”的認知,點燃了以比特幣為代表的“虛擬貨幣”風口。

□ 以以太坊(Ethereum)為代表的支持可編程智能合約的公有鏈或公鏈平臺開源社區生態體系。其核心理念是將區塊鏈作為可編程的分布式信用基礎設施,支持自動化運行的智能合約應用,并將平臺交易內容擴展到金融、股權、債務憑證等領域。Vitalik Buterin等創始人于2013年12月開始發起以太坊項目,并迅速激發了人們在可信平臺上交易金融資產的熱情與創造力,現在應用方面有超過上千個DApp上鏈(https://www.stateofthedapps.com/),已經成為具有國際影響力的開源公鏈平臺。

□ 以超級賬本Hyperledger Fabric為代表的聯盟鏈平臺開源社區生態體系。其目標是完全面向企業級應用場景的許可區塊鏈(Permissioned Chain),用以解決多個弱信任企業主體之間的信任問題,以降低企業間復雜繁瑣業務流程帶來的信任成本,實現在可控主體范圍內共享敏感數據,從而有效提升企業主體之間大規模協作活動的效率。Hyperledger Fabric開源社區提供帶有身份權限認證的商用區塊鏈平臺,采用模塊化插件的靈活設計架構,避免了比特幣類公鏈平臺與以太坊類公鏈平臺交易效率低下、缺乏完善的身份認證模塊等問題,能夠廣泛應用于金融資產存管、供應鏈、共享經濟等領域。Hyperledger Fabric自2015年底開源以來發展迅速,已經成為主流的聯盟鏈開源平臺。另外,值得注意的是,企業以太坊聯盟(Enterprise Ethereum Alliance, EEA)、螞蟻金服、騰訊、百度、BCOS(由微眾銀行、萬向、矩陣元共同發布的開源聯盟鏈平臺)、眾安、趣鏈、CITA(秘猿科技)等都是其潛在的競爭對手或產品。企業級BaaS(Blockchain as a Service)平臺作為基礎設施服務亦是未來國際企業市場的競爭焦點,國際巨頭IBM、微軟等已經在此領域深耕發力多年,以實現高效動態的部署跨域區塊鏈網絡的能力,從而提供高質量的商用企業級服務。

此外,目前還涌現出IPFS(InterPlanetary File System,星際文件系統)、石墨烯(Graphene)、哈希圖(Hashgraph)、Blockstack、側鏈、DAG、分片技術(Sharding)、抗量子攻擊算法、高性能跨鏈技術、新型共識機制(如拜占庭協商BA-VRF、DDPOS、HyperPOW等)等眾多的新型區塊鏈平臺、新型底層支撐技術以及相關方向,以著力解決當前區塊鏈系統面向領域應用中遇到的關鍵技術問題(如指數量級提升單鏈或多鏈交易處理性能),積極探索新型技術落地與大規模應用場景,這些都是未來具有前景與值得關注的潛在技術。

本書重點介紹了Hyperledger Fabric系統架構的設計與實現,根據Hyperledger的官網介紹,超級賬本旨在通過創建企業級的開源分布式賬本框架,協助組織擴展、建立行業專屬的應用程序、平臺和硬件系統來支持交易業務,是全球跨行業領導者的合作項目,覆蓋金融、銀行、物聯網、供應鏈、制造行業和技術領域。Hyperledger Fabric作為聯盟鏈的典型架構,逐漸得到了國際主流公司與研究機構的青睞與大力支持。截至2018年2月底,已經有260個組織機構加入了Hyperledger社區陣營,包括IBM、Intel、Oracle、思科、摩根大通、富國銀行、百度、阿里巴巴、騰訊、聯想、小米、迅雷、華為等,分為高級會員、標準會員與聯盟會員;另外還有一種學術性機構聯盟會員,如劍橋大學賈吉商學院、北京大學、浙江大學等。Hyperledger項目設有理事會、技術指導委員會、市場委員會和用戶顧問團等,代碼許可協議采用Apache License Version 2.0,以滿足大多數商業用途需求。截至2018年7月底,超級賬本亞太副總裁Julian Gordon聲稱超級賬本中20%的會員(50多個中國會員,百度屬于高級會員)與10%的貢獻都來自中國。目前,Hyperledger開源社區包括11個商業區塊鏈和分布式賬本項目,其中3個項目是中國企業與個人首先發起或提供主要工作的,包括Hyperledger Caliper(區塊鏈性能測試平臺,華為等)、Hyperledger Cello(區塊鏈平臺部署和運行管理項目,Oracle區塊鏈首席架構師楊保華博士等)以及Hyperledger Explorer(區塊鏈數據可視化工具項目,上海旺鏈科技等)。另外,中國企業與個人也為Hyperledger Fabric等項目做出了重大貢獻。

Hyperledger Fabric得益于模塊化插件架構等良好特性,近年來的發展異常迅速,已經開始在很多國內外機構和大公司的實際PoC(Proof of Concept,概念驗證)項目以及實際應用系統中推廣使用,如民生銀行貿易金融領域產品即國內信用證信息傳輸系統目前支撐數十億級別的交易業務量,以及智鏈ChainNova航運物流行業項目等。Hyperledger Fabric所在的GitHub開源社區也非常活躍,Meetup以及國內外會議上的相關研討交流同樣異常頻繁。自2017年3月正式發布1.0測試版本以來,GitHub代碼更新速度飛快,經過2016年0.6技術預覽版本的升級之后,1.0版架構重新分離出Orderer節點與Committer節點,以提高系統的可擴展性與并發性,并且引入模塊插件化的共識算法,整個系統架構日臻成熟實用。Hyperledger Fabric于2017年7月在社區正式發布了1.0正式版代碼,在這個過程中約有27個組織、159名開發者、3500多個代碼修改以及超過一年的協作和測試。發布1.0版是超級賬本社區真正的里程碑事件,用戶和技術供應商可以基于Hyperledger Fabric來推進產品的部署和運營。這標志著Hyperledger Fabric已經能夠作為一個較為獨立完整的開源軟件被集成到其他系統中,提供給全世界的開發者進行研究。然而,Hyperledger Fabric開源社區并沒有在1.0版本中發布sbft等支持拜占庭容錯的重要共識機制模塊,而是謹慎地推遲了該模塊加入發布的時間,因此,Hyperledger Fabric還有很長的路要走。但是作為一個開源區塊鏈系統,Hyperledger Fabric已經可以作為一個有影響力的典型聯盟鏈范例來進行深入研究,這對于普及推廣區塊鏈技術有著積極意義。

作為Blockstream、Digital Asset Holdings與IBM貢獻給開源社區的許可聯盟鏈平臺,Hyperledger Fabric是一個模塊插件化的鏈式區塊數據共享賬本平臺,支持自動化智能合約。更準確地說,它是利用密碼學特征將構造成區塊的交易數據集合基于區塊哈希值鏈接起來,按時間戳順序形成以區塊對象為基本單元的“鏈”,并在參與節點之間共享該“鏈”,同時鏈上內容根據共識機制由參識節點集體維護,而不再由單一節點決定記賬權,關于其來源在本書中會有更詳細的探討。總體來說,Hyperledger Fabric具有如下鮮明的技術特點:

□ 支持可插拔的架構;

□ 基于PKI體系與X.509標準身份證書的安全管理體系;

□ 支持多通道、隱私數據集合等多粒度的數據隱私保護特性;

□ Peer、Orderer等節點可擴展性良好;

□ 支持多種鏈碼(智能合約)開發語言(Node.js、Go、Java等);

□ 基于Docker容器技術提供鏈碼運行時環境等。

這些特點使得Hyperledger Fabric能夠具備提供高效可靠的企業級區塊鏈平臺服務能力的潛質,并真正從研究走向實用,企業界與開源社區對Hyperledger Fabric異常熱情,紛紛表示熱烈擁抱與接納。除了Fabric項目外,Hyperledger還包括Burrow(支持以太坊虛擬機)、Indy(提供去中心化的身份管理機制)、Iroha(關注移動特性的賬本平臺項目)、Sawtooth(區塊鏈平臺)、Caliper(區塊鏈性能測試平臺)、Cello(提供區塊鏈平臺部署和運行管理)、Composer(提供面向鏈碼開發的高級語言支持)、Explorer(區塊鏈數據可視化工具)、Quilt(關注賬本互操作性)、uRSA(共享加密庫項目)等,這些項目構成了相對完善的區塊鏈生態系統。

筆者正是在了解Hyperledger Fabric源碼中逐漸熟悉其系統架構與實現機制的,并選擇1.1.0正式版作為剖析對象,能夠體現當前Fabric架構設計發展的主流新特性(隱私數據集合等)演變,并兼顧Fabric 1.2(1.2.0與1.2.1版本)與Fabric 1.3(1.3.0版本)中架構與功能升級的源碼,以幫助讀者能夠深入了解整體架構的演變,讓讀者在應用Hyperledger Fabric時有所參考,從而對推進項目落地能夠有所幫助。

本書面向的讀者

□ 區塊鏈應用開發人員

□ 區塊鏈底層開發人員

□ 區塊鏈技術愛好者

□ 分布式計算方向研究人員

如何閱讀本書

限于篇幅,本書沒有深入介紹比特幣、以太坊等主流平臺體系架構以及Docker、gRPC、protocol buffer、yaml配置文件、現代密碼學等常用系統知識。本書不是一本初級入門資料,所以需要讀者具備相關的基礎知識。同時,Hyperledger Fabric知識體系非常豐富,本書也不試圖成為一部能夠兼顧所有方面的百科全書式的權威指南,例如本書就沒有重點分析Fabric CA與Fabric SDK等相關模塊。

本書介紹了Hyperledger Fabric的架構設計與實現原理,基于源碼剖析了Hyperledger Fabric核心模塊,以Hyperledger Fabric系統運行流程為主線展開分析,是一部面向Hyperledger Fabric系統架構的技術專著。因此,本書更適合于Hyperledger Fabric底層架構開發者與應用開發者,以及對Hyperledger Fabric感興趣的技術愛好者。

希望讀者學習相關知識(現代密碼學、X.509標準等),搭建實驗環境以配合源碼閱讀學習(推薦JetBrains GoLand或IDEA編程開發環境閱讀源碼與編寫Go程序)。Hyperledger Fabric官方網站提供了非常不錯的入門教程與背景資料,介紹了Hyperledger Fabric的專業知識與示例。如果讀者對現代密碼學和PKI安全體系有所了解,將更容易理解Fabric的身份權限控制機制,有興趣的讀者可以進一步參考相關資料。當然,最重要的學習資源還是源代碼本身,正如大師所言,“源碼面前,了無秘密”。

研究底層架構需要把握真正有價值的整體系統架構,應該將研究的關注點集中在理解系統設計的邏輯思路、重要原理與機制、核心模塊接口等方面,如果不是為了改進和優化專用模塊,則不必過分關注局部實現細節,從而丟失全局架構設計的宏觀視野。因此,結合整體系統架構去研究核心模塊會更容易理解Hyperledger Fabric系統設計的精髓。

對于區塊鏈應用開發者,推薦按照交易處理流程的順序閱讀本書。對于區塊鏈底層開發者,推薦按照本書章節的正常順序進行閱讀。對于區塊鏈技術愛好者,推薦除了核心模塊章節之外,可以嘗試研究第6章Gossip消息模塊,該模塊是通道上組織節點間通信的基礎,提供了高效數據分發與狀態的同步機制,屬于更底層的基礎服務,實現機制相對比較復雜。如果讀者更關注Hyperledger Fabric其他層次的主題,則可以暫時跳過不作深入了解。

本書結構

本書分為7個正文章節與附錄。第1章介紹區塊鏈的基本概念、Hyperledger Fabric架構等基礎知識。第2章至第7章分別介紹Orderer排序節點、Peer節點、Endorser背書節點、Committer記賬節點、Gossip消息模塊、公共功能模塊等核心模塊的底層細節,使得讀者可以完整了解Hyperledger Fabric架構的設計思想與實現機制。

第1章介紹了區塊鏈的基本概念、Hyperledger Fabric架構與流程,并以e2e_cli為例介紹Fabric系統部署流程,幫助讀者搭建實驗環境進行研究。

第2章介紹了Orderer排序節點,包括Orderer服務節點啟動流程、Broadcast交易廣播服務、Orderer共識排序服務、Deliver區塊分發服務等。

第3章介紹了Peer節點功能模塊,包括Peer節點啟動流程與Peer命令模塊(Channel通道子命令、chaincode鏈碼子命令等)。

第4章介紹了Endorser背書節點的背書處理流程,負責啟動鏈碼容器提供鏈碼服務,對模擬執行結果簽名背書并返回提案響應消息。

第5章介紹了Committer記賬節點的功能模塊。其中,交易驗證器用于驗證交易數據,并調用VSCC驗證背書策略的有效性,賬本提交器執行MVCC檢查以標記交易的有效性,并提交數據更新賬本。

第6章介紹了Gossip消息功能模塊,包括Gossip消息模塊的啟動流程、消息通信與處理機制、節點管理機制、數據分發與狀態同步機制、反熵算法等,可以支持節點的動態加入與退出,提供高效的數據分發與狀態同步機制。

第7章介紹了Hyperledger Fabric中常見的公共功能模塊,包括賬本數據存儲模塊、安全服務模塊、Events事件模塊等。

附錄包括Hyperledger Fabric相關文件的解析,包括orderer.yaml配置文件、core.yaml配置文件、e2e_cli示例相關文件等。

關于本書代碼

本書分析的代碼版本為Hyperledger Fabric 1.1.0正式版(2018年3月發布),研究思路是以Hyperledger Fabric運行流程為主線展開分析,重點解析Hyperledger Fabric的架構設計與實現原理,完整代碼請從Github官網https://github.com/hyperledger/fabric下載。

致謝

非常感謝Hyperledger Fabric開源社區貢獻者以及本書所有文獻引用的原作者,開源共享促進社會與技術進步!

非常感謝機械工業出版社華章分社的編輯楊福川、張錫鵬以及背后的工作人員,是你們的專業精神、嚴格要求與辛勤付出使得本書的出版成為可能!

在撰寫本書的同時,本人獲得了互聯網上眾多區塊鏈開發人員以及高校、企業同行們的無私支持,他們對技術的執著追求令人印象深刻,是值得尊敬與學習的資深領域專家。同時本人也得到很多領導、同事與朋友的熱情幫助,如果沒有他們的默默支持,本人是無法完成本書的,在此一并致謝。

因時間倉促與水平有限,本書難免有錯誤遺漏之處。歡迎讀者批評指正,將錯誤與不當之處發送至郵箱xinli@nudt.edu.cn,或者通過QQ交流群491318059以及微信群與筆者(QQ號/微信號501319508)交流,以便重印或再版時及時更正。同時,本書在撰寫過程中參考了大量文獻與互聯網資料并標注了引用出處,在此表示感謝,如果存在疏漏或版權問題,請發送郵件或直接聯系筆者,以便及時更正。

李鑫

主站蜘蛛池模板: 永城市| 太保市| 定边县| 惠来县| 宁阳县| 宁国市| 乳山市| 馆陶县| 河北区| 荥经县| 瑞安市| 斗六市| 郁南县| 丰原市| 象州县| 肥乡县| 太仆寺旗| 汤阴县| 房产| 宁乡县| 彰化市| 宁蒗| 丹阳市| 余庆县| 庄河市| 阳高县| 青阳县| 辽宁省| 嘉禾县| 商丘市| 平度市| 黄冈市| 县级市| 湾仔区| 浪卡子县| 正宁县| 乌鲁木齐县| 浙江省| 青岛市| 油尖旺区| 盐津县|