描述
开 本: 16开纸 张: 轻型纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121403163
1. 本书是国内为数不多的讲解区块链实验实践的教材。
2. 本书选择的区块链实验系统全面、具有代表性。
3.本书知识点的讲解由浅入深,实验指导清晰。
4. 本书适应面广,既可以作为大中专学生及研究生学生教材,也可以作为从业者的参考用书。
本书内容包括9章。第1章为基于Go语言编写基本区块链,第2章为比特币客户端与回归测试网络,第3章为区块链浏览器与区块链钱包,第4章为以太坊客户端与分布式网络,第5章为IPFS-P2P私有网络搭建,第6章为超级账本项目Fabric实验,第7章为Solidity与智能合约在线编程,第8章为简单DApp的开发实践,第9章为自主设计实验,包括区块链共识算法实现与区块链扩容方案实现。本书可以作为计算科学、软件工程、信息安全、区块链工程等专业相关课程的配套教材,也可以作为区块链工程师的培训教材。
第1章 基于Go语言编写基本区块链 1
1.1 Go语言环境的配置 1
1.1.1 实验目的 1
1.1.2 实验环境 1
1.1.3 实验步骤 2
1.1.4 实验报告 2
1.2 Go语言入门 2
1.2.1 实验目的 2
1.2.2 原理简介 3
1.2.3 实验环境 6
1.2.4 实验步骤 6
1.2.5 实验报告 7
1.3 使用Go语言构建区块 8
1.3.1 实验目的 8
1.3.2 原理简介 8
1.3.3 实验环境 8
1.3.4 实验步骤 8
1.3.5 实验报告 9
1.4 使用Go语言实现一条区块链 9
1.4.1 实验目的 9
1.4.2 原理简介 9
1.4.3 实验环境 9
1.4.4 实验步骤 10
1.4.5 实验报告 10
1.5 添加工作量证明模块 10
1.5.1 实验目的 10
1.5.2 原理简介 10
1.5.3 实验环境 12
1.5.4 实验步骤 12
1.5.5 实验报告 12
1.6 阅读代码:添加数据库 13
1.6.1 实验目的 13
1.6.2 原理简介 13
1.6.3 实验环境 15
1.6.4 实验步骤 15
1.6.5 实验报告 15
1.7 拓展实验:添加命令行接口 16
1.8 本章实验报告模板 16
第2章 比特币客户端与回归测试网络 22
2.1 Bitcoin Core的安装和配置 22
2.1.1 实验目的 22
2.1.2 原理简介 22
2.1.3 实验环境 23
2.1.4 实验步骤 23
2.1.5 实验报告 27
2.2 远程调用搭建回归测试网络 27
2.2.1 实验目的 27
2.2.2 原理简介 27
2.2.3 实验环境 28
2.2.4 实验步骤 28
2.2.5 实验报告 32
2.3 拓展实验:利用回归测试网络模拟并测试复杂的区块链状态与功能 32
2.4 本章实验报告模板 32
第3章 区块链浏览器与区块链钱包 37
3.1 区块链浏览器的基本操作 37
3.1.1 实验目的 37
3.1.2 原理简介 38
3.1.3 实验环境 38
3.1.4 实验步骤 38
3.1.5 实验报告 44
3.2 利用区块链浏览器学习区块链账本层构造 44
3.2.1 实验目的 44
3.2.2 原理简介 44
3.2.3 实验环境 44
3.2.4 实验步骤 44
3.2.5 实验报告 48
3.3 利用区块链浏览器解析并学习以太坊合约层构造 48
3.3.1 实验目的 48
3.3.2 实验环境 48
3.3.3 实验步骤 48
3.3.4 实验报告 51
3.4 体验区块链钱包原理 51
3.4.1 实验目的 51
3.4.2 原理简介 51
3.4.3 实验环境 52
3.4.4 实验步骤 52
3.4.5 实验报告 54
3.5 拓展实验:批量获取并分析区块链元数据 54
3.6 本章实验报告模板 55
第4章 以太坊客户端与分布式网络 62
4.1 搭建分布式节点网络 62
4.1.1 实验目的 62
4.1.2 实验环境 62
4.1.3 实验步骤 62
4.1.4 实验报告 70
4.2 与控制台进行交互 70
4.2.1 实验目的 70
4.2.2 实验环境 70
4.2.3 实验步骤 70
4.2.4 实验报告 71
4.3 拓展实验:测试以太坊的吞吐率 72
4.4 本章实验报告模板 72
第5章 IPFS-P2P私有网络搭建 75
5.1 IPFS安装和P2P网络搭建 75
5.1.1 实验目的 75
5.1.2 原理简介 75
5.1.3 实验环境 76
5.1.4 实验步骤 76
5.1.5 实验报告 80
5.2 拓展实验:多人文件传输测试 80
5.3 本章实验报告模板 80
第6章 超级账本项目Fabric实验 84
6.1 Fabric环境的配置 84
6.1.1 实验目的 84
6.1.2 原理简介 84
6.1.3 实验环境 85
6.1.4 实验步骤 85
6.1.5 实验报告 88
6.2 first-network的启动和Channel的配置 88
6.2.1 实验目的 88
6.2.2 原理简介 89
6.2.3 实验环境 89
6.2.4 实验步骤 89
6.2.5 实验报告 91
6.3 链码的安装和实例化 91
6.3.1 实验目的 91
6.3.2 原理简介 92
6.3.3 实验环境 92
6.3.4 实验步骤 92
6.3.5 实验报告 93
6.4 拓展实验:使用CouchDB进行富查询 93
6.5 本章实验报告模板 93
第7章 Solidity与智能合约在线编程 97
7.1 Solidity基础入门 97
7.1.1 实验目的 97
7.1.2 原理简介 97
7.1.3 实验环境 101
7.1.4 实验步骤 101
7.1.5 实验报告 102
7.2 Solidity进阶:宠物成长系统 102
7.2.1 实验目的 102
7.2.2 原理简介 103
7.2.3 实验环境 105
7.2.4 实验步骤 105
7.2.5 实验报告 106
7.3 Solidity高阶理论 107
7.3.1 实验目的 107
7.3.2 原理简介 107
7.3.3 实验环境 111
7.3.4 实验步骤 111
7.3.5 实验报告 112
7.4 支付系统 112
7.4.1 实验目的 112
7.4.2 原理简介 112
7.4.3 实验环境 114
7.4.4 实验步骤 114
7.4.5 实验报告 114
7.5 “战斗”升级 114
7.5.1 实验目的 114
7.5.2 原理简介 114
7.5.3 实验环境 115
7.5.4 实验步骤 115
7.5.5 实验报告 115
7.6 拓展实验 115
7.6.1 ERC20代币合约 115
7.6.2 拍卖合约 116
7.7 本章实验报告模板 116
第8章 简单DApp的开发实践 125
8.1 简单DApp的搭建和测试 125
8.1.1 实验目的 125
8.1.2 原理简介 125
8.1.3 实验环境 126
8.1.4 实验步骤 126
8.1.5 实验报告 137
8.2 拓展实验:抵押机制和门限签名 138
8.3 本章实验报告模板 138
第9章 自主设计实验 144
9.1 共识算法的实现与测试 144
9.1.1 实验目的 144
9.1.2 实验概述 144
9.1.3 原理简介 144
9.1.4 实验环境 146
9.1.5 实验步骤 146
9.1.6 实验报告 149
9.2 区块链的瓶颈和扩容方案 149
9.2.1 实验目的 149
9.2.2 实验概述 150
9.2.3 原理简介 150
9.2.4 实验步骤 157
9.2.5 实验报告 158
9.3 本章实验报告模板 159
参考文献 160
前 言
近年来,区块链产业蓬勃发展,区块链技术在国内外高校和研究机构中受重视程度越来越高。国内有数十所高校开设了区块链理论课程和区块链实验课程。现有区块链方面的图书大多偏重原理和潜在影响,缺少系统深入的技术实践,尤其缺少区块链工程实验和实践的图书,难以帮助区块链技术从业者、学习区块链课程的学生等读者真正了解并动手实践区块链技术。
习近平总书记2019年10月在中央政治局第十八次集体学习时强调“要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展”。本书正是为了积极响应号召而编写的,同时力求符合由工业和信息化部信息化和软件服务业司指导、工业和信息化部中国电子技术标准化研究院在“中国区块链技术和产业发展论坛第二届开发大会”上发布的《区块链 数据格式规范》。
2020年2月,教育部公布《普通高等学校本科专业目录(2020年版)》,新增“区块链工程(080917T)”专业。
本书将区块链实验分为“基本实验”“拓展实验”“自主设计实验”三个层次,帮助读者在学习理论知识和动手实践的过程中,实现对难度、层次、广度逐步深入化、综合化、创新化的实验的理解和掌握。本书将为区块链工程专业的开设提供支持。
本书凝聚了国内外区块链研究领域的著名工程案例,积累了作者团队多年的研发成果,是一本独具特色、通俗易懂、由浅入深、实用性强的实验教材。本书通过原理学习、独立实验、撰写报告、自主设计等方式,一方面,使读者系统地了解区块链系统的架构,包括分布式存储、对等网络、共识机制和智能合约等;另一方面,使读者深入探究区块链系统中涉及的具体密码学算法和协议,理论与实践相结合,在工程实践中总结创新,提升综合技能。
本书内容主要包括9章。
第1章为基于Go语言编写基本区块链,主要涉及Go语言的入门实验,包括使用Go语言实现一个区块、一条链、简单的挖矿等区块链基本实验操作,以培养读者对区块链系统工程开发的初步认知。
第2~4章涵盖了经典的代表性数字货币系统——比特币、以太坊的客户端、区块链浏览器、区块链钱包等应用的使用方法,进一步搭建分布式网络,帮助读者直观地学习区块链系统最初的架构和系统机制。
第5~6章选取了近年来区块链的知名项目——IPFS底层存储系统和超级账本旗下的Fabric联盟链,让读者深入了解区块链的存储安全、网络安全、隐私安全等安全特征。
第7~8章围绕基于以太坊的DApp开发,设置“Solidity与智能合约在线编程”和“简单DApp的开发实践”两个连贯的实验,从智能合约编程语言的学习到上层应用的开发,整个过程可以帮助读者对区块链合约层和应用层的调用逻辑及相关关键技术有更进一步的了解。
第9章安排了两个自主设计实验,不再限定实验步骤和实验环境,由读者根据前面章节的学习自由发挥,以便了解区块链的底层共识机制和第二层扩容协议,对整个区块链系统形成全方位、多层次的认识。
参加本书编写的人员有伍前红、韩天煦、张宗洋、关振宇、秦波等,伍前红规划设计了全书实验并进行了统一校验和审查。参与第1章编写的有张宗洋、牛俊翔等,参与第2章编写的有伍前红、王明明等,参与第3章的有关振宇、韩天煦等,参与第4、5章编写的有伍前红、韩尚滨等,参与第6章编写的有秦波、韩天煦等,参与第7章编写的有张宗洋、翟明哲、牛俊翔等,参与第8章编写的有关振宇、谢平等,参与第9章编写的有伍前红、韩天煦、辜智强等。北京航空航天大学的郑海彬、李冰雨等博士后,朱焱、冯翰文、范家良、代小鹏、王堃等博士生,高启元、赵杭、刘一欣、戴品双、罗正球、李彤等硕士生,以及中国人民大学的王李笑阳、胡晟、耿一夫、杨子涵等硕士生,为本书的实验资料采集、实验图片整理、实验步骤校对、实验验证做了大量工作。作者在此向他们表示真诚的感谢。
在本书编写过程中,我们特别得到了北京航空航天大学刘建伟教授、中国人民大学石文昌教授的关心、鼓励和大力支持,以及中山大学张方国教授、西安电子科技大学陈晓峰教授、北京理工大学祝烈煌教授、暨南大学翁健教授和吴永东教授、中国科学院信息工程研究所吴槟副研究员等的指导和宝贵建议。特别感谢福建师范大学黄欣沂教授、南京航空航天大学刘哲教授、武汉大学何德彪教授、桂林电子科技大学丁勇教授,他们在区块链综合应用实验室的建设中给予了大量的帮助和支持。作者在此向他们一并表示衷心的感谢。
特别感谢戴晨辰编辑。作为本书的责任编辑,戴晨辰编辑认真审阅本书的每个细节并提出了很多宝贵的意见和建议,作者在此向她表示特别的感谢。
本书得到了科技部重点研发计划项目“支持异构多链互通的新型跨链体系研究”(项目编号:2020YFB10056)、“基于区块链的数据隐蔽传输与利用”(项目编号:2019QY(Y)0602)、“电子货币新算法与新原理研究”(项目编号:2017YFB0802500)、国家自然科学基金重点项目“基于区块链的物联网安全技术研究”(基金编号:61932011)、国家自然科学基金面上项目“分布式虚拟私有存储安全模型与关键密码学方法研究”(基金编号:61972019)、“超大规模可管控数字货币形式化安全模型与关键密码学方法”(基金编号:61772538)的支持。
本书旨在为读者提供区块链工程实践的入门学习案例,但由于涉及的系统种类繁多、知识面广,加之时间紧张、水平有限,一定存在诸多不足之处,恳请广大读者批评指正。
作 者
2020年11月
评论
还没有评论。