本书重介绍了以下内容: 区块的整体基础知识,包括区块的基本概念及其组成模块,比如的分叉与共识算法的实现种类等。 区块公之以太坊技术与应用,包括以太坊以及DApp的概念,区块的组成结构、钱包地址的生成、油费的计算方式、叔块的相关规则、交易的生命周期以及应用默克尔树实现账户模型。除了基础知识外,还有阶学习所涉及的智能合约发、发合约工具的介绍、节与测试币的获取以及RPC口调用等知识。此外,还有一些发实操中需要注意的特殊知识,比如余额查询的区块隔离性及零地址的含义等。在以太坊部分的*后章节中,综合所有的知识,通过编码实现了以太坊DApp技术发中的核心组件—以太坊中继应用。
售 价:¥
纸质售价:¥78.20购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
封面页
书名页
版权页
内容简介
作者简介
前言
目录
第1章 区块链基础知识
1.1 认识区块链
1.1.1 区块链的概念
1.1.2 链的分类
1.1.3 区块链能做什么
1.2 共识的作用
1.3 常见的共识算法
1.3.1 PoW算法
1.3.2 PoS算法
1.3.3 DPoS算法
1.3.4 共识算法的编码实现
1.4 链的分叉
1.4.1 软分叉
1.4.2 硬分叉
1.4.3 常见的分叉情况
1.4.4 PoW共识机制的51%算力攻击
1.5 小结
第2章 以太坊基础知识
2.1 什么是以太坊
2.2 以太坊的架构
2.3 什么是DApp
2.3.1 DApp概述
2.3.2 以太坊上的DApp
2.4 区块的组成
2.4.1 区块的定义
2.4.2 以太坊地址(钱包地址)
2.4.3 Nonce的作用
2.4.4 燃料费
2.4.5 GasUsed的计算
2.4.6 叔块
2.4.7 挖矿奖励
2.5 账户模型
2.5.1 比特币UTXO模型
2.5.2 Trie树
2.5.3 Patricia Trie树
2.5.4 默克尔树(Merkle Tree)
2.5.5 以太坊MPT树
2.5.6 MPT树节点存储到数据库
2.5.7 组建一棵MPT树
2.5.8 MPT树如何体现默克尔树的验证特点
2.5.9 以太坊钱包地址存储余额的方式
2.5.10 余额查询的区块隔离性
2.5.11 余额的查询顺序
2.5.12 UTXO模型和Account模型的对比
2.6 以太坊的版本演变
2.6.1 以太坊与PoW共识机制
2.6.2 君士坦丁堡
2.7 以太坊Ghost协议
2.8 Casper:PoS的变种共识机制
2.8.1 如何成为验证人
2.8.2 验证人如何获取保证金
2.8.3 候选区块的产生
2.8.4 胜出区块的判断
2.9 智能合约
2.9.1 简介与作用
2.9.2 合约标准
2.10 以太坊交易
2.10.1 交易的发起者、类型及发起交易的函数
2.10.2 交易和智能合约的关系
2.10.3 交易参数的说明
2.10.4 交易方法的真实含义
2.10.5 交易的状态
2.10.6 交易的打包
2.11 “代币”余额
2.12 以太坊浏览器
2.12.1 区块链浏览器访问合约函数
2.12.2 区块链浏览器查看交易记录
2.12.3 非ETH交易记录不能作为资产转账成功的依据
2.12.4 区块链浏览器查看智能合约的代码
2.13 以太坊零地址
2.13.1 零地址的交易转出假象
2.13.2 零地址的意义
2.14 以太坊2.0
2.14.1 核心组件
2.14.2 共识的流程
2.14.3 严谨的随机选择
2.15 小结
第3章 智能合约的编写、发布和调用
3.1 智能合约与以太坊DApp
3.2 认识Remix
3.3 实现加法程序
3.4 实现ERC20代币智能合约
3.4.1 定义标准变量
3.4.2 事件与构造函数
3.4.3 Solidity的常见关键字
3.4.4 授权与余额
3.4.5 转账函数
3.4.6 合约的代码安全
3.5 链上的合约
3.6 认识Mist
3.6.1 节点的切换
3.6.2 区块的同步方式
3.7 创建以太坊钱包
3.8 使用Mist转账代币
3.9 使用Mist发布智能合约
3.9.1 合约Solidity源码
3.9.2 认识ABI
3.9.3 提取ABI和Bytecode
3.9.4 使用Bytecode发布合约
3.9.5 使用合约的函数
3.10 Mist的替换品MyCrypto
3.10.1 安装MyCrypto
3.10.2 切换节点网络
3.10.3 使用MyCrypto创建钱包
3.10.4 使用MyCrypto转账代币
3.10.5 使用MyCrypto部署智能合约
3.11 小结
第4章 以太坊中继基础接口
4.1 认识以太坊中继
4.2 区块遍历
4.3 RPC接口
4.4 以太坊接口
4.4.1 重要接口详解
4.4.2 节点链接
4.4.3 获取链接
4.4.4 进行测试
4.4.5 获取测试币
4.5 项目准备
4.6 创建项目
4.7 第一个Go程序
4.8 封装RPC客户端
4.8.1 下载依赖库
4.8.2 编写RPC客户端
4.8.3 单元测试
4.9 编写访问接口代码
4.9.1 认识Call函数
4.9.2 查找请求的参数
4.9.3 实现获取交易信息
4.9.4 认识BatchCall函数
4.9.5 批量获取交易信息
4.9.6 批量获取代币余额
4.9.7 获取最新区块号
4.9.8 根据区块号获取区块信息
4.9.9 根据区块哈希值获取区块信息
4.9.10 使用eth_call访问智能合约函数
4.10 小结
第5章 中继服务程序的开发
5.1 创建以太坊钱包
5.1.1 以太坊钱包术语
5.1.2 创建钱包
5.2 实现以太坊交易
5.2.1 以太坊交易的原理
5.2.2 以太坊ETH的交易
5.3 区块事件监听
5.3.1 创建数据库
5.3.2 实现数据库的连接器
5.3.3 生成数据表
5.3.4 区块遍历器
5.3.5 理解监听区块事件
5.4 小结
第6章 比特币技术基础
6.1 比特币的架构
6.2 奖励机制
6.3 再看PoW共识
6.3.1 比特币区块头
6.3.2 比特币PoW的源码实现
6.3.3 比特币难度值的计算
6.4 地址的格式
6.4.1 私钥
6.4.2 公钥
6.4.3 地址
6.5 比特币虚拟机
6.5.1 虚拟机的特点
6.5.2 数据源
6.5.3 常见的操作码
6.5.4 虚拟机源码解析
6.6 再看UTXO
6.6.1 输入转换
6.6.2 交易的结构
6.6.3 统计余额
6.6.4 构建交易
6.7 验签过程
6.8 比特币锁定脚本
6.8.1 P2PKH
6.8.2 P2PK
6.8.3 P2SH
6.8.4 P2WPKH与P2WSH
6.9 小结
第7章 基于比特币公链的DApp案例
7.1 搭建比特币私有链
7.1.1 下载节点源码
7.1.2 目录结构
7.1.3 配置文件
7.1.4 启动比特币节点
7.1.5 启动终端控制程序
7.1.6 创建比特币钱包
7.1.7 导出或导入钱包私钥
7.1.8 主网的挖矿操作
7.1.9 私有网络挖矿
7.1.10 获得挖矿奖励
7.1.11 发送交易
7.2 OP_RETURN与智能合约
7.2.1 公链存储数据的需求
7.2.2 比特币的存储数据之法
7.2.3 智能合约方案——OP_RETURN
7.2.4 代码实现含有OP_RETURN的交易
7.2.5 发送OP_RETURN交易
7.2.6 解码默认的OP_RETURN
7.2.7 OP_RETURN数据的利用
7.3 比特币的常用RPC接口
7.3.1 重要接口介绍
7.3.2 获取节点连接
7.3.3 获取测试币
7.3.4 编写访问RPC接口代码
7.4 案例:实现获取交易状态的解析器
7.4.1 相关程序组件
7.4.2 流程设计
7.4.3 用链表实现队列功能
7.4.4 实现解析器
7.4.5 启动解析器
7.5 案例:构建去中心化数据存储系统
7.5.1 比特币区块遍历器的实现流程
7.5.2 创建数据库
7.5.3 区块遍历器的代码实现
7.5.4 把交易发送到本地节点
7.5.5 把数据存储到链上
7.5.6 解析所存储的数据
7.6 小结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜