展开全部

主编推荐语

区块链技术与实践:介绍以太坊和比特币公链DApp开发技巧。

内容简介

本书从必要的理论知识到编码实践,循序渐进地介绍以太坊和比特币公链DApp开发的技术要点。全书主要内容分4大部分:第一部分介绍区块链的一些重要基础知识;第二部分全面地介绍以太坊公链的应用基础,内容包含但不限于以太坊的大量术语;第三部分介绍以太坊智能合约整体开发与部署实践;第四部分以以太坊DApp钱包开发;第四部分介绍比特币的基础知识和比特币公链DApp开发实践。本书注重应用,代码注释详尽,适合IT技术开发者阅读,对于想了解以太坊和比特币公链及其DApp开发技术的人员尤为合适。

目录

  • 封面页
  • 书名页
  • 版权页
  • 内容简介
  • 作者简介
  • 前言
  • 目录
  • 第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 小结
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

清华大学出版社

清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。