Derick
1978 words
10 minutes
Hello Ethereum!

你好,以太坊!—— 从后端视角看“世界计算机”#

🌍 本章目标:建立对以太坊的整体认知。

你将不再把区块链当作一个“黑盒”,而是能用后端工程师的视角,看懂它的结构、语言与运行逻辑。

本章不求你写出多少代码,而是希望你看完后能说出一句——

“原来以太坊,真的就像一台全球共享的计算机。”


一、从“服务器”到“世界计算机”#

还记得我们最熟悉的 Web 架构吗?

客户端 → 服务器 → 数据库

我们写接口、连数据库、部署后端,一切都在一家公司自己的服务器上运行。

这就是 中心化系统(Centralized System) —— 所有数据与逻辑都掌握在单一机构手中。

现在想象一下:

如果这个“服务器”不属于任何一家公司,

而是全球上万台机器同时维护、共同执行逻辑,

每个节点都保存完整的数据副本,

那么它会变成什么?

这就是以太坊(Ethereum)。

以太坊是一台由全世界共同运行的计算机。

它不是某个云服务,而是一个人人都能参与的、不可篡改的、开放的计算平台

它运行的代码叫 智能合约(Smart Contract),执行环境叫 EVM(以太坊虚拟机)


二、智能合约:去中心化世界的后端代码#

在中心化应用中,后端服务通常由我们自己维护。

我们可以修改逻辑、更新版本、甚至删除用户数据。

但在以太坊上,逻辑以“智能合约”的形式部署,一旦发布就无法随意更改。

它是自动执行的程序,由整个网络共同维护。

概念Web2 对应物Web3(以太坊)对应物
应用逻辑后端服务智能合约
执行环境服务器EVM
数据库MySQL/PostgreSQL区块链账本
部署CI/CD 部署服务发布到区块链
用户请求HTTP 调用交易 (Transaction)

一句话总结:

智能合约 = 运行在区块链上的后端服务。

一旦部署,它就“永远在线”,无法被某个人关闭。


三、EVM:让全世界计算出同一个结果#

EVM(Ethereum Virtual Machine)是以太坊的核心。

它确保每个节点在执行合约时,都能得到完全相同的结果。

不管你在台北、纽约还是巴黎,只要在同一区块高度执行相同的合约调用,

每个节点的输出都必须一致。否则,网络就会分裂。

这就是“去中心化计算”的奇妙之处:

每一次执行,都是所有节点的共识计算

从开发者视角看,EVM 是一个“安全沙箱”:

  • 它限制智能合约的运行时间(用 Gas 控制成本)
  • 它规定数据访问方式(合约存储、状态树)
  • 它屏蔽了底层系统差异,保证确定性执行

如果你来自后端开发背景,可以把它理解成一个:

“运行在全球分布式数据库上的虚拟机”。

它既能执行代码,又能保证状态一致。


四、节点与 JSON-RPC:你与区块链的对话通道#

既然以太坊是“世界计算机”,那我们该如何和它对话?

答案是 —— 通过 节点 (Node)

节点是以太坊网络的“接入点”,存储了完整或部分链上数据,并提供通信接口。

每个节点都能处理请求、广播交易、同步最新区块。

我们与节点通信的协议叫 JSON-RPC

如果你写过 RESTful API 或 gRPC,这个概念会非常亲切。

下面是一个典型请求示例:

{
  "jsonrpc": "2.0",
  "method": "eth_getBlockByNumber",
  "params": ["latest", false],
  "id": 1
}

它就像是在问节点:

“请告诉我以太坊当前最新区块的内容。”

节点返回的结果是标准化的 JSON,对后端开发者非常友好。


五、节点从哪里来?——“自己搭”还是“租一个”#

在开发阶段,我们一般不会自己从零搭建节点。

因为全节点同步需要巨量的磁盘和网络资源。

所以更常见的做法是使用 节点服务商(Node as a Service)

可以把它理解成 “区块链版的 AWS RDS”。

你不需要自己搭建数据库,只要获取一个 API Endpoint,就能直接读写链上数据。

主流节点服务商简评:#

服务商特点
Infura以太坊生态最老牌节点服务,由 ConsenSys 维护,稳定可靠。
Alchemy提供增强型 API 与强大开发工具,深受开发者欢迎。
QuickNode以速度与多区域性能著称。
Ankr / Chainstack性价比高,API 丰富,适合多链开发。

🔑 实践准备:

你可以去 InfuraAlchemy 注册免费账号,

创建一个项目并获取测试网(例如 Sepolia)的 RPC URL。

这是你未来章节中“连接以太坊”的通行证。


六、区块、交易与收据:区块链的数据世界#

区块链的数据结构其实并不神秘。

它只是在传统数据库基础上,加上了时间顺序和不可篡改性

概念类比说明
区块 (Block)一次批量提交打包多笔交易的容器
区块哈希唯一指纹通过哈希算法生成,用来防止篡改
交易 (Transaction)用户请求用户发起的操作,如转账或调用合约
交易哈希请求 ID用于追踪交易状态
收据 (Receipt)执行结果记录交易是否成功、消耗多少 Gas、触发哪些事件

可以这么想:

区块就像数据库的 commit log,

交易是一次请求,

收据是请求执行后的返回值。

当你理解了“区块是数据库提交记录”的这个比喻,你就能自然地看懂链上数据。


七、小小预告:你的第一个 Go-EVM 程序#

为了让概念更“落地”,我们在下一讲中将真正动手,

使用 Go 语言与 go-ethereum 库连接到 Sepolia 测试网,

并获取当前最新区块号。

你将看到这样一个输出:

✅ 成功连接到 Sepolia 测试网!
最新的区块号是: 5432100

它意味着你真正与“世界计算机”建立了联系。

从那一刻起,你就不是区块链的旁观者,而是它的参与者。


八、总结(Key Takeaways)#

  • 以太坊是一台全球分布式的“世界计算机”。
  • 智能合约是这台计算机的“后端程序”。
  • EVM 确保所有节点执行同样代码得到同样结果。
  • 节点是你与区块链的“API 网关”,通过 JSON-RPC 通信。
  • 区块、交易、收据是链上数据的三大基本结构。
  • 下一讲,我们将正式用 Go 语言“握手”以太坊测试网。

后续章节规划(系列路线图)#

章节核心主题学习目标
第 1 讲你好,以太坊!建立心智模型,理解 EVM 世界观
第 2 讲连接区块链编写第一个 Go 程序,读取区块
第 3 讲探索交易查询交易详情与执行结果
第 4 讲事件与日志解析智能合约事件(Logs)
第 5 讲扫链与索引构建自己的数据索引器
第 6 讲签名与发送交易发送真实交易、管理 nonce
第 7 讲实战篇:监听代币转账开发一个实时链上监控工具

尾声#

到这里,你已经完成了 Web3 世界的“入境登记”。

接下来,我们将用 Go 语言打开第一个“窗口”,

去看看这台世界计算机的心跳 —— 区块。

Hello Ethereum!
https://blog.ithuo.net/posts/blockchain-tutorial-evm-1/
Author
Derick
Published at
2024-12-03