《自学区块链:原理、技术及应用》一书透彻地浸润了区块链技术的丰富知识,并以实际应用为桥梁,打造了一座连接理论与实践的坚固桥梁,读者可随着作者的引导,深入区块链的奥秘之中,搭建起扎实的理论基础,铺开详实的案例,书中不仅讲解了密码学的核心原理,还展示了在Python、以太坊等平台上开发区块链应用的具体步骤,这无疑为开发者提供了实战的武器库,透过这本书,无论是新手还是有经验的开发者,都能感受到区块链技术演进的脉动,并把握紧要的行业趋势,是一种提升个人技能和市场竞争力的有效途径,书籍内容深入浅出,解答了区块链技术的实际应用疑问,同时也为学术界和培训机构提供了教材选择的新视角。
这不仅仅是一本学习区块链的自学教程,更是一本综合学习应用当前主流Web开发技术的实用教程。能够帮助开发者迅速掌握区块链项目的基本开发能力,从而具备更强的行业竞争力。本书简明扼要介绍区块链核心概念与原理;实例引导快速上手区块链项目开发(以太坊、超级账本、EOS等);融会贯通各类主流开发技术(Python、Solidity、Go、Docker、前端开发等)。本书由天善智能社区力荐,零基础入门区块链,读这本书就够了!
本书是一本系统介绍区块链理论知识和应用开发的教程。全书共8章,主要包括两部分的内容,区块链理论知识(1~3章):区块链概述、区块链中的密码学以及区块链的核心机制;区块链应用开发(4~8章):打造自己的区块链基于Python、以太坊之DApp开发实战、超级账本开发实战、EOS开发实战以及区块链综合应用开发实践。本书在系统介绍区块链理论知识的基础上,结合丰富的案例进行实践操作的讲解,力求引领读者在实践中深入理解区块链技术,掌握基于主流的区块链平台开发区块链实际应用的能力。本书可以作为区块链开发者的自学用书,也可作为开设区块链开发相关课程的各类院校、培训机构的教材。
目录
- 前言第1章 区块链概述1
- 1.1 什么是区块链1
- 1.1.1 区块链的概念2
- 1.1.2 区块的概念3
- 1.1.3 区块链的运行原理8
- 1.1.4 生成一个区块链8
- 1.2 区块链的技术构成与逻辑架构14
- 1.2.1 区块链的技术构成14
- 1.2.2 区块链的逻辑架构16
- 1.3 区块链的分类20
- 1.3.1 公有链、联盟链和私有链20
- 1.3.2 侧链和闪电网络21
- 1.4 区块链的特点21
- 1.5 区块链的发展历程22
- 1.6 区块链的典型应用24
- 1.6.1 加密数字货币的代表——比特币24
- 1.6.2 智能合约鼻祖——以太坊25
- 1.6.3 迪士尼区块链平台——龙链26
- 1.6.4 Linux基金会的开源账本——Hyperledger27
- 1.6.5 区块链操作系统——EOS28
- 1.7 区块链技术现状及展望29
- 1.7.1 区块链技术的现状29
- 1.7.2 未来的区块链30
- 第2章 区块链中的密码学31
- 2.1 哈希算法和哈希值31
- 2.1.1 什么是哈希算法和哈希值31
- 2.1.2 哈希算法的特点32
- 2.1.3 哈希算法的应用33
- 2.2 区块链中的加密学35
- 2.2.1 加解密算法36
- 2.2.2 椭圆曲线密码学36
- 2.2.3 Merkle树37
- 2.2.4 数字签名和数字证书38
- 第3章 区块链的核心机制40
- 3.1 共识机制40
- 3.1.1 共识问题的产生——拜占庭将军问题40
- 3.1.2 几个重要的共识机制43
- 3.2 账户、钱包和交易48
- 3.2.1 账户的概念48
- 3.2.2 钱包简介50
- 3.2.3 交易的过程51
- 3.3 智能合约53
- 3.3.1 智能合约的概念53
- 3.3.2 智能合约的特点和作用54
- 3.3.3 智能合约的应用场景54
- 第4章 打造自己的 一个区块链——基于Python56
- 4.1 Python基础56
- 4.1.1 Python简介56
- 4.1.2 Python基础语法66
- 4.1.3 Python区块链开发常用库70
- 4.2 基于Python实现区块链73
- 4.2.1 区块链原型的实现73
- 4.2.2 区块链之工作量证明75
- 4.2.3 钱包、账户和交易功能79
- 4.2.4 实现一个简单的分布式网络85
- 4.2.5 测试区块链网络功能89
- 第5章 以太坊之DApp开发实战92
- 5.1 什么是Dapp(去中心化应用)92
- 5.1.1 DApp的概念92
- 5.1.2 DApp的特点93
- 5.2 智能合约的开发以及使用96
- 5.2.1 本地以太坊环境的搭建97
- 5.2.2 Solidity语言简介106
- 5.2.3 智能合约的开发107
- 5.3 Truffle框架113
- 5.3.1 Truffle框架介绍113
- 5.3.2 Truffle的安装和常用命令113
- 5.3.3 Truffle中模板的使用115
- 5.4 DApp开发实例1——猜拳游戏117
- 5.5.1 使用Truffle创建项目117
- 5.5.2 智能合约实现118
- 5.5.3 猜拳游戏UI的实现120
- 5.6 DApp实例2——宠物商店123
- 5.6.1 宠物商店功能简述123
- 5.6.2 准备工作123
- 5.6.3 智能合约的实现和部署125
- 5.6.3 宠物商店的完整实现126
- 第6章 超级账本开发实战129
- 6.1 超级账本的架构129
- 6.1.1 超级账本的架构129
- 6.1.2 超级账本Fabric的架构132
- 6.1.3 超级账本的特点134
- 6.2 搭建超级账本开发环境134
- 6.2.1 Go语言简介及开发环境安装134
- 6.2.2 Docker简介及使用135
- 6.2.3 超级账本的本地环境安装140
- 6.3 Chaincode的开发使用141
- 6.3.1 什么是Chaincode141
- 6.3.2 Chaincode的开发使用142
- 6.3.3 Chaincode的打包143
- 6.4 超级账本开发实例一——建立一个Fabric网络144
- 6.4.1 构建 一个Fabric网络144
- 6.4.2 与Fabric网络的交互145
- 6.4.3 查询和更新超级账本148
- 6.5 超级账本开发实例二——fabcar区块链应用149
- 6.5.1 fabcar功能概述150
- 6.5.2 fabcar结构说明150
- 6.5.3 fabcar的开发和部署151
- 第7章 EOS开发实战158
- 7.1 EOS简介158
- 7.1.1 什么是EOS158
- 7.1.2 EOS的架构和特点158
- 7.2 EOS开发环境搭建160
- 7.3 EOS开发实例1——HelloWorld166
- 7.4 EOS实例2——一个简单的许愿树DApp169
- 第8章 区块链开发综合应用实践180
- 8.1 以太坊数据查询分析系统180
- 8.1.1 准备对接环境180
- 8.1.2 对接以太坊接口185
- 8.1.3 创建Flask应用189
- 8.1.4 实现查询和分析功能191
- 8.2 ERC20代币开发实例198
- 8.2.1 ERC20代币介绍198
- 8.2.2 ERC20代币开发——Mini Token199
- 8.3 基于Opensea平台的开发数字资产“加密猪”205
- 8.2.1 OpenSea介绍205
- 8.2.2 开发加密猪206