描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121349515
以太坊诞生
智能合约
Solidity语言
一个货币合约的例子
本章小结
第2章 以太坊核心概念
区块链基础概念
共识协议:工作量证明(PoW)
以太坊虚拟机(EVM)
账户
以太坊钱包
交易
消息调用
费用(gas)
以太坊网络
存储、内存和栈
指令集
委托调用和库
日志
自毁
以太坊路线图
本章小结
第3章 Solidity合约内容
Solidity文件结构
合约结构
本章小结
第4章 Solidity数据类型
类型概述及分类
布尔类型(Boolean)
整型(Integer)
定长浮点型(Fixed Point Number)
定长字节数组(Fixed-size Byte Array)
有理数和整型常量(Rational and Integer Literal)
字符串常量(String Literal)
十六进制常量(Hexadecimal Literal)
枚举(Enum)
函数类型(Function Type)
地址类型(Address)
地址常量(Address Literal)
数据位置(Data Location)
数组(Array)
数组成员
字符串string及字节数组bytes
结构体(Struct)
映射(Mapping)
类型转换
var类型推导
运算符
本章小结
第5章 Solidity中的单位
货币单位(Ether Unit)
时间单位(Time Unit)
本章小结
第6章 Solidity全局变量及函数
区块和交易的属性
地址相关属性和函数
合约相关属性和函数
本章小结
第7章 Solidity表达式及控制结构
函数参数
控制结构
函数调用表达式
赋值表达式
变量声明与作用范围
错误处理
本章小结
第8章 合约
合约概述
创建合约
可见性
访问函数(Getter Function)
函数修改器(Function Modifier)
状态常量
视图函数(View Function)
纯函数(Pure Function)
回退函数(Fallback Function)
函数重载(Function Overloading)
事件
继承
构造函数(Constructor)
抽象合约(Abstract Contract)
接口(Interface)
库
Using for 指令
本章小结
第9章 合约编译、部署、交互、调试
Solidity编译器
合约编译
合约部署及调用
使用geth
使用Remix MetaMask
合约调试
本章小结
第10章 应用程序二进制接口(ABI)
简单理解ABI
ABI手册
本章小结
第11章 智能合约实践
编码规范
代码格式
函数编写规范
安全性考虑
一些安全陷阱
编写合约的安全建议
本章小结
第12章 合约案例
代币
高级功能代币
众筹(ICO)合约
众筹智能合约代码
非同质化代币ERC721
本章小结
第13章 去中心化应用开发
JSON RPC
Web3.js
在geth中使用Web3.js
在应用中使用Web3.js
去中心化应用案例
搭建测试环境
创建智能合约
合约加入事件
使用Web3监听事件、刷新UI
Truffle框架
安装Truffle
Truffle使用案例
在浏览器中运行
本章小结
一、本书特色
从2017年开始,我在博客《深入浅出区块链》中发表了30多篇关于区块链的入门文章,广受大家的好评,也因此收到了电子工业出版社编辑的邀请,希望我写一本关于区块链开发的书籍。我对市面上的书籍做了调查,发现介绍比特币和以太坊入门知识的书比较多,但如果想系统全面地学习智能合约开发,却并没有更好的资源。于是,在跟出版社编辑商议后,我决定写一本全面系统介绍智能合约开发的书,本书由此诞生。
本书并没有对比特币或区块链的基础概念进行过多的介绍,因为市面上已经有很多这方面的文章了,大家也可以参考我的博文《区块链技术学习指引》(https://learnblockchain.cn/2018/01/11/guide/)。本书系统介绍以太坊智能合约的开发,并尽量覆盖智能合约的方方面面,尤其是对智能合约开发语言Solidity进行了详细解读。因此本书可以作为一本案头手册,方便开发者在开发智能合约时随时查阅。
本书涉及的Solidity内容是以官方文档0.4.24版本(https://solidity. readthedocs.io/en/v0.4.24/)为标准的,同时加入了很多我自己的理解以及大量的实例。
另外,本书有时将智能合约简称为“合约”。
二、读者对象
本书适合那些对区块链有过基本了解,并想进一步学习智能合约或者去中心化应用的开发人员阅读。
本书的读者好应了解一门语言。例如了解C、JavaScript、Python语言会对学习Solidity有帮助,因为Solidity中的很多思想都参考了这些语言。
本书主要适合以下人员阅读:
? 区块链应用开发者;
? 区块链技术的从业者;
? 对区块链技术感兴趣的人员。
三、本书内容
第1章初探以太坊智能合约,初步认识以太坊、智能合约、Solidity,以及如何使用Solidity编写一个简单的智能合约。
第2章介绍以太坊核心概念,例如交易、区块、费用gas、以太坊虚拟机、以太坊账户等概念。
第3章介绍一个使用Solidity编写的智能合约的组成部分。
第4章介绍Solidity的类型系统,详细介绍Solidity的各种类型,例如整型、布尔类型、地址类型、函数类型、数组类型及结构体类型等。
第5章介绍Solidity中的单位,包括货币单位和时间单位,通过代码讲解单位如何换算。
第6章介绍Solidity 的全局变量及函数,它们其实就是Solidity语言提供的API,例如获取区块和交易的属性、有关数学及加密功能的函数等。
第7章介绍Solidity中的表达式、控制结构、变量作用范围、错误处理等。
第8章介绍合约,包括如何创建合约、合约函数的可见性、合约函数修饰符等。
第9章介绍合约编译、部署、交互、调试,包括对编译器的选择、不同工具的合约部署方法。
第10章介绍合约ABI的作用,以及如何生成ABI。
第11章介绍编写合约的实践,一是从编码规范来考量;二是从安全性来考量。
第12章介绍一些合约案例,如常见的ERC20标准代币合约,介绍如何实现代币增发、资产冻结,以及如何实现一个众筹(ICO)合约,并详细介绍ERC721合约的实现方法。
第13章介绍去中心化应用的开发,重点介绍如何使用web3以合约进行交互,以及Truffle框架的使用。
—— 西祠胡同创始人、FIBOS创始人 响马
Tiny熊是我所认识的*踏实细心的区块链技术布道者。他可以为读者朋友的每一个程序问题反复斟酌、细心回答。他的博客文章《深入浅出区块链》,让很多程序员成功转型为区块链开发人员。本书延续了《深入浅出区块链》的风格,并且对以太坊的智能合约及DApp开发进行了更加系统、全面的介绍。建议想从事区块链相关工作的开发者及想进入区块链领域的从业者阅读本书。
—— 工信部区块链应用研究院副院长、GEOC(绿色生态)基金会发起人、小牛区块链创始人 赖一诚
以太坊已经慢慢变成区块链的事实标准,大多数开发者接触到区块链首先了解的便是比特币、以太坊、超级账本。本书作为一本以太坊的入门书籍,不仅有理论讲解,还有代码案例解析,是开发者学习以太坊的优选书籍。
—— HiBlock区块链社区发起人 Bob Jiang
自从以太坊成功上线以来,硅基世界的美好未来如此真实地呈现在我们面前。作为程序员,自然深知一个自带价值转移功能的图灵完备编程环境的巨大价值。在人类从碳基世界向硅基世界跃迁的过程中,这是*步,也是无比重要的一步。任何一个有志于在区块链领域深入研究的研究者,不掌握以太坊智能合约编程是无法再前进一步的。因此,建议大家从阅读这本书开始,打开进入下一个世代的大门。
—— Arena.one创始人 曹晓钢
在Tiny熊的身上,可以看到工程师的气质,一双善于发现问题的眼睛,持续思考、定位问题和探索问题的大脑,以及锲而不舍、求真求实的精神。希望这本书可以成为区块链世界的燎原火种,让更多的工程师在探索的道路上并肩同行,披荆斩棘,早日在价值互联网探索的道路上有所成就。
—— 无退社区创始人、Think技术社区、PHPConChina联合创始人 锅巴GG
以太坊是成熟的区块链开发平台,而区块链开发*重要的就是智能合约开发。熊丽兵是国内*早的区块链开发者之一,他所写的一系列区块链开发相关教程帮助了非常多的开发者。现在他把智能合约开发教程整理成书,可以极大地方便开发者系统地学习智能合约开发。
—— Egretia技术负责人 Dily
评论
还没有评论。