Go語(yǔ)言Hyperledger區(qū)塊鏈開(kāi)發(fā)實(shí)戰(zhàn)
定 價(jià):89 元
Go語(yǔ)言是近年來(lái)非常流行的新興編程語(yǔ)言,它不僅是以太坊客戶端和Hyperledger Fabric區(qū)塊鏈平臺(tái)的開(kāi)發(fā)語(yǔ)言,而且廣泛應(yīng)用于區(qū)塊鏈應(yīng)用的開(kāi)發(fā)。本書介紹使用Go語(yǔ)言開(kāi)發(fā)的經(jīng)典聯(lián)盟鏈項(xiàng)目Hyperledger Fabric,它由Linux基金會(huì)管理。國(guó)外的微軟、摩根大通、世界銀行和國(guó)內(nèi)的華為、阿里巴巴、百度、騰訊等企業(yè)都參與了Hyperledger社區(qū)的建設(shè)。本書涵蓋Hyperledger Fabric區(qū)塊鏈平臺(tái)的體系結(jié)構(gòu)、各組件的工作原理和管理方法、Go語(yǔ)言的基本編程方法,以及使用Go語(yǔ)言開(kāi)發(fā)Hyperledger Fabric智能合約和應(yīng)用程序的方法。讀者在閱讀本書時(shí)可以充分了解和體驗(yàn)Hyperledger Fabric區(qū)塊鏈的強(qiáng)大功能,以及使用Go語(yǔ)言開(kāi)發(fā)區(qū)塊鏈應(yīng)用的便利。本書既可作為高等院校區(qū)塊鏈開(kāi)發(fā)Web應(yīng)用程序設(shè)計(jì)等課程的教材,也可作為區(qū)塊鏈應(yīng)用開(kāi)發(fā)人員的參考用書。
1.注重區(qū)塊鏈技術(shù)科普,巧妙激發(fā)讀者的學(xué)習(xí)興趣。區(qū)塊鏈平臺(tái)作為去中心化分布式系統(tǒng),它的工作原理和運(yùn)作方式與傳統(tǒng)的中心化系統(tǒng)有很大不同。為了使讀者充分理解基礎(chǔ)的技術(shù)框架和工作原理,本書第 1 章結(jié)合比特幣、以太坊等經(jīng)典區(qū)塊鏈平臺(tái)介紹區(qū)塊鏈技術(shù)的工作原理和底層技術(shù)。2.依托經(jīng)典開(kāi)發(fā)案例,形象解讀區(qū)塊鏈技術(shù)的抽象概念。作為區(qū)塊鏈應(yīng)用開(kāi)發(fā)的入門級(jí)教材,本書通過(guò)各種流程圖、結(jié)構(gòu)圖、架構(gòu)圖來(lái)描述區(qū)塊鏈技術(shù)的數(shù)據(jù)結(jié)構(gòu)和工作原理。全書介紹了多個(gè)基于 Fabric 區(qū)塊鏈的開(kāi)發(fā)案例,以及開(kāi)發(fā)智能合約與區(qū)塊鏈應(yīng)用的完整過(guò)程,為讀者理解抽象的概念提供捷徑。3.合理搭建內(nèi)容架構(gòu),助力讀者扎實(shí)培養(yǎng)綜合能力。本書在內(nèi)容編排上,區(qū)塊鏈技術(shù)科普、Hyperledger Fabric 各組件的管理與配置方法講解及 Go 語(yǔ)言智能合約與區(qū)塊鏈應(yīng)用開(kāi)發(fā)技術(shù)介紹并重。為了節(jié)省篇幅,編者將開(kāi)發(fā)實(shí)例做成電子資源提供給讀者下載使用。對(duì)于 Hyperledger Fabric 這種架構(gòu)復(fù)雜的企業(yè)級(jí)區(qū)塊鏈平臺(tái),理論與實(shí)例相結(jié)合可以達(dá)到更好的教學(xué)目的和學(xué)習(xí)效果。通過(guò)系統(tǒng)學(xué)習(xí),讀者很容易做到知其然、更知其所以然。4.配套豐富教輔資源,立體化服務(wù)高校人才培養(yǎng)。編者為使用本書的高校教師制作了配套的電子教案,并提供各章習(xí)題的參考答案、上機(jī)實(shí)驗(yàn)的電子文檔、重難知識(shí)點(diǎn)的微課視頻以及書中涉及的所有實(shí)例程序的源代碼。高校教師可以通過(guò)人郵教育社區(qū)(www.ryjiaoyu.com)下載上述資源。
軟件開(kāi)發(fā)工程師,畢業(yè)于吉林大學(xué)計(jì)算機(jī)系;自2006年以來(lái),帶領(lǐng)團(tuán)隊(duì)一直從事網(wǎng)絡(luò)管理軟件、企業(yè)ERP系統(tǒng)和電商平臺(tái)等的開(kāi)發(fā)與建設(shè)工作,具有中國(guó)投資銀行、國(guó)家開(kāi)發(fā)銀行、中信銀行等多家銀行從業(yè)經(jīng)歷,參與銀行信息化建設(shè)、網(wǎng)銀平臺(tái)開(kāi)發(fā)、區(qū)塊鏈與智能合約開(kāi)發(fā)工作多年,在系統(tǒng)軟件開(kāi)發(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ù)存儲(chǔ)與數(shù)據(jù)分發(fā)第7章 部署Fabric生產(chǎn)網(wǎng)絡(luò)第8章 Go 語(yǔ)言編程基礎(chǔ)第9章 智能合約開(kāi)發(fā)第 10章 客戶端應(yīng)用開(kāi)發(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ū)塊鏈平臺(tái) 81.2.1 區(qū)塊鏈技術(shù)的發(fā)展階段 81.2.2 比特幣 91.2.3 以太坊 111.2.4 Hyperledger 項(xiàng)目 121.2.5 區(qū)塊鏈編程語(yǔ)言 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ū)塊鏈平臺(tái)的體系結(jié)構(gòu) 192.1.3 排序服務(wù)與交易的流程 232.2 搭建示例網(wǎng)絡(luò)的過(guò)程 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)建一個(gè)聯(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語(yǔ)言環(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測(cè)試網(wǎng)絡(luò) 613.4.1 測(cè)試網(wǎng)絡(luò)的特點(diǎn) 613.4.2 啟動(dòng)和關(guān)閉測(cè)試網(wǎng)絡(luò) 613.4.3 創(chuàng)建通道 653.5 本章小結(jié) 67習(xí) 題 67第4章 Fabric區(qū)塊鏈的安全機(jī)制4.1 背景知識(shí) 684.1.1 許可鏈的概念 684.1.2 安全機(jī)制的重要意義 704.1.3 身份標(biāo)識(shí) 714.1.4 Idemix 734.2 Fabric CA 744.2.1 Fabric CA的工作原理 754.2.2 安裝Fabric CA 764.2.3 初始化和啟動(dòng)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 策略簡(jiǎn)介 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ū)塊鏈的共識(shí)算法 1255.3.2 排序節(jié)點(diǎn)上的通道管理 1275.3.3 配置排序節(jié)點(diǎn) 1285.4 客戶端命令行工具CLI 1335.4.1 配置客戶端 1335.4.2 通過(guò)CLI工具訪問(wèn)Fabric網(wǎng)絡(luò) 1355.5 Fabric測(cè)試網(wǎng)絡(luò)腳本解析 1355.5.1 啟動(dòng)測(cè)試網(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ù)存儲(chǔ)與數(shù)據(jù)分發(fā)6.1 數(shù)據(jù)存儲(chǔ) 1596.1.1 數(shù)據(jù)存儲(chǔ)結(jié)構(gòu) 1596.1.2 區(qū)塊數(shù)據(jù)的存儲(chǔ) 1606.1.3 交易數(shù)據(jù)的存儲(chǔ)和查詢 1646.1.4 狀態(tài)數(shù)據(jù)庫(kù) 1656.1.5 啟用CouchDB作為狀態(tài)數(shù)據(jù)庫(kù) 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ā)過(guò)程中的作用 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 從測(cè)試網(wǎng)絡(luò)過(guò)渡到生產(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 啟動(dòng)Docker容器 2017.3.6 配置Fabric生產(chǎn)網(wǎng)絡(luò) 2027.4 本章小結(jié) 204習(xí) 題 204第8章 Go 語(yǔ)言編程基礎(chǔ)8.1 Go語(yǔ)言概述 2068.1.1 Go語(yǔ)言的特色 2068.1.2 安裝Go語(yǔ)言環(huán)境 2078.1.3 Go語(yǔ)言的項(xiàng)目目錄 2088.1.4 Go語(yǔ)言IDE 2118.2 Go語(yǔ)言的常量、變量和數(shù)據(jù)類型 2158.2.1 常量 2158.2.2 變量 2158.2.3 數(shù)據(jù)類型 2158.3 常用語(yǔ)句 2188.3.1 賦值語(yǔ)句 2188.3.2 條件分支語(yǔ)句 2198.3.3 循環(huán)語(yǔ)句 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語(yǔ)言的并發(fā)編程 2318.6.2 Go語(yǔ)言的通道編程 2328.7 JSON處理 2348.7.1 JSON簡(jiǎn)介 2348.7.2 Go語(yǔ)言JSON處理編程 2348.8 函數(shù)編程 2378.8.1 定義和使用函數(shù) 2378.8.2 在函數(shù)中傳遞參數(shù) 2388.8.3 在函數(shù)中返回多個(gè)值 2398.8.4 結(jié)構(gòu)體類型和枚舉類型的函數(shù) 2398.9 本章小結(jié) 240習(xí) 題 240第9章 智能合約開(kāi)發(fā)9.1 Fabric智能合約概述 2429.1.1 智能合約的基本概念 2429.1.2 鏈碼的工作流程 2439.1.3 學(xué)習(xí)Go語(yǔ)言開(kāi)發(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 鏈碼編程與智能合約的測(cè)試 2539.3.1 在鏈碼中使用智能合約 2539.3.2 在測(cè)試網(wǎng)絡(luò)中部署鏈碼 2549.3.3 在測(cè)試網(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 在開(kāi)發(fā)模式下運(yùn)行鏈碼 2689.5.1 搭建環(huán)境 2689.5.2 啟動(dòng)排序節(jié)點(diǎn) 2709.5.3 在開(kāi)發(fā)模式下啟動(dòng)Peer節(jié)點(diǎn) 2719.5.4 創(chuàng)建通道 2719.5.5 在開(kāi)發(fā)模式下構(gòu)建鏈碼 2729.5.6 啟動(dòng)鏈碼 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)用開(kāi)發(fā)10.1 Fabric區(qū)塊鏈客戶端應(yīng)用開(kāi)發(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開(kāi)發(fā)客戶端應(yīng)用 29910.3.1 Fabric SDK Go的開(kāi)發(fā)包 29910.3.2 創(chuàng)建fabsdk實(shí)例 29910.3.3 通道客戶端編程 30010.3.4 賬本客戶端編程 30310.3.5 資源客戶端編程 30510.3.6 MSP客戶端編程 30710.4 gateway開(kāi)發(fā)模型 30910.4.1 概述 30910.4.2 連接配置文件 31110.4.3 通過(guò)網(wǎng)關(guān)調(diào)用鏈碼 31510.5 本章小結(jié) 323習(xí) 題 323