本書圍繞區(qū)塊鏈技術(shù)原理,重點剖析典型區(qū)塊鏈架構(gòu)的核心技術(shù)與知識點。全書共8章,包括區(qū)塊鏈技術(shù)原理概述、區(qū)塊鏈開發(fā)相關(guān)技術(shù)介紹、區(qū)塊鏈的區(qū)塊與賬本、區(qū)塊鏈的賬戶和交易、區(qū)塊鏈中節(jié)點間的通信、區(qū)塊鏈中的共識算法、區(qū)塊鏈中的智能合約以及綜合實訓(xùn):構(gòu)建完整的區(qū)塊鏈系統(tǒng)。全書采用“理論結(jié)合實踐”的教學(xué)方式,本書大部分章涉及區(qū)塊鏈核心技術(shù)的理論概述,在理論概述后設(shè)有對應(yīng)的程序設(shè)計實戰(zhàn)練習(xí),以便讀者在理論學(xué)習(xí)中能夠結(jié)合實際模擬區(qū)塊鏈操作,通過練習(xí)鞏固所學(xué)內(nèi)容。
本書可以作為高職高專院校區(qū)塊鏈及相關(guān)技術(shù)應(yīng)用專業(yè)區(qū)塊鏈技術(shù)原理課程的教材,也可以供計算機軟件開發(fā)人員、從事區(qū)塊鏈技術(shù)開發(fā)與維護工作的專業(yè)人員和區(qū)塊鏈技術(shù)愛好者自學(xué)使用,還可以作為“1+X”區(qū)塊鏈智能合約開發(fā)職業(yè)技能等級證書(中級)的考試參考書。
面向高等職業(yè)院校學(xué)生,注重素質(zhì)教育和就業(yè)技能提升。內(nèi)容簡明、結(jié)構(gòu)嚴謹、創(chuàng)新。
結(jié)合理論與實踐,培養(yǎng)專業(yè)技能和實踐能力。使用任務(wù)驅(qū)動、案例教學(xué)等方法,激發(fā)學(xué)生興趣,促進主動學(xué)習(xí)。
編寫團隊由經(jīng)驗豐富的一線教師和網(wǎng)絡(luò)工程師組成。
朱利華,教授,教育部首批國家級職業(yè)教育教師教學(xué)創(chuàng)新團隊、第二批“全國高校黃大年式教師團隊”、國家級教學(xué)團隊、江蘇省高校“青藍工程”優(yōu)秀教學(xué)團隊核心成員,先后獲江蘇省優(yōu)秀教育工作者、國家教學(xué)資源庫升級改造先進個人、常州高職園區(qū)技能競賽優(yōu)秀指導(dǎo)教師等稱號。先后獲國家教學(xué)成果一等獎1項、首屆國家教材建設(shè)一等獎1項、江蘇省教學(xué)成果一等獎1項、二等獎3項、校級教學(xué)成果獎2項。主要參與了高等職業(yè)教育軟件技術(shù)專業(yè)教學(xué)資源庫及升級改進工作、江蘇省軟件技術(shù)品牌專業(yè)(A類)建設(shè),主持完成國家教學(xué)資源庫子項目《軟件開發(fā)與項目管理》課程和案例資源建設(shè),江蘇省軟件技術(shù)專業(yè)群建設(shè)、負責(zé)“雙高計劃”軟件技術(shù)專業(yè)群申報及建設(shè)工作。完成國家精品資源共享課《Java程序設(shè)計》、國家精品在線開放課程《計算機應(yīng)用》《Java程序設(shè)計》建設(shè),主持建成在線開放課程《Java Web應(yīng)用開發(fā)》。主編、參編教材14部,其中“十二五”“十三五”國家規(guī)劃教材10部。
陶亞輝,工程師,常州信息職業(yè)技術(shù)學(xué)院區(qū)塊鏈技術(shù)應(yīng)用專業(yè)帶頭人,參與教育部牽頭《職業(yè)教育專業(yè)教學(xué)標準》的區(qū)塊鏈技術(shù)應(yīng)用專業(yè)相關(guān)標準制定工作,參與人社部區(qū)塊鏈應(yīng)用操作員新職業(yè)教材編寫工作,一帶一路金磚區(qū)塊鏈技術(shù)應(yīng)用大賽優(yōu)秀指導(dǎo)老師,具有多年的企業(yè)軟件開發(fā)經(jīng)驗,精通包括區(qū)塊鏈以及數(shù)據(jù)分析等技術(shù),先后從事區(qū)塊鏈賦能財會審計、教育、工業(yè)領(lǐng)域方面的項目開發(fā)與研究。主持過基于區(qū)塊鏈技術(shù)的化工類工業(yè)互聯(lián)網(wǎng)項目開發(fā)與設(shè)計,并獲得江蘇省常州市創(chuàng)新創(chuàng)業(yè)大賽二等獎。
第 1章 區(qū)塊鏈技術(shù)原理概述 1
1.1 區(qū)塊鏈基礎(chǔ)概念 2
1.1.1 區(qū)塊鏈概要 2
1.1.2 去中心化系統(tǒng) 3
1.2 區(qū)塊鏈核心技術(shù)與典型架構(gòu) 4
1.2.1 去中心化賬本 5
1.2.2 P2P網(wǎng)絡(luò)通信 6
1.2.3 加密算法 6
1.2.4 共識算法 7
1.2.5 智能合約 7
1.2.6 區(qū)塊鏈典型架構(gòu) 7
1.3 區(qū)塊鏈技術(shù)的特性 8
1.4 區(qū)塊鏈的分類 9
1.4.1 公有鏈 9
1.4.2 私有鏈 10
1.4.3 聯(lián)盟鏈 10
1.4.4 對比和總結(jié) 11
1.5 區(qū)塊鏈的應(yīng)用領(lǐng)域 11
1.5.1 區(qū)塊鏈在跨境結(jié)算中的應(yīng)用 11
1.5.2 區(qū)塊鏈在供應(yīng)鏈中的應(yīng)用 12
1.6 區(qū)塊鏈價值和前景 13
本章小結(jié) 13
本章習(xí)題 13
第 2章 區(qū)塊鏈開發(fā)相關(guān)技術(shù)介紹 15
2.1 開發(fā)環(huán)境準備 16
2.1.1 硬件環(huán)境準備 16
2.1.2 軟件環(huán)境準備 16
2.2 數(shù)據(jù)格式與Linux基礎(chǔ)命令 16
2.2.1 JSON數(shù)據(jù)格式 17
2.2.2 curl命令 17
2.2.3 tree命令 18
2.2.4 jq命令 19
2.3 Python Web服務(wù)端(Flask) 19
2.3.1 安裝Flask框架 19
2.3.2 搭建最小應(yīng)用 20
2.3.3 創(chuàng)建HTTP接口 21
2.4 密碼學(xué)基礎(chǔ) 24
2.4.1 哈希算法 24
2.4.2 非對稱加密算法 26
實戰(zhàn)練習(xí):構(gòu)建具備加密功能的Web服務(wù)端 33
本章小結(jié) 34
本章習(xí)題 34
第3章 區(qū)塊鏈的區(qū)塊與賬本 36
3.1 區(qū)塊與鏈的定義 36
3.1.1 區(qū)塊的基本概念 36
3.1.2 鏈式存儲 38
3.1.3 區(qū)塊間的聯(lián)系 38
3.2 區(qū)塊鏈中的賬本 40
3.2.1 賬本的基本概念 40
3.2.2 賬本的具體實現(xiàn) 40
實戰(zhàn)練習(xí):構(gòu)建簡單的區(qū)塊鏈賬本系統(tǒng) 45
本章小結(jié) 50
本章習(xí)題 50
第4章 區(qū)塊鏈的賬戶和交易 52
4.1 區(qū)塊鏈中的賬戶 52
4.1.1 賬戶公鑰和私鑰的生成方式 54
4.1.2 賬戶地址的生成方式 55
4.2 區(qū)塊鏈中的交易 58
4.2.1 交易的概念與基本要素 58
4.2.2 區(qū)塊中交易產(chǎn)生的過程 60
4.2.3 交易的驗證方法 63
4.2.4 區(qū)塊的驗證方法 64
實戰(zhàn)練習(xí)1:交易對象的創(chuàng)建 65
實戰(zhàn)練習(xí)2:數(shù)據(jù)的簽名與驗簽 67
實戰(zhàn)練習(xí)3:搭建賬戶和交易操作的區(qū)塊鏈示例系統(tǒng) 69
本章小結(jié) 86
本章習(xí)題 87
第5章 區(qū)塊鏈中節(jié)點間的通信 88
5.1 區(qū)塊鏈網(wǎng)絡(luò) 89
5.1.1 公有鏈網(wǎng)絡(luò) 89
5.1.2 聯(lián)盟鏈網(wǎng)絡(luò) 89
5.1.3 私有鏈網(wǎng)絡(luò) 90
5.1.4 基于Python NetworkX工具繪制網(wǎng)絡(luò) 90
5.2 P2P網(wǎng)絡(luò)通信 93
5.2.1 P2P網(wǎng)絡(luò)通信的基本概念 93
5.2.2 Socket通信的基本概念 94
5.2.3 基于Socket的區(qū)塊鏈P2P網(wǎng)絡(luò)通信 95
5.3 區(qū)塊鏈網(wǎng)絡(luò)的數(shù)據(jù)傳輸方式 100
5.3.1 Gossip的基本概念 100
5.3.2 基于Flask-APScheduler實現(xiàn)定時器 101
實戰(zhàn)練習(xí)1:繪制不同類型的區(qū)塊鏈網(wǎng)絡(luò) 104
實戰(zhàn)練習(xí)2:搭建基于Gossip的區(qū)塊鏈網(wǎng)絡(luò) 107
本章小結(jié) 121
本章習(xí)題 121
第6章 區(qū)塊鏈中的共識算法 123
6.1 區(qū)塊鏈共識算法 123
6.1.1 共識算法的基本原理 123
6.1.2 共識算法的分類 125
6.2 PoW算法 126
6.2.1 PoW算法的定義 126
6.2.2 PoW算法的優(yōu)缺點 127
6.2.3 目標值的生成方式 128
6.2.4 基于Python實現(xiàn)PoW算法 128
實戰(zhàn)練習(xí):搭建基于PoW算法的區(qū)塊鏈網(wǎng)絡(luò) 131
本章小結(jié) 144
本章習(xí)題 144
第7章 區(qū)塊鏈中的智能合約 145
7.1 智能合約的基本概念 146
7.1.1 智能合約與傳統(tǒng)合約的區(qū)別 146
7.1.2 智能合約的特性 147
7.2 區(qū)塊鏈與智能合約的關(guān)系 148
7.3 智能合約的工作原理 148
7.3.1 智能合約的“狀態(tài)” 149
7.3.2 智能合約的“模型” 150
7.4 智能合約在區(qū)塊鏈中的實現(xiàn)方式 151
7.4.1 智能合約在區(qū)塊鏈中的部署方式 151
7.4.2 智能合約在區(qū)塊鏈中的具體使用流程 152
實戰(zhàn)練習(xí)1:公有鏈部署智能合約 152
實戰(zhàn)練習(xí)2:聯(lián)盟鏈部署智能合約 156
本章小結(jié) 161
本章習(xí)題 161
第8章 綜合實訓(xùn):構(gòu)建完整的區(qū)塊鏈系統(tǒng) 163