Ika Operator

Polar Sponsor
爱发电 赞助
.NET 9.0

Ika网络节点运维指南——验证节点、全节点、通知节点。用于部署、配置、监控或排查Ika基础设施。

Ika Node 操作指南

功能概述

Ika Node 操作指南是一项面向实际任务的技能,主要用于部署并运行 Ika 网络节点( 验证器、 完全节点、 通知器). 参考( 详细配置和操作). 参考/ 配置. md - 完整节点Co。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Ika 节点运营商指南

部署并运行 Ika 网络节点(验证者、全节点、通知器)。

参考文档(详细配置与操作说明)

  • references/configuration.md — 完整的 NodeConfig YAML 配置参考,包含所有字段及其默认值
  • references/operations.md — 部署、监控、管理 API、恢复、指标代理
  • references/validator-setup.md — 使用 CLI 命令逐步完成主网验证者搭建的完整流程

节点类型

二进制文件 运行模式 用途 关键配置项
ika-node 自动识别 根据配置自动选择运行模式 自动识别
ika-validator Validator 共识 + MPC 签名 需配置 consensus-config
ika-fullnode Fullnode 通过 P2P 进行状态同步,不参与共识 不可配置 consensus-config,且不可配置 notifier-client-key-pair
ika-notifier Notifier 向 Sui 提交检查点 需配置 notifier-client-key-pair

自动识别顺序:若存在 consensus-config → 启动为 Validator;否则若存在 notifier-client-key-pair → 启动为 Notifier;否则 → 启动为 Fullnode。

硬件要求(验证者)

资源 最低要求
CPU 16 个物理核心 / 16 个 vCPU
内存 128 GB
存储 4 TB NVMe
网络 1 Gbps
操作系统 Linux Ubuntu/Debian x64(或在 x64 Linux 上运行 Docker)

警告:Hetzner 对加密相关服务有严格的使用条款(ToS),可能在无通知情况下关停验证者节点。

连通性(验证者端口)

协议/端口 方向 用途
TCP/8080 入站 协议 / 交易接口
UDP/8081 入站/出站 共识接口
UDP/8084 入站/出站 点对点(P2P)状态同步
TCP/8443 出站 指标推送
TCP/9184 入站/出站 指标抓取(适用于 Sui 全节点与 Ika 节点)

关键要求:端口 8080–8084 及 9184 必须开放,并确保协议类型(TCP/UDP)配置正确。

前置条件

  • 验证者的 DNS 地址(例如:ika-mainnet-1.)
  • 您自建的、已完全同步至 Sui 主网的 Sui 全节点(至少同步至最近两个 epoch)。Sui 节点应使用独立 DNS 地址。
  • 已安装并配置好 Sui CLI,且已设置为主网环境,同时对应地址中至少持有 10 SUI
  • 加入委员会所需的最低质押量为 4000 万 IKA

快速开始:主网验证者

从以下地址下载二进制文件:https://github.com/dwallet-labs/ika/releases

步骤 1:配置 Ika 运行环境

请从权威来源获取最新 package/object ID:

  • 主网:deployed_contracts/mainnet/address.yaml(GitHub)
  • 测试网:deployed_contracts/testnet/address.yaml(GitHub)
./ika validator config-env 
  --ika-package-id                     
  --ika-common-package-id              
  --ika-dwallet-2pc-mpc-package-id     
  --ika-system-package-id              
  --ika-system-object-id              
# 将生成:~/.ika/ika_config/ika_sui_config.yaml
# 注意:此时未设置 ika-dwallet-coordinator-object-id(默认为零);
# 该值必须在节点的 validator.yaml 文件中,于 sui-connector-config 下另行配置。

步骤 2:生成验证者信息与密钥对

./ika validator make-validator-info 
  "My Validator" "Description" 
  "https://example.com/image.png" "https://example.com" 
  "ika-mainnet-1.example.com" 
  10000 
  
# 将生成:protocol.key、network.key、consensus.key、root-seed.key、validator.info

至关重要:请务必备份所有生成的密钥。其中 root-seed.key 是**机密且不可替代**的;一旦丢失,无法通过合约更新。其余密钥(protocol、network、consensus)可在链上轮换。

步骤 3:注册为验证者候选人

./ika validator become-candidate ./validator.info
# 返回:Validator ID、Validator Cap ID、Validator Operation Cap ID 和 Validator Commission Cap ID

步骤 4:向验证者质押 IKA

请通过以下链接完成至少 4000 万 IKA 的质押:https://ika-mainnet-validators-staking.pages.dev/

请确认您的 Validator ID 与 CLI 输出一致。

步骤 5:加入委员会

./ika validator join-committee --validator-cap-id 

您将成为待定验证者,并于下一个 epoch 正式加入委员会。

步骤 6:运行验证者节点

目录结构示例:

/opt/ika/
├── bin/ika-node
├── config/validator.yaml
├── key-pairs/
│   ├── protocol.key
│   ├── network.key
│   ├── consensus.key
│   └── root-seed.key
└── db/                        # 运行时自动创建
    ├── authorities_db/
    └── consensus_db/

启动前,请编辑 validator.yaml 文件:

  • 将 ika-dwallet-coordinator-object-id 设置为 deployed_contracts/mainnet/address.yaml 中对应值
  • 确认配置项:sui-chain-identifier: mainnet
  • 配置指标推送地址:push-url: "https://mainnet.metrics.ika-network.net:8443/publish/metrics"
ika-node --config-path /opt/ika/config/validator.yaml

日志输出:可通过设置 RUST_LOG 控制日志级别,设置 RUST_LOG_JSON=1 启用 JSON 格式日志输出。

步骤 7:验证运行状态

等待数分钟后,检查日志中是否出现如下内容:

ika_core::checkpoints: Creating checkpoint(s) for 0 messages next_checkpoint_seq=1

该日志表明节点已正常运行。其余检查点仅在 MPC 会话期间或之后生成。

Package 与 Object ID

请始终从代码仓库中的权威源文件获取最新 ID:

  • 主网:deployed_contracts/mainnet/address.yaml(GitHub)
  • 测试网:deployed_contracts/testnet/address.yaml(GitHub)

密钥对

密钥名称 类型 用途 被哪些节点使用 是否可恢复?
protocol-key-pair AuthorityKeyPair 协议签名 全部节点 是(支持链上轮换)
consensus-key-pair Ed25519 共识通信 全部节点 是(支持链上轮换)
network-key-pair Ed25519 P2P 网络通信 全部节点 是(支持链上轮换)
account-key-pair SuiKeyPair Sui 交互操作 全部节点 是
root-seed-key-pair RootSeed MPC 密码学运算 验证者 否 — 不可替代
notifier-client-key-pair SuiKeyPair 向 Sui 提交检查点 通知器 是

验证者核心配置要点

# 主网验证者必须包含:
sui-connector-config:
  sui-chain-identifier: mainnet
  sui-rpc-url: 'http://:9000'
  # 所有 ID 均需从 deployed_contracts/mainnet/address.yaml 获取
  ika-package-id: ''
  ika-dwallet-coordinator-object-id: ''
  # ... 其他 package/object ID

consensus-config:                         # 存在该配置项即触发验证者模式
  db-path: '/opt/ika/consensus_db'
  db-retention-epochs: 0
  db-pruner-period-secs: 3600
  max-pending-transactions: 20000

root-seed-key-pair:
  path: /opt/ika/key-pairs/root-seed.key

metrics:
  push-url: "https://mainnet.metrics.ika-network.net:8443/publish/metrics"

管理 API(仅限 localhost)

curl http://127.0.0.1:1337/logging                    # 查看日志过滤器
curl -X POST 'http://127.0.0.1:1337/enable-tracing?filter=debug&duration=10s'
curl -X POST http://127.0.0.1:1337/reset-tracing      # 恢复为环境变量设定值
curl http://127.0.0.1:1337/node-config                 # 查看配置(密钥字段已屏蔽)
curl http://127.0.0.1:1337/capabilities                # 查看节点能力

环境变量

变量名 用途 默认值
IKA_CONFIG_DIR 覆盖默认配置目录路径 ~/.ika/ika_config/
RUST_LOG 日志级别过滤器 —
RUST_LOG_JSON 启用 JSON 格式日志输出(设为 1 即启用) —
TRACE_FILTER 追踪日志过滤器 —

各节点类型所启用的服务

服务名称 Validator Fullnode Notifier
AuthorityState Y Y Y
ConsensusManager Y — —
DWalletMPCService Y — —
SuiConnectorService Y Y Y
CheckpointServices Y Y Y
P2P + StateSync Y Y Y
Discovery Y Y Y

关键运维注意事项

  • 必须使用发布模式构建:涉及密码学操作时,务必使用 --release 参数构建
  • 必须运行自有 Sui 全节点:需自行部署并确保其已完全同步(至少同步至最近两个 epoch)
  • Package ID 必须严格匹配:配置文件中指定的合约 ID 必须与实际已部署合约一致
  • 最低质押要求:需质押至少 4000 万 IKA 才能加入委员会
  • 根种子密钥至关重要:请安全备份 root-seed.key;该密钥无法重新生成,亦不支持链上轮换
  • 关注版本更新:请持续关注 #nodes-updates-mainnet 频道以获取新版本发布信息
  • 灾难恢复机制:可使用 --run-with-range-epoch 或 --run-with-range-checkpoint 参数执行恢复
  • 检查点固定(Checkpoint Pinning):在 state-sync 配置中使用 pinned-dwallet-checkpoints 支持分叉恢复
  • 优雅关闭:发送 SIGTERM 或 SIGINT 信号实现安全退出

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.9万人学习