织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

a16z 前合伙人:从架构角度深入解析 Web 3.0 与 Web 2.0 应用区别(2)

时间:2021-09-28 20:08来源:未知 作者:admin 点击:
你可以利用区块链构建程序在去中心化的状态机构建应用程序,这一系统是由互联网上的匿名节点在维护。 状态机是指一种可维持程序状态并允许新的状

  你可以利用区块链构建程序在去中心化的状态机构建应用程序,这一系统是由互联网上的匿名节点在维护。

  状态机是指一种可维持程序状态并允许新的状态写入的「机器」。区块链就是一种虚拟机,其以创世状态作为示例,随后状态根据具体规则进行转换。

  更重要的是,没有单一实体控制这个去中心化的状态机,它由网络中的每个人共同维护。

  在 Web 3.0 中,你可以编写智能合约来定义应用程序的逻辑并将它们部署到去中心化的状态机上。这意味着每个想要构建区块链应用程序的人都在这个共享状态机上部署他们的代码。这与 Medium 的后端十分不同。

  Web3.0 的前端和 Web2.0 的前端基本相同,有一些特例我们将在后文中讲解。

  下图是 Web3.0 的架构

深度解析

  那么,让我们更深入地了解是什么让这一切成为可能

区块链

  以太坊是全球都可以参与维护的,点对点具有确定性的状态机,这让以太坊经常被吹捧为「世界电脑」。状态机上的状态更改由网络中的遵循共识规则的节点控制。

  换句话说,它实际上被设计为世界上任何人都可以访问和写入的状态机。因此,这台机器不属于任何单一实体,而是由网络中的每个人共同拥有。

  还有一件事要知道:数据只能写入以太坊区块链,你永远无法更新现有数据。

智能合约

  智能合约是运行在以太坊区块链上的程序,用于定义区块链上发生的状态变化背后的逻辑。智能合约通常都用 Solidity 或者 Vyper 这类的高级语言编写。

  由于智能合约代码存储在以太坊区块链上,任何人都可以检查网络上所有智能合约的应用逻辑。

以太坊虚拟机(EVM)

  虚拟机是用来执行智能合约中定义的逻辑并处理状态机上发生的状态变化。

  以太坊虚拟机不理解像 Solidity 或 Vyper 的这种高阶语言。你需要将这些高阶语言编译成以太坊虚拟机可以执行的字节码。

前端

  正如我们之前提到的,前端定义了 UI 逻辑,但前端也与智能合约中定义的应用程序逻辑进行交互。

  前端和智能合约之间的交互比上图中显示的要复杂一些。接下来让我们详细说明一下这部分。

以太坊上前端代码如何与智能合约进行交互

  我们想让前端和智能合约交互时能够触发程序的特定功能,但不要忘记,以太坊是一个去中心化的网络。所有每一个以太坊的节点都需要保存一份以太坊状态机上所有状态的副本。这个副本包括所有与智能合约相关的代码和数据。

  当我们想和区块链上的数据和代码进行交互的时候,我们要和区块链中的某一节点进行通信。因为任何节点都可以广播在以太坊虚拟机上进行交易的请求。在这之后矿工将执行交易并将结果状态更改广播到网络的其他节点上。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容