IOTA 学习笔记(八):本地启动 IOTA Localnet
上一期我们讲解了 IOTA CLI 的基础操作包括网络环境管理、地址查询、对象查询和 Move 合约调用。掌握 CLI 后我们就可以在本地搭建一个完整的 IOTA 测试网络——Localnet为合约和交易调试提供可控环境。本地网络非常适合初学者因为它不依赖主网也不消耗真实代币可以随意重置状态、多次测试交易和合约逻辑。1. 为什么使用 Localnet使用 Localnet 有几个重要理由安全可控测试交易和合约不会影响主网状态。便于调试可以观察对象、交易和 checkpoint 状态排查函数执行问题。重复实验可以随意重置网络重复部署合约或测试交易。快速验证在本地即可测试 Move 合约、对象创建、转移和共享对象逻辑。简而言之Localnet 是理解 IOTA 对象模型、交易和 Move 合约最直观的实验环境。2. 启动 LocalnetLocalnet 需要 IOTA CLI 已安装并且本地节点支持 RPC 通信。基本命令iota-localnet start --force-regenesis说明start启动本地网络。--force-regenesis表示重新生成网络创世状态Genesis确保网络状态干净。命令执行完成后会在本地启动多个节点模拟验证者网络。成功启动后你会看到日志信息例如IotaNode started! Creating checkpoint executor for epoch 0这些日志表明 Localnet 节点已经启动网络开始运行。3. 配置 CLI 连接 Localnet启动 Localnet 后需要在 CLI 中创建并切换到对应的网络环境。创建网络环境iota client new-env --rpc http://127.0.0.1:9000 --alias localnet这里--rpc指定本地节点 RPC 地址--alias为环境起一个名字例如localnet。切换网络环境iota client switch --env localnet切换后CLI 的所有操作都会在本地 Localnet 网络中执行。查看网络信息iota client info输出示例Network: localnet RPC node: http://127.0.0.1:9000 Synced: true4. 检查节点和 Checkpoint 状态Localnet 会定期生成 checkpoint用于标记已经最终确定的交易和状态。查看 checkpointiota checkpoint list输出示例Checkpoint sequence: 0, confirmed transactions: 2 Checkpoint sequence: 1, confirmed transactions: 5Checkpoint sequence表示网络中形成的稳定状态序号。confirmed transactions表示已经被最终确认的交易数量。观察 checkpoint 有助于理解交易在 DAG 中如何被确认以及对象状态如何随交易更新。5. 地址、余额和对象查询Localnet 中可以像主网一样操作地址和对象查看地址iota wallet address list查询余额iota wallet balance --address ADDRESS查询对象状态iota object get OBJECT_ID这些操作与主网基本一致但在本地网络中无需担心真实代币或交易费用。6. 提交交易和调用 Move 合约在 Localnet 上可以提交交易、调用 Move 合约函数、测试对象操作逻辑。转账交易示例iota wallet send --to ADDRESS --amount 100CLI 会自动选择本地 Coin 对象作为输入并生成新的输出对象。调用 Move 函数示例iota move call --package PACKAGE_ID --module counter --function create这会在本地创建新的 Counter 对象并分配给交易发送者。7. 常见问题与排查在 Localnet 中可能遇到的一些常见问题节点启动失败或 RPC 不通检查端口占用确认本地节点已启动防火墙或 WSL 网络设置可能阻碍 RPCCheckpoint 不更新节点可能未同步需要重新启动 Localnet 并使用--force-regenesis对象查询不到对象可能未被创建确认在正确的网络环境下操作交易失败Gas 对象不足函数参数或对象引用错误8. 小结本期主要讲解了如何在本地启动 IOTA Localnet并通过 CLI 配置、查询和操作本地网络。Localnet 的价值在于提供一个可控实验环境支持合约、对象和交易测试可重复重置方便调试掌握 Localnet 使用后开发者可以在本地验证对象创建、交易执行、Move 函数调用和 checkpoint 机制为后续更复杂的合约开发打下基础。下一期我们将用 Localnet 演示一个最小 Counter 合约的完整流程包括创建对象、调用函数、查看对象状态。