帮助更新此页面

🌏

本页面有新版本,但现在只有英文版。请帮助我们翻译最新版本。

我们期待您的共同协作来完善本页内容。欢迎您在此添加任何您认为对其他人有帮助的内容。

以太坊堆栈简介

上次编辑: , Invalid DateTime
编辑页面

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

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

级别 1:以太坊虚拟机

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

与任何虚拟机一样,EVM 在执行代码和执行机器(以太坊节点)之间创建一个抽象级别。 目前,在世界各地散布着成千上万的正在执行的 EVM 节点。

在后台,那些 EVM 会使用操作码 (opcode) 执行一些特殊的任务。 这些 140 个独特的执行码使得 EVM 是图灵完备的。这意味着 EVM 只要有足够的资源就能够计算出任何东西。

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

级别 2:智能合约

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

智能合约使用了特定的编程语言来编译到 EVM 字节码(调用 opcodes 的低级机器说明)。

智能合约不仅是开放源码库,而且它们基本上是运行 24/7 的开放 API 服务,不能被取消。 智能合约提供了为用户和应用程序 (dapp) 之间交互的公开方法,无需许可。 任何应用程序都可能会与已部署的智能合约集成组成功能,如添加 数据源 或支持代币交换。 任何人都可以在以太坊上部署智能合约,以便添加自定义功能来满足其应用程序的需要。

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

级别 3:以太坊节点

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

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

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

级别 4:以太坊客户端 API

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

如果您的面向用户应用程序是一个 web 应用程序,您可以直接选择在您的前端使用 npm 安装 一个 JavaScript API 。 或许您会选择使用 PythonJava 的 API 在后端实现此功能。

虽然这些 API 不是栈必须的一部分,但它们抽象并消减了与以太坊节点直接互动的大部分复杂性。 它们还提供好用的函数(例如:将 ETH 转化为 Gwei),而作为开发者,您可以花费更少的时间处理以太坊客户端的复杂问题,从而将更多的时间集中于处理您的应用程序的独特功能。

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

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

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

准备好选择技术栈了吗?

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

延伸阅读

还有哪些社区资源对您有所帮助? 编辑并添加本页面!

👈
前一页权益证明
下一个智能合约
👉