通过钻石标准解决以太坊合约大小限制

2020-08-27 21:08 栏目:经验之谈 来源:网络整理 查看()

以太网契约包含太多的函数和代码,将达到24KB的最大大小限制。对于某些类型的合同,这是一个真正的问题。

一些合同标准需要许多功能。例如,ERC1400安全令牌标准需要27个功能和13个事件。ERC-998可组合和不可替代令牌标准[4]规定了31种功能。通过为这些标准实现其他特定于应用程序的代码契约,很容易超过24KB的限制。

即使不是实现一个大的标准合同,一些开发人员也会希望开发一个大的合同,以便将相关代码放在同一个以太网地址下。此外,如果状态和功能存储在同一个以太网地址下,那么访问和修改合同存储将更加容易和灵活。

我该怎么办?

有些人提议增加或取消合同的最大规模限制。然而,Vitalik Buterin出于技术原因反对该协议,并为使用“代理合同”和“委托合同”进行辩护。代理契约是指通过使用被称为“委托调用”的低级操作调用其他契约函数来保持当前契约较小的契约。

基于以上差异,我认为规范操作是个好主意。如何创建代理契约来模拟可能超过24kb大小限制的大型契约。

这就是为什么我制定了印度媒体协会标准。该标准规定了如何创建一个小合同,它可以像当前合同的代码一样使用其他合同的任何数量的代码。

实施国防工业标准的合同称为国防工业协议。“DIA”一词用于区分DIA与常规合同和只能从单个合同中借用代码的代理合同。

此外,术语“DIA”用于建立一个形象概念,并理解它是如何工作的。真正的DIA有不同的面,这就是所谓的刻面。可以想象的是,在以太博物馆的一个DIA合同也有不同的方面。印度发展署借用职能的每一份合同都是不同的一面。

DIA标准通过类比扩展了“钻石切割”的功能,用于添加、替换或删除切割面和功能。这类似于给一个真正的国防情报局一个新的削减,但通过合同削减。

此外,DIA标准提供了一个名为“放大镜”的功能,它返回关于切割平面和DIA存在的功能的信息。在国防工业中,“放大镜”是用来检查国防工业的工具。

DIA标准中定义的新术语与真实DIA的类比一致。这是用来定义和区分DIA与其他类型的合同。不幸的是,新术语可能会成为一些人学习标准的障碍。然而,新术语很少,我们在本文中介绍了这些新术语。术语有直径:直径切割、刻面和放大镜。

我最近写了一篇关于DIA的更深入的文章,包括如何开始实现DIA标准:和理解以太网DIA标准[6]

必须提到的是,印度国防工业协会标准包括一个灵活和透明的方法来创建一个可升级的印度国防工业协会合同。可升级合同是可选的,但有些人可能会为可升级功能创建可升级合同。

印度标准变得越来越流行

上个月,康赛斯尽职调查[7]对Codefi[8]的合同进行了公共安全审计。ConsenSys的勤奋建议[9]Codefi应该使用DIA标准来解决合同最大规模限制的问题。

ERC-1155多令牌标准提到[10]用于升级合同的DIA标准(EIP-2535)。

许多个人和公司与我联系,告诉我他们正在使用DIA标准或在他们的系统中实施DIA标准。以下是一些发表过相关文章的人提供的一些信息:

一家分散式交易所的流动性供应商,正在使用DIA标准。

截击之火的开发者乔伊萨克尔发布了一个名为钻石设置器的Python工具,它是DIA的合同管理器。以下是他的博客文章:第二设置器,以太网智能合同管理器[13]

罗南桑德福德(威哈瓦[14])是一位杰出的智能合约开发人员,也是ERC-1155标准的作者,他宣布[15]他正在致力于在buidler-deploy[16]中增加对钻石的支持,从而使钻石的部署/切割变得非常容易buidler-部署是一种将合约部署到任何网络、跟踪它们并复制相同环境进行测试的机制。

反对[17]在生产环境中使用钻石内存[18]写了一篇关于其实现的博文:使用钻石标准的可升级智能合约[19]

在Reddit上关于钻石标准第一个受欢迎的帖子20 .

参考资料

[1]登链翻译计划: https://github.com/lbc-team/Pioneer

[2]威尔https://learnblockchain.cn/people/617 :

[3]很小熊: https://learnblockchain.cn/people/15

[4]ERC-998可组合不可替换代币: https://eips.ethereum.org/EIPS/eip-998

[5]钻石标准: https://github.com/ethereum/EIPs/issues/2535

[6]理解以太坊钻石标准: https://dev.to/mudgen/understanding-diamonds-on-ethereum-1fb

[7]委员会的勤奋: https://diligence.consensys.net

[8]https://codefi.consensys.net/代码:

[9]建议: https://勤奋。康塞斯。net/海选/2020/06/codefi-ERC 1400-评估/#钻石-标准

[10]提到: https://eips.ethereum.org/EIPS/eip-1155#upgrades

: http://joeyzacherl。com/2018/10/volleyfire-流动性-提供者-分散交易/

[12]钻石镶嵌机: https://github.com/lampshade9909/DiamondSetter

[13]钻石镶嵌机,以太坊智能合约管理器: http://joeyzacherl。com/2020/06/diamond-setter-ether eum-smart-contract-manager

[14]https://twitter.com/wighawag

[15]宣布: https://twitter.com/wighawag/status/1280992800545349644

[16]buidler-deploy : https://github.com/wighawag/buidler-deploy#readme

[17]https://nayms.io/纳伊姆:

[18]https://twitter.com/hiddentao街:号

[19]使用钻石标准的可升级智能合约: https://hiddentao。com/archives/2020/05/28/可升级智能合同使用钻石标准

[20]受欢迎的帖子: https://www .红迪。com/r/ether em/comments/gze6 k3/a _ diamond _ is _ set _ of _ contracts _ can _ access

[21]理解以太坊的钻石标准: https://dev.to/mudgen/understanding-diamonds-on-ethereum-1fb

[22]不和谐论坛: https://discord.gg/kQewPw2

[23]蜂窝网络: https://www.cellnetwork.io/?utm_souce=learnblockchain

[24]尼克穆德: https://dev.to/mudgen

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发