- 區塊鏈技術進階與實戰(第2版)
- 蔡亮 李啟雷 梁秀波
- 3891字
- 2021-06-15 16:16:28
前言
區塊鏈技術是金融科技領域乃至整個IT領域的重大技術創新。該技術本質上是以數據加密、時間戳和分布式共識算法等基礎技術為依托,實現鏈式存儲、智能合約和隱私保護等高級功能的分布式賬本技術。該技術通過區塊鏈網絡節點之間的相互驗證、監督和數據備份,從技術層面上保證在鏈式賬本中所存儲的數據很難被惡意篡改,特別適合用于解決多方業務協作場景中為維護信用而導致的成本居高不下的問題。
區塊鏈技術起源于“比特幣”,是“數字加密貨幣”的底層支撐技術。自2009年誕生以來,比特幣系統已在無中心維護機構的情況下穩定運行達10年之久。隨著比特幣的流行,數以百計的“數字加密貨幣”快速涌現。近年來,人們發現“數字加密貨幣”背后的區塊鏈技術可能具有發揮更大價值的潛力,將來可用于極為廣泛的業務場景。許多專家認為,區塊鏈技術可用于解決新一代互聯網去中心化的價值交換問題,即網絡傳輸的信用問題。
用于“數字加密貨幣”的區塊鏈技術只能實現交易轉賬等基礎功能,被認為是1.0版本的區塊鏈技術。要想將區塊鏈應用于“數字加密貨幣”之外的廣泛場景,必須對該技術加以改進。2014年,以太坊應運而生。該平臺通過支持智能合約將業務邏輯的設計和控制權轉移到了平臺用戶手中,允許通過編寫合約代碼來滿足各種復雜的業務場景的需求。該平臺作為區塊鏈2.0版本的典型代表,廣受贊譽和追捧。
然而,以太坊平臺并不是一個完美的區塊鏈平臺,還存在共識效率低下、隱私保護缺乏、大規模存儲困難和信息難以監管等問題,無法應用于大規模的企業級信息系統。針對這些問題,一些企業級的區塊鏈平臺誕生了,其中的典型代表是IBM支持的Hyperledger Fabric和趣鏈科技的Hyperchain。通過高效共識、多級加密、權限控制、可視監控、動態配置等技術,企業級區塊鏈平臺為區塊鏈技術打開了更為廣泛的應用空間。
本書是一本介紹區塊鏈核心原理和應用技術的專業書,與當前市場上的絕大部分區塊鏈圖書不同,不會天馬行空地設想各種短期無法落地的應用場景,而是專注于介紹技術“干貨”和開發經驗,實戰性非常強。讀者通過本書的學習即可上手使用當下最受歡迎的區塊鏈平臺,參考本書實例即可快速開發自己的第一個區塊鏈應用。
本書結構
本書共分為4個部分。
第一部分介紹區塊鏈的基礎知識,使讀者快速對區塊鏈技術有一個整體認識。本部分包含了1章內容,即第1章,對區塊鏈技術的發展情況進行了全面分析,介紹了其概念、歷史、技術流派、關鍵技術和典型應用場景,并對主流平臺進行了對比分析,給出了當前區塊鏈產業生態圖譜。
第二部分對知名開源區塊鏈平臺以太坊和Hyperledger進行詳細解讀,并介紹如何基于這兩個平臺進行區塊鏈應用開發。本部分包含了4章的內容。
第2章對以太坊的發展歷史、基本概念、客戶端、賬戶管理及以太坊網絡等基礎知識進行了介紹,并對以太坊共識機制、虛擬機、數據存儲和加密算法等以太坊關鍵模塊的核心原理進行了剖析,詳細介紹了以太坊智能合約的編寫、部署、測試與執行,最后對以太坊發展過程中的重大事件和目前存在的主要問題進行了分析探討。
第3章首先介紹了如何搭建以太坊的開發環境,包括Go語言環境、Node.js和npm的配置,Solc編譯器的安裝,以及如何使用以太坊geth客戶端搭建私有鏈;其次講解了以太坊智能合約開發的集成開發環境,包括Mix IDE和在線瀏覽器編譯器;再次講述了JSON RPC和JavaScript API兩種以太坊編程接口,通過這兩種接口可以實現和以太坊底層的交互,實現合約方法的調用;隨后講述了目前主流的以太坊開發框架與流程,包括Metero、Truffle和商業化開發中的分層可擴展開發流程;最后給出了第一個較為完整的以太坊應用開發實例。
第4章對Hyperledger Fabric進行了深入解讀,有助于讀者深入理解Fabric的底層實現原理。首先,介紹了Hyperledger及其子項目的發展現狀及管理模式,重點介紹了Hyperledger Fabric;其次,對Hyperledger Fabric架構進行深入分析,從成員服務、區塊鏈服務以及合約代碼服務3個方面探討Hyperledger Fabric的架構組成與特點,給出了Fabric架構設計和模塊組件;再次,給出了Chaincode代碼結構、調用方式和執行流程;最后,對交易背書流程展開了詳細分析。
第5章主要介紹如何在Hyperledger Fabric平臺上開發區塊鏈應用,首先講述了 Hyperledger Fabric的開發運行環境的搭建過程,其次給出了Chaincode開發和部署流程,最后介紹了CLI應用接口和SDK接口,并通過實例說明了如何基于這兩種接口開發Hyperledger Fabric的區塊鏈應用。
第三部分以自主可控聯盟區塊鏈Hyperchain為例對企業級區塊鏈平臺的核心技術進行分析,并介紹了基于Hyperchain的企業級區塊鏈應用開發技術。本部分包含了2章的內容。
第6章以企業級區塊鏈平臺Hyperchain為例,介紹了構成企業級區塊鏈平臺的核心組件的實現原理。企業級區塊鏈同公有鏈和私有鏈不同,它直接面對企業級應用的需求,對區塊鏈系統的安全性、靈活性以及性能都有著更加嚴格的要求。Hyperchain企業級區塊鏈平臺在優化傳統PBFT的基礎上設計實現了靈活、高效、穩定的共識算法RBFT,在智能合約的支持上選擇了支持開源領域活躍的Solidity語言,對其執行虛擬機進行了系統層面的優化,并通過對交易、交易鏈路、應用開發包等多層面的加密處理,加強企業級區塊鏈的安全等級。此外,Hyperchain還設計實現了支持系統監控、合約編寫、合約編譯等多功能的企業級區塊鏈管控平臺。
第7章主要介紹了Hyperchain區塊鏈上應用開發的相關內容。首先,從交易調用、合約管理以及區塊查詢幾個方面介紹了Hyperchain平臺對外提供的主要接口;其次,從Hyperchain集群的配置、部署和運行等方面介紹了如何搭建一個可運行的企業級區塊鏈系統Hyperchain;最后,以模擬銀行為例,介紹了如何在Hyperchain平臺上進行智能合約應用的開發。
第四部分介紹了多個區塊鏈實際應用項目案例,每個案例的介紹均包括項目簡介、系統功能分析、系統總體設計、智能合約設計、系統實現和部署等部分,對開發過程和關鍵代碼進行了詳細分析,并提供了完整的案例源代碼。本部分包含了3章的內容。
第8章介紹了兩個基于以太坊的實際項目案例,分別是通用積分系統和電子優惠券系統。基于前面章節所學習的以太坊基礎知識和開發技術,讀者可對照本章的內容,一步一步地動手實踐,在實戰過程中更好地理解相關概念和技術,從而為自己基于以太坊構建區塊鏈應用項目打好基礎。
第9章介紹了兩個基于Hyperledger Fabric的實際項目案例,分別是社會文物管理平臺和高端食品安全系統。基于前面章節所學習的Hyperledger Fabric基礎知識和開發技術,讀者可結合本章的內容邊學邊做,通過項目驅動的學習為Hyperledger Fabric區塊鏈應用開發積累實踐經驗。
第10章介紹了兩個基于Hyperchain的企業級區塊鏈應用項目案例,分別是應收賬款管理系統和出行打車平臺??梢钥吹剑肏yperchain可以構建功能完備、技術領先、符合企業級要求的區塊鏈應用。讀者可對照本章內容,通過Hyperchain提供的完善的開發接口,對區塊鏈應用開發進行深入的學習和實踐。
第2版的變化
本書第1版出版至今已兩年有余,兩年來區塊鏈技術發展日新月異,書中所介紹的3個主要的區塊鏈平臺以太坊、Hyperledger Fabric和Hyperchain都有了較大的變化,為保持內容的即時性和先進性,特推出第2版,主要對調研數據、平臺介紹、開發實踐和項目案例等內容進行了補充和更新。與第1版相比,主要變化包括:第1章對區塊鏈發展情況、產業現狀、應用場景和主流平臺對比分析等方面進行了大幅更新;第2章和第3章對以太坊平臺發展情況、現存問題、開發工具和編程接口等部分進行了更新;第4章和第5章對Fabric平臺簡介、開發環境等內容進行了更新;第6章和第7章對Hyperchain平臺的整體架構、功能組件、應用開發和部署管理等內容進行了大幅更新;第8章、第9章和第10章分別對以太坊、Hyperledger Fabric和Hyperchain平臺的實戰案例進行了補充、完善和修改,其中第9章新增了兩個全新的案例,第10章的數字票據案例改為了應收賬款管理案例。
示例代碼與勘誤
第四部分的所有項目案例代碼已上傳圖靈社區本書主頁,其中Ethereum- Score-Hella項目是在Truffle 4.1.11下對Ethereum-Score項目的更新。
由于作者時間和水平有限,本書難免會存在一些紕漏和錯誤,歡迎廣大讀者批評指正??闭`請提交至圖靈社區本書主頁,或發送至作者郵箱:liangxiubo@hyperchain.cn。對于讀者發現的問題,我們將在本書后續印次和版本中加以改正。
開放服務平臺及更多技術支持
為了進一步降低區塊鏈技術使用門檻,讓更多的區塊鏈開發者、愛好者以及正在嘗試接入區塊鏈技術的企業能夠快捷地開發區塊鏈應用,趣鏈科技提供了基于聯盟鏈的開放服務平臺飛洛。基于該平臺,用戶可以更方便地創建、發布和使用多中心化的應用程序。通過平臺提供的在線智能合約編輯器,用戶可便捷、準確地編寫智能合約程序;通過平臺提供的區塊鏈瀏覽器,用戶可方便地獲取鏈上區塊信息、區塊鏈節點狀態、節點維護方信息等。歡迎廣大區塊鏈相關從業人員訪問體驗。
如需獲得更多區塊鏈技術的最新技術動態和趣鏈科技的技術支持,可關注我們的微信公眾號“趣鏈科技”。
致謝
作為區塊鏈技術人員,能夠編寫一本技術性和實踐性非常強的區塊鏈圖書,我們感到非常榮幸。在此向所有給我們提供指導、支持和鼓勵的朋友表示衷心的感謝。
感謝浙江大學計算機科學與技術學院和軟件學院為我們提供的優良條件和各種便利,感謝陳純院士、楊小虎研究員一直以來的關懷和支持,使得本書得以順利完稿。
感謝杭州趣鏈科技有限公司全體人員的大力支持,特別感謝李偉博士、邱煒偉博士后、尹可挺博士為本書成稿所給予的鼎力支持,感謝汪小益、黃方蕾、戎佳磊、陳宇峰、吳發翔、吳琛、胡為、宋家錦、郭威、李超、林波、歐錦銘、周昕、陳菲、費麗娜、陳曉陽、孫立鋼、趙遷、顧家飛、史鋼哲、尹旗勝、張乾威、何振豪等對書稿材料匯編所做出的貢獻,感謝劉耀儆、胡麥芳、卓海振、鐘蔚蔚、孫琪、趙科、黃志勝等對書稿校閱所付出的時間和汗水。
感謝萬達網絡科技集團先進技術研究中心副總經理季宙棟、區塊鏈資深研究員張夢航對本書第4章和第5章內容的有益補充。
感謝人民郵電出版社圖靈公司的編輯們,是他們不辭辛苦、仔細嚴謹的審閱和校對工作為本書的順利出版提供了有力保障。
蔡亮 李啟雷 梁秀波
2020年9月于浙江杭州
- ServiceNow Application Development
- Getting Started with React
- Objective-C Memory Management Essentials
- 數據庫原理及應用(Access版)第3版
- Power Up Your PowToon Studio Project
- Mastering phpMyAdmin 3.4 for Effective MySQL Management
- Python進階編程:編寫更高效、優雅的Python代碼
- Java設計模式及實踐
- 用戶體驗增長:數字化·智能化·綠色化
- 零基礎學C語言第2版
- 時空數據建模及其應用
- Developing SSRS Reports for Dynamics AX
- Python網絡爬蟲技術與應用
- Troubleshooting Citrix XenApp?
- 交互式程序設計(第2版)