• 以太坊Solidity智能合约开发
21年品牌 40万+商家 超1.5亿件商品

以太坊Solidity智能合约开发

正版保障 假一赔十 可开发票

32.86 5.6折 59 全新

库存8件

广东广州
认证卖家担保交易快速发货售后保障

作者嘉文 管健 李万胜

出版社机械工业出版社

ISBN9787111646426

出版时间2020-03

装帧平装

开本16开

定价59元

货号28525549

上书时间2024-10-28

兴文书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言
随着区块链技术浪潮的方兴未艾,基于以太坊的智能合约编程也成为一个广为人知的热门话题。本书写作的目的就是从零开始,由浅入深地介绍Solidity这一热门的智能合约编程语言的使用。希望本书可以一站式地为读者提供Solidity编程所需的所有信息。Solidity的设计使用了很多面向对象编程的概念,比如继承、重载等。所以,本书适合学习过至少一门面向对象编程的大学生和开发人员。
    在现有的智能合约编程语言里,无论是编程语言社区数、使用者数量、使用范围,还是活跃的合约数量, 以及大众的辨识度,Solidity都当之无愧地雄踞榜首。虽然目前智能合约编程的前沿已经转向Web Assembly,但是在可预见的将来,Solidity仍将在智能合约编程领域占有举足轻重的地位。
    Solidity不仅仅是一门新的编程语言,它和传统的Java、C++显著的不同是:Solidity编写智能合约是在完全去中心化的环境里运行,而且由以太坊虚拟机(EVM)解释执行。因此,Solidity的编程、设计、调试和传统编程是完全不同的。传统的编程语言有解释型和编译型,而且代码在绝大部分的情况下是不公开的。而Solidity的智能合约编程,是部署到以太坊公链上,源代码公开透明。每一位有计算机基础知识的用户都可以通过各种各样的工具(比如区块链浏览器)看到Solidity的源代码。这种公开透明的特性给智能合约编程带来巨大的挑战:如何编写安全的、没有漏洞的合约?同时,传统的程序一般是基于某种体系架构,比如Windows/Intel, Linux/AMD等,而Solidity编程是基于以太坊虚拟机(以太坊虚拟机是一个栈机器,没有Windows/Intel架构里的寄存器)。EVM具有很多独特的特性,而这些特性都会无形地影响Solidity编程,比如编程模式、内存格式、地址寻址方式。本书对EVM进行了详细的探讨,帮助程序员编写更有效、耗费更低、功能更强大的程序。
本书的结构如下:
预备篇
第1章介绍了以太坊上的一些基础概念和术语。
第2章介绍了Solidity开发测试环境的配置和安装。
基础篇
第3章介绍了Solidity编程语言的基础知识:关键字、语句、修饰符以及特殊特性。
第4章介绍了流行的ERC20、ERC721协议家族以及合约间如何调用,编程语言如何与智能合约交互。
高级篇(本书的重点)
第5章介绍了二进制接口(ABI)规范以及数据的编码。
第6章介绍了Solidity编程的一些高级话题:设计模式,如何省GAS,以及Solidity语句的汇编实现。
第7章讨论了如何设计可升级的智能合约。
第8章讨论了智能合约编程的安全性以及实践方案总结。
应用篇
第9章介绍了基于Solidity智能合约的DApp编程,以及如何使用去中心化的存储。
第10章介绍了Solidity的测试工具和使用示例。
致谢
首先感谢本书的合著者管健先生、李万胜先生在编写本书时付出的努力以及贡献的宝贵意见。其次感谢催生本书的出版界的朋友:朱伟博士以及机械工业出版社的吉玲编辑。后,这本书也献给我的母亲,本书大部分内容编写于母亲卧病陪床之际,相信母亲知道本书顺利出版,她在天国也会感到很安慰。
                                                                                                              嘉文

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

目录
目录
前言
第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容错及自动b

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

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP