权重Weight和基准Benchmarking

本文介绍了Substrate区块链中权重Weight和基准Benchmarking的概念,用于限制区块内extrinsics的数量。权重是衡量一个块能容纳多少extrinsics的通用度量,基准测试用于估算执行外部构件的最大权重。文章详细阐述了进行基准测试的六个步骤,包括编写benchmarking.rs,生成weights.rs,将权重加入pallet,编写自定义权重声明,并在不同模块中定义WeightInfo。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

权重Weight和基准Benchmarking

默认的Substrate块生产系统以一致的间隔生产块。这就是所谓的目标块时间。考虑到这一要求,基于Substrate的区块链只能在每个区块执行有限数量的extrinsics。根据计算复杂度、存储复杂度、使用的硬件和许多其他因素,执行一个外部因素所需的时间可能会有所不同。我们使用称为权重的通用度量来表示一个块可以容纳多少extrinsics。

我们使用称为权重的通用度量来表示一个块可以容纳多少extrinsics。

10^12 weight units = 1 second, or 1,000 weight units = 1 nanosecond 这是在特定的参考硬件上测量的:Intel Core i7-7700K CPU, 64GB RAM和NVMe SSD。

Substrate期望基准测试能够为执行外部构件的最坏情况提供一个近似的最大值。如果采用了这种最坏的情况,用户将被收取费用,如果外部资源需要的资源更少,一些估计的权重和费用可以被返还。这在交易权重和费用一章中有进一步的解释。

步骤Steps

1. 编写benchmarking.rs

benchmarks! {
   
	//这将测量 [1..100] 范围内 b 的 `do_something` 的执行时间。
	do_something {
   
		let s in 0 .. 100;
		let caller: T::AccountId = whitelisted_caller();
	}: _(RawOrigin::Signed(caller), s)
	verify {
   
		as
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值