#货架 #随机性 #框架 #翻转 #生产 #波卡 #不安全

不使用 std pallet-insecure-randomness-collective-flip

在生产环境中不要使用:FRAME 随机性集体翻转货架(波卡 v1.15.0)

28 个版本 (主要破坏性)

25.0.0 2024 年 7 月 18 日
24.0.0 2024 年 7 月 12 日
23.0.0 2024 年 6 月 21 日
22.0.0 2024 年 5 月 23 日
0.0.0 2023 年 2 月 2 日

#1131神奇豆子

Download history 1234/week @ 2024-04-24 886/week @ 2024-05-01 628/week @ 2024-05-08 991/week @ 2024-05-15 801/week @ 2024-05-22 620/week @ 2024-05-29 790/week @ 2024-06-05 473/week @ 2024-06-12 592/week @ 2024-06-19 862/week @ 2024-06-26 461/week @ 2024-07-03 1070/week @ 2024-07-10 876/week @ 2024-07-17 680/week @ 2024-07-24 657/week @ 2024-07-31 542/week @ 2024-08-07

每月下载量 3,205
11 货架中使用(8 个直接使用)

Apache-2.0

2MB
35K SLoC

请勿在生产环境中使用

生成的值不满足随机数的密码学要求。不应用于高风险的生产用途。

随机性模块

随机性集体翻转模块提供了一个 random 函数,该函数根据前 81 个区块的区块哈希值生成低影响的随机值。当防御相对较弱的对手时,低影响随机性可能很有用。建议主要在低安全性的情况下(如测试)使用此货架作为随机数源。

公共函数

请参阅Module结构体以获取公开函数的详细信息。

用法

先决条件

导入随机集体翻转模块,并从系统特质派生您的模块配置特质。

示例 - 获取当前块的随机种子

use frame_support::traits::Randomness;

#[frame_support::pallet]
pub mod pallet {
    use super::*;
    use frame_support::pallet_prelude::*;
    use frame_system::pallet_prelude::*;

    #[pallet::pallet]
    pub struct Pallet<T>(_);

    #[pallet::config]
    pub trait Config: frame_system::Config + pallet_insecure_randomness_collective_flip::Config {}

    #[pallet::call]
    impl<T: Config> Pallet<T> {
        #[pallet::weight(0)]
        pub fn random_module_example(origin: OriginFor<T>) -> DispatchResult {
            let _random_value = pallet_insecure_randomness_collective_flip::Pallet::<T>::random(&b"my context"[..]);
            Ok(())
        }
    }
}

许可证:Apache-2.0

依赖关系

~17–32MB
~531K SLoC