第1章 一台全球计算机
以太坊 历史 以太坊 发展阶段 以太坊 特色第2章 账户是什么
以太坊 基础知识 Keystore 与私钥保存 以太坊 常用钱包 以太坊 EIP-55 账户地址第3章 交易是驱动力
以太坊 交易是驱动力 以太坊 交易发送 以太坊 交易方法 以太坊 交易生命周期 共识与工作量证明 矿工与挖矿奖励第4章 数据结构
以太坊 数据结构 以太坊 Radix树 以太坊 Merkle树 Merkle Patricia树 以太坊 RLP编码 以太坊 状态树 以太坊 交易树 以太坊 收据树 以太坊 区块第5章 构建私链
以太坊 安装geth 以太坊 启动私链 以太坊 接收挖矿奖励 以太坊 转账与收款第6章 部署智能合约
以太坊 部署智能合约 以太坊 什么是智能合约 以太坊 安装编译器 Solc 编译智能合约 智能合约发布准备 部署智能合约 调用智能合约第7章 以太坊虚拟机
以太坊虚拟机 虚拟机的执行结果 虚拟机的执行资源 合约调用合约 虚拟机的输入输出 Gas 花费与退回 虚拟机指令集第8章 Solidity 语法
Solidity 语法练习 Solidity 基础语法 Solidity 语法进阶 Solidity 高级语法 Solidity 安全第9章 Truffle 开发
Truffle 合约开发 编译、测试工具安装 Truffle 启动样例 Truffle ERC20合约 Truffle ERC20合约测试Truffle 冷知识
Truffle 冷知识 短地址攻击 比特币的区块 以太坊与比特币账户的区别 “不可能的三角”问题 ETHASH 挖矿算法第1章 一台全球计算机
以太坊 历史 以太坊 发展阶段 以太坊 特色第2章 账户是什么
以太坊 基础知识 Keystore 与私钥保存 以太坊 常用钱包 以太坊 EIP-55 账户地址第3章 交易是驱动力
以太坊 交易是驱动力 以太坊 交易发送 以太坊 交易方法 以太坊 交易生命周期 共识与工作量证明 矿工与挖矿奖励第4章 数据结构
以太坊 数据结构 以太坊 Radix树 以太坊 Merkle树 Merkle Patricia树 以太坊 RLP编码 以太坊 状态树 以太坊 交易树 以太坊 收据树 以太坊 区块第5章 构建私链
以太坊 安装geth 以太坊 启动私链 以太坊 接收挖矿奖励 以太坊 转账与收款第6章 部署智能合约
以太坊 部署智能合约 以太坊 什么是智能合约 以太坊 安装编译器 Solc 编译智能合约 智能合约发布准备 部署智能合约 调用智能合约第7章 以太坊虚拟机
以太坊虚拟机 虚拟机的执行结果 虚拟机的执行资源 合约调用合约 虚拟机的输入输出 Gas 花费与退回 虚拟机指令集第8章 Solidity 语法
Solidity 语法练习 Solidity 基础语法 Solidity 语法进阶 Solidity 高级语法 Solidity 安全第9章 Truffle 开发
Truffle 合约开发 编译、测试工具安装 Truffle 启动样例 Truffle ERC20合约 Truffle ERC20合约测试Truffle 冷知识
Truffle 冷知识 短地址攻击 比特币的区块 以太坊与比特币账户的区别 “不可能的三角”问题 ETHASH 挖矿算法以太坊 收据树
每个区块都有一棵独立的 收据树 (receiptsRoot)。
收据树中包含了执行交易期间产生的相应的收据,就和我们去超市买东西,在交易完毕后拿到的收据小票一样。
如果一笔交易是一次智能合约的执行,则在以太坊执虚拟机执行的过程中会产生程序员自定义的日志,日志是智能合约自定义的格式。日志(Log)包含了日志产生方的地址、日志话题(topics)、日志数据(可选)。收据的集合通过一棵树来组织,如下图的最右侧所示。

从左到右:日志、交易收据,收据树的构成
若我们取出收据树中的一个节点并放大来仔细查看,则一个节点就是一次交易的收据。 交易 收据 (transaction receipt)是一个键值对映射,它的 键 是交易的编号,它的 值 是 RLP 编码过的四个域:交易后的状态、交易实际花费的交易费、交易产生的日志集合、日志的索引结构组成。
在实际应用中,在本区块内的数笔交易都顺利执行完毕后,也产生了数笔相对应的交易收据,由 MPT 树组织起来,计算得出根哈希值,称为receiptsRoot 交易树 ,该值将进入区块头部被永久保留。所有收据和对应着收据的日志将被存于世界各地以太坊节点计算机的数据库里,方便客户进行查询。
下一章:以太坊 区块
一个 “区块” 究竟长成什么样子? 区块之间如何串联起来成为单向的区块链?以太坊对的区块定义是一个对象,包含了区块头和区块体两个组成部分。区块头 较为轻量级,包含了一系列的数值、引用的数值以及哈希值, ...
AI 中文社