本文的上篇带链环,以太坊第2层排水管((I)可以分析了提高 以太坊 可扩展性的关键点——交易记录中的数据项,单个契约生成的事务代码量占块总容量的一半以上,极大地影响了网络的可扩展性。将IPFs作为以太坊的存储层2,托管合约代码,只保留代码哈希(-99.9%),降低区块大小。将更多交易打包进区块,增加可扩展性。那么究竟该如何实现呢? Filecoin+链接 IPFs网络节点或filecoin搜索矿工可以作为chainlink节点提供高效、安全、稳定的外部数据服务,并获得相应的奖励。通过将合约数据托管到一个去中心化的预言机网络连接的存储网络,在降低合约交易的数据量,提高 以太坊 可扩展性的同时,还能保证和 以太坊 相同的安全性。 1、 切入一般的合约交易的目的都是调用(call)目标合约账户中合约代码的函数(Function),而我们这次讨论的切入点点一类特殊的交易——合同创建事务。(如果对细节不感兴趣的同学这部分可以先跳过)在一个合约被调用前,首先应该通过发送一笔交易被创建出来。这类交易与普通交易存在两点不同:文章的上半部分给出了一笔 以太坊 交易的数据结构,下面我们来具体解刨一下合约创建交易中的数据项:{“data”: DeployCode+ ContractCode + auxdata}注:Deploy code虽然只使用一次便被搁置了,但是由于区块中交易树的根哈希形成了存储在块头的一部分,因此有必要将合约创建数据保留作为交易的一部分。 为了更加直观的展示,我们创建了一个空合约C:并将它部署在 以太坊 测试网:// Deploy code(只使用一次,用于初始化)60606040523415600e57600080fd5b5b603680601c6000396000f300// Contract code(被调用)60606040525b600080fd00 注意,在区块链的一笔交易记录中,代码是数据。而在合约执行或被调用时,数据是代码。 2、 合同代码卷然而,一个正式部署在 以太坊 主网的合约是这个样子的……来源链接:https://ETHerscan.io/tx/0x0c8bf04e67d62923f8c8ecc1409b68d42adfd6e2cf102f7d7c9141a1472e408e 这笔合约创建交易的代码部分共计28,224字节,而包含这笔交易的区块大小36,405字节,占比77.5%。很显然,契约创建事务占用了太多的块空间,这减少了单个块中包含的事务数,并且极大地影响了以太坊的可伸缩性! 3、 IPFs来了由此,我们想到可以把交易数据项中的代码存储在IPFS网络中,在数据项中只保留代码的哈希值。如此一来,在上面的例子中代码被代码哈希取代,从36405字节到32字节,音量仅为原来的0.088%。可以为原来区块让出更多交易空间。注:只要代码大于32字节,就可以把它替换成它哈希然而,由于IPFS网络节点目前并不稳定,并且以太坊源代码不包含托管合同的代码。因此,为了实现合约代码在链下高效、安全、稳定的托管。4、 链环来了IPFS网络节点或Filecoin的检索矿工可以作为ChainLink节点提供外部数据服务,并获得相应奖励。通过将合约数据托管到一个去中心化的预言机网络连接的存储网络,在降低合约交易的数据量、提高 以太坊 可扩展性的同时,还能保证和 以太坊 相同的安全性。链接工作流 结合Chainlink工作流,代码的托管流程流程如下:打包时,只打包哈希值。由于存档节点仍然保存全部完整交易、状态和收据,随时可以验证。虽然在IPFS网络检索的时间会降低单个交易被打包进区块链的时间会增加,但是由于区块体积的下降,单个区块可以打包更多的交易,降低网络的拥挤。代码托管扩展了更大的存储和检索网络,结合哈希寻址的特性,帮助节点更快同步数据。 因此,代码调用流:根据合约账户中代码的哈希在IPFS或Filecoin网络中检索相应代码。其中,deploy code不用下载,只用验证哈希。Contract code需要被下载至EVM,计算后返回状态。 综上,面对每月百万级的合约创建量,和占据区块大小过半的合约代码。通过将以太坊块中大容量的合同码信任到链上,链上的交易数据只能保持码哈希法,以降低交易权重(99.9%)。托管工作由IPFS/Filecoin和Chainlink共同负责的,前者负责代码的存储和检索,后者(去中心化预言机)负责前者和 以太坊 区块链的交互,以及对存储网络节点发放奖励保持代码托管的高效和稳定。最终,达到增加单块的交易数,提高 以太坊 的可扩展性的目的。 引用:https://github.com/ETHereumbook/ETHereumbook/blob/develop/06transactions.asciidochttps://fullstacks.org/materials/ETHereumbook/14_evm.htmlhttps://ETHereum.org/en/developers/docs/blocks/https://ETHereum.org/en/developers/docs/nodes-and-clients/https://medium.com/@hayeah/diving-into-the-ETHereum-vm-part-5-the-art-contract-creation-process-cb7b6133b855https://medium.com/paradigm-fund/chainlink-detailed-review-on-the-project-9dbd5e050974/End.
文章标题:使用chainlink,以太坊第2层是否可以排空filecoin((2)
文章链接:https://www.btchangqing.cn/248011.html
更新时间:2021年05月01日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。