
作者:(摩洛哥)贝拉·巴德(BellajBad
页数:313
出版社:机械工业出版社
出版日期:2018
ISBN:9787111639985
电子书格式:pdf/epub/txt
内容简介
人们普遍认为,区块链是一种颠覆性的技术,已经震撼了IT领域。因此,它越来越引起许多开发人员的兴趣。然而根据我的经验,对于初学者来说,很难找到一个有用的指南——用很简单的术语解释区块链,并用具体的案例教你如何使用主流区块链解决方案构建项目。
本书旨在改变这种情况,并从开发人员的角度介绍区块链技术。这是一项具有巨大潜在价值的事业,贝拉和他的合著者在这方面进行了充分发挥。
事实上,本书将帮助你一步一步地用不同的概念和技术——比特币(Bitcoin)、以太坊(Ethereum)、Quorum和不错账本(Hyperledger)——从头开始建立现实的项目。在其他主题
中,你将学到开发人员如何创建代币、在业务中实现隐私保护解决方案等。
本书不仅适合初学者。它也可向经验丰富的程序员很好地介绍区块链技术,甚至提高成熟开发人员的开发速度。如果你在初学本书时对区块链有些了解,阅读本书会有所裨益,但是如果你不了解区块链,坚持下去,也能在前进的过程中了解区块链的基本理念。
作者简介
贝拉·巴德(Bellaj Badr),
是一位经验丰富的安全和软件工程师,他热爱区块链。目前,他是Mchain公司的首席技术官,这是一家为企业开发区块链解决方案的区块链初创公司。除了担任首席技术官外,他还担任技术顾问,为全球许多公司提供战略和技术咨询。除此之外,他还参与了许多涉及建立新的面向区块链业务协议的区块链项目。
理查德·霍洛克(Richard Horrocks),
是一位以太坊和全栈自由职业开发者,他住在英国,拥有剑桥大学自然科学学士和理学硕士学位。他曾在Cisco Systems公司担任技术负责人多年,在该公司从事运营商级路由硬件操作系统的工作。自2015年以来,他一直在从事以太坊和其他加密货币方面的研究工作。
吴勋(Xun(Brian)Wu),
SmartChart公司的创始人和首席执行官。他在区块链、大数据、云计算、用户界面和系统基础设施实践、设计和开发方面拥有超过16年的丰富经验。他为数家区块链初创公司担任董事会顾问,并拥有数项区块链专利。
译者简介
董宁,智链万源CEO,北京大学新一代信息技术研究院金融科技研究中心主任,原IBM大中华区IT经济学负责人,IBM区块链社区发起人。
朱轩彤,清华大学硕士,中国社会科学院数量经济与技术经济研究所博士生。
王冰,人民大学博士,专注于企业科技创新研究。
岳蕾,北京交通大学硕士,参与多个重点科技项目研究。
本书特色
本书开始部分对区块链概念进行介绍和高度概括,然后基于以太坊、比特币和超级账本区块链展示不同的使用案例和实际操作。具体内容包括区块链技术的基本概念、创建加密货币、Solidity 智能合约语言、使用Truffle和Drizzle构建Tontine游戏、以区块链为基础的期货系统、商业区块链、分布式存储IPFS和Swarm、超级账本上的供应链、信用证超级账本。
目录
译者序
前言
审校者简介
第1章 初识区块链 1
1.1 区块链和加密货币的兴起 2
1.1.1 从虚拟货币到加密货币 2
1.1.2 比特币的出现 2
1.1.3 什么是区块链 3
1.2 与区块链交互 5
1.2.1 入门 6
1.2.2 方法1——使用Bitcoin Core创建原始交易 10
1.2.3 方法2——用JavaScript创建原始比特币交易 18
1.3 区块链类型 21
1.4 小结 22
第2章 建立比特币支付系统 23
2.1 什么是比特币 23
2.2 开始使用比特币 24
2.2.1 设置Regtest环境 24
2.2.2 用比特币交易 26
2.3 构建支付网关 31
2.3.1 项目描述 31
2.3.2 准备环境 33
2.3.3 项目设置 33
2.3.4 商家方面 34
2.3.5 客户端 39
2.3.6 预览应用程序 42
2.4 使用BitcoinJ的支付协议 44
2.4.1 准备环境 44
2.4.2 BitcoinJ 客户端 45
2.5 比特币智能合约 51
2.5.1 什么是Rootstock 51
2.5.2 编写你的第一个比特币智能合约 54
2.6 小结 56
第3章 创建加密货币 57
3.1 从源代码处编译比特币 57
3.1.1 准备创建系统 58
3.1.2 创建Bitcoin Core 59
3.2 新加密货币——Readercoin 61
3.2.1 克隆比特币 61
3.2.2 重新包装Readercoin 62
3.2.3 更改端口 63
3.2.4 更改pchMessageStart 63
3.2.5 创世区块 64
3.2.6 删除种子节点 67
3.2.7 检查点 68
3.2.8 ChainTxData 69
3.2.9 奖励 70
3.2.10 减半 70
3.2.11 总供给量 71
3.2.12 POW参数——目标 71
3.2.13 时间成熟度 74
3.2.14 区块大小 75
3.2.15 BIP:比特币改进建议 76
3.2.16 编译和测试 77
3.2.17 设计和图形(Qt钱包) 78
3.2.18 重新设计比特币-Qt钱包 79
3.2.19 建立一个Readercoin 网络 84
3.2.20 Readercoin 挖矿 86
3.2.21 发送交易 89
3.2.22 创建交易和区块浏览器 89
3.2.23 建立交易所 92
3.3 小结 93
第4章 以太坊中的点对点拍卖 94
4.1 以太坊简介 95
4.1.1 以太坊虚拟机和智能合约 95
4.1.2 以太币和gas 96
4.1.3 你的第一个智能合约 96
4.1.4 DApp是什么 97
4.2 创建拍卖DApp 98
4.2.1 拍卖描述 98
4.2.2 使用Solidity语言编写拍卖合约 99
4.2.3 合约代码分析 100
4.2.4 继承 105
4.2.5 Remix IDE 110
4.2.6 web3.js中的投标表格 113
4.2.7 web3.js API简介 116
4.3 部署环境——方法多多 122
4.3.1 选择1:Ganache 122
4.3.2 选择2:测试网 124
4.3.3 选择3:私有网络 126
4.3.4 用solc编译和部署合约 132
4.3.5 POA共识机制和难度调整 132
4.4 运行拍卖DApp 134
4.4.1 合约和交易成本 135
4.4.2 Solidity 的几个实用技巧 138
4.5 小结 138
第5章 使用Truffle和Drizzle构建Tontine游戏 139
5.1 背景情况 140
5.2 快速了解Truffle 140
5.2.1 安装Truffle 141
5.2.2 简单了解Truffle 141
5.2.3 首次运行Truffle 142
5.3 Tontine合约 145
5.4 作为CRUD合约的Cplayer 147
5.4.1 智能合约数据位置 147
5.4.2 CRUD——创建 149
5.4.3 CRUD——读取 149
5.4.4 CRUD——更新 151
5.4.5 CRUD —— 删除 151
5.5 Tontine接口——Itontine 152
5.6 接口实现——Ctontine合约 153
5.6.1 智能合约交互 154
5.6.2 加入游戏 156
5.6.3 ping()方法 159
5.6.4 eliminate()方法 160
5.6.5 share_pension()方法 160
5.6.6 claimReward()方法 161
5.7 Truffle单元测试 162
5.7.1 准备测试环境 162
5.7.2 迁移合约 162
5.7.3 准备测试 163
5.7.4 测试addPlayer() 164
5.7.5 测试findPlayer() 164
5.7.6 测试removePlayer() 165
5.7.7 测试Ctontine 165
5.7.8 测试payable函数 166
5.7.9 测试事件 167
5.7.10 测试claimReward() 167
5.7.11 运行测试 169
5.7.12 使用Solidity进行测试 169
5.7.13 使用Truffle 和Remix进行调试 171
5.8 使用Drizzle的前端 180
5.8.1 准备环境 180
5.8.2 Drizzle box是什么 180
5.8.3 初次了解Drizzle box 181
5.8.4 黑客攻击Drizzle box 183
5.8.5 游戏主页 184
5.9 试用DApp 187
5.9.1 将Ganache连接到MetaMask 188
5.9.2 运行Tontine DApp 189
5.9.3 表演时间——准备好了吗 191
5.9.4 获取帮助 193
5.10 小结 194
第6章 以区块链为基础的期货系统 195
6.1 项目展示 195
6.2 期货智能合约 196
6.3 web3j 199
6.3.1 准备环境 200
6.3.2 设置web3j Maven 项目 200
6.3.3 安装web3j 202
6.3.4 创建钱包 202
6.4 Java客户端 203
6.4.1 封装生成器 205
6.4.2 初始化web3j 205
6.4.3 设置以太坊账户 206
6.4.4 部署合约 206
6.4.5 与智能合约交互 207
6.4.6 调用合约函数 207
6.4.7 调用 view 方法 209
6.4.8 web3j事件 209
6.4.9 性能提升 210
6.5 小结 211
第7章 商业区块链 212
7.1 区块链的公共与















