本书是一本区块链技术入门级实战手册,从开发人员的角度介绍区块链技术,不仅详细阐释区块链相关概念和技术,还通过一系列深入且能够快速上手的案例,一步一步地指导读者实施典型的区块链项目。本书首先简要介绍区块链概念,然后基于以太坊、比特币和超级账本区块链展示不同的使用案例和实际操作。无论是初学者还是经验丰富的程序员,本书都可以帮助你快速上手各种不同类型的区块链技术,并全面了解各种区块链技术栈。
本书是一本区块链技术入门级实战手册,从开发人员的角度介绍区块链技术,不仅详细阐释区块链相关概念和技术,还通过具体的案例教你如何使用主流区块链解决方案构建项目。无论是初学者还是经验丰富的程序员,本书都可以帮助你快速上手各种不同类型的区块链技术,并全面了解各种区块链技术栈。
全书共10章,第1章介绍区块链技术的基本概念,第2章详细介绍比特币和智能合约,第3章介绍如何创建加密货币,第4章介绍以太坊创建去中心化应用的基本特征、理念和工具,第5章介绍利用Solidity语言更高级的性能和Truffle开发环境创建一个更复杂的去中心化应用,第6章关注智能合约如何用oracle和第三方API与外界互动,第7章介绍私有企业级区块链及相关应用案例,第8章介绍如何将去中心化的文件存储集成到去中心化应用中去,第9章介绍超级账本的主要理念、基本特征及其实际应用,第10章介绍如何用区块链实现两个银行和两个交易伙伴之间的信用证业务。
推荐序
译者序
前言
审校者简介
第1章 初识区块链 1
11 区块链和加密货币的兴起 2
111 从虚拟货币到加密货币 2
112 比特币的出现 2
113 什么是区块链 3
12 与区块链交互 5
121 入门 6
122 方法1——使用Bitcoin Core创建原始交易 10
123 方法2——用JavaScript创建原始比特币交易 18
13 区块链类型 21
14 小结 22
第2章 建立比特币支付系统 23
21 什么是比特币 23
22 开始使用比特币 24
221 设置Regtest环境 24
222 用比特币交易 26
23 构建支付网关 31
231 项目描述 31
232 准备环境 33
233 项目设置 33
234 商家方面 34
235 客户端 39
236 预览应用程序 42
24 使用BitcoinJ的支付协议 44
241 准备环境 44
242 BitcoinJ 客户端 45
25 比特币智能合约 51
251 什么是Rootstock 51
252 编写你的第一个比特币智能合约 54
26 小结 56
第3章 创建加密货币 57
31 从源代码处编译比特币 57
311 准备创建系统 58
312 创建Bitcoin Core 59
32 新加密货币——Readercoin 61
321 克隆比特币 61
322 重新包装Readercoin 62
323 更改端口 63
324 更改pchMessageStart 63
325 创世区块 64
326 删除种子节点 67
327 检查点 68
328 ChainTxData 69
329 奖励 70
3210 减半 70
3211 总供给量 71
3212 POW参数——目标 71
3213 时间成熟度 74
3214 区块大小 75
3215 BIP:比特币改进建议 76
3216 编译和测试 77
3217 设计和图形(Qt钱包) 78
3218 重新设计比特币-Qt钱包 79
3219 建立一个Readercoin 网络 84
3220 Readercoin 挖矿 86
3221 发送交易 89
3222 创建交易和区块浏览器 89
3223 建立交易所 92
33 小结 93
第4章 以太坊中的点对点拍卖 94
41 以太坊简介 95
411 以太坊虚拟机和智能合约 95
412 以太币和gas 96
413 你的第一个智能合约 96
414 DApp是什么 97
42 创建拍卖DApp 98
421 拍卖描述 98
422 使用Solidity语言编写拍卖合约 99
423 合约代码分析 100
424 继承 105
425 Remix IDE 110
426 web3js中的投标表格 113
427 web3js API简介 116
43 部署环境——方法多多 122
431 选择1:Ganache 122
432 选择2:测试网 124
433 选择3:私有网络 126
434 用solc编译和部署合约 132
435 POA共识机制和难度调整 132
44 运行拍卖DApp 134
441 合约和交易成本 135
442 Solidity 的几个实用技巧 138
45 小结 138
第5章 使用Truffle和Drizzle构建Tontine游戏 139
51 背景情况 140
52 快速了解Truffle 140
521 安装Truffle 141
522 简单了解Truffle 141
523 首次运行Truffle 142
53 Tontine合约 145
54 作为CRUD合约的Cplayer 147
541 智能合约数据位置 147
542 CRUD——创建 149
543 CRUD——读取 149
544 CRUD——更新 151
545 CRUD —— 删除 151
55 Tontine接口——Itontine 152
56 接口实现——Ctontine合约 153
561 智能合约交互 154
562 加入游戏 156
563 ping()方法 159
564 eliminate()方法 160
565 share_pension()方法 160
566 claimReward()方法 161
57 Truffle单元测试 162
571 准备测试环境 162
572 迁移合约 162
573 准备测试 163
574 测试addPlayer() 164
575 测试findPlayer() 164
576 测试removePlayer() 165
577 测试Ctontine 165
578 测试payable函数 166
579 测试事件 167
5710 测试claimReward() 167
5711 运行测试 169
5712 使用Solidity进行测试 169
5713 使用Truffle 和Remix进行调试 171
58 使用Drizzle的前端 180
581 准备环境 180
582 Drizzle box是什么 180
583 初次了解Drizzle box 181
584 黑客攻击Drizzle box 183
585 游戏主页 184
59 试用DApp 187
591 将Ganache连接到MetaMask 188
592 运行Tontine DApp 189
593 表演时间——准备好了吗 191
594 获取帮助 193
510 小结 194
第6章 以区块链为基础的期货系统 195
61 项目展示 195
62 期货智能合约 196
63 web3j 199
631 准备环境 200
632 设置web3j Maven 项目 200
633 安装web3j 202
634 创建钱包 202
64 Java客户端 203
641 封装生成器 205
642 初始化web3j 205
643 设置以太坊账户 206
644 部署合约 206
645 与智能合约交互 207
646 调用合约函数 207
647 调用 view 方法 209
648 web3j事件 209
649 性能提升 210
65 小结 211
第7章 商业区块链 212
71 区块链的公共与
温馨提示:请使用员工书屋的读者帐号和密码进行登录