书籍详情
智能合约技术与开发
作者:江海,熊丽兵,段虎 著
出版社:清华大学出版社
出版时间:2022-01-01
ISBN:9787302595847
定价:¥59.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在大型项目中的应用
参考文献
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在大型项目中的应用
参考文献
猜您喜欢