Pact模块有许多限制,这些限制决定了哪些代码用户可以调用,哪些代码只有模块可以控制。具体来说,当一个模块由密钥集管理。 (例如(module foo 'foo-keyset)
)时,文档声明:
这表示,如果用户试图升级模块,或直接写入模块表,“foo”将在事务签名集上强制执行。
我不清楚这些是仅仅是例子,还是它们构成了模块治理所涵盖的全部内容。
当我将密钥集或治理函数应用到我的模块时,该键集或治理功能具体保护了什么?
发布于 2022-06-15 07:17:21
如果您在模块中设置了治理密钥
(module my-module "admin-keyset"
...
)
这意味着您可以使用keyset管理密钥集升级模块。升级模块用新版本覆盖现有模块,方法是重新部署使用keyset签名的模块。如果不设置治理密钥集,则无法升级合同。
使用所请求的功能签名的任何人都可以调用模块的功能(如果有的话)。如果函数没有请求任何功能,任何人都可以调用它。
据我所知,在公开的Kadena Chainweb上直接写表是不可能的,它可能指的是Kadena的私有区块链软件Kuro中的功能。
https://stackoverflow.com/questions/72622794
复制相似问题