链资讯 链资讯
Ctrl+D收藏链资讯
首页 > XRP > 正文

三分钟了解波卡Substrate 框架中的交易重量

作者:

时间:

链的可用资源是有限的。资源包括内存使用、存储 I/O、计算、交易/块大小和状态数据库大小。有几种机制可以管理对资源的访问,并防止链中的各个组件消耗过多的资源。重量(Weights)是用于管理验证区块所需时间的机制。一般来说,这来自于限制存储 I/O 和计算。

注意:重量不是用于限制对其他资源的访问,例如存储本身或内存占用。有其他机制用于这个。

块可以包含的重量是有限的,可选的重量消耗(即不需要作为块的初始化或终结阶段的一部分部署的重量,也不需要用于强制的固有外部重量)通常通过经济措施来限制,或者简单地说,通过交易费用来限制。重量系统的费用含义包含在交易费用文档中(https://substrate.dev/docs/en/knowledgebase/runtime/fees)。

Substrate 将一个重量单位定义为在固定参考硬件(Intel Core i7-7700K CPU,64GB RAM 和 NVMe 固态硬盘)上执行时间的皮秒(微微秒)。参考硬件上的基准测试使重量在 runtime 之间具有可比性,从而允许来自不同来源的软件组件的可组合性。为了针对不同的验证人硬件假设去调节 runtime,可以设置不同的最大块重量。例如,为了允许验证人参与,速度只有参考机器的一半,最大块重量应该是默认值的一半,保持默认的块时间。

Biconomy推出的跨链交易基础设施Hyphen主网正式上线:官方消息,由区块链开发工具提供商Biconomy推出的跨链交易基础设施Hyphen主网正式上线,目前仅支持以太坊主网与Polygon之间的跨链操作。Biconomy表示,将在未来增加对更多代币以及更多侧链、EVM 链以及二层网络之间跨链的支持,此外,还将在下一个版本中将其改进为去中心化产品。[2021/8/11 1:48:24]

最大块重量应等于目标块时间的三分之一,分配三分之一用于块构造,三分之一用于网络传播,三分之一用于导入和验证。双倍块时间会双倍最大块重量。这些优化选项为 runtime 开发人员提供了一种方法,使其能够在每秒交易数与硬件需求之间为其场景进行最佳权衡。这些权衡可以通过 runtime 更新进行调整,以跟上硬件和软件的改进。

重量表示区块链必须验证区块的有限时间。这包括计算周期和存储 I/O。自定义实现可以使用复杂结构来表示这一点。Substrate 重量只是一个数值(https://crates.parity.io/frame_support/weights/type.Weight.html)。

重量的计算应始终:

V神:基础技术改进可扩展区块链 但区块链可扩展性仍有限制:5月24日,V神刊文论述《区块链可扩展性的限制》。文章称,有两种方法可以尝试扩展区块链:基础技术改进和简单地增加参数。不幸的是,有许多微妙的原因导致增加参数的方法从根本上是有缺陷的,而基础技术改进是可行的。目前,以太坊的主要瓶颈是存储容量,无状态和状态到期可以解决这个问题,并允许可能增加到3倍,但不会更多,因为我们希望运行节点比现在更容易。分片的区块链可以进一步扩展,因为分片的区块链中没有单个节点需要处理每笔交易。但即使这样,容量也是有限制的:随着容量的增加,最小安全用户数量也会增加,而存储链的成本就会增加。但我们不必太担心:这些限制足够高,以至于我们可以使用区块链的完全安全性每秒处理超过一百万笔交易。但是在不牺牲使区块链如此有价值的去中心化的前提下,将需要做一些工作。[2021/5/24 22:36:34]

在调度前可计算。块生成器应该能够在实际决定是否接受它之前检查可调度的重量。

本身消耗的资源很少。消耗同样的资源去计算交易重量是没有意义的,当它会在执行中花费掉。因此,重量计算应该比调度轻得多。

能够在不咨询链状态的情况下确定所使用的资源。在不需要昂贵的 I/O 的情况下,重量能够很好地表示固定的测量值或仅基于可调度函数的参数的测量值。当成本取决于链的状态时,重量就不那么有用了。

MicroStrategy首席执行官建议埃隆?马斯克将特斯拉资产负债表转换成比特币:12月20日,特斯拉创始人埃隆?马斯克(Elon Musk)在推特上发布了一张比特币的图片,MicroStrategy首席执行官Michael Saylor在该推文下面回复道:“如果您想为股东提供1000亿美元的好处,请将特斯拉(Tesla)的资产负债表从美元转换为比特币。标准普尔500指数的其他公司将跟随您的领导,随着时间的推移,它将增长到1万亿美元。”

对此,摩根溪创始人Anthony Pompliano发推文称:“如果埃隆?马斯克(Elon Musk)将特斯拉(Tesla)的资产负债表转换成比特币,互联网将会崩溃。”[2020/12/21 15:53:12]

在可调度的重量严重依赖于链状态的情况下,有两个选项可用:

确定或引入一个强制上限,以确定可调度的可能承受的重量。如果强制上限和可调度的最小可能重量之间的差异很小,则可以假定它始终处于重量上限,而无需咨询状态。然而,如果差异太大,那么进行较少交易的经济成本可能太大,这将扭曲激励机制,造成吞吐量的低效率。

要求将有效重量(或可用于有效计算的前体)作为参数传递给调度。收取的重量应以这些参数为基础,但也包括在调度期间验证这些参数所需的时间。必须进行验证,以确保重量参数与链上状态准确对应,如果不符合,则操作可能出错。

有几个因素会影响执行时间,从而影响重量计算。一个很大的贡献者是一个可调度执行的数据库访问数。由于数据库访问的成本在很大程度上取决于数据库后端和存储硬件,因此重量计算是参数化的,而不是数据库读写的重量成本。这些成本是通过在一些参考硬件上对每个可用的数据库后端进行基准测试来确定的。这允许在不更改所有重量计算的情况下切换数据库后端。

除了只使用常量进行预调度重量计算外,开发人员还可以将给定可调度对象的输入参数考虑在内。当执行时间取决于例如一个参数的长度时,这非常有用。重要的是,这些计算本身不需要任何有意义的工作。使用一些基本算法,可以从输入参数中轻松计算预调度的最大重量。

系统模块(System pallet )负责在执行时累积每个块的重量,并确保其不超过限制。交易支付模块(Transaction Payment pallet)负责解释这些重量并根据这些重量扣除费用。重量功能是 runtime 的一部分,因此可以根据需要进行升级。

在某些情况下,可调度的实际重量不能从其输入中简单地计算出来。例如,重量可能取决于可调度的逻辑路径。如果在调度后没有任何方法来校正重量,我们会不断高估这些可调度的价格,然后再多收费,因为我们必须在调度前假设最坏的情况,以确保链条的安全。

发布调度后的重量修正允许任何可调度的在执行后返回其实际重量。此重量必须小于或等于调度前最坏情况的重量。要允许用户包含外部用户,他们仍然必须能够支付最大重量,即使最终付款将基于实际重量。

除了影响费用之外,重量系统的主要目的是防止一个区块被执行时间过长的交易填满。在块内处理交易时,系统模块将块的总长度(以字节为单位的编码交易的总和)和块的总重量相加。如果这两个数字中的任何一个超过了限制,则该区块不接受进一步的交易。这些限制在 MaximumBlockLength 和 MaximumBlockWeight是有定义的。

关于这些限制的一个重要注意事项是,其中一部分是为 Operational 调度类保留的。此规则适用于这两个限制,比率可以在 AvailableBlockRatio中找到。

例如,如果块长度限制为 1 兆字节,并且比率设置为 80%,则所有交易都可以填充块的前 800 千字节,而最后 200 千字节只能由操作类填充。

还有一个 Mandatory 调度类,可以用来确保外部始终包含在块中,而不管它对块重量的影响如何。请参阅交易费用文档(https://substrate.dev/docs/en/knowledgebase/runtime/fees)以了解有关不同调度类以及何时使用它们的更多信息。

下一步

了解更多

Substrate 菜谱中有包含自定义重量和重量费用的案例。

案例模块:https://github.com/paritytech/substrate/blob/master/frame/example/src/lib.rs

查看给自定义 runtime 函数添加一个交易重量的例子。https://substrate.dev/recipes/3-entrees/weights.html

交易支付模块:https://github.com/paritytech/substrate/blob/master/frame/transaction-payment/src/lib.rs

重量:https://github.com/paritytech/substrate/blob/master/frame/support/src/weights.rs

原文:https://substrate.dev/docs/en/knowledgebase/learn-substrate/weight

翻译:PolkaWorld 社区

标签:KadenaADEKDASUBSkadena币能用显卡挖吗JADE价格DUCKDAO价格SUBS币

XRP热门资讯
分布式数字身份产业联盟(DIDA)正式成立

联盟logo 6月24日,由中钞区块链技术研究院与飞天诚信科技股份有限公司牵头,联合15家单位共同发起的分布式数字身份产业联盟(DID-Alliance,简称DIDA)正式成立。 蔡吉人院士、柴洪峰院士、王小云院士分别就DIDA的成立致贺词。中国农学会计算机农业应用分会理事长王文生,及17家发起单位的相关代表参加成立大会。

6月份的加密货币市场 三大风险不容忽视

经过昨晚的反弹,比特币有了再次冲击1万美金的势头,这次能否成功突破强压区间,确立减半之后的新行情?距离6月底只有一周的时间,但市场自身的风险却愈演愈烈,值得大家重视。 1、以太坊DeFi项目资产热炒背后的风险。

摩根大通区块链项目Kadena代币首次上市

全球最受欢迎的加密货币交易平台之一Bittrex Global将成为摩根大通旗下区块链子公司Kadena的代币第一个上市的加密货币交易所。 Kadena代币(KDA)终于在6月25日首次正式上市。虽然可以立即在Bittrex上的KDA钱包中存入代币,但交易将于国东部时间6月26日美上午10:00开始。

央行科技司李伟:支持上海等地借助区块链技术 探索金融科技监管

6月19日,央行科技司司长李伟在第12届陆家嘴论坛 “金融科技中心助力金融业高质量发展”圆桌环节表示,央行支持在上海等地探索金融科技创新监管工具的试点,鼓励借助大数据区块链等技术,加强金融市场交易报告库数据交换管理平台的建设,提升风险防控的能力和水平。

金色观察丨若5万亿美元流动资金入场会给比特币带来什么影响?

金色财经 区块链6月19日讯   比特币已经在9400美金附近上下震荡了很长一段时间,有业内人士认为,随着全球贵金属价格不断上涨,比特币也会跟进,尤其是在最近全球流动现金规模已经攀升到了接近5万亿美元的时候。

国际清算银行:新冠疫情危机将推动全球央行数字货币发展

国际清算银行预计,新冠疫情危机对零售支付的影响将对央行数字货币的发展产生积极影响。 在周三发布的报告中,国际清算银行指出,由于商人和消费者对病传播的担忧,现金支付急剧下降。经济不确定性也触发了现金的“预防性持有”,导致日现金交易量减少。 同时,国家政府实施的限制措施,例如关闭实体店等,也导致了电子商务付款的激增。