Sui项目本地网络搭建与开发指南

Sui项目本地网络搭建与开发指南

sui Sui, a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the Move programming language sui 项目地址: https://gitcode.com/gh_mirrors/su/sui

前言

Sui作为新一代的高性能区块链平台,为开发者提供了完善的本地开发环境支持。本文将详细介绍如何搭建Sui本地网络环境,并利用其进行dApp开发和测试。

环境准备

在开始之前,请确保已正确安装Sui CLI工具链。Sui CLI是开发Sui应用的核心工具,提供了网络管理、交易签名、合约部署等关键功能。

启动本地网络

启动本地网络的基础命令如下:

RUST_LOG="off,sui_node=info" sui start --with-faucet --force-regenesis

这个命令做了以下几件事:

  1. 启动一个全新的Sui本地网络
  2. 附带启动水龙头服务(用于获取测试代币)
  3. 强制重新生成创世区块(每次启动都是全新网络)

参数解析

  • RUST_LOG:控制日志级别,这里设置为仅显示sui_node的信息级别日志
  • --with-faucet:启动水龙头服务
  • --force-regenesis:强制重新生成创世区块

高级配置选项

Sui本地网络支持多种定制化配置:

服务组件

  • --with-indexer:启动索引服务
  • --with-graphql:启动GraphQL服务
  • --no-full-node:不启动全节点

数据库配置

  • --pg-host:PostgreSQL主机地址
  • --pg-port:PostgreSQL端口
  • --pg-db-name:数据库名称
  • --pg-user:数据库用户名
  • --pg-password:数据库密码

网络参数

  • --epoch-duration-ms:设置纪元持续时间
  • --fullnode-rpc-port:全节点RPC端口

网络状态管理

持久化状态

默认情况下,Sui本地网络的状态会保存在~/.sui/sui_config目录中。如果不使用--force-regenesis参数,下次启动时会恢复之前的网络状态。

临时状态

使用--force-regenesis参数时,每次启动都会创建全新的网络状态,适合需要干净测试环境的场景。

连接与交互

连接全节点

可以通过RPC接口与本地网络交互:

curl --location --request POST 'http://127.0.0.1:9000' \
--header 'Content-Type: application/json' \
--data-raw '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getTotalTransactionBlocks",
  "params": []
}'

配置Sui CLI

将Sui CLI切换到本地网络:

sui client new-env --alias local --rpc http://127.0.0.1:9000
sui client switch --env local

测试代币获取

本地网络提供了水龙头服务用于获取测试代币:

sui client faucet

查看账户gas余额:

sui client gas

开发测试

生成测试数据

可以使用TypeScript SDK生成测试数据:

pnpm --filter @mysten/sui test:e2e

监控网络

可以通过本地运行的区块浏览器监控网络活动,或者使用公开浏览器的"Custom RPC URL"功能连接本地网络。

常见问题

  1. Node.js版本问题:确保使用Node.js 18+版本,否则可能出现"fetch is not defined"错误
  2. 临时目录问题:如果/tmp目录不可用,可以通过设置TMPDIR环境变量指定其他目录
  3. SDK版本问题:确保使用的TypeScript SDK版本与本地网络版本兼容

最佳实践

  1. 开发阶段使用--force-regenesis确保每次测试环境干净
  2. 生产准备阶段使用持久化状态测试升级流程
  3. 合理配置日志级别,平衡调试需求和性能
  4. 使用GraphQL服务可以更方便地查询链上数据

通过本文介绍的方法,开发者可以快速搭建Sui本地开发环境,为dApp开发和测试提供完善的支撑。

sui Sui, a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the Move programming language sui 项目地址: https://gitcode.com/gh_mirrors/su/sui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

解银旦Fannie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值