Skip to content

《以太坊的指南针》 一本写给普通人看的以太坊区块链技术书。A Book of Ethereum in Chinese.

Notifications You must be signed in to change notification settings

laalaguer/ethereum-compass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

《以太坊的指南针》

编者按

2025-10: 距离以太坊 1.0 主网上线已经过去了 10 年。本书所列的内容也垂垂老矣。自以太坊 2.0 Beacon 上线以来,PoS的以太坊发生了很多变化,本书内容为 1.0 时代而设,故不再增改。

  • 直接查阅:DOCS 文件夹。
  • 编译本书:SRC 文件夹。

正文

这是给 程序员 读的入门书,更是一本面向 从未接触过以太坊人群 的书。

以太坊是什么?怎么了解相关知识?

这本书涵盖了你想要了解的以太坊的基本知识。

前半本文艺,后半本实践,附录深刻。

内容包括钱包、交易、数据结构。也包括了Solidity语法、虚拟机原理和实战合约编写。

市面上目前的大部分公链/联盟链都借鉴了以太坊的虚拟机。读完本书,你再去看其他项目,会感到成竹在胸。

书中的知识点都是作者在区块链工作中实践总结的。希望对你们有帮助。

目录

  • 如何学习这本书
  • 第 1 章 以太坊:一台全球计算机
    • 简史
    • 发展阶段
    • 以太坊的特色
  • 第 2 章 账户是什么
    • 小白基础知识问答
      • 我的以太币记录在哪里?
      • 我的以太币余额如何变化?
      • 什么是区块?
      • 区块和状态的关系
      • “巨大的账本”
      • 我如何参与以太坊?
      • 我如何与其他人同步账本?
    • 账户探秘
      • 账户与账户状态
      • 账户状态的内涵
        • 已执行交易总数
        • 持币数量
        • 存储区的哈希值
        • 代码区的哈希值
      • 没有钱包App, 如何生成账户?
      • 智能合约地址的生成
    • 扩展阅读
    • 资料篇:Keystore 与私钥保存
    • 资料篇:常用钱包 App
    • 资料篇:EIP-55 格式的账户地址
  • 第 3 章 交易是驱动力
    • 交易的发送
      • 交易与消息的区别
      • 交易的特性是什么?
    • 交易的样子
    • 交易的生命周期
    • 扩展阅读
    • 资料篇:共识与工作量证明
      • 比特币的PoW机制(简单版)
      • 比特币算力的中心化问题
      • 以太坊的Pow/Pos机制
    • 资料篇:矿工与挖矿奖励
  • 第 4 章 数据结构
    • Radix树
    • Merkle树和 Merkle证明
    • Merkle Patricia树
    • RLP编码
      • RLP字符/字符串编码
      • RLP字符/字符串解码
      • RLP数组编码
      • RLP数组解码
    • 扩展阅读
    • 资料篇:状态树 (以及存储树)
    • 资料篇:交易树
    • 资料篇:收据树
    • 资料篇:区块
  • 第 5 章 构建一条以太坊私链
    • 安装
    • Geth客户端的结构
    • 启动一条以太坊私链
    • 接收挖矿奖励
    • 转账与收款
  • 第 6 章 手把手教你部署智能合约
    • 什么是智能合约?
    • 安装编译器
    • Solc编译智能合约
    • 智能合约发布准备
    • 部署智能合约
    • 调用智能合约
  • 第 7 章 以太坊虚拟机探秘
    • 虚拟机的执行结果
    • 虚拟机的执行资源
    • 合约调用合约?
    • 虚拟机的输入输出
    • Gas 花费与退回
    • 虚拟机指令集
  • 第 8 章 Solidity语法练习
    • 基础概念
      • 没有浮点数运算
      • 合约基础
      • 变量类型
      • 运算符号
      • 结构体 Struct
      • 数组array
      • 函数申明
      • 类型转换与内置函数
      • 合约与事件
    • 语法进阶
      • 数据结构:map
      • 环境变量:msg.sender
      • require还是assert?
      • 继承和引入
      • 省钱妙招:内存变量
      • 接口与合约调用
      • 多返回值
    • 高级语法和概念
      • Contract 构造函数
      • Ownable控制
      • Pausable控制
      • 省钱妙招:struct 结构体
      • 时间单位表达
      • 带参数的函数修饰符
      • for 循环
      • 合约收款:payable修饰符
      • 支付费用:transfer方法
    • 小结
  • 第 9 章 Truffle合约开发实战
    • 编译、测试工具安装
      • Truffle的安装
      • Ganache的安装
    • Truffle启动样例项目
      • 下载样例
      • 编译项目
      • 部署项目到 Ganache
      • 测试项目
    • 上手实践:ERC20合约
      • 新建项目目录
      • ERC20 Basic合约接口
      • ERC20 合约接口
      • SafeMath基础数学库
      • 猫币:CAT数字资产合约
    • 上手实践:ERC20合约测试
      • 准备工作
      • 测试辅助函数与库
      • 测试代码分析
      • 测试运行与结果
  • 附录 有意思的冷知识
    • 短地址攻击
    • 比特币的区块
    • 以太坊与比特币账户的区别
      • 隐私与安全性的比较
      • 数据体积与并发能力
      • 发送交易时对双花的处理
    • “不可能的三角”问题
    • ETHASH 挖矿算法
      • ETHASH和比特币PoW的异同
      • ETHASH的设计目标
      • ETHASH的挖矿运行总流程
      • ETHASH算法源代码解读

About

《以太坊的指南针》 一本写给普通人看的以太坊区块链技术书。A Book of Ethereum in Chinese.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors