API:金色观察|infura制裁特定地区用户 以太坊去中心化了吗

一、事件缘由

俄乌冲突,欧美对俄罗斯制裁。

3月4日,委内瑞拉MetaMask用户发现无法访问MetaMask钱包,因为Infura为响应美国对俄罗斯及乌克兰部分地区的制裁,而对Infura的API配置进行更改,但改错了。致使委内瑞拉用户无法通过MetaMask访问以太坊节点。

Infura发言人表示,作为一家美国公司,Infura密切关注美国的对外制裁计划,并严格调整其政策以遵守美国法律。受到制裁影响的地区包括伊朗、朝鲜、古巴、叙利亚和克里米亚、顿涅茨克和乌克兰卢甘斯克地区。?

其实此前就发生国多次因Infura故障导致Metamask无法使用的情况。比如,2月5日Infura宕机,导致用户无法通过MetaMask使用Dapps。

二、Infura部分客户

据Infura官网,目前使用Infura作为以太坊客户端API的主要应用如下:

但因为两个原因,1、Infura和Metamask均为Consensys旗下产品。2、Metamask覆盖最主要的以太坊用户群体,所以绝大多数以太坊用户是通过Infura和以太坊区块链交互的。

Infura原理如下:

来源:https://infura.io/product/ethereum

要了解Infura是如何让影响到Metamask的,需要了解一下以太坊的堆栈。

三、以太坊堆栈

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

第1级:以太坊虚拟机EVM

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

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

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

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

第2级:智能合约

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

智能合约不仅是开源的库,本质上是开放的API服务,始终在以太坊上运行且无法关闭。智能合约提供了用户无需许可即可和Dapp交互的功能。这也意味着可组合性,任何应用程序都可以与已部署的智能合约集成以组成新功能。任何人都可以将新的智能合约部署到以太坊,以添加自定义功能以满足其需求。

第3级:以太坊节点

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

分析 | 金色盘面:ADA短线走出双底结构:金色盘面分析师表示:市场回暖,ADA短线走出双底结构,上方压力位0.13976,下方支撑位0.13444。[2018/8/6]

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

Dapp通过JSON-RPCAPI连接到以太坊节点或者自己的以太坊节点,Dapp能够从区块链读取数据以及向网络广播新交易。

第4级:以太坊客户端API

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

如果面向用户的是Web应用程序,可以直接在前端选择JavaScriptAPI或者选择使用Python或JavaAPI在服务器端实现。

金色财经现场报道 MakerDao王奇君:将不遗余力帮助区块链社区去成长:金色财经6月3日现场报道,在今天的以太坊技术及应用大会“探索-以太坊与行业生态”圆桌讨论上,MakerDao王奇君说,区块链项目可以把人的利益带到一起,因为我们使用了代币模型,已经不仅仅是雇员关系,不是老板给你发工资的关系,而是你参与到了市场中去,你是市场的利益攸关者,希望项目顺利进行下去。现在有了好的商业模式,大家都有动机,能够得到对社会进行付出的动力。这个影响非常重要,我们会不遗余力帮助社区去成长。[2018/6/3]

第5级:终端应用程序

最顶层是面向用户的App。这和互联网开发的标准程序一样,主要是Web和移动App。

四、web3架构

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

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

金色财经现场报道 咔咔买房首席执行官谭博超:区块链使得建立低成本高安全性网络成为可能:金色财经前方记者实时报道,4月12日举办的第二届全球金融科技与区块链中国峰会2018上,咔咔买房首席执行官谭博超表示,区块链提供了两个机会,第一个是建立低成本高安全性网络机会、第二个是Tokensales机制对于初创企业而言能够解决资金问题。[2018/4/12]

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

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

因此Infura拒绝特定地区用户并不能说明以太坊已经中心化了,只能说明在某些环节中心化了,尤其考虑到Infura和Metamask均为Consensys旗下产品。

五、其他以太坊客户端API

下述是除了infura之外的以太坊客户端API,其中Dapp应用比较多的是Alchemy和QuikNode。

Alchemy-?EthereumDevelopmentPlatform

使用Alchemy的应用

QuikNode-?Blockchaindeveloperplatform.

使用QuickNode的应用或者服务

BlockCypher-?EthereumWebAPIs

CloudflareEthereumGateway.

DataHubbyFigment-?Web3APIserviceswithEthereumMainnetandtestnets.

Nodesmith-?JSON-RPCAPIaccesstoEthereumMainnetandtestnets.

Ethercluster-?RunyourownEthereumAPIservicesupportingbothETHandETC.

Chainstack-?SharedanddedicatedEthereumnodesasaservice.

PythonTooling-?VarietyoflibrariesforEthereuminteractionviaPython.

web3j-?AJava/Android/Kotlin/ScalaintegrationlibraryforEthereum.

Rivet-?EthereumandEthereumClassicAPIsasaservicepoweredbyopensourcesoftware.

Nethereum-?Anopensource.NETintegrationlibraryforblockchain.

Tatum-?Theultimateblockchaindevelopmentplatform.

Watchdata-?ProvidesimpleandreliableAPIaccesstoEthereumblockchain.

Zmok-?Speed-orientedEthereumnodesasJSON-RPC/WebSocketsAPI

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-2:687ms