本书围绕区块链技术原理,重点剖析典型区块链架构的核心技术与知识点。全书共8章,包括区块链技术原理概述、区块链开发相关技术介绍、区块链的区块与账本、区块链的账户和交易、区块链中节点间的通信、区块链中的共识算法、区块链中的智能合约以及综合实训:构建完整的区块链系统。全书采用“理论结合实践”的教学方式,本书大部分章涉及区块链核心技术的理论概述,在理论概述后设有对应的程序设计实战练习,以便读者在理论学习中能够结合实际模拟区块链操作,通过练习巩固所学内容。
本书可以作为高职高专院校区块链及相关技术应用专业区块链技术原理课程的教材,也可以供计算机软件开发人员、从事区块链技术开发与维护工作的专业人员和区块链技术爱好者自学使用,还可以作为“1+X”区块链智能合约开发职业技能等级证书(中级)的考试参考书。
面向高等职业院校学生,注重素质教育和就业技能提升。内容简明、结构严谨、创新。
结合理论与实践,培养专业技能和实践能力。使用任务驱动、案例教学等方法,激发学生兴趣,促进主动学习。
编写团队由经验丰富的一线教师和网络工程师组成。
朱利华,教授,教育部首批国家级职业教育教师教学创新团队、第二批“全国高校黄大年式教师团队”、国家级教学团队、江苏省高校“青蓝工程”优秀教学团队核心成员,先后获江苏省优秀教育工作者、国家教学资源库升级改造先进个人、常州高职园区技能竞赛优秀指导教师等称号。先后获国家教学成果一等奖1项、首届国家教材建设一等奖1项、江苏省教学成果一等奖1项、二等奖3项、校级教学成果奖2项。主要参与了高等职业教育软件技术专业教学资源库及升级改进工作、江苏省软件技术品牌专业(A类)建设,主持完成国家教学资源库子项目《软件开发与项目管理》课程和案例资源建设,江苏省软件技术专业群建设、负责“双高计划”软件技术专业群申报及建设工作。完成国家精品资源共享课《Java程序设计》、国家精品在线开放课程《计算机应用》《Java程序设计》建设,主持建成在线开放课程《Java Web应用开发》。主编、参编教材14部,其中“十二五”“十三五”国家规划教材10部。
陶亚辉,工程师,常州信息职业技术学院区块链技术应用专业带头人,参与教育部牵头《职业教育专业教学标准》的区块链技术应用专业相关标准制定工作,参与人社部区块链应用操作员新职业教材编写工作,一带一路金砖区块链技术应用大赛优秀指导老师,具有多年的企业软件开发经验,精通包括区块链以及数据分析等技术,先后从事区块链赋能财会审计、教育、工业领域方面的项目开发与研究。主持过基于区块链技术的化工类工业互联网项目开发与设计,并获得江苏省常州市创新创业大赛二等奖。
第 1章 区块链技术原理概述 1
1.1 区块链基础概念 2
1.1.1 区块链概要 2
1.1.2 去中心化系统 3
1.2 区块链核心技术与典型架构 4
1.2.1 去中心化账本 5
1.2.2 P2P网络通信 6
1.2.3 加密算法 6
1.2.4 共识算法 7
1.2.5 智能合约 7
1.2.6 区块链典型架构 7
1.3 区块链技术的特性 8
1.4 区块链的分类 9
1.4.1 公有链 9
1.4.2 私有链 10
1.4.3 联盟链 10
1.4.4 对比和总结 11
1.5 区块链的应用领域 11
1.5.1 区块链在跨境结算中的应用 11
1.5.2 区块链在供应链中的应用 12
1.6 区块链价值和前景 13
本章小结 13
本章习题 13
第 2章 区块链开发相关技术介绍 15
2.1 开发环境准备 16
2.1.1 硬件环境准备 16
2.1.2 软件环境准备 16
2.2 数据格式与Linux基础命令 16
2.2.1 JSON数据格式 17
2.2.2 curl命令 17
2.2.3 tree命令 18
2.2.4 jq命令 19
2.3 Python Web服务端(Flask) 19
2.3.1 安装Flask框架 19
2.3.2 搭建最小应用 20
2.3.3 创建HTTP接口 21
2.4 密码学基础 24
2.4.1 哈希算法 24
2.4.2 非对称加密算法 26
实战练习:构建具备加密功能的Web服务端 33
本章小结 34
本章习题 34
第3章 区块链的区块与账本 36
3.1 区块与链的定义 36
3.1.1 区块的基本概念 36
3.1.2 链式存储 38
3.1.3 区块间的联系 38
3.2 区块链中的账本 40
3.2.1 账本的基本概念 40
3.2.2 账本的具体实现 40
实战练习:构建简单的区块链账本系统 45
本章小结 50
本章习题 50
第4章 区块链的账户和交易 52
4.1 区块链中的账户 52
4.1.1 账户公钥和私钥的生成方式 54
4.1.2 账户地址的生成方式 55
4.2 区块链中的交易 58
4.2.1 交易的概念与基本要素 58
4.2.2 区块中交易产生的过程 60
4.2.3 交易的验证方法 63
4.2.4 区块的验证方法 64
实战练习1:交易对象的创建 65
实战练习2:数据的签名与验签 67
实战练习3:搭建账户和交易操作的区块链示例系统 69
本章小结 86
本章习题 87
第5章 区块链中节点间的通信 88
5.1 区块链网络 89
5.1.1 公有链网络 89
5.1.2 联盟链网络 89
5.1.3 私有链网络 90
5.1.4 基于Python NetworkX工具绘制网络 90
5.2 P2P网络通信 93
5.2.1 P2P网络通信的基本概念 93
5.2.2 Socket通信的基本概念 94
5.2.3 基于Socket的区块链P2P网络通信 95
5.3 区块链网络的数据传输方式 100
5.3.1 Gossip的基本概念 100
5.3.2 基于Flask-APScheduler实现定时器 101
实战练习1:绘制不同类型的区块链网络 104
实战练习2:搭建基于Gossip的区块链网络 107
本章小结 121
本章习题 121
第6章 区块链中的共识算法 123
6.1 区块链共识算法 123
6.1.1 共识算法的基本原理 123
6.1.2 共识算法的分类 125
6.2 PoW算法 126
6.2.1 PoW算法的定义 126
6.2.2 PoW算法的优缺点 127
6.2.3 目标值的生成方式 128
6.2.4 基于Python实现PoW算法 128
实战练习:搭建基于PoW算法的区块链网络 131
本章小结 144
本章习题 144
第7章 区块链中的智能合约 145
7.1 智能合约的基本概念 146
7.1.1 智能合约与传统合约的区别 146
7.1.2 智能合约的特性 147
7.2 区块链与智能合约的关系 148
7.3 智能合约的工作原理 148
7.3.1 智能合约的“状态” 149
7.3.2 智能合约的“模型” 150
7.4 智能合约在区块链中的实现方式 151
7.4.1 智能合约在区块链中的部署方式 151
7.4.2 智能合约在区块链中的具体使用流程 152
实战练习1:公有链部署智能合约 152
实战练习2:联盟链部署智能合约 156
本章小结 161
本章习题 161
第8章 综合实训:构建完整的区块链系统 163