智能合约技术与开发 pdf下载pdf下载

智能合约技术与开发百度网盘pdf下载

作者:
简介:本篇提供书籍《智能合约技术与开发》百度网盘pdf下载
出版社:京东图书自营旗舰店
出版时间:2022-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

内容简介

本书是区块链智能合约开发中级教材的上册,主要介绍了智能合约平台部署和智能合约开发环境搭建,Solidity编程等相关知识。全书共分8章,内容包括区块链智能合约开发概述、智能合约平台、智能合约开发测试与部署、Solidity编程基础、Solidity高级编程、Solidity合约与实例、智能合约安全、以太坊虚拟机。本书可用于“1+X”证书制度试点工作中的区块链智能合约开发职业技能等级证书教学和培训,也适合作为应用型本科、职业院校、技师学院的教材,同时也适合作为从事区块链智能合约开发的技术人员的参考用书。

作者简介

江海,男。现任江西软件职业技术大学区块链学院副院长,软件研发资深专家。曾参与“基于国产基础软件的政务信息化领域平台研发与应用”,获江西省科学技术进步奖;2015年至今任先锋软件集团应用技术研究院副院长,长期从事区块链技术研发。

目录

第1章智能合约原理


1.1智能合约的定义


1.2为什么需要智能合约


1.3智能合约的技术实现


1.4智能合约的模型


1.5智能合约的运行机制


第2章智能合约平台


2.1以太坊概述


2.2以太坊架构


2.3智能合约


2.4账户


2.5账户状态


2.6以太坊虚拟机


2.7gas


2.8以太坊交易


2.8.1价值传递


2.8.2创建智能合约


2.8.3调用合约方法


2.9区块


2.10以太坊客户端


2.10.1geth安装


2.10.2geth使用


2.11以太坊钱包


2.12以太坊网络


2.12.1主网网络


2.12.2测试网络


2.12.3私有网络、开发者模式


2.12.4模拟区块链网络


2.12.5以太坊货币单位


2.13以太坊历史回顾


2.13.1奥林匹克


2.13.2边疆


2.13.3家园


2.13.4DAO分叉


2.13.5拜占庭


2.13.6君士坦丁堡


2.13.7伊斯坦布尔


2.13.8以太坊2.0












第3章智能合约的开发、测试与部署


3.1什么是智能合约


3.2Remix


3.2.1基础模块


3.2.2典型模块


3.2.3单元测试


第4章Solidity编程基础


4.1Solidity中的变量


4.1.1状态变量


4.1.2局部变量


4.1.3全局变量


4.1.4Solidity变量名


4.2Solidity数据类型


4.2.1值类型


4.2.2引用类型


4.2.3类型转换


4.3函数调用


4.3.1参数


4.3.2返回值


4.3.3函数可见性


4.3.4状态可变性(mutability)


4.4变量的作用域


4.5控制结构


4.6合约


4.6.1可见性


4.6.2构造函数


4.6.3使用new创建合约


4.6.4constant状态常量


4.6.5immutable不可变量


4.6.6view()函数


4.6.7pure()函数


4.6.8getter()函数


4.6.9receive()函数


4.6.10fallback()函数


4.6.11函数修改器


4.6.12函数重载


4.6.13事件


4.7错误处理及异常


4.7.1错误处理函数


4.7.2require()还是assert()


4.7.3try/catch


4.8Solidity全局变量及API


4.8.1区块和交易属性API


4.8.2ABI编码及解码函数API


4.8.3数学和密码学函数API


第5章Solidity高级编程


5.1合约继承


5.1.1多重继承


5.1.2父合约构造函数


5.1.3抽象合约


5.1.4函数重写


5.2接口


5.3库


5.3.1内嵌库


5.3.2链接库


5.3.3using for


5.4应用程序二进制接口


5.4.1ABI编码


5.4.2函数选择器


5.4.3参数编码


5.4.4通过ABI编码调用函数


5.4.5ABI接口描述


5.5gas优化


5.5.1变量打包


5.5.2选择适合的数据类型


5.5.3内存和存储


5.5.4减少存储


5.5.5其他建议


5.6使用内联汇编


5.6.1汇编基础概念


5.6.2Solidity中引入汇编


5.6.3汇编变量定义与赋值


5.6.4汇编中的块和作用域


5.6.5汇编中访问变量


5.6.6for循环


5.6.7if判断语句


5.6.8汇编switch语句


5.6.9汇编函数


5.6.10元组


5.6.11汇编缺点


第6章Solidity合约


6.1OpenZeppelin


6.2SafeMath安全算数运算


6.3地址工具


6.4ERC165接口实现


6.5ERC20代币


6.5.1标准ERC20实现


6.5.2WETH实现


6.6ERC777功能型代币


6.6.1ERC1820接口注册表


6.6.2ERC777标准


6.6.3ERC777实现


6.6.4实现Hook函数


6.7ERC721


6.7.1ERC721代币规范


6.7.2ERC721实现


第7章智能合约的安全性


7.1安全事件


7.2安全原则


7.3已知的经典漏洞攻击方法


7.3.1重入攻击


7.3.2算术溢出


7.3.3delegatecall导致意外代码的执行


7.3.4未检查返回值


7.3.5拒绝服务


7.3.6错误命名构造函数


7.4总结


第8章以太坊虚拟机


8.1什么是以太坊虚拟机


8.1.1概述


8.1.2账号


8.1.3交易


8.1.4gas


8.1.5存储、主存和栈


8.1.6指令集


8.1.7消息调用


8.1.8代理调用/代码调用和库


8.1.9日志


8.1.10创建合约


8.1.11移除合约


8.2EVM工作原理


8.2.1EVM解释执行流程


8.2.2创建合约流程


8.2.3调用合约流程


8.2.4Solidity编译为EVM字节码


8.3EVM指令集


8.3.1算术运算指令


8.3.2位移运算指令


8.3.3比较操作指令


8.4gas


8.4.1执行阶段的gas计量


8.4.2gas计量原则


8.4.3gas消耗和gas价格


8.4.4区块的gas限制


8.5WASM拓展


8.5.1什么是WASM


8.5.2WASM的特点


8.5.3WASM的优势


8.5.4WASM有哪些对开发者友好的特点


8.5.5WASM在大型项目中的应用


参考文献


前言/序言

为了使区块链智能合约开发职业技能等级标准顺利推进,帮助学生通过区块链智能合约开发职业技能等级认证考试,中链智培、智谷星图和链人国际共同组织专家编写了区块链智能合约开发系列教材,整套教材的编写遵循区块链智能合约开发的专业人才职业素养养成和专业技能积累规律,将职业技能、职业素养和工匠精神融入教材设计思路中。

本书以教育部区块链智能合约开发职业技能等级标准(中级)为编写依据,针对智能合约技术与开发的技能要求和知识要求,从行业的实际需求出发组织全部内容。

通过本书,读者可以掌握如何使用智能合约基本技术开发基于Solidity语言的智能合约。通过对相关知识的学习和应用,读者可以理解智能合约技术的原理,培养智能合约开发的技能,为今后开发大型区块链智能合约应用奠定扎实的理论与技术基础,为适应未来的工作岗位提供保障。

本书共分8章,第1章介绍了智能合约的基本概念、模型、技术实现以及运行原理。第2章介绍了智能合约平台的框架、客户端、交易机制以及发展历史。第3章介绍了智能合约的开发、测试与部署,以及Remix IDE等工具的详细使用方法。第4章和第5章着重讲述了Solidity语言的相关语法,以及用语言编写程序实现继承、汇编等智能合约的相关功能。第6章主要讲解了通过Solidity语言编写的合约案例以及一些合约标准,例如ERC20、ERC721。第7章介绍了典型的智能合约安全漏洞及其对应的著名安全历史事件,同时在对漏洞代码进行详细讲解的基础上提出有效的防范方法。第8章详细介绍了以太坊虚拟机的各项功能、工作原理,并把WASM作为拓展进行了补充。

本书由中链智培科技有限公司组织编写,江西软件职业技术大学江海、登链科技熊丽兵、深圳信息职业技术学院段虎编写了本书的具体内容,北京智谷星图教育科技有限公司潘星任、卢毅、江华为本书的编写提供了技术支持,并审校全书。

由于编者水平和经验有限,书中不妥及疏漏之处在所难免,恳请读者批评指正。

编者2021年6月