正版现货新书 GO语言公链开发实战 9787111629870 郑东旭 等
全新正版现货,以书名为准,放心购买,购书咨询18931383650朱老师
¥
66.75
7.5折
¥
89
全新
仅1件
作者郑东旭 等
出版社机械工业出版社
ISBN9787111629870
出版时间2019-07
装帧平装
开本16开
定价89元
货号1201912336
上书时间2024-10-13
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
郑东旭,在国内一线互联网公司任职,对公链底层运行原理及技术实现有深入了解。某公链项目技术委员会成员。
目录
推荐序一
推荐序二
前言
第1章公链设计架构1
1.1概述1
1.2公链总体架构2
1.3比原链各模块功能2
1.3.1用户交互层2
1.3.2接口层4
1.3.3内核层4
1.3.4钱包层6
1.3.5共识层6
1.3.6数据存储层7
1.3.7P2P分布式网络8
1.4编译部署及应用9
1.5本章小结12
第2章交互工具13
2.1概述13
2.2bytomcli交互工具13
2.2.1bytomcli命令flag参数13
2.2.2使用bytomcli查看节点状态信息15
2.2.3bytomcli运行案例16
2.3dashboard交互工具21
2.3.1使用dashboard发送一笔交易22
2.3.2使用dashboard开启挖矿模式22
2.4本章小结24
第3章守护进程的初始化与运行25
3.1概述25
3.2bytomd守护进程初始化流程及命令参数25
3.3bytomd守护进程的初始化实现27
3.3.1Node对象28
3.3.2配置初始化29
3.3.3创建文件锁32
3.3.4初始化网络类型33
3.3.5初始化数据库(持久化存储)35
3.3.6初始化交易池35
3.5.7创建一条本地区块链36
3.3.8初始化本地钱包37
3.3.9初始化网络同步管理37
3.3.10初始化Pprof性能分析工具38
3.3.11初始化CPU挖矿功能38
3.4bytomd守护进程的启动方式和停止方式39
3.5本章小结40
第4章接口层41
4.1概述41
4.2实现一个简易HTTPServer41
4.3APIServer创建HTTP服务42
4.3.1创建API对象42
4.3.2创建路由项43
4.3.3实例化http.Server44
4.3.4启动APIServer45
4.3.5接收并响应请求45
4.4HTTP请求的完整生命周期47
4.5比原链API接口描述48
4.6API接口调用工具50
4.6.1使用curl命令行调用API接口50
4.6.2使用Postman调用API接口50
4.7比原链HTTP错误码一览51
4.8本章小结52
第5章内核层:区块与区块链53
5.1概述53
5.2区块53
5.2.1区块的数据结构53
5.2.2区块头的数据结构54
5.2.3区块标识符55
5.2.4创世区块56
5.2.5生成创世区块57
5.2.6区块验证58
5.2.7计算下一个区块的难度目标60
5.2.8孤块管理60
5.3区块链63
5.3.1区块链的数据结构63
5.3.2区块上链64
5.3.3区块连接65
5.3.4链重组66
5.3.5主链的状态69
5.4本章小结70
第6章内核层:交易71
6.1概述71
6.2交易的概念71
6.2.1现实生活中的交易71
6.2.2虚拟世界中的交易72
6.3核心数据结构72
6.3.1普通交易核心数据结构73
6.3.2Coinbase交易核心数据结构78
6.3.3交易Action数据结构81
6.3.4MUX交易类型85
6.4BUTXO模型86
6.4.1BUTXO模型原理87
6.4.2MUX结构88
6.5交易的流程89
6.5.1构建交易89
6.5.2签名交易93
6.5.3提交交易95
6.6隔离见证97
6.7交易脚本97
6.7.1支付到公钥98
6.7.2支付到脚本99
6.7.3资产上链100
6.7.4资产销毁102
6.7.5见证脚本102
6.7.6栈语言103
6.8交易验证105
6.8.1标准交易105
6.8.2交易验证流程106
6.9交易费108
6.9.1估算交易手续费108
6.9.2计算交易手续费110
6.10交易池111
6.11树112
6.12本章小结115
第7章内核层:智能合约116
7.1概述116
7.2基础知识116
7.2.1智能合约116
7.2.2图灵完备的智能合约117
7.2.3UTXO模型和Account模型117
7.3合约层设计118
7.4智能合约语言119
7.4.1Equity语言119
7.4.2Equity合约组成119
7.5基于UTXO模型合约开发实战122
7.5.1编写合约123
7.5.2编译合约123
7.5.3部署合约125
7.5.4解锁合约129
7.6本章小结132
第8章内核层:虚拟机133
8.1概述133
8.2BVM介绍134
8.2.1虚拟机的栈134
8.2.2具有图灵完备性的BVM135
8.2.3equity&vm代码结构135
8.3virtualMachine对象136
8.4栈实现137
8.5BVM操作指令集139
8.6智能合约在BVM上的运行过程141
8.6.1智能合约数据结构141
8.6.2合约编译流程与原理142
8.6.3合约程序字节码示例156
8.6.4合约程序字节码的执行157
8.6.5合约程序字节码的执行示例159
8.7BVM指令集160
8.8本章小结165
第9章钱包层166
9.1概述166
9.2钱包对象167
9.3密钥管理167
9.3.1密钥对生成169
9.3.2密钥对生成算法170
9.3.3密钥加密存储172
9.4账户管理174
9.4.1账户创建175
9.4.2账户地址176
9.4.3账户余额178
9.5资产管理179
9.5.1初始默认资产179
9.5.2发行资产180
9.6交易管理182
9.6.1筛选交易182
9.6.2筛选UTXO183
9.6.3UTXO花费选择算法184
9.7钱包管理186
9.7.1数据更新186
9.7.2备份187
9.7.3恢复188
9.8本章小结188
第10章P2P分布式网络189
10.1概述189
10.2P2P的四种网络模型189
10.3网络节点初始化191
10.3.1SyncManager初始化191
10.3.2P2PSwitch初始化194
10.4节点发现机制196
10.4.1种子节点196
10.4.2Kademlia算法197
10.4.3UPnP协议203
10.4.4RLPX网络协议205
10.5节点发现代码实现206
10.5.1节点发现初始化206
10.5.2路由表实现207
10.5.3Kademlia通信协议212
10.5.4邻居节点发现实现212
10.6节点状态机219
10.7区块同步223
10.7.1区块同步流程223
10.7.2快速同步算法225
10.7.3普通同步算法230
10.7.4区块数据请求与发送231
10.8交易同步233
10.9快速广播235
10.9.1新交易快速广播236
10.9.2新区块快速广播238
10.10节点管理239
10.10.1TCP连接数管理240
10.10.2Outbound连接数管理240
10.10.3动态节点评分机制DynamicBanScore241
10.11本章小结245
第11章数据存储246
11.1概述246
11.2为什么使用键值数据库246
11.3LevelDB常用操作247
11.3.1增删改查操作247
11.3.2迭代查询248
11.3.3按前缀查询249
11.3.4批量操作249
11.4存储层缓存250
11.4.1缓存淘汰算法250
11.4.2比原链缓存实现252
11.5存储层持久化254
11.5.1比原链数据库254
11.5.2持久化存储接口255
11.5.3持久化key数据前缀255
11.5.4持久化存储区块过程256
11.6Varint变长编码257
11.7本章小结258
第12章共识算法259
12.1概述259
12.2PoW和PoS259
12.3实现一个简易PoW共识算法261
12.4比原链PoW共识算法266
12.4.1PoWhash值266
12.4.2难度动态调整267
12.4.3Tensority算法268
12.5本章小结278
第13章矿池及挖矿流程279
13.1概述279
13.2与矿池相关的基本概念279
13.3矿池总架构280
13.4挖矿流程解析(矿池视角)282
13.5挖矿流程解析(矿机视角)283
13.6拒绝数与拒绝率286
13.7矿池的收益分配模式286
13.8交易打包至区块287
13.8.1Coinbase交易奖励288
13.8.2交易手续费Gas289
13.9矿池优化建议290
13.10本章小结291
第14章展望292
14.1概述292
14.2跨链293
14.2.1打通链与链的连接293
14.2.2BTC、ETH与BTM的跨链资产交换293
14.3闪电网络294
14.4子链295
14.5本章小结296
内容摘要
区块链最早源于极客社区点对点电子现金论文,时至今日已有十年。早年的开发应用及技术著作均围绕电子现金类的应用展开。即便有链以及应用,也多是介绍联盟链的应用,较少涉及公链类应用。想要深入学习比较困难,当时业界开发类书籍仅有一本《Mastering Bitcoin》为指路明灯。我早年也曾应《程序员》杂志约稿写过一篇文章《区块链产品三定律》,其中罗列了当时市面流行的六七种应用案例,但总体而言,大环境不完善,产业并不繁荣,产品及技术方面的学习颇为不便,国内从事开发、研究的人员也相当稀少,仅二三十人,中文技术类图书也靠前短缺。技术的可贵之处在于,不仅展现了人类的精湛设计,而且提供了解决问题后所带来的改变。区块链之所以备受瞩目,是因为它创造了一种新的范式,能连接资产服务所涉及的各参与方,能够打破数据孤岛,提高安全性,增强风险控制能力,保护隐私,降低交易成本的同时带来收益。在资本和产业的热捧中,已出现了各种区块链应用。我们很高兴看到本书作者团队以比原链为实例,完成了这本GO语言开发实战类书籍。本书是我见过的为数不多的剖析区块链技术面面俱到,并兼具深度的专业著作,从公链的整体架构开始,到接口,再到内核,从外及里一步步揭示公链的技术原理。在揭示这些技术原理的过程中,作者不满足于浅尝辄止,而是深入到参数解析,使本书除了供知识学习之外,更成为一本实操的参考书籍。最为难能可贵的是,在解析区块链技术的同时,本书对公链构建过程中使用的一些其他技术也有涉及,将区块链的来龙去脉都说得很好清楚,而不是仅仅关注区块链本身。本书虽然以比原链为蓝本,但实际上所用技术在区块链中也都大致通用。希望本书能帮助更多对区块链感兴趣的读者、开发者、技术人员进入这片新天地。
精彩内容
— 没有更多了 —
以下为对购买帮助不大的评价