Go語言Hyperledger區(qū)塊鏈開發(fā)實(shí)戰(zhàn)
定 價:89 元
Go語言是近年來非常流行的新興編程語言,它不僅是以太坊客戶端和Hyperledger Fabric區(qū)塊鏈平臺的開發(fā)語言,而且廣泛應(yīng)用于區(qū)塊鏈應(yīng)用的開發(fā)。本書介紹使用Go語言開發(fā)的經(jīng)典聯(lián)盟鏈項(xiàng)目Hyperledger Fabric,它由Linux基金會管理。國外的微軟、摩根大通、世界銀行和國內(nèi)的華為、阿里巴巴、百度、騰訊等企業(yè)都參與了Hyperledger社區(qū)的建設(shè)。本書涵蓋Hyperledger Fabric區(qū)塊鏈平臺的體系結(jié)構(gòu)、各組件的工作原理和管理方法、Go語言的基本編程方法,以及使用Go語言開發(fā)Hyperledger Fabric智能合約和應(yīng)用程序的方法。讀者在閱讀本書時可以充分了解和體驗(yàn)Hyperledger Fabric區(qū)塊鏈的強(qiáng)大功能,以及使用Go語言開發(fā)區(qū)塊鏈應(yīng)用的便利。本書既可作為高等院校區(qū)塊鏈開發(fā)Web應(yīng)用程序設(shè)計(jì)等課程的教材,也可作為區(qū)塊鏈應(yīng)用開發(fā)人員的參考用書。
1.注重區(qū)塊鏈技術(shù)科普,巧妙激發(fā)讀者的學(xué)習(xí)興趣。區(qū)塊鏈平臺作為去中心化分布式系統(tǒng),它的工作原理和運(yùn)作方式與傳統(tǒng)的中心化系統(tǒng)有很大不同。為了使讀者充分理解基礎(chǔ)的技術(shù)框架和工作原理,本書第 1 章結(jié)合比特幣、以太坊等經(jīng)典區(qū)塊鏈平臺介紹區(qū)塊鏈技術(shù)的工作原理和底層技術(shù)。2.依托經(jīng)典開發(fā)案例,形象解讀區(qū)塊鏈技術(shù)的抽象概念。作為區(qū)塊鏈應(yīng)用開發(fā)的入門級教材,本書通過各種流程圖、結(jié)構(gòu)圖、架構(gòu)圖來描述區(qū)塊鏈技術(shù)的數(shù)據(jù)結(jié)構(gòu)和工作原理。全書介紹了多個基于 Fabric 區(qū)塊鏈的開發(fā)案例,以及開發(fā)智能合約與區(qū)塊鏈應(yīng)用的完整過程,為讀者理解抽象的概念提供捷徑。3.合理搭建內(nèi)容架構(gòu),助力讀者扎實(shí)培養(yǎng)綜合能力。本書在內(nèi)容編排上,區(qū)塊鏈技術(shù)科普、Hyperledger Fabric 各組件的管理與配置方法講解及 Go 語言智能合約與區(qū)塊鏈應(yīng)用開發(fā)技術(shù)介紹并重。為了節(jié)省篇幅,編者將開發(fā)實(shí)例做成電子資源提供給讀者下載使用。對于 Hyperledger Fabric 這種架構(gòu)復(fù)雜的企業(yè)級區(qū)塊鏈平臺,理論與實(shí)例相結(jié)合可以達(dá)到更好的教學(xué)目的和學(xué)習(xí)效果。通過系統(tǒng)學(xué)習(xí),讀者很容易做到知其然、更知其所以然。4.配套豐富教輔資源,立體化服務(wù)高校人才培養(yǎng)。編者為使用本書的高校教師制作了配套的電子教案,并提供各章習(xí)題的參考答案、上機(jī)實(shí)驗(yàn)的電子文檔、重難知識點(diǎn)的微課視頻以及書中涉及的所有實(shí)例程序的源代碼。高校教師可以通過人郵教育社區(qū)(www.ryjiaoyu.com)下載上述資源。
軟件開發(fā)工程師,畢業(yè)于吉林大學(xué)計(jì)算機(jī)系;自2006年以來,帶領(lǐng)團(tuán)隊(duì)一直從事網(wǎng)絡(luò)管理軟件、企業(yè)ERP系統(tǒng)和電商平臺等的開發(fā)與建設(shè)工作,具有中國投資銀行、國家開發(fā)銀行、中信銀行等多家銀行從業(yè)經(jīng)歷,參與銀行信息化建設(shè)、網(wǎng)銀平臺開發(fā)、區(qū)塊鏈與智能合約開發(fā)工作多年,在系統(tǒng)軟件開發(fā)、團(tuán)隊(duì)組織管理和系統(tǒng)架構(gòu)設(shè)計(jì)等領(lǐng)域積累了豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。
【詳細(xì)目錄】第 1章 區(qū)塊鏈技術(shù)基礎(chǔ)第 2章 Fabric區(qū)塊鏈的體系結(jié)構(gòu)第3章 搭建Fabric區(qū)塊鏈環(huán)境第4章 Fabric區(qū)塊鏈的安全機(jī)制第5章 節(jié)點(diǎn)與通道管理第6章 數(shù)據(jù)存儲與數(shù)據(jù)分發(fā)第7章 部署Fabric生產(chǎn)網(wǎng)絡(luò)第8章 Go 語言編程基礎(chǔ)第9章 智能合約開發(fā)第 10章 客戶端應(yīng)用開發(fā)【詳細(xì)目錄】第 1章 區(qū)塊鏈技術(shù)基礎(chǔ)1.1 區(qū)塊鏈的工作原理及底層技術(shù) 11.1.1 分布式系統(tǒng)的概念 11.1.2 區(qū)塊鏈技術(shù)的總體架構(gòu) 11.1.3 加密算法 41.1.4 區(qū)塊鏈的分類 71.2 經(jīng)典的區(qū)塊鏈平臺 81.2.1 區(qū)塊鏈技術(shù)的發(fā)展階段 81.2.2 比特幣 91.2.3 以太坊 111.2.4 Hyperledger 項(xiàng)目 121.2.5 區(qū)塊鏈編程語言 141.3 本章小結(jié) 15習(xí) 題 15第 2章 Fabric區(qū)塊鏈的體系結(jié)構(gòu)2.1 Fabric網(wǎng)絡(luò)模型 172.1.1 Fabric網(wǎng)絡(luò)的主要組件 172.1.2 Fabric區(qū)塊鏈平臺的體系結(jié)構(gòu) 192.1.3 排序服務(wù)與交易的流程 232.2 搭建示例網(wǎng)絡(luò)的過程 302.2.1 示例網(wǎng)絡(luò)的拓?fù)?302.2.2 創(chuàng)建示例網(wǎng)絡(luò) 312.2.3 證書頒發(fā)機(jī)構(gòu) 322.2.4 添加網(wǎng)絡(luò)管理員 322.2.5 創(chuàng)建一個聯(lián)盟 332.2.6 為聯(lián)盟創(chuàng)建通道 332.2.7 Peer節(jié)點(diǎn)與賬本 342.2.8 客戶端應(yīng)用與智能合約 352.2.9 Fabric網(wǎng)絡(luò)的擴(kuò)充 362.3 本章小結(jié) 36習(xí) 題 37第3章 搭建Fabric區(qū)塊鏈環(huán)境3.1 搭建基礎(chǔ)環(huán)境 383.1.1 安裝VirtualBox虛擬機(jī) 383.1.2 安裝CentOS 383.1.3 安裝和使用Docker 463.2 安裝Fabric區(qū)塊鏈 523.2.1 配置Fabric區(qū)塊鏈所需要的基礎(chǔ)環(huán)境 523.2.2 安裝Go語言環(huán)境 533.2.3 安裝Git 543.2.4 安裝Docker Compose 543.2.5 安裝Fabric區(qū)塊鏈 553.3 管理工具和配置文件 583.3.1 Fabric區(qū)塊鏈的管理工具 593.3.2 Fabric區(qū)塊鏈的常用配置文件 603.4 Fabric測試網(wǎng)絡(luò) 613.4.1 測試網(wǎng)絡(luò)的特點(diǎn) 613.4.2 啟動和關(guān)閉測試網(wǎng)絡(luò) 613.4.3 創(chuàng)建通道 653.5 本章小結(jié) 67習(xí) 題 67第4章 Fabric區(qū)塊鏈的安全機(jī)制4.1 背景知識 684.1.1 許可鏈的概念 684.1.2 安全機(jī)制的重要意義 704.1.3 身份標(biāo)識 714.1.4 Idemix 734.2 Fabric CA 744.2.1 Fabric CA的工作原理 754.2.2 安裝Fabric CA 764.2.3 初始化和啟動Fabric CA Server 774.2.4 設(shè)置Fabric CA Server的配置信息 794.2.5 建立Fabric CA Server集群 874.2.6 Fabric CA Client 904.3 安全策略 944.3.1 策略簡介 944.3.2 定義策略規(guī)則 954.4 成員服務(wù)提供者 984.4.1 MSP的作用 984.4.2 MSP域 994.4.3 MSP的目錄結(jié)構(gòu) 1004.4.4 配置MSP 1024.5 組織管理 1044.5.1 組織在MSP中扮演的角色 1044.5.2 為組織生成證書 1054.6 本章小結(jié) 109習(xí) 題 109第5章 節(jié)點(diǎn)與通道管理5.1 Peer節(jié)點(diǎn)管理 1115.1.1 配置文件core.yaml 1115.1.2 peer命令 1125.2 通道管理 1135.2.1 通道的分類 1135.2.2 通道配置 1145.2.3 通道配置交易 1185.2.4 在Peer節(jié)點(diǎn)上執(zhí)行通道操作命令 1235.2.5 configtxgen工具 1245.3 排序節(jié)點(diǎn)管理 1255.3.1 Fabric區(qū)塊鏈的共識算法 1255.3.2 排序節(jié)點(diǎn)上的通道管理 1275.3.3 配置排序節(jié)點(diǎn) 1285.4 客戶端命令行工具CLI 1335.4.1 配置客戶端 1335.4.2 通過CLI工具訪問Fabric網(wǎng)絡(luò) 1355.5 Fabric測試網(wǎng)絡(luò)腳本解析 1355.5.1 啟動測試網(wǎng)絡(luò) 1365.5.2 創(chuàng)建通道 1385.5.3 向通道中添加組織 1425.5.4 更新通道配置 1505.5.5 將組織Org3的Peer節(jié)點(diǎn)加入網(wǎng)絡(luò) 1555.6 本章小結(jié) 157習(xí) 題 158第6章 數(shù)據(jù)存儲與數(shù)據(jù)分發(fā)6.1 數(shù)據(jù)存儲 1596.1.1 數(shù)據(jù)存儲結(jié)構(gòu) 1596.1.2 區(qū)塊數(shù)據(jù)的存儲 1606.1.3 交易數(shù)據(jù)的存儲和查詢 1646.1.4 狀態(tài)數(shù)據(jù)庫 1656.1.5 啟用CouchDB作為狀態(tài)數(shù)據(jù)庫 1666.1.6 私有數(shù)據(jù)管理 1706.2 數(shù)據(jù)分發(fā) 1736.2.1 Gossip協(xié)議 1736.2.2 領(lǐng)導(dǎo)節(jié)點(diǎn)和錨節(jié)點(diǎn)在數(shù)據(jù)分發(fā)過程中的作用 1746.2.3 內(nèi)部端點(diǎn)和外部端點(diǎn) 1756.3 本章小結(jié) 176習(xí) 題 176第7章 部署Fabric生產(chǎn)網(wǎng)絡(luò)7.1 從學(xué)習(xí)到實(shí)踐的第 一步 1787.1.1 從測試網(wǎng)絡(luò)過渡到生產(chǎn)網(wǎng)絡(luò) 1787.1.2 部署Fabric生產(chǎn)網(wǎng)絡(luò)的步驟 1807.1.3 設(shè)計(jì)生產(chǎn)網(wǎng)絡(luò)的結(jié)構(gòu)和配置 1807.2 在生產(chǎn)網(wǎng)絡(luò)中部署Fabric區(qū)塊鏈的各組件 1827.2.1 創(chuàng)建資源集群 1827.2.2 搭建CA 1837.2.3 使用CA創(chuàng)建身份和MSP 1837.2.4 部署Peer節(jié)點(diǎn) 1847.2.5 部署排序節(jié)點(diǎn) 1867.3 在單機(jī)上搭建Fabric區(qū)塊鏈集群 1877.3.1 實(shí)例的網(wǎng)絡(luò)拓?fù)?1877.3.2 準(zhǔn)備基礎(chǔ)環(huán)境 1887.3.3 搭建Fabric區(qū)塊鏈節(jié)點(diǎn)集群 1897.3.4 編寫Docker Compose配置文件 1967.3.5 啟動Docker容器 2017.3.6 配置Fabric生產(chǎn)網(wǎng)絡(luò) 2027.4 本章小結(jié) 204習(xí) 題 204第8章 Go 語言編程基礎(chǔ)8.1 Go語言概述 2068.1.1 Go語言的特色 2068.1.2 安裝Go語言環(huán)境 2078.1.3 Go語言的項(xiàng)目目錄 2088.1.4 Go語言IDE 2118.2 Go語言的常量、變量和數(shù)據(jù)類型 2158.2.1 常量 2158.2.2 變量 2158.2.3 數(shù)據(jù)類型 2158.3 常用語句 2188.3.1 賦值語句 2188.3.2 條件分支語句 2198.3.3 循環(huán)語句 2218.4 集合、數(shù)組和切片 2238.4.1 集合 2238.4.2 數(shù)組 2258.4.3 切片 2268.5 指針和接口 2278.5.1 指針 2278.5.2 接口 2288.6 通道編程 2308.6.1 Go語言的并發(fā)編程 2318.6.2 Go語言的通道編程 2328.7 JSON處理 2348.7.1 JSON簡介 2348.7.2 Go語言JSON處理編程 2348.8 函數(shù)編程 2378.8.1 定義和使用函數(shù) 2378.8.2 在函數(shù)中傳遞參數(shù) 2388.8.3 在函數(shù)中返回多個值 2398.8.4 結(jié)構(gòu)體類型和枚舉類型的函數(shù) 2398.9 本章小結(jié) 240習(xí) 題 240第9章 智能合約開發(fā)9.1 Fabric智能合約概述 2429.1.1 智能合約的基本概念 2429.1.2 鏈碼的工作流程 2439.1.3 學(xué)習(xí)Go語言開發(fā)Fabric智能合約的前提條件 2449.1.4 智能合約編程基礎(chǔ) 2459.2 編寫智能合約程序 2469.2.1 導(dǎo)入contractapi包 2469.2.2 定義與賬本交換數(shù)據(jù)的結(jié)構(gòu)體 2469.2.3 智能合約函數(shù)編程 2479.3 鏈碼編程與智能合約的測試 2539.3.1 在鏈碼中使用智能合約 2539.3.2 在測試網(wǎng)絡(luò)中部署鏈碼 2549.3.3 在測試網(wǎng)絡(luò)中調(diào)用鏈碼 2569.4 交易編程 2619.4.1 交易處理函數(shù)的類型 2619.4.2 定義交易處理函數(shù) 2619.4.3 利用交易處理函數(shù)優(yōu)化智能合約的代碼 2629.4.4 未知處理函數(shù)調(diào)用 2679.5 在開發(fā)模式下運(yùn)行鏈碼 2689.5.1 搭建環(huán)境 2689.5.2 啟動排序節(jié)點(diǎn) 2709.5.3 在開發(fā)模式下啟動Peer節(jié)點(diǎn) 2719.5.4 創(chuàng)建通道 2719.5.5 在開發(fā)模式下構(gòu)建鏈碼 2729.5.6 啟動鏈碼 2729.5.7 批準(zhǔn)和寫入鏈碼定義 2739.5.8 調(diào)用鏈碼 2759.6 私有數(shù)據(jù)編程 2759.6.1 私有數(shù)據(jù)集的定義 2759.6.2 在鏈碼中讀 寫私有數(shù)據(jù) 2789.6.3 私有數(shù)據(jù)編程示例程序 2809.7 本章小結(jié) 289習(xí) 題 289第 10章 客戶端應(yīng)用開發(fā)10.1 Fabric區(qū)塊鏈客戶端應(yīng)用開發(fā)概述 29110.1.1 Fabric SDK Go概述 29110.1.2 安裝Fabric SDK Go 29110.2 Fabric SDK Go的配置和依賴 29410.2.1 配置Fabric SDK Go 29510.2.2 管理Fabric SDK Go項(xiàng)目的依賴包 29810.3 使用Fabric SDK Go開發(fā)客戶端應(yīng)用 29910.3.1 Fabric SDK Go的開發(fā)包 29910.3.2 創(chuàng)建fabsdk實(shí)例 29910.3.3 通道客戶端編程 30010.3.4 賬本客戶端編程 30310.3.5 資源客戶端編程 30510.3.6 MSP客戶端編程 30710.4 gateway開發(fā)模型 30910.4.1 概述 30910.4.2 連接配置文件 31110.4.3 通過網(wǎng)關(guān)調(diào)用鏈碼 31510.5 本章小結(jié) 323習(xí) 題 323