使用chainlink,以太坊第2层是否可以耗尽filecoin?(第一部分)分析了提高以太坊可扩展性的关键点——事务记录中的数据项。单个合约创建的事务代码量超过了块总容量的一半,这极大地影响了网络的可扩展性。通过将IPFs作为以太坊的存储层2,管理合约代码,只保留代码散列(-99.9%),以减少块大小。将更多事务打包到块中以提高可伸缩性。那么如何实现呢?filecoin+chainlink IPFs网络节点或filecoin的检索矿工可以作为chainlink节点提供高效、安全、稳定的外部数据服务,并获得相应的奖励。通过将合同数据托管到一个去中心化的预言机网络连接的存储网络中,可以减少合同事务数据量,提高以太坊的可扩展性,保证与以太坊相同的安全性。
1、 切入
一般合同事务的目的是调用目标合同帐户中合同代码的函数。本文讨论的出发点是一种特殊的交易合同创设交易。(如果您对细节不感兴趣,可以先跳过这部分。)
在调用契约之前,应该通过发送事务来创建它。这种交易与普通交易有两个区别
收件人。用于创建合同事务的接收方的地址是固定的零地址-0x0;
合同代码。交易“数据”项中的代码不是合同代码,而是EVM计算的结果。
本文的前半部分给出了以太坊事务的数据结构。让我们分析合同创建事务中的数据项
{“数据”:DeployCode+ContractCode+auxdata}
部署代码仅在协定初始化和部署期间执行。具体来说,它有两个功能
可以将代码和构造函数设置为初始变量;
将contractcode部分**到内存中,并将其作为contractcode返回给EVM。
Contractcode是在创建和部署合同后将调用的合同代码;
Auxdata是用于验证的加密指纹的源代码。
注意:尽管部署代码在只使用一次之后就被搁置了,但是有必要将契约创建数据作为事务的一部分,因为块中事务树的根哈希形成了存储在块头中的一部分。为了更直观的显示,我们创建了一个空合同C:
并部署在以太坊测试网络中
//部署代码(仅用于初始化一次)60606040523415600e576008008000fd5b6036806016000396000f300//合同代码(调用)6060604052b60008fd00注意,在区块链的交易记录中,代码是数据。当合同被执行或调用时,数据就是代码。
2、 合同代码卷
然而,正式部署在以太坊主网络中的合同如下所示
文章标题:使用chainlink,以太坊第2层是否可以耗尽filecoin?(2)
文章链接:https://www.btchangqing.cn/228202.html
更新时间:2021年04月08日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。