主页 > 苹果手机安装imtoken钱包 > infura 在特定地区制裁用户 以太坊是去中心化的吗

infura 在特定地区制裁用户 以太坊是去中心化的吗

苹果手机安装imtoken钱包 2023-07-17 05:18:56

要了解 Infura 如何影响 Metamask,需要查看以太坊堆栈。

3. 以太坊堆栈

以太坊堆栈可以抽象为 5 层,从下到上:

Level 1:以太坊虚拟机 EVM

以太坊虚拟机 (EVM) 是以太坊智能合约的运行时环境。 以太坊区块链上的所有智能合约和状态变化都是通过交易来执行的。 EVM 处理以太坊网络上的所有事务处理。

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

在底层,EVM 使用一组操作码指令来执行特定任务。 目前有 140 个唯一的操作码,这组操作码确保 EVM 是图灵完备的。 图灵完备意味着 EVM 几乎可以计算任何给定足够资源的东西。

作为 dapp 开发人员,您不需要对 EVM 了解太多,只要它存在并且可靠地为以太坊上的所有应用程序提供支持而不会停机即可。

级别 2:智能合约

智能合约是在以太坊区块链上运行的可执行程序。 它是用一种特定的编程语言 Solidity 编写的,然后编译成 EVM 字节码。 EVM字节码也就是上面的操作码,是一种低级机器指令。

智能合约不仅仅是开源库,本质上是开放的API服务,始终运行在以太坊上以太坊区块链信息存储在哪里,无法关闭。 智能合约使用户能够在未经许可的情况下与 Dapps 进行交互。 这也意味着可组合性,任何应用程序都可以与已部署的智能合约集成以组合新功能。 任何人都可以将新的智能合约部署到以太坊以添加自定义功能以满足他们的需求。

Level 3:以太坊节点

为了让 Dapp 与以太坊区块链交互,它必须连接到以太坊节点。 连接到节点后,您可以读取区块链数据或将交易发送到网络。

以太坊节点是运行以太坊客户端软件的计算机。 客户端是以太坊的一个实现,它验证每个块中的所有交易,保持网络安全和数据准确。 以太坊节点集体存储以太坊区块链的状态,并就交易达成共识以改变区块链状态。

Dapp通过JSON-RPC(Remote Procedure Call)API连接到以太坊节点或自己的以太坊节点,Dapp可以从区块链读取数据(如用户账户余额)并向网络广播新的交易(如之间帐户)转移 ETH 或执行智能合约功能)。

第 4 级:以太坊客户端 API

由于以太坊全节点体积大,带宽要求高,很多Dapp开发者不会自己安装以太坊全节点。 市场上有许多由以太坊开源社区或专业服务提供商构建和维护的以太坊客户端 API,允许 Dapps 与以太坊区块链连接和通信。 这些 API 抽象了直接与以太坊节点交互的大部分复杂性,使开发人员可以花更少的时间处理复杂的以太坊客户端,而将更多时间专注于特定功能。

如果面向用户的应用是Web应用,可以在前端直接选择JavaScript API,也可以在服务端选择使用Python或Java API实现。

Level 5:终端应用

顶层是面向用户的应用程序。 这是互联网开发的相同标准程序,主要是网络和移动应用程序。

四、web3架构

前端代码需要与以太坊上的智能合约进行签名和通信; 签名需要用到钱包,最多的是Metamask; 签名后向以太坊广播信息的方式有两种: 1. 以太坊区块链节点自己运行; 2. 使用Infura、Alchemy、Quicknode等第三方服务提供的节点。

所以以太坊上一个Dapp的典型架构如下:

以太坊浏览器区块链_以太坊区块链信息存储在哪里_基于以太坊的区块链

因此,如果 Infura 拒绝具有特定区域 IP 地址的用户,那么他的交互将被排除在以太坊网络之外。

由于 Metamask 的以太坊客户端 API 默认使用 Infura,这也意味着这些地区的用户无法使用 Metamask 与 Dapps 进行交互。 但 Metamask 毕竟是去中心化和自托管的,因此用户也可以使用选择使用其他以太坊客户端 API 甚至是自己的以太坊客户端的钱包与以太坊区块链上的智能合约进行交互。

因此,Infura 拒绝特定区域的用户并不意味着以太坊已经中心化,而只是中心化在某些环节,特别是考虑到 Infura 和 Metamask 都是 Consensys 的产品。

5. 其他以太坊客户端API

以下是除infura之外的以太坊客户端API以太坊区块链信息存储在哪里,其中Alchemy和QuikNode在Dapp中应用较为广泛。

Alchemy - 以太坊开发平台

使用 Alchemy 的应用程序

QuikNode - 区块链开发者平台。

以太坊浏览器区块链_以太坊区块链信息存储在哪里_基于以太坊的区块链

使用 QuickNode 的应用程序或服务

BlockCypher - 以太坊 Web API

Cloudflare 以太坊网关。

Figment 的 DataHub - 带有以太坊主网和测试网的 Web3 API 服务.

Nodesmith - JSON-RPC API 访问以太坊主网和测试网。

Ethercluster - 运行您自己的支持 ETH 和 ETC 的以太坊 API 服务。

Chainstack - 共享和专用的以太坊节点即服务。

Python 工具 - 通过 Python 进行以太坊交互的各种库。

web3j - 用于以太坊的 Java/Android/Kotlin/Scala 集成库。

Rivet - 以太坊和以太坊经典 API 作为由开源软件提供支持的服务。

Nethereum - 用于区块链的开源 .NET 集成库。

Tatum - 终极区块链开发平台。

握奇数据 - 提供对以太坊区块链的简单可靠的 API 访问。

Zmok - 作为 JSON-RPC/WebSockets API 的面向速度的以太坊节点