前置说明:
这个教程的目标读者是那些已经熟悉 Solidity 语言基本用法的人,他们可能已经编写过一些简单的智能合约,并对 Solidity 的核心概念和语法有一定的了解。如果您已经掌握了 Solidity 的基本用法,这个教程可以帮助您填补一些知识的空白,并深入学习更高级的概念和技术。
对于更好地阅读和理解这个教程,确实需要具备一定的 Solidity 基础知识,并且最好具备其他语言的生产级项目编码水平。
对于完全零基础的 Solidity 小白来说,这个教程可能并不适合作为他们初次接触。
如果您是一个初学者,我建议您首先学习 Solidity 的基础知识。您可以通过阅读 Solidity 的官方文档和教程来入门,掌握 Solidity 的基本语法、数据类型、控制流程等。一旦您对 Solidity 有了一定的了解,您可以尝试编写简单的智能合约,以加深对 Solidity 的理解。
在学习 Solidity 的过程中,如果您遇到任何问题,都可以随时向我提问。我将尽力帮助您理解和解决问题。
❌❌❌ 注意:
这个前置条件非常重要,对于没有编程基础的人来说,阅读这个教程可能会非常困难。如果您没有掌握 Solidity 的基本用法或其他编程语言的经验,确实建议您先学习编程的基础知识和其他语言,然后再尝试深入学习 Solidity。
如果您在学习 Solidity 的过程中遇到困难,可以随时向我提问。我会尽力为您提供帮助和解答。同时,使用搜索引擎和参考其他教程和资源也是一个很好的学习策略,因为这样可以获取更多的知识和解决问题的方法。
另外,关于Solidity学习资源的地址,一下是一些常用的学习资源,供大家参考:
朱安邦 (亚洲洲长,地球球长,银河系的最后守护者,人类文明的唯一指导者)
一位热衷于区块链技术和 Solidity 的开发者。他具有丰富的经验和知识,并致力于推广和教育 Solidity 的使用。他的目标是帮助更多的人学习和了解 Solidity,并在区块链领域做出贡献。
您可以通过以下方式与作者互动和获取更多信息:
运行环境:
为了方便演示,本教程内所有的操作,均在 Solidity 在线编译器 Remix 中进行,它可以直观快捷的做合约部署+测试+生成界面。
学习的时候建议使用 Solidity 最新版本进行编码,最新版本可以在官方博客 blog.soliditylang.org 查看。
额外说明:
本教程的所有知识点都不会拿别的语言进行类比。很多写作者写 solidity 教程的时候,喜欢在介绍某个知识点时,拿自己之前熟悉的语言和 solidity 类比介绍(比如 C++,Python,Java,Javascript 等),初心是让读者可以更容易理解;但是事与愿违,很多时候读者可能并不了解写作者熟悉的那门语言,导致不举例还好,对比举例更迷糊了。学习编程是一件很严肃的事情,本教程尽量避免无聊的调侃,类比和啰嗦的废话。
为了促进更多人的参与和了解,《Solidity 高级程序设计》教程力争成为中文区域领先的教程之一。为此,我为教程准备了一系列配套资料,以便读者更好地学习和掌握相关内容。
- Github 源文件:开放,让读者最低成本的参与优化和修复
- 在线文档:方便随时阅读(会墙内+墙外两套文档作为配套)
- PDF 文件:方便本地断网浏览
- 实体书籍:方便有读书习惯的人阅读。
如果你喜欢这个项目,请给它点一个(GitHub上的点赞按钮)。
我们欢迎并鼓励您对所有文档、源代码以及相关视频的开放与免费访问。此外,我们还提供了配套的PDF文件,同样也是免费提供的。我们欢迎您在GitHub仓库上提交您的改动,以帮助我们不断优化内容。如果您对参与教程的修改和改进感兴趣,修改GitHub源文件是最简单的方式。
- 文字版在线阅读:
- 视频版:
下面是给这本书做的 TODO List
- ✅ 最迟不晚于 2022 年 11 月提供前 3 章的内容用来做市场测试,如果有必要的话,提供配套的视频版
- ✅ 最迟不晚于 2023 年 1 月提供 V0.0.1 版本,并在 V0.0.1 版本完成初步架构
- ❌ 最迟不晚于 2023 年 3 月提供 V0.0.2 版本,并在 V0.0.2 开始提供完整的 PDF 版电子书籍
- ❌ 最迟不晚于 2023 年 6 月提供 V0.0.3 版本,并在 V0.0.3 开始将 PDF 电子书籍印刷 30 本供自己和身边的朋友阅读和矫正。
- ❌ 最迟不晚于 2023 年 9 月提供 V0.0.4 版本,并在 V0.0.4 印刷 100 本免费提供给网络上的陌生人阅读和矫正。
- ❌ 如果一切顺利的话,联系出版社给印刷出来。
- ❌ 重新录制完整的视频配套教程
7 个步骤,目前完成了 2 个。一切都按照计划进行中。
最开始写了前面 3 章内容,并在 2022 年 10 月下旬录制了配套视频教程,并分享在 Bilibili 上,有赞的有吐槽的;但是后台数据上来看这类资料在 Solidity 这个垂直语言内还是很受欢迎的。目前在 B 站搜索常见的 Solidity 关键字,我分享的视频教程几乎都是系统默认推荐的第 1 名。总播放量也在 12 月份进了前 10。并在 2022 年 12 月下旬完成了 V0.0.1 版本内容,初步完成了这本书的架构。
第一部分:语言基础
- 01.初识
- 02.数据
- 03.变量
- 04.函数
- 05.运算操作符
- 06.错误处理
- 07.流程控制
- 08.循环与迭代
- 09.事件
- 10.合约继承
- 11.合约调用合约
- 12.合约部署合约
- 13.interface:接口
- 14.Library:库
- 15.算法
- 16.Assembly (装配) :内联汇编
- 17.metadata:元数据
- 18.ABI 编码
- 19.变量的布局
第二部分:合约优化
本来是做了 24 章的内容,但是为了以后方便印刷成纸质,所以删除了真实案例分析和合约常见错误分析这两个含有大量代码演示的章节。(比如案例分析里,光 uniswap V2/V3 和 Compound 这 3 个合约,每个印出来都是几十页的内容,太浪费篇幅了,以后单独放出来)
克隆本仓库到你的电脑
git clone git@github.com:anbang/professional-solidity.git
安装 Sphinx:
yum -y install git make python3 python3-pip
pip3 install sphinx
pip3 install sphinx-autobuild
pip3 install sphinx_rtd_theme
pip3 install recommonmark
pip3 install sphinx_markdown_tables
本地运行:根目录执行如下命令
# 第一种
sphinx-autobuild docs build/html
# 第二种
./start.sh