第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 挖矿算法以太坊 交易的生命周期
那么,交易发出去以后会经历什么呢?
交易的生命周期从用户通过某节点/软件广播该交易为起点,经过网络扩散、矿工挖矿记账、被共识算法选入最终区块链条,到达终点。

一笔交易的流转过程
从最源头开始,一笔交易的流转过程如下所示。
- 客户端软件在收集完交易信息,组织成相应的结构体,需要使用用户的私钥来签名该交易。
- 交易后编码为一个公开消息,通过节点网络发出并逐渐扩散到网络中各个节点。
- 挖矿节点和众多其他普通节点同时收到该消息,矿工将其暂时缓存起来。
- 若矿工决定将该交易打包入某区块,则执行该消息内容并获得执行结果。
- 矿工把打包好的区块(包含该交易)广播到网络中,参与共识算法挑选。
- 区块进入最终的区块链被永久保存。
若该笔交易费过低,则可能被调低优先级,在矿工的交易等待池(pending transaction pool)中等待较长的时间,或者在等待时,被其他高交易费的交易挤出等待池子。
若所调用的智能合约在执行时Gas花费过高,超过用户在交易中指定的的Gas上限,则会导致交易失败。
实际世界里,在以太坊网络的拓扑结构中,普通的节点运行着不同厂家出品的节点程序,比如 Geth、Parity 等。节点之间通过“广播”的形式互相传递信息,用户的交易请求,在初始阶段经由某一个联网节点传递入网络中,如图所示。

一笔交易在以太坊网络的节点间传播过程
以太坊上最常见的交易是:
- 以太币转账
- 智能合约调用
- 智能合约创建
这三种交易在交易发送时经历的步骤是一模一样的,区别仅在于填写交易时选择传递数据 data 还是传递价值 value 。 传递数据的即为合约相关操作,传递价值即为转账操作。 我们将在 第 6 章 手把手教你部署智能合约 中用动手实践的方式为读者展示具体的操作方法。
下一章:以太坊 共识与工作量证明
共识是区块链系统的核心灵魂,它决定弱信任环境下大家如何达成信任。目前,以太坊共识是基于工作量证明的机制(Proof of Work, PoW)。一个好的共识机制能够鼓励正直的矿工记账出块,防止双花攻击的发生,也能够 ...
AI 中文社