Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust Is财资模块';s set_pot功能是否可供公众使用?_Rust_Substrate - Fatal编程技术网

Rust Is财资模块';s set_pot功能是否可供公众使用?

Rust Is财资模块';s set_pot功能是否可供公众使用?,rust,substrate,Rust,Substrate,国库模块是可调度的(在decl\u模块中声明),并且似乎不能确保任何关于来源的信息。这难道不意味着任何人都可以在任何时候单方面调整罐子吗 我使用polkadot UI的经验是,任何人都可以尝试调用此函数,但外部函数总是失败。如果只打算从sudo或democracy等调用它,为什么不编写它?如果在decl\u模块中声明一个没有origin作为第一个参数的函数宏时,它将自动假定您正在尝试声明一个“特权函数”:一个需要根源的函数 从: 如果省略了origin参数,则宏将其添加为第一个参数,并将sure

国库模块是可调度的(在
decl\u模块
中声明),并且似乎不能确保任何关于来源的信息。这难道不意味着任何人都可以在任何时候单方面调整罐子吗


我使用polkadot UI的经验是,任何人都可以尝试调用此函数,但外部函数总是失败。如果只打算从sudo或democracy等调用它,为什么不编写它?

如果在
decl\u模块中声明一个没有
origin
作为第一个参数的函数宏时,它将自动假定您正在尝试声明一个“特权函数”:一个需要
源的函数

从:

如果省略了origin参数,则宏将其添加为第一个参数,并将sure_root(origin)添加为函数的第一行。这些功能是相同的:

decl\u模块!{
用于枚举调用的发布结构模块,其中origin:T::origin{
fn my_privileged_function()->结果{
//您的实现
好(())
}
fn my_函数(原点)->结果{
确保_根(原点);
//您的实现
好(())
}
}
}
需要
原点的函数不应被认为与放入
impl
块中的内部或私有函数类似。它们应该被认为是“可调用的特权函数”,它基本上执行授权检查,以确保调用该函数的外部函数必须具有
根的来源。您可以认为它类似于Sudo模块,它公开了两个可调度函数,但只有“Sudo键”才能成功调用这些函数

在“特权函数”的情况下,只有运行时本身才能生成一个
源外部。

可分派的函数本质上不同于impl块中的“内部/私有函数”。例如,让我们看看您在财资模块中提到的
set\u pot
函数

这是一个“特权函数”,可以将
pot
的余额设置为任意数字

如果这是一个内部函数,那么是的,您可以在其他运行时函数中调用它,它将在运行时的所有内部执行您所期望的操作。但是现在让我们假设您想建立一个民主投票来改变
pot
的平衡,无论出于何种原因。您将无法访问此函数sinc它不是作为模块中的“可调用”函数公开的。因此,您将失去执行此类逻辑的能力

set\u pot
函数完全按照它的方式创建,因为它意味着通过
Root
外部函数,以及其他
Root
原始函数,对财资模块进行一些低级特权访问