区块链是一个防篡改的去中心化账本,其中包含不断增长的数据记录列表。每个用户都可以连接到网络,发送新的交易、验证交易和创建新的区块。
本书将阐释区块链的概念,讲述其如何保证数据真实性,以及如何使用以太坊创建现实世界的区块链项目。通过有趣的现实世界案例,读者将了解如何编写完全按照程序运行、没有欺诈、没有中心机构或者第三方干预的智能合约,并学习如何创建端到端的区块链应用。本书还将介绍加密货币中的密码学、以太币安全、挖矿、智能合约和Solidity等概念。
译者序
前言
第1章 去中心化应用
1.1 什么是DApp
1.2 去中心化自治组织
1.3 DApp中的用户身份
1.4 DApp中的用户账户
1.5 访问中心化应用
1.6 DApp中的内部货币
1.7 什么是授权的DApp
1.8 热门的DApp
1.9 总结
第2章 以太坊的工作原理
2.1 以太坊概览
2.2 以太坊账户
2.3 交易
2.4 共识
2.5 时间戳
2.6 随机数
2.7 区块时间
2.8 分叉
2.9 创世区块
2.10 以太币面值
2.11 以太坊虚拟机
2.12 gas
2.13 发现对等节点
2.14 Whisper和Swarm
2.15 geth
2.16 以太坊钱包
2.17 浏览器钱包
2.18 以太坊的缺点
2.19 serenity
2.20 总结
第3章 编写智能合约
3.1 Solidity源文件
3.2 智能合约的结构
3.3 数据位置
3.4 什么是不同的数据类型
3.5 控制结构
3.6 用new操作符创建合约
3.7 异常
3.8 外部函数调用
3.9 合约功能
3.10 库
3.11 返回多值
3.12 导入其他Solidity源文件
3.13 全局可用变量
3.14 以太币单位
3.15 存在、真实性和所有权合约的证明
3.16 编译和部署合约
3.17 总结
第4章 开始使用web3.js
4.1 web3.js概述
4.2 为所有权合约创建客户端
4.3 总结
第5章 创建钱包服务
5.1 在线钱包和离线钱包的区别
5.2 Hooked-Web3-Provider和EthereumJS-tx库
5.3 分层确定性钱包
5.4 密钥衍生函数
5.5 LightWallet
5.6 创建钱包服务
5.7 总结
第6章 创建智能合约部署平台
6.1 计算一个地址的交易nonce
6.2 solcjs概述
6.3 创建合约部署平台
6.4 总结
第7章 创建投注App
7.1 Oraclize概述
7.2 处理字符串
7.3 创建投注合约
7.4 为投注合约创建客户端
7.5 总结
第8章 创建企业级智能合约
8.1 探索ethereumjs-testrpc
8.2 什么是事件主题
8.3 开始使用truffle-contract
8.4 truffle概述
8.5 总结
第9章 创建联盟区块链
9.1 什么是联盟区块链
9.2 什么是权威证明共识
9.3 parity概述
9.4 总结