正版全新  正版现货 以太坊Solidity智能合约开发 嘉文 管健 区块链技术书籍 设计模式合约可pdf下载

正版全新 正版现货 以太坊Solidity智能合约开发 嘉文 管健 区块链技术书籍 设计模式合约可百度网盘pdf下载

作者:
简介:正版全新 正版现货 以太坊Solidity智能合约开发 嘉文 管健 区块链技术书籍 设计模式合约可
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

  商品基本信息

商品名称:

  以太坊Solidity智能合约开发

作     者:

  嘉文 管健  李万胜

市 场 价:

  59.00元

ISBN  号:

  9787111646426

出版日期:

  2020-02

页     数:

  257

字     数:

  417千字

出 版 社:

  机械工业出版社


  目录

  

目录
前言
第1章以太坊简介1
1?1以太坊1
1?1?1不对称加密体系2
1?1?2密码学哈希函数4
1?1?3对称点对点网络4
1?1?4区块链4
1?1?5以太坊虚拟机5
1?1?6节点5
1?1?7矿工5
1?1?8工作量证明6
1?1?9去中心化应用6
1?1?10Solidity6
1?2智能合约6
1?3燃料7
1?3?1为什么需要燃料?8
1?3?2燃料组成8
1?4ether9
1?5账户9
1?6交易10
第2章预备知识11
2?1简单的例子11
2?2工具准备12
2?2?1编程环境准备12
2?2?2编程工具准备16
2?2?3区块链浏览器26
2?3测试环境26
2?3?1MetaMask访问测试环境27
2?3?2测试环境领取测试用币27
2?3?3开发时连接测试环境28
2?4以太坊源码编译29
第3章Solidity编程基础31
3?1sol文件结构31
3?1?1编译开关31
3?1?2引用其他源文件31
3?1?3注释31
3?1?4合约32
3?1?5库32
3?1?6接口33
3?2合约文件结构33
3?3变量类型33
3?3?1值类型34
3?3?2引用类型35
3?3?3字典/映射37
3?3?4特殊情况37
3?4操作符38
3?5语句39
3?5?1条件语句39
3?5?2循环语句40
3?5?3其他40
3?6修饰符40
3?6?1标准修饰符40
3?6?2自定义修饰符44
3?7数据位置46
3?8事件47
3?8?1智能合约返回值给用户接口48
3?8?2异步的带数据的触发器49
3?8?3一种比较便宜的存储49
3?8?4事件里的Indexed参数50
3?9继承51
3?9?1单继承51
3?9?2多重继承51
3?10其他52
3?10?1内置52
3?10?2特殊单位54
3?10?3类型转换及推断55
3?10?4异常56
3?10?5汇编56
第4章Solidity编程的话题59
4?1This关键字59
4?2ERC20标准接口59
4?2?1方法61
4?2?2事件62
4?2?3OpenZepplin框架62
4?3ERC721标准接口63
4?3?1ERC721接口定义63
4?3?2元数据扩展75
4?3?3可枚举扩展77
4?3?4ERC165标准81
4?4合约间调用82
4?4?1函数调用82
4?4?2依赖注入84
4?4?3消息调用84
4?4?4获取合约间调用的返回值88
4?5基础算法90
4?6用Go与合约交互93
4?6?1创建项目93
4?6?2创建一个简单的以太坊合约93
4?6?3用Go访问以太坊合约94
4?6?4本地测试94
4?6?5连接到一个以太坊节点98
4?6?6为账户创建加密的JSON钥匙98
4?6?7后验证98
第5章ABI接口102
5?1内存结构102
5?2函数选择子102
5?3类型的定义102
5?4EVM里的数据表示103
5?4?1固定长度数据类型的表示104
5?4?2动态长度数据类型的表示105
5?5编码108
5?5?1简单的例子108
5?5?2外部调用例子109
5?5?3外部方法调用的ABI编码112
5?6基于ABI的编程116
第6章智能合约运行原理118
6?1设计模式118
6?1?1合约自毁118
6?1?2工厂合约模式119
6?1?3名字登录120
6?1?4映射迭代121
6?1?5撤出模式122
6?2省燃料122
6?2?1注意数据类型123
6?2?2以字节编码的形式存储值123
6?2?3利用SOLC编译器压缩变量123
6?2?4使用汇编代码压缩变量124
6?2?5合并函数参数125
6?2?6使用默克尔树证明减少存储成本125
6?2?7无状态的合约127
6?2?8在IPFS上存储数据127
6?2?9位压缩127
6?2?10批处理128
6?2?11Storage结构类型读写分离129
6?2?12uint256和直接内存存储130
6?2?13汇编代码优化130
6?3汇编代码130
6?3?1栈131
6?3?2调用数据131
6?3?3内存132
6?3?4存储133
6?4解构智能合约134
6?4?1合约创建138
6?4?2合约本体通用部分141
6?4?3合约本体特定代码145
第7章可升级的合约147
7?1方法147
7?1?1代理合约147
7?1?2分离逻辑和数据147
7?1?3通过键值对来分离数据和逻辑147
7?1?4部分升级148
7?1?5比较148
7?1?6简单的代理合约例子148
7?2通用的代理模式150
7?3Storage154
7?3?1继承存储154
7?3?2存储154
7?3?3非结构化存储155
7?4Augur156
7?4?1合约部署156
7?4?2存储部署157
7?5Colony158
7?5?1存储部署158
7?5?2合约部署159
7?6总结159

第8章编写安全的合约161
8?1以太坊已知常见漏洞 161
8?1?1上溢和下溢161
8?1?2Solidity可见性修饰符的差别165
8?1?3重入问题166
8?1?4出乎意料的ether操作170
8?1?5代理调用174
8?1?6默认可见性修饰符178
8?1?7熵随机源180
8?1?8外部合约引用180
8?1?9短地址/参数攻击184
8?1?10未验证的CALL返回值185
8?1?11竞争条件186
8?1?12阻塞攻击188
8?1?13操纵块时间戳190
8?1?14谨慎使用构造函数191
8?1?15未初始化的存储指针192
8?1?16浮点数精度193
8?1?17交易授权194
8?2以太坊一些奇怪的特性195
8?2?1没有Key的ether195
8?2?2一次性地址197
8?2?3一个交易的空投197
8?3以太坊智能合约——佳安全开发指南198
8?3?1尽早且明确的暴露问题198
8?3?2在支付时使用(pull)模式而不是(push)模式199
8?3?3函数代码的顺序:条件,行为,交互200
8?3?4留意平台局限性201
8?3?5测试用例203
8?3?6容错及自动bug奖励203
8?3?7限制可存入的资金205
8?3?8简单和模块化的代码206
8?3?9不要从0开始写所有的代码206
8?4代码审计206
8?5总结207
第9章DApp开发208
9?1DApp的特点208
9?2DApp架构211
9?2?1客户端211
9?2?2服务器端212
9?2?3流程详解214
9?3以太坊DApp217
9?3?1环境准备218
9?3?2项目218
9?3?3智能合约Solidity编程219
9?3?4项目部署224
9?4IPFS DApp225
9?4?1环境准备225
9?4?2项目225
9?4?3编译运行230
第10章调试231
10?1编程语言231
10?1?1事件231
10?1?2Assert/Require语句236
10?1?3测试案例237
10?2Testrpc/Ganache测试环境239
10?3Truffle Debugger241
10?3?1调试界面241
10?3?2增加和删除断点242
10?3?3如何调试交易243
10?3?4调试一个食物购物车的合约243
10?4Remix调试251
10?5其他工具254
10?5?1JEB254
10?5?2Prosity254
10?5?3Binary Ninja255
参考文献257


  内容简介

本书从零开始介绍Solidity程序开发,从Solidity语言中基础的关键字和语句开始介绍,逐步深入到应用,包括设计模式、合约可升级的设计、合约的安全性问题及对策等,并结合EVM的实现,讨论Solidity语句的汇编实现;对一些原理的讲解,提供了相对应的实例,以期更易于理解原理的实现机理;同时,对Solidity应用于DApp开发,及使用区块链上的去中心化存储(IPFS)也有详细的介绍。
本书可作为对区块链感兴趣的程序开发人员、高校师生等的参考书,也可作为相关课程的培训教材。


^_^:5401be9dfb627b92fb15c62f3aea266e


^_^:70fc073ed758ad5dbf784dc8559d8ccd