帖子
分享您的知识。

如何将原始字节码发布到 SUI Localnet
在 SUI 区块链上部署智能合约通常涉及将 Move 代码编译成字节码并将其发布到网络上. 虽然 SUI CLI 可以自动执行大部分流程,但开发人员偶尔会寻求有关手动处理原始字节码的指导,尤其是在Localnet等本地测试环境中. 本文介绍了利用 SUI CLI 和开发工具将原始字节码发布到 SUI Localnet 的步骤.
SUI Localnet 的先决条件
在深入部署之前,请确保您具备以下条件:
sui
SUI CLI 已安装:按照官方 安装指南 设置命令行工具.- Localnet 运行:使用
sui-test-validator
二进制文件启动本地 SUI 网络进行测试 (https://docs.sui.io/).
3.Move Package:配置了模块和依赖项的功能性移动包.
什么是 SUI Localnet
SUI Localnet 是一个沙盒环境,用于在不冒真实资产风险的情况下测试智能合约. 它允许开发人员在迁移到 Devnet 或 Mainnet 之前模拟交互、调试逻辑和验证部署. 要启动 Localnet,请运行:
sui-test-validator
这将初始化本地验证器节点,为预先注资的账户 (https://docs.sui.io/)(https://scaf.gitbook.io/scaf/) 提供新的测试场所.
如何准备搬家套餐?
Move 包由源代码 (sources/
)、依赖关系 (deps/
) 和编译构件 (build/
) 组成. 要编译原始字节码,请关注build
包含.mv
文件的目录,即编译后的 Move 字节码.
- 生成软件包:
sui client build <package_path>
<package_path>
替换为包含您的Move.toml
文件的目录. build/
这会在文件夹中生成字节码.
- 查找字节码:
导航
build/<package_name>/bytecode/
到查找.mv
每个模块的文件. 它们代表要发布的原始字节码.
将原始字节码发布到 Localnet
sui client publish
虽然 SUI CLI 抽象了字节码管理,但您可以使用该命令手动发布原始字节码. 此命令接受预先构建的字节码,而不是重新编译软件包.
分步指南
- 启动 Localnet: 确保本地验证器正在运行:
sui-test-validator
- 发布字节码:
使用
publish
带有--bytecode
标志的命令来指定原始字节码目录:
sui client publish --bytecode <bytecode_path>
<bytecode_path>
替换为您的build/<package_name>/bytecode/
目录路径.
示例:
sui client publish --bytecode ./build/my_package/bytecode/
CLI 将向本地网络提交字节码,在链上创建一个新的包对象 (https://thelib.to/move-book)(https://sui.io/).
3.验证部署: 在 CLI 输出中检查交易详情. 使用 SUI 浏览器(如果适用于 Localnet)或通过以下方式查询软件包:
sui client get-package <package_id>
Sui CLI 的典型错误
1. CLI 版本不匹配
如果 CLI 无法识别命令,请使用操作系统推荐的方法进行更新. 避免通过手动更新cargo
来防止依赖关系冲突 (https://discord.gg/sui).
2. 字节码路径错误
确保该--bytecode
标志直接指向包含.mv
文件的目录. 不正确的路径将触发编译错误.
3. 本地网络连接失败
确认sui-test-validator
处于活动状态且您的 CLI 配置指向本地网络. 使用:
sui client envs
验证活动环境 (https://docs.sui.io/).
结论
publish
使用--bytecode
带有标志的 SUI CLI 命令时,将原始字节码发布到 SUI Localnet 是一个基本过程. 通过利用Localnet的隔离环境,开发人员可以在不产生成本或风险的情况下迭代测试合约. 虽然可以手动操作字节码,但该平台的设计优先考虑自动化,确保大多数用例的可靠性和简单性.
- Sui
- SDKs and Developer Tools
- Move
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.