作品简介

本书一方面从概念上介绍了Solidity编程语言,比如从以太坊虚拟机、合约、Solidity语法和数据结构等方面进行了阐述,另一方面从编写智能合约的角度进行了阐述,比如创建合约、合约组合、封装、继承、多态、方法覆盖、抽象合约、接口、函数、修改器、fallback函数、异常、事件等诸多方面。最后,介绍了智能合约的测试和调试工具。

作者:瑞提什·莫迪(Ritesh Modi)

作品目录

  • 译者序
  • 前言
  • 审校者简介
  • 第1章 区块链、以太坊和智能合约
  • 1.1 什么是区块链
  • 1.2 为什么是区块链
  • 1.3 加密技术
  • 1.3.1 散列
  • 1.3.2 数字签名
  • 1.4 以太币
  • 1.5 gas
  • 1.6 区块链和以太坊架构
  • 1.6.1 区块如何互相连接
  • 1.6.2 交易和区块如何互相连接
  • 1.7 以太坊节点
  • 1.7.1 EVM
  • 1.7.2 以太坊挖矿节点
  • 1.7.3 如何挖矿
  • 1.8 以太坊账户
  • 1.8.1 外部账户
  • 1.8.2 合约账户
  • 1.9 交易
  • 1.10 区块
  • 1.11 端到端的交易
  • 1.12 什么是合约
  • 1.13 什么是智能合约
  • 1.14 如何部署合约
  • 1.15 本章小结
  • 第2章 安装以太坊和Solidity
  • 2.1 以太坊网络
  • 2.1.1 主网
  • 2.1.2 测试网络
  • 2.1.3 私有网络
  • 2.1.4 联盟网络
  • 2.2 Geth
  • 2.3 搭建一个私有网络
  • 2.4 ganache-cli
  • 2.5 Solidity编译器
  • 2.6 web3 JavaScript库
  • 2.7 Mist钱包
  • 2.8 MetaMask
  • 2.9 本章小结
  • 第3章 Solidity介绍
  • 3.1 以太坊虚拟机
  • 3.2 Solidity和Solidity文件
  • 3.2.1 预编译指令
  • 3.2.2 注释
  • 3.2.3 import语句
  • 3.2.4 合约
  • 3.3 合约的结构
  • 3.3.1 状态变量
  • 3.3.2 结构
  • 3.3.3 修改器
  • 3.3.4 事件
  • 3.3.5 枚举
  • 3.3.6 函数
  • 3.4 Solidity中的数据类型
  • 3.4.1 值类型
  • 3.4.2 引用类型
  • 3.5 存储和内存数据位置
  • 3.5.1 规则1
  • 3.5.2 规则2
  • 3.5.3 规则3
  • 3.5.4 规则4
  • 3.5.5 规则5
  • 3.5.6 规则6
  • 3.5.7 规则7
  • 3.5.8 规则8
  • 3.6 字面量
  • 3.7 整型
  • 3.8 布尔型
  • 3.9 字节数据类型
  • 3.10 数组
  • 3.10.1 固定数组
  • 3.10.2 动态数组
  • 3.10.3 特殊数组
  • 3.10.4 数组属性
  • 3.11 数组的结构
  • 3.12 枚举
  • 3.13 地址
  • 3.14 映射
  • 3.15 本章小结
  • 第4章 全局变量和函数
  • 4.1 var类型变量
  • 4.2 变量声明提前
  • 4.3 变量作用域
  • 4.4 类型转换
  • 4.4.1 隐式转换
  • 4.4.2 显式转换
  • 4.5 区块和交易全局变量
  • 4.5.1 交易和消息全局变量
  • 4.5.2 tx.origin和msg.sender的区别
  • 4.6 加密全局变量
  • 4.7 地址全局变量
  • 4.8 合约全局变量
  • 4.9 本章小结
  • 第5章 表达式和控制结构
  • 5.1 Solidity表达式
  • 5.2 if决策控制
  • 5.3 while循环
  • 5.4 for循环
  • 5.5 do...while循环
  • 5.6 break语句
  • 5.7 continue语句
  • 5.8 return语句
  • 5.9 本章小结
  • 第6章 编写智能合约
  • 6.1 智能合约
  • 6.2 编写一个简单的合约
  • 6.3 创建合约
  • 6.3.1 使用new关键字
  • 6.3.2 使用合约地址
  • 6.4 构造函数
  • 6.5 合约组合
  • 6.6 继承
  • 6.6.1 单继承
  • 6.6.2 多级继承
  • 6.6.3 分层继承
  • 6.6.4 多重继承
  • 6.7 封装
  • 6.8 多态性
  • 6.8.1 函数多态性
  • 6.8.2 合约多态性
  • 6.9 方法覆盖
  • 6.10 抽象合约
  • 6.11 接口
  • 6.12 本章小结
  • 第7章 函数、修改器和fallback函数
  • 7.1 函数输入和输出
  • 7.2 修改器
  • 7.3 view函数、constant函数和pure函数
  • 7.4 地址相关函数
  • 7.4.1 send方法
  • 7.4.2 transfer方法
  • 7.4.3 call方法
  • 7.4.4 callcode方法
  • 7.4.5 delegatecall方法
  • 7.5 fallback函数
  • 7.6 本章小结
  • 第8章 异常、事件与日志
  • 8.1 错误处理
  • 8.1.1 require语句
  • 8.1.2 assert语句
  • 8.1.3 revert语句
  • 8.2 事件与日志
  • 8.3 本章小结
  • 第9章 Truffle基础与单元测试
  • 9.1 应用程序开发生命周期管理
  • 9.2 Truffle
  • 9.3 使用Truffle进行开发
  • 9.4 使用Truffle进行测试
  • 9.5 本章小结
  • 第10章 合约调试
  • 10.1 调试
  • 10.1.1 Remix编辑器
  • 10.1.2 使用事件
  • 10.2 使用Block Explorer
  • 10.3 本章小结
展开全部