跳转至主要内容
Change page

以太坊堆栈简介

页面最后更新: 2025年10月21日

就像其他任何一种堆栈结构,完整的“以太栈”会基于不同的目的在不同的项目之间变换。

然而,以太坊的核心技术是提供一种心智模型,这种模型帮助解决了以太坊区块如何在不同的应用之间的交互的问题。 理解堆栈的层级将有助于你理解可以将以太坊融入软件项目的不同方法。

级别 1:以太坊虚拟机

以太坊虚拟机 (EVM) 是智能合约在以太坊上的运行环境。 以太坊区块链上的所有智能合约和状态变更都由交易执行。 以太坊虚拟机处理以在太坊网络上执行的所有交易。

与任何虚拟机一样,以太坊虚拟机在执行代码和执行机器(以太坊节点)之间创建一个抽象级别。 目前,EVM 正在全球分布的数千个节点上运行。

在后台,那些以太坊虚拟机会使用操作码执行一些特殊的任务。 这些(140 个惟一的)操作码使 EVM 能够实现图灵完备opens in a new tab,这意味着只要有足够的资源,EVM 几乎可以计算任何东西。

作为去中心化应用程序的开发者,除了了解以太坊虚拟机的存在之外,你不需要了解更多关于以太坊虚拟机的信息,并且可以在以太坊上畅通无阻地授权所有应用程序。

级别 2:智能合约

智能合约是在以太坊区块链上运行的可执行程序。

智能合约使用特定的编程语言编写,这些语言可以编译成 EVM 字节码(称为操作码的低级机器指令)。

智能合约不仅是开放源码库,而且它们基本上是运行 24/7 的开放应用程序接口服务,不能被取消。 智能合约提供公共函数,用户和应用程序(去中心化应用程序)无需许可即可与之交互。 任何应用程序都可以与已部署的智能合约集成以组合功能,例如添加数据馈送或支持代币交换。 此外,任何人都可以在以太坊上部署新的智能合约,以添加自定义功能来满足其应用程序的需求。

作为一个去中心化应用程序开发者,如果你需要在以太坊区块链上添加自定义功能,需要通过写智能合约来实现。 你可能会发现你可以仅仅通过与现有智能合约进行整合来满足你项目的大部分或全部的需要。例如,如果你想要支持支付稳定币或启用分散交换代币。

级别 3:以太坊节点

为了使应用程序能与以太坊区块链交互,它必须连接到以太坊节点。 正在连接到一个节点,你可以读取区块链数据和/或将交易发送到网络。

以太坊节点是运行着软件的电脑,这些软件也就是一个以太坊客户端。 客户端是一种以太坊实现,它验证每个区块中的所有交易,从而确保网络安全和数据准确。 以太坊节点就是以太坊区块链。 他们集体存储以太坊区块链的状态,并根据改变区块链状态的交易达成共识。

通过将你的应用程序连接到以太坊节点(通过 JSON-RPC API),你的应用程序就能够从区块链读取数据(例如用户帐户余额),以及向网络广播新的交易(例如在用户帐户之间转移 ETH 或执行智能合约的函数)。

级别 4:以太坊客户端 API

许多方便的库(由以太坊开源社区建立和维护)允许你的终端用户应用程序连接到以太坊区块链并进行通信。

如果你的面向用户的应用程序是网页应用,你可以选择直接在前端 npm install 一个 JavaScript API。 或者,你也可以选择使用 PythonJava API,在服务器端实现此功能。

虽然这些应用程序接口不是栈必须的一部分,但它们抽象并消减了与以太坊节点直接互动的大部分复杂性。 它们还提供实用函数(例如将 ETH 转换为 Gwei),因此作为开发者,你可以花更少的时间处理以太坊客户端的复杂细节,将更多时间专注于应用程序的特定功能。

级别 5:最终用户应用程序

在栈的顶层是面向用户的应用程序。 这些是你今天经常用和构建的标准应用程序:主要是网络程序和移动应用程序。

开发这些用户界面的方式基本上保持不变。 用户常常不需要知道他们所使用的应用程序是使用区块链构建的。

准备好选择技术栈了吗? 准备好选择你的技术栈了吗?{#ready-to-choose-your-stack}

查看我们的指南,为你的以太坊应用程序设置本地开发环境

扩展阅读{#further-reading}

你还知道哪些对你有帮助的社区资源? 请编辑本页面并添加进来!

本文对你有帮助吗?