帖子
分享您的知识。
是通过 EOA 发布 Move 包的唯一方法吗?
我认为在Sui链上没有办法,因为链上没有发布软件包的模块.
- Sui
- SDKs and Developer Tools
- Move
答案
3不,在Sui链上发布Move包不限于EOA. 虽然 EOA 通常用于发布软件包,但 Sui 的设计允许其他实体(例如智能合约或模块)在特定条件下启动软件包发布. 但是,当前的实现通常需要EOA来签署和提交交易,因为没有链上模块可以自主处理包发布. 这样可以确保问责制和安全性,同时保持开发人员的灵活性.
不,在 Sui 上发布 Move 包不限于外部账户 (EOA),但是每个软件包发布操作都必须由具有足够权限和气体的账户签署的交易启动. 在 Sui 上,这通常通过 Sui CLI 完成,它使用账户的私钥(通常是 EOA)来签署和提交发布软件包的交易.
确实没有链上模块可以充当他人的 “包发布者”;Sui协议要求软件包发布者自己签署并提交发布交易. 这意味着:
-你不能将软件包的发布委托给智能合约或链上模块——合约没有原生机制可以代表你发布新软件包. -该过程始终由一个账户(EOA 或可能的多重签名或其他密钥管理方案)启动,而不是由另一个链上模块启动.
工作流程是:
-你在本地编译 Move 包.
-您使用 Sui CLI (sui client publish ...
) 提交由您的账户签名的交易,将软件包发布到网络.
-发布后,除非您保留该包并将其UpgradeCap
用于将来的升级,否则该包不可变 [8].
总而言之:在Sui上,Move软件包始终通过由账户(EOA或等效账户)签署的交易发布,而不是通过链上模块签署. 没有可以为您发布软件包的链上模块.
没有可以代表另一个地址部署软件包的链上模块或智能合约. 这是因为:
Move 包发布是 Sui(MoveModulePublish)上的一种特殊交易类型,它: • 需要通过 EOA 签署 • 直接在链上上传和编译 .move 源代码 • 创建不可变的 Package 对象
链上不存在通用的 publish () 函数. 与部署合约(例如以太坊上的工厂模式)的合约不同,在 Sui 中,Move 运行时不会将发布公开为链上可调用操作. 它是协议层的一部分,而不是用户级模块.
你知道答案吗?
请登录并分享。
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.

- ... SUI0xduckmove+80
- ... SUIharry phan+47
- ... SUIdudley_smith+31
- ... SUIVens.sui+31
- ... SUI
- ... SUI
- ... SUIHaGiang+16