dApp Docs/MSG Chain 主网生产配置大全
Development reference. Not independently verified for production.

MSG Chain 主网生产配置大全

版本: v1.0.0
状态: 预发布 — 主网就绪评分 52/100 (No-Go)
本文档涵盖所有生产网络(主网、测试网、本地沙箱)的完整配置参数、端点信息及操作指南。


目录

  1. 概述
  2. 网络拓扑
  3. RPC节点配置
  4. REST/API节点配置
  5. gRPC配置
  6. 链配置参数
  7. 代币与Gas配置
  8. 种子节点与持久节点
  9. 创世文件
  10. 水龙头配置
  11. 浏览器与索引器
  12. Keplr/Leap钱包配置
  13. Docker镜像与标签
  14. 状态同步与快照
  15. 生产就绪状态
  16. 配置速查表

1. 概述

1.1 文档目的

本文档是 MSG Chain 所有开发参考级网络配置的单一权威参考源。涵盖主网 (Mainnet)、测试网 (Testnet) 和本地沙箱 (Local Sandbox) 的全部配置参数、端点地址、节点运维指南以及生态工具集成方式。

1.2 快速参考表

配置项 主网 (Mainnet) 测试网 (Testnet) 本地沙箱 (Local Sandbox)
网络名称 MSG Chain MSG Chain Testnet MSG Chain Local
Chain ID msg-chain-1 msg-chain-testnet-1 msg-chain-local-1
链ID (数值) 1 2 0
原生代币 MSG tMSG MSG
精度 18 18 18
Bech32 前缀 msg msg msg
Coin Type 118 118 118
共识算法 Round-Robin + DAR Round-Robin + DAR Round-Robin + DAR
签名方案 Dilithium-5 + Secp256k1 Dilithium-5 + Secp256k1 Dilithium-5 + Secp256k1
出块时间 5 秒 (目标) 5 秒 (目标) 2 秒 (目标)
数据存储 BadgerDB BadgerDB BadgerDB
Gas 计价单位 umsg umsg umsg
状态 规划中 (评分 52/100) 规划中 已可用
公共访问 尚未开放 尚未开放 仅本地
水龙头 不适用 规划中 开发模式内置

1.3 状态说明

重要: 截至 2026 年 7 月,MSG Chain 主网和测试网均尚未启动。所有公共端点 (如 rpc.msgchain.org) 为规划中的域名,当前仅本地沙箱环境可供开发测试。主网就绪评分为 52/100 (No-Go),存在 10 个阻塞项。本文档中标记为"规划中"或"占位符"的配置应视为前瞻性参考,不可用于生产部署。

1.4 命名约定

符号 含义
✅ 已确认 / 已实现
🚧 开发中
📋 规划中
🔌 需配置方可生效
❌ 不可用 / 未实现

2. 网络拓扑

2.1 网络类型总览

MSG Chain 生态系统包含三个独立的网络环境:

2.1.1 本地沙箱 (Local Sandbox)

2.1.2 测试网 (Testnet) 🚧 规划中

2.1.3 主网 (Mainnet) 📋 规划中

2.2 网络对比表

维度 本地沙箱 测试网 主网
Chain ID msg-chain-local-1 msg-chain-testnet-1 msg-chain-1
RPC 公网 无 https://rpc-testnet.msgchain.org https://rpc.msgchain.org
RPC 本地 http://localhost:26657 http://localhost:26657 http://localhost:26657
REST 公网 无 https://api-testnet.msgchain.org https://api.msgchain.org
REST 本地 http://localhost:1317 http://localhost:1317 http://localhost:1317
gRPC 公网 无 msgchain-grpc-testnet.msgchain.org:9090 msgchain-grpc.msgchain.org:9090
gRPC 本地 localhost:9090 localhost:9090 localhost:9090
Agent API 公网 无 https://api-testnet.msgchain.org/agent/v1 https://api.msgchain.org/agent/v1
Agent API 本地 http://localhost:8080/agent/v1 http://localhost:8080/agent/v1 http://localhost:8080/agent/v1
WebSocket ws://localhost:26657/websocket wss://rpc-testnet.msgchain.org/websocket wss://rpc.msgchain.org/websocket
P2P 种子 无(单节点) msgchain-p2p-testnet.msgchain.org:26656 msgchain-p2p.msgchain.org:26656
水龙头 内置 (CLI) https://faucet.msgchain.org ❌ 不适用
Explorer 📋 无 https://explorer-testnet.msgchain.org https://explorer.msgchain.org
主网就绪评分 N/A N/A 52/100 — No-Go
预期上线时间 已可用 TBD TBD
数据持久性 重置后丢失 可能重置 永久
MSG 价值 无(测试用途) 无(测试用途) 真实价值
验证者最低要求 无 1 MSG 质押 10,000 MSG 质押

2.3 网络架构图 (文本描述)

用户 / DApp
    │
    ├──► RPC (26657) ──► Tendermint RPC ──► 共识引擎 (DAR)
    │                      │
    ├──► REST/LCD (1317) ──► Cosmos SDK LCD ──► 状态机
    │                      │
    ├──► gRPC (9090) ──────► Cosmos SDK gRPC ──► 状态机
    │                      │
    ├──► Agent API (8080) ──► Agent 模块 ──► AI Agent 运行时
    │                      │
    └──► WebSocket (26657) ──► 事件订阅 ──► 实时推送
                              │
                      ┌───────┴───────┐
                      │               │
                  P2P (26656)    gRPC (9090)
                  网络通信        跨链/IBC

3. RPC节点配置

3.1 RPC 端点总览

网络 类型 URL 端口 TLS 状态
主网 公共 https://rpc.msgchain.org 443 ✅ 📋 规划中
主网 本地 http://localhost:26657 26657 ❌ ✅ 可用
测试网 公共 https://rpc-testnet.msgchain.org 443 ✅ 📋 规划中
测试网 本地 http://localhost:26657 26657 ❌ ✅ 可用
沙箱 本地 http://localhost:26657 26657 ❌ ✅ 可用

3.2 RPC 配置参数 (config.toml)

# ~/.msgchain/config/config.toml — RPC 相关配置
[rpc]
# RPC 监听地址
laddr = "tcp://0.0.0.0:26657"

# 跨域资源共享 (CORS)
cors_allowed_origins = ["*"]
cors_allowed_methods = ["HEAD", "GET", "POST"]
cors_allowed_headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time"]

# gRPC 相关
grpc_laddr = "tcp://0.0.0.0:9090"

# RPC 最大连接数
max_open_connections = 900

# WebSocket 最大订阅客户端
max_subscription_clients = 200
max_subscriptions_per_client = 50

# 超时设置
timeout_broadcast_tx_commit = "30s"
timeout_broadcast_tx_commit = "10s"

# 是否启用公共 RPC 端点
unsafe = false

3.3 核心 RPC 方法

方法 描述 参数
/health 节点健康检查 无
/status 节点状态(同步、对等节点、最新区块) 无
/net_info 网络对等节点信息 无
/block 按高度查询区块 height (int, 可选)
/block_by_hash 按哈希查询区块 hash (string)
/block_results 区块交易执行结果 height (int, 可选)
/broadcast_tx_sync 同步广播交易(等待 CheckTx) tx (base64)
/broadcast_tx_async 异步广播交易(不等待结果) tx (base64)
/broadcast_tx_commit 提交模式广播(等待完整执行) tx (base64)
/tx 按哈希查询交易 hash (string)
/tx_search 按条件搜索交易 query, page, per_page
/validators 查询验证者集 height (int, 可选)
/consensus_params 查询共识参数 height (int, 可选)
/genesis 查询创世文件 无
/num_unconfirmed_txs 未确认交易数量 无
/unconfirmed_txs 未确认交易列表 limit (int, 可选)
/check_tx 检查交易有效性 tx (base64)
/abci_query ABCI 状态查询 path, data, height, prove

3.4 WebSocket 端点

网络 WebSocket URL 状态
主网 wss://rpc.msgchain.org/websocket 📋 规划中
测试网 wss://rpc-testnet.msgchain.org/websocket 📋 规划中
本地沙箱 ws://localhost:26657/websocket ✅ 可用

WebSocket 订阅示例:

// JavaScript — 订阅新区块事件
const ws = new WebSocket("ws://localhost:26657/websocket");

ws.onopen = () => {
  const req = {
    jsonrpc: "2.0",
    method: "subscribe",
    id: 1,
    params: { query: "tm.event='NewBlock'" }
  };
  ws.send(JSON.stringify(req));
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log("新区块:", data.result.data.value.block.header.height);
};
# wscat — 命令行 WebSocket 订阅
wscat -c ws://localhost:26657/websocket \
  -x '{"jsonrpc":"2.0","method":"subscribe","id":1,"params":{"query":"tm.event='Tx'"}}'

3.5 速率限制

限制项 默认值 生产推荐值
最大连接数 900 5000
每 IP 最大连接数 无限制 50
每 IP 每秒请求数 无限制 100
最大订阅客户端数 200 500
每客户端最大订阅数 50 50
最大请求体 (RPC) 1 MB 1 MB
最大批量请求数 无限制 20

3.6 curl 操作示例

# ─── 健康检查 ───
curl https://rpc.msgchain.org/health

# 响应示例:
# {
#   "jsonrpc": "2.0",
#   "id": -1,
#   "result": {}
# }

# ─── 节点状态 ───
curl https://rpc.msgchain.org/status

# ─── 查询指定高度区块 ───
curl https://rpc.msgchain.org/block?height=1

# ─── 查询最新区块 ───
curl https://rpc.msgchain.org/block

# ─── 查询创世文件 ───
curl https://rpc.msgchain.org/genesis

# ─── 查询验证者集 ───
curl https://rpc.msgchain.org/validators?height=1

# ─── 广播交易 (同步模式) ───
curl -X POST https://rpc.msgchain.org/tx \
  -H "Content-Type: application/json" \
  -d '{
    "tx_bytes": "CqABCp0BChwvY29zbXdhc20ud2FzbS52MS5Nc2dFeGVjdXRlEn0KK21zZzFzazlzNTBzcnhscGRoOHI2dXM0dnQ4OWZ4ajZzN3l4bXUzMGo2YxITbXNnMWdtMzlzaHBnMDR5OXM0c3cSHgoLY29uc3RhbnRzL3NvBQtvcGVyYXRpb24SFAoS...",
    "mode": "BROADCAST_MODE_SYNC"
  }'

# ─── 广播交易 (异步模式) ───
curl -X POST https://rpc.msgchain.org/tx \
  -H "Content-Type: application/json" \
  -d '{
    "tx_bytes": "...",
    "mode": "BROADCAST_MODE_ASYNC"
  }'

# ─── 按哈希查询交易 ───
curl https://rpc.msgchain.org/tx?hash=0xABC123...

# ─── 交易搜索 ───
curl 'https://rpc.msgchain.org/tx_search?query="message.module='agent'"&page=1&per_page=10'

# ─── 未确认交易 ───
curl https://rpc.msgchain.org/num_unconfirmed_txs

# ─── 检查交易 ───
curl -X POST https://rpc.msgchain.org/check_tx \
  -H "Content-Type: application/json" \
  -d '{"tx": "..."}'

# ─── ABCI 状态查询 ───
curl 'https://rpc.msgchain.org/abci_query?path="/store/agent/key"&data=0x...'

3.7 本地节点启动 RPC 验证

# 启动节点后,验证 RPC 是否正常运行
curl http://localhost:26657/health

# 检查同步状态
curl http://localhost:26657/status | jq '.result.sync_info'
# 预期输出:
# {
#   "latest_block_height": "...",
#   "latest_block_time": "...",
#   "earliest_block_height": "...",
#   "earliest_block_time": "...",
#   "catching_up": false
# }

4. REST/API节点配置

4.1 REST / LCD (Light Client Daemon) 端点

网络 类型 URL 端口 TLS 状态
主网 公共 https://api.msgchain.org 443 ✅ 📋 规划中
主网 本地 http://localhost:1317 1317 ❌ ✅ 可用
测试网 公共 https://api-testnet.msgchain.org 443 ✅ 📋 规划中
测试网 本地 http://localhost:1317 1317 ❌ ✅ 可用
沙箱 本地 http://localhost:1317 1317 ❌ ✅ 可用

注意: REST/LCD 端点与 RPC 端点运行在同一节点上,但通过不同的端口暴露。生产环境中建议使用反向代理(如 Nginx)进行 TLS 终止和负载均衡。

4.2 REST 配置参数 (app.toml)

# ~/.msgchain/config/app.toml — API / REST 相关配置
[api]

# 是否启用 REST API
enable = true

# 监听地址
address = "tcp://0.0.0.0:1317"

# 最大请求体大小 (MB)
max-body-bytes = 1048576

# 请求头大小限制 (bytes)
header-size-limit = 4096

# 跨域资源共享 (CORS)
enabled-unsafe-cors = false

# RPC 读取超时
read-timeout = "10s"
write-timeout = "10s"

# Swagger / OpenAPI
swagger = true

4.3 核心 REST 端点分组

分组 基础路径 描述
Cosmos 基础 /cosmos/ 账户、银行、质押、治理、分配等标准 Cosmos 模块
Tendermint RPC 代理 /cosmos/base/tendermint/v1beta1/ 区块、验证者、节点状态
Wasm / CosmWasm /cosmwasm/wasm/v1/ 智能合约部署、执行、查询
Auth (认证) /cosmos/auth/v1beta1/ 账户信息、公钥
Bank (银行) /cosmos/bank/v1beta1/ 余额、转账、代币元数据
Staking (质押) /cosmos/staking/v1beta1/ 委托、解委托、验证者
Distribution (分配) /cosmos/distribution/v1beta1/ 奖励、佣金、提现
Governance (治理) /cosmos/gov/v1beta1/ 提案、投票、参数变更
Slashing (惩罚) /cosmos/slashing/v1beta1/ 签名信息、惩罚参数
IBC (跨链) /ibc/ IBC 连接、通道、数据包
Agent (AI Agent) /msgchain/agent/v1/ Agent 注册、支付、会话
DID /msgchain/did/v1/ 去中心化身份管理
DAO /msgchain/dao/v1/ DAO 治理相关

4.4 Agent API 端点

Agent API 是 MSG Chain 特有的 AI Agent 交互接口,提供高级功能抽象。

网络 URL 状态
主网 https://api.msgchain.org/agent/v1 📋 规划中
测试网 https://api-testnet.msgchain.org/agent/v1 📋 规划中
本地沙箱 http://localhost:8080/agent/v1 ✅ 可用 (开发模式)

Agent API 端点列表:

方法 路径 描述
GET /agent/v1/registry 查询 Agent 注册列表
POST /agent/v1/registry 注册新 Agent
GET /agent/v1/registry/{id} 查询单个 Agent
PUT /agent/v1/registry/{id} 更新 Agent 配置
DELETE /agent/v1/registry/{id} 注销 Agent
POST /agent/v1/{id}/execute 执行 Agent 任务
GET /agent/v1/{id}/status 查询 Agent 执行状态
POST /agent/v1/{id}/payment Agent 支付操作
GET /agent/v1/session/{session_id} 查询微支付会话
POST /agent/v1/a2a Agent 间通信 (A2A)
POST /agent/v1/mpc/sign MPC 多方签名
GET /agent/v1/constitution/{id} 查询 Agent 宪章

4.5 Swagger / OpenAPI 规范

资源 URL 状态
Swagger UI https://api.msgchain.org/swagger/ 📋 规划中
OpenAPI JSON https://api.msgchain.org/openapi.json 📋 规划中
Redoc https://api.msgchain.org/redoc/ 📋 规划中
本地 Swagger http://localhost:1317/swagger/ ✅ 可用

4.6 curl REST 操作示例

# ─── 账户余额查询 ───
curl https://api.msgchain.org/cosmos/bank/v1beta1/balances/msg1sk9s50srx...

# ─── 账户信息 ───
curl https://api.msgchain.org/cosmos/auth/v1beta1/accounts/msg1sk9s50srx...

# ─── 最新区块查询 ───
curl https://api.msgchain.org/cosmos/base/tendermint/v1beta1/blocks/latest

# ─── 指定高度区块 ───
curl https://api.msgchain.org/cosmos/base/tendermint/v1beta1/blocks/1000

# ─── 节点状态 ───
curl https://api.msgchain.org/cosmos/base/tendermint/v1beta1/node_info

# ─── 验证者列表 ───
curl https://api.msgchain.org/cosmos/staking/v1beta1/validators

# ─── 委托查询 ───
curl https://api.msgchain.org/cosmos/staking/v1beta1/delegations/msg1sk9s50srx...

# ─── 待定治理提案 ───
curl https://api.msgchain.org/cosmos/gov/v1beta1/proposals?status=PROPOSAL_STATUS_VOTING_PERIOD

# ─── 智能合约列表 (CosmWasm) ───
curl https://api.msgchain.org/cosmwasm/wasm/v1/codes

# ─── 合约实例查询 ───
curl https://api.msgchain.org/cosmwasm/wasm/v1/contract/msg14hj2tavq8f...

# ─── 智能合约状态查询 ───
curl 'https://api.msgchain.org/cosmwasm/wasm/v1/contract/msg14hj2tavq8f.../smart/eyJnZXRf...'

# ─── 发送代币交易 (通过 REST) ───
# 注意: REST 不支持直接提交交易,需通过 RPC `/tx` 端点提交已签名的 TxBytes

# ─── Agent API: 查询所有 Agent ───
curl https://api.msgchain.org/agent/v1/registry

# ─── Agent API: 注册新 Agent ───
curl -X POST https://api.msgchain.org/agent/v1/registry \
  -H "Content-Type: application/json" \
  -d '{
    "owner": "msg1sk9s50srx...",
    "name": "MyAIAgent",
    "constitution_id": "constitution_v1_default",
    "endpoint": "https://my-agent-endpoint.io/api",
    "capabilities": ["text-generation", "code-analysis"]
  }'

# ─── 供应量查询 ───
curl https://api.msgchain.org/cosmos/bank/v1beta1/supply/umsg

# ─── 参数查询 ───
curl https://api.msgchain.org/cosmos/staking/v1beta1/params
curl https://api.msgchain.org/cosmos/gov/v1beta1/params/voting
curl https://api.msgchain.org/cosmos/slashing/v1beta1/params

5. gRPC配置

5.1 gRPC 端点总览

网络 类型 URL 端口 TLS 状态
主网 公共 msgchain-grpc.msgchain.org:9090 9090 ✅ (TLS) 📋 规划中
主网 本地 localhost:9090 9090 ❌ (plaintext) ✅ 可用
测试网 公共 msgchain-grpc-testnet.msgchain.org:9090 9090 ✅ (TLS) 📋 规划中
测试网 本地 localhost:9090 9090 ❌ (plaintext) ✅ 可用
沙箱 本地 localhost:9090 9090 ❌ (plaintext) ✅ 可用

5.2 gRPC 配置参数 (app.toml)

# ~/.msgchain/config/app.toml — gRPC 相关配置
[grpc]

# 是否启用 gRPC 服务
enable = true

# 监听地址
address = "0.0.0.0:9090"

# 最大消息接收大小 (bytes)
max-recv-msg-size = 10485760  # 10 MB

# 最大消息发送大小 (bytes)
max-send-msg-size = 10485760  # 10 MB

# gRPC Web 支持
[grpc-web]
enable = true
address = "0.0.0.0:9091"

5.3 可用的 gRPC 服务

服务 完整名称 主要方法
账户 cosmos.auth.v1beta1.Query Account, Accounts, Params
银行 cosmos.bank.v1beta1.Query Balance, AllBalances, Supply, DenomsMetadata
质押 cosmos.staking.v1beta1.Query Validators, Delegation, UnbondingDelegation, Redelegations
治理 cosmos.gov.v1beta1.Query Proposal, Proposals, Vote, Votes, Params
分配 cosmos.distribution.v1beta1.Query DelegationRewards, ValidatorCommission, Params
惩罚 cosmos.slashing.v1beta1.Query SigningInfo, SigningInfos, Params
IBC ibc.core.channel.v1.Query Channel, Channels, ConnectionChannels
IBC ibc.core.connection.v1.Query Connection, Connections, ClientConnections
转移 ibc.applications.transfer.v1.Query DenomTrace, DenomTraces, Params
CosmWasm cosmwasm.wasm.v1.Query Code, Codes, ContractInfo, ContractHistory, SmartContractState, AllContractState
Agent msgchain.agent.v1.Query AgentRegistry, AgentPayment, Session
DID msgchain.did.v1.Query DIDDocument, DIDRegistry
DAO msgchain.dao.v1.Query Proposal, Proposals, Members, Config
Tendermint cosmos.base.tendermint.v1beta1.Service GetNodeInfo, GetSyncing, GetLatestBlock, GetBlockByHeight
交易 cosmos.tx.v1beta1.Service Simulate, GetTx, BroadcastTx, GetTxsEvent

5.4 gRPC 反射支持

gRPC 反射 (reflection) 默认启用,允许客户端动态查询可用的服务和方法。

# 使用 grpcurl 查询可用服务
grpcurl -plaintext localhost:9090 list

# 查询服务方法详情
grpcurl -plaintext localhost:9090 describe cosmos.bank.v1beta1.Query

# 调用具体方法
grpcurl -plaintext \
  -d '{"address": "msg1sk9s50srx..."}' \
  localhost:9090 cosmos.bank.v1beta1.Query/AllBalances

5.5 gRPC 客户端连接代码

Go 客户端

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/grpc"
    "google.golang.org/grpc/credentials/insecure"

    banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
)

func main() {
    // 连接到本地节点 (plaintext)
    conn, err := grpc.Dial(
        "localhost:9090",
        grpc.WithTransportCredentials(insecure.NewCredentials()),
    )
    if err != nil {
        log.Fatalf("连接失败: %v", err)
    }
    defer conn.Close()

    // 创建银行查询客户端
    bankClient := banktypes.NewQueryClient(conn)

    // 查询余额
    resp, err := bankClient.AllBalances(
        context.Background(),
        &banktypes.QueryAllBalancesRequest{
            Address: "msg1sk9s50srx...",
        },
    )
    if err != nil {
        log.Fatalf("查询失败: %v", err)
    }

    fmt.Println("余额:", resp.Balances)

    // ─── 生产环境 (TLS) ───
    // conn, err := grpc.Dial(
    //     "msgchain-grpc.msgchain.org:9090",
    //     grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),
    // )
}

TypeScript / Node.js 客户端

import { grpc } from "@improbable-eng/grpc-web";
import { QueryClientImpl as BankQuery } from "@cosmos/bank-v1beta1-ts";
import { NodeHttpTransport } from "@improbable-eng/grpc-web-node-http-transport";

// 如果使用 Node.js 运行时,需设置 Transport
grpc.setDefaultTransport(NodeHttpTransport());

async function main() {
  // 通过 gRPC Web 代理连接 (端口 9091)
  const client = new BankQuery("http://localhost:9091");

  try {
    const resp = await client.AllBalances({
      address: "msg1sk9s50srx...",
    });
    console.log("余额:", resp.balances);
  } catch (err) {
    console.error("gRPC 调用失败:", err);
  }
}

main();

Python 客户端

import grpc
from cosmos.bank.v1beta1 import query_pb2, query_pb2_grpc

def main():
    # 连接到本地节点 (plaintext)
    channel = grpc.insecure_channel("localhost:9090")
    stub = query_pb2_grpc.QueryStub(channel)

    # 查询余额
    request = query_pb2.QueryAllBalancesRequest(
        address="msg1sk9s50srx..."
    )
    response = stub.AllBalances(request)
    print("余额:", response.balances)

    # ─── 生产环境 (TLS) ───
    # credentials = grpc.ssl_channel_credentials()
    # channel = grpc.secure_channel(
    #     "msgchain-grpc.msgchain.org:9090",
    #     credentials
    # )

if __name__ == "__main__":
    main()

5.6 gRPC 交易模拟

// Go — 模拟交易 (估算 Gas)
simulateResp, err := txClient.Simulate(
    context.Background(),
    &txv1beta1.SimulateRequest{
        TxBytes: txBytes,
    },
)
fmt.Printf("预估 Gas: %d\n", simulateResp.GasInfo.GasUsed)

6. 链配置参数

6.1 共识参数

参数 值 说明 修改方式
max_validators 150 (规划) 最大活跃验证者数量 治理提案
max_evidence_age 48h 证据最大存留时间 治理提案
max_bytes_per_tx 1,048,576 (1 MB) 单笔交易最大字节 治理提案
max_gas_per_block 50,000,000 (50M) 每区块最大 Gas 消耗 治理提案
max_bytes_per_block 4,194,304 (4 MB) 每区块最大字节 治理提案
block_time_iota 5s 目标出块间隔 链升级
time_iota_ms 1000ms 时间戳最小增量 链升级

6.2 DAR (Dilithium-based Autonomous Randomness) 共识参数

参数 值 说明
consensus_algorithm round_robin_dar 基于轮次+DAR 的共识
block_time 5s 目标出块时间
dar_rounds 3 DAR 每轮随机数轮数
dar_threshold 2/3 DAR 签名阈值
hysteresis_numerator 104 滞后调节分子
hysteresis_denominator 96 滞后调节分母
signature_scheme dilithium-5 主签名方案
fallback_signature_scheme secp256k1 备用签名方案 (兼容性)
quantum_safety true 后量子安全标志

什么是 DAR?
DAR (Dilithium-based Autonomous Randomness) 是 MSG Chain 基于 Dilithium-5 后量子签名算法的自主随机性生成机制。与传统的 VRF 或 RANDAO 不同,DAR 利用 Dilithium-5 的代数结构在不暴露私钥信息的前提下生成可验证的链上随机数,抵抗量子攻击。

滞后调节 (Hysteresis): 104/96 参数表示当验证者的实际出块时间偏离目标 4% 以上时,共识引擎会自动调整该验证者的调度权重,以防止网络波动导致的出块不稳定。

6.3 治理参数

参数 值 说明
min_deposit 1000 MSG 提案最低抵押金额
max_deposit_period 14 天 抵押募集最长期限
voting_period 14 天 投票周期
quorum 33.4% (0.334) 投票最低参投票率
threshold 50% (0.500) 提案通过所需赞成比例
veto_threshold 33.4% (0.334) 否决票比例上限
min_initial_deposit_ratio 0.25 提案初始抵押金占比

治理流程:

提交提案 (抵押 ≥ 1000 MSG)
    │
    ▼
抵押募集阶段 (最长 14 天)
    │  ├── 抵押达到 min_deposit → 进入投票
    │  └── 超时未达标 → 提案失败 (抵押不退)
    ▼
投票阶段 (14 天)
    │  ├── 赞成 ≥ 50% AND 投票率 ≥ 33.4% → 通过
    │  ├── 否决 ≥ 33.4% → 否决 (抵押没收)
    │  └── 投票率 < 33.4% → 未达法定人数
    ▼
执行 (通过后自动执行)

6.4 质押参数

参数 值 说明
bond_denom umsg 质押代币单位
max_entries 7 最大同时解委托/重新委托条目数
max_validators 150 (规划) 最大活跃验证者数
historical_entries 10000 历史质押记录保留数
unbonding_time 21 天 (1814400 秒) 解委托锁定期
min_self_delegation 1 MSG 验证者最低自委托量

质押收益计算:

年化收益率 ≈ (年通胀率 × 通胀调节) / (验证者佣金率调节)
  
其中:
- 年通胀率: 动态调整 (初始 7%)
- 通胀调节: 取决于全网质押率目标 (目标 67%)
- 验证者佣金: 由各验证者自行设定 (通常 5%–20%)

6.5 惩罚 (Slashing) 参数

行为 惩罚比例 条件
双签 (Double Sign) 5.00% 质押 一劳永逸,永久监禁
下线 (Downtime) 0.01% 质押 在 48 小时内签名缺失 > 95%
下线窗口 10000 区块 滑动窗口内监控签名
监禁时间 10 分钟 被监禁后最短冷却期

6.6 分配参数

参数 值 说明
community_tax 2.00% 社区池税 (交易费分配)
base_proposer_reward 1.00% 出块者基础奖励
bonus_proposer_reward 4.00% 出块者额外奖励 (取决于投票参与率)
withdraw_addr_enabled true 是否允许修改提现地址

6.7 区块 Gas 限制动态调整

# app.toml — 最小 Gas 价格
minimum-gas-prices = "1000000000umsg"

# 共识引擎 Gas 限制调整
# 目标 Gas 使用率: 50% 的 max_gas_per_block
# 调整幅度: 每区块最多 ±10%

6.8 IBC (跨链通信) 参数

参数 值 说明
max_expected_time_per_block 30s IBC 超时计算用每块最大时间
trusting_period 336h (14 天) IBC 客户端信任期
unbonding_period 504h (21 天) IBC 解绑定周期
max_clock_drift 10s 最大时钟漂移
ccv_timeout_period 336h 跨链验证超时

6.9 完整 Genesis 参数预览

{
  "genesis_time": "2026-01-01T00:00:00Z",
  "chain_id": "msg-chain-1",
  "consensus_params": {
    "block": {
      "max_bytes": "4194304",
      "max_gas": "50000000"
    },
    "evidence": {
      "max_age_num_blocks": "200000",
      "max_age_duration": "172800000000000",
      "max_bytes": "1048576"
    },
    "validator": {
      "pub_key_types": ["dilithium-5", "secp256k1"]
    }
  },
  "app_state": {
    "staking": {
      "params": {
        "bond_denom": "umsg",
        "unbonding_time": "1814400s",
        "max_validators": 150,
        "max_entries": 7,
        "historical_entries": 10000
      }
    },
    "gov": {
      "voting_params": {
        "voting_period": "1209600s"
      },
      "deposit_params": {
        "max_deposit_period": "1209600s",
        "min_deposit": [
          {"denom": "umsg", "amount": "1000000000000000000000"}
        ]
      },
      "tally_params": {
        "quorum": "0.334000000000000000",
        "threshold": "0.500000000000000000",
        "veto_threshold": "0.334000000000000000"
      }
    }
  }
}

7. 代币与Gas配置

7.1 代币单位

单位 值 说明
umsg 1 umsg 最小单位 (微 MSG)
msg 1 MSG = 10^18 umsg 基本单位
kmsg 1,000 MSG 千 MSG
mmsg 1,000,000 MSG 百万 MSG
// Go — 代币单位转换
// 1 MSG = 10^18 umsg
const MSGDecimals = 18
const OneMSG = 1_000_000_000_000_000_000 // 10^18 umsg

7.2 Gas 价格表

优先级 价格 (umsg/gas) 交易确认速度 适用场景
🟢 Low 0.010000 慢 (5–30 区块) 批量交易、非紧急操作、合约查询
🟡 Average 0.025000 中 (1–5 区块) 标准交易、代币转账、委托
🔴 High 0.040000 快 (1–2 区块) 紧急交易、合约执行、治理投票
⚡ Custom > 0.040000 最快 (下一个区块) 时间敏感型操作

注意: Gas 价格以 umsg 计。例如,Low 价格 0.010000 umsg/gas = 10^-2 umsg/gas。

7.3 Gas 估算参考

交易类型 预估 Gas 限制 预估费用 (Low) 预估费用 (Avg) 预估费用 (High)
代币转账 (MsgSend) 100,000 1,000 umsg 2,500 umsg 4,000 umsg
委托 (MsgDelegate) 200,000 2,000 umsg 5,000 umsg 8,000 umsg
解委托 (MsgUndelegate) 250,000 2,500 umsg 6,250 umsg 10,000 umsg
重新委托 (MsgBeginRedelegate) 300,000 3,000 umsg 7,500 umsg 12,000 umsg
提现奖励 (MsgWithdrawDelegatorReward) 200,000 2,000 umsg 5,000 umsg 8,000 umsg
投票 (MsgVote) 100,000 1,000 umsg 2,500 umsg 4,000 umsg
创建提案 (MsgSubmitProposal) 500,000 5,000 umsg 12,500 umsg 20,000 umsg
部署合约 (MsgStoreCode) 3,000,000 30,000 umsg 75,000 umsg 120,000 umsg
实例化合约 (MsgInstantiateContract) 500,000 5,000 umsg 12,500 umsg 20,000 umsg
执行合约 (MsgExecuteContract) 300,000–1,000,000 3,000–10,000 umsg 7,500–25,000 umsg 12,000–40,000 umsg
发送 IBC 资产 300,000 3,000 umsg 7,500 umsg 12,000 umsg
Agent 注册 500,000 5,000 umsg 12,500 umsg 20,000 umsg
Agent 微支付 200,000 2,000 umsg 5,000 umsg 8,000 umsg

7.4 Gas 计算方式

交易总费用 = Gas 限制 × Gas 价格

示例 (Average 优先级):
  Gas 限制: 200,000
  Gas 价格: 0.025 umsg/gas
  总费用: 200,000 × 0.025 = 5,000 umsg = 0.000000000000005 MSG

7.5 app.toml 最低 Gas 价格配置

# ~/.msgchain/config/app.toml
# 节点接受交易的最低 Gas 价格
# 低于此价格的交易将被拒绝
minimum-gas-prices = "0.010000umsg"

7.6 费用扣除示例 (基于 Cosmos SDK)

模拟交易:
  MsgSend
  GasWanted: 200000
  GasUsed:    98765

费用计算:
  支付费用 = GasWanted × GasPrice = 200000 × 0.025 = 5000 umsg
  退款     = (GasWanted - GasUsed) × GasPrice = (200000 − 98765) × 0.025
           = 101235 × 0.025 = 2530.875 umsg (退回发送者)

实际花费 = GasUsed × GasPrice = 98765 × 0.025 = 2469.125 umsg

7.7 代币供应分布 (规划)

类别 比例 数量 说明
社区池 30% 300,000,000 MSG 生态基金、社区激励
团队与贡献者 20% 200,000,000 MSG 4 年线性解锁,1 年悬崖
私募/种子轮 15% 150,000,000 MSG 3 年线性解锁,6 月悬崖
公募 10% 100,000,000 MSG TGE 时解锁 25%,剩余 6 月线性
验证者奖励 15% 150,000,000 MSG 区块奖励与质押通胀 (4 年分发)
生态储备 10% 100,000,000 MSG 战略合作、赠款计划
总计 100% 1,000,000,000 MSG 初始供应上限

8. 种子节点与持久节点

8.1 种子节点

种子节点 (Seed Nodes) 用于新节点加入网络时的初始对等发现。种子节点仅响应 P2P 地址本请求,不存储全链数据。

网络 节点 ID 地址 运营商 状态
主网 seed1 msgchain-p2p.msgchain.org:26656 MSG Chain 基金会 📋 规划中
主网 seed2 seed2.msgchain.org:26656 待定 📋 规划中
测试网 seed1 msgchain-p2p-testnet.msgchain.org:26656 MSG Chain 基金会 📋 规划中
沙箱 — 无 (单节点) — N/A

种子节点配置格式:

# config.toml
# 主网种子节点
seeds = "seed1@msgchain-p2p.msgchain.org:26656,seed2@seed2.msgchain.org:26656"

# 测试网种子节点
# seeds = "seed1@msgchain-p2p-testnet.msgchain.org:26656"

注意: 种子节点 ID (节点公钥哈希) 将在主网启动前公布。上述仅为规划中的域名地址。种子节点地址可通过 P2P 交换获取完整的节点 ID。

8.2 持久节点

持久节点 (Persistent Peers) 是节点始终保持连接的 P2P 对等节点,即使当前未被选入活跃对等列表也不会断开。

# config.toml — 持久节点配置
persistent_peers = "node_id@ip_or_domain:26656"

# 示例 (本地多节点):
# persistent_peers = "abc123@192.168.1.10:26656,def456@192.168.1.11:26656"

8.3 私有对等 ID

私有对等 ID 用于阻止其他节点将你的节点作为 P2P 种子地址广播出去。

# config.toml
# 不会被广播给其他节点的对等节点
private_peer_ids = "node_id_of_sentry"

8.4 完整 P2P 配置示例

# ~/.msgchain/config/config.toml — P2P 配置

# P2P 监听地址
laddr = "tcp://0.0.0.0:26656"

# 外网地址 (如果节点在 NAT 后)
external_address = ""

# 种子节点 (逗号分隔)
seeds = "seed1@msgchain-p2p.msgchain.org:26656"

# 持久节点 (逗号分隔)
persistent_peers = ""

# 私有对等 ID (逗号分隔)
private_peer_ids = ""

# 是否允许单向对等连接
unconditional_peer_ids = ""

# P2P 连接限速
recv_rate = 5120000    # 5 MB/s
send_rate = 5120000    # 5 MB/s

# 最大对等节点数
max_num_inbound_peers = 40
max_num_outbound_peers = 10

# 连接过滤
allow_duplicate_ip = false

# PEX (对等交换)
pex = true

# 种子模式
seed_mode = false

8.5 手动添加节点

# 通过 CLI 添加持久节点
msgchaind start --p2p.persistent_peers "node_id@host:26656"

# 通过 CLI 添加种子节点
msgchaind start --p2p.seeds "node_id@host:26656"

# 运行时动态添加 (通过 RPC)
curl -X POST http://localhost:26657/net_info
curl -X POST http://localhost:26657/dial_peers \
  -H "Content-Type: application/json" \
  -d '{"peers": ["node_id@host:26656"], "persistent": true}'

8.6 哨兵节点架构 (生产推荐)

        互联网
          │
    ┌─────┴─────┐
    │  哨兵节点  │  (暴露于公网, 运行完整节点)
    └─────┬─────┘
          │ 私有连接 (P2P)
    ┌─────┴─────┐
    │  验证者节点  │  (不暴露于公网, 仅连接哨兵)
    └───────────┘

哨兵节点配置:

# 哨兵节点 config.toml
pex = true
persistent_peers = "validator_node_id@10.0.0.1:26656"
private_peer_ids = "validator_node_id"
unconditional_peer_ids = "validator_node_id"
# 验证者节点 config.toml
pex = false  # 不进行 P2P 发现
persistent_peers = "sentry1_node_id@sentry1.example.com:26656,sentry2_node_id@sentry2.example.com:26656"
private_peer_ids = ""

9. 创世文件

9.1 创世文件格式

创世文件 (genesis.json) 是区块链的初始状态定义,包含验证者集、初始余额、链参数等所有起始配置。

文件位置: ~/.msgchain/config/genesis.json

9.2 创世文件结构概览

{
  "genesis_time": "2026-01-01T00:00:00Z",
  "chain_id": "msg-chain-1",
  "initial_height": "1",
  "consensus_params": {
    "block": {
      "max_bytes": "4194304",
      "max_gas": "50000000",
      "time_iota_ms": "1000"
    },
    "evidence": {
      "max_age_num_blocks": "200000",
      "max_age_duration": "172800000000000",
      "max_bytes": "1048576"
    },
    "validator": {
      "pub_key_types": ["dilithium-5", "secp256k1"]
    },
    "version": {}
  },
  "app_hash": "",
  "app_state": {
    "auth": {
      "params": {
        "max_memo_characters": "256",
        "tx_sig_limit": "7",
        "tx_size_cost_per_byte": "10",
        "sig_verify_cost_ed25519": "590",
        "sig_verify_cost_secp256k1": "1000"
      },
      "accounts": []
    },
    "bank": {
      "params": {
        "send_enabled": true,
        "default_send_enabled": true
      },
      "balances": [],
      "supply": [],
      "denom_metadata": [
        {
          "description": "MSG Chain 原生代币",
          "denom_units": [
            {"denom": "umsg", "exponent": 0, "aliases": ["micro-msg"]},
            {"denom": "mmsg", "exponent": 3, "aliases": ["milli-msg"]},
            {"denom": "msg", "exponent": 6, "aliases": []}
          ],
          "base": "umsg",
          "display": "msg",
          "name": "MSG Chain",
          "symbol": "MSG"
        }
      ]
    },
    "staking": {
      "params": {
        "unbonding_time": "1814400s",
        "max_validators": 150,
        "max_entries": 7,
        "historical_entries": 10000,
        "bond_denom": "umsg",
        "min_commission_rate": "0.050000000000000000"
      },
      "validators": [],
      "delegations": [],
      "unbonding_delegations": [],
      "redelegations": [],
      "exported": false
    },
    "gov": {
      "starting_proposal_id": "1",
      "deposits": [],
      "votes": [],
      "proposals": [],
      "deposit_params": {
        "min_deposit": [
          {"denom": "umsg", "amount": "1000000000000000000000"}
        ],
        "max_deposit_period": "1209600s"
      },
      "voting_params": {
        "voting_period": "1209600s"
      },
      "tally_params": {
        "quorum": "0.334000000000000000",
        "threshold": "0.500000000000000000",
        "veto_threshold": "0.334000000000000000"
      }
    },
    "distribution": {
      "params": {
        "community_tax": "0.020000000000000000",
        "base_proposer_reward": "0.010000000000000000",
        "bonus_proposer_reward": "0.040000000000000000",
        "withdraw_addr_enabled": true
      },
      "fee_pool": {"community_pool": []},
      "outstanding_rewards": [],
      "validator_accumulated_commissions": []
    },
    "slashing": {
      "params": {
        "signed_blocks_window": "10000",
        "min_signed_per_window": "0.050000000000000000",
        "downtime_jail_duration": "600000000000",
        "slash_fraction_double_sign": "0.050000000000000000",
        "slash_fraction_downtime": "0.000100000000000000"
      },
      "signing_infos": [],
      "missed_blocks": []
    },
    "wasm": {
      "params": {
        "max_wasm_code_size": "3145728",
        "instantiate_default_permission": "Everybody",
        "gov_instantiate_permission": "Everybody"
      },
      "codes": [],
      "contracts": [],
      "sequences": []
    },
    "agent": {
      "params": {},
      "agents": []
    },
    "did": {
      "params": {},
      "did_documents": []
    },
    "ibc": {
      "client_genesis": {
        "clients": [],
        "clients_consensus": [],
        "clients_metadata": []
      },
      "connection_genesis": {
        "connections": [],
        "client_connection_paths": []
      },
      "channel_genesis": {
        "channels": [],
        "acknowledgements": [],
        "commitments": [],
        "receipts": [],
        "send_sequences": [],
        "recv_sequences": [],
        "ack_sequences": []
      }
    },
    "transfer": {
      "params": {
        "send_enabled": true,
        "receive_enabled": true
      }
    }
  }
}

9.3 创世文件哈希 (占位符)

网络 创世哈希 状态
主网 0x0000000000000000000000000000000000000000000000000000000000000000 📋 主网启动时确定
测试网 0x0000000000000000000000000000000000000000000000000000000000000000 📋 测试网启动时确定

9.4 创世文件下载 (占位符)

网络 下载 URL 校验和 URL
主网 https://msgchain.org/genesis/mainnet/genesis.json https://msgchain.org/genesis/mainnet/genesis.json.sha256
测试网 https://msgchain.org/genesis/testnet/genesis.json https://msgchain.org/genesis/testnet/genesis.json.sha256

9.5 创世文件验证

# 下载创世文件
wget https://msgchain.org/genesis/mainnet/genesis.json

# 验证 SHA256 校验和
echo "$(cat genesis.json.sha256) genesis.json" | sha256sum --check

# 使用 msgchaind 验证创世文件
msgchaind validate-genesis

# 验证成功输出:
# genesis.json is a valid genesis file

# 手动验证 Chain ID
jq '.chain_id' genesis.json
# 预期: "msg-chain-1"

# 手动验证初始验证者
jq '.app_state.staking.validators | length' genesis.json
jq '.validators[0].pub_key' genesis.json

9.6 自定义创世文件 (本地沙箱)

# 初始化本地创世文件
msgchaind init my-sandbox --chain-id=msg-chain-local-1

# 添加初始账户 (含 MSG 余额)
msgchaind add-genesis-account msg1sk9s50srx... 1000000000000000000000umsg

# 创建验证者交易 (如果是多节点设置)
msgchaind gentx validator-key \
  --chain-id=msg-chain-local-1 \
  --amount 1000000000000000000000umsg

# 收集 gentx
msgchaind collect-gentxs

# 验证创世文件
msgchaind validate-genesis

10. 水龙头配置

10.1 水龙头端点

网络 URL 状态 每次领取量
测试网 https://faucet.msgchain.org 📋 规划中 1 MSG (10^18 umsg)
本地沙箱 内置 CLI ✅ 可用 自定义
主网 ❌ 不适用 N/A N/A

10.2 水龙头请求格式

# ─── 测试网水龙头 ───
curl -X POST https://faucet.msgchain.org/claim \
  -H "Content-Type: application/json" \
  -d '{
    "address": "msg1sk9s50srx...",
    "amount": "1000000000000000000"
  }'

# 成功响应:
# {
#   "status": "ok",
#   "tx_hash": "0xABC123...",
#   "amount": "1000000000000000000",
#   "denom": "umsg"
# }

# ─── 批量领取 (用于测试场景) ───
curl -X POST https://faucet.msgchain.org/claim/batch \
  -H "Content-Type: application/json" \
  -d '{
    "requests": [
      {"address": "msg1...", "amount": "1000000000000000000"},
      {"address": "msg2...", "amount": "500000000000000000000"}
    ]
  }'

10.3 水龙头速率限制

限制项 值 说明
每地址领取间隔 24 小时 每个地址每 24 小时可领取 1 次
每次最大领取量 1 MSG (10^18 umsg) 标准领取量
每 IP 每日限制 3 次 同一 IP 地址每日限制
CAPTCHA 要求 hCaptcha 反机器人验证
白名单地址 无限制 生态项目可通过申请获得更多额度

10.4 本地沙箱水龙头 (CLI)

# 本地开发环境 — 使用 msgchaind CLI 直接分配代币
# 无需水龙头服务

# 1. 添加 genesis 账户 (初始化时)
msgchaind add-genesis-account msg1sk9s50srx... 1000000000000000000000umsg

# 2. 或使用 msgchaind 手动转账 (节点运行后)
msgchaind tx bank send \
  validator-wallet \
  msg1sk9s50srx... \
  1000000000000000000umsg \
  --chain-id=msg-chain-local-1 \
  --fees=2500umsg

10.5 水龙头开源代码

水龙头服务为开源项目,代码仓库位于:

https://github.com/msgchain/faucet

搭建本地水龙头:

# 克隆水龙头代码
git clone https://github.com/msgchain/faucet.git
cd faucet

# 配置环境变量
cat > .env <<EOF
FAUCET_MNEMONIC="your faucet wallet mnemonic here"
FAUCET_CHAIN_ID="msg-chain-testnet-1"
FAUCET_RPC="http://localhost:26657"
FAUCET_DENOM="umsg"
FAUCET_AMOUNT="1000000000000000000"
FAUCET_COOLDOWN="24h"
FAUCET_RATE_LIMIT_PER_IP=3
FAUCET_PORT=8080
EOF

# 启动水龙头
docker-compose up -d

# 或直接运行
npm install && npm run start

10.6 水龙头 CLI 工具

# 使用 msgchaind CLI 直接向地址发送代币 (快速测试)
msgchaind tx bank send \
  $(msgchaind keys show faucet -a) \
  msg1sk9s50srx... \
  1000000000000000000umsg \
  --chain-id=msg-chain-testnet-1 \
  --fees=2500umsg \
  --node=http://localhost:26657 \
  --yes

11. 浏览器与索引器

11.1 区块浏览器

网络 URL 状态 后端引擎
主网 https://explorer.msgchain.org 📋 规划中 MSG Chain Explorer (自定义)
测试网 https://explorer-testnet.msgchain.org 📋 规划中 MSG Chain Explorer (自定义)
本地 http://localhost:3000 🚧 可自建 参见 区块浏览器搭建指南.md

11.2 浏览器功能 (规划)

11.3 浏览器 API 端点

# 浏览器后端 API (规划中)
GET  https://explorer.msgchain.org/api/v1/blocks          # 最新区块列表
GET  https://explorer.msgchain.org/api/v1/blocks/{height}  # 区块详情
GET  https://explorer.msgchain.org/api/v1/txs              # 最新交易列表
GET  https://explorer.msgchain.org/api/v1/txs/{hash}       # 交易详情
GET  https://explorer.msgchain.org/api/v1/address/{addr}   # 地址详情
GET  https://explorer.msgchain.org/api/v1/validators       # 验证者列表
GET  https://explorer.msgchain.org/api/v1/proposals        # 治理提案
GET  https://explorer.msgchain.org/api/v1/agents           # Agent 列表
GET  https://explorer.msgchain.org/api/v1/stats            # 网络统计

11.4 事件索引器

组件 URL (本地) URL (公共) 状态
Indexer HTTP http://localhost:8081 https://indexer.msgchain.org 🚧 开发中
Indexer GraphQL http://localhost:8081/graphql https://indexer.msgchain.org/graphql 🚧 开发中

Docker 镜像: msgchain/indexer:latest

# 启动本地索引器
docker run -d \
  --name msgchain-indexer \
  -p 8081:8081 \
  -e CHAIN_ID=msg-chain-local-1 \
  -e RPC_ENDPOINT=http://host.docker.internal:26657 \
  -e DATABASE_URL=postgres://user:pass@host.docker.internal:5432/msgchain \
  msgchain/indexer:latest

11.5 GraphQL 查询示例

# 查询最新区块
query {
  blocks(first: 10, orderBy: height_desc) {
    edges {
      node {
        height
        hash
        timestamp
        transactionCount
        proposer {
          moniker
          operatorAddress
        }
      }
    }
  }
}

# 查询地址交易历史
query {
  transactions(
    first: 20,
    filter: {
      address: "msg1sk9s50srx..."
    },
    orderBy: timestamp_desc
  ) {
    edges {
      node {
        hash
        height
        timestamp
        success
        gasUsed
        gasWanted
        messages {
          type
          from
          to
          amount
        }
      }
    }
  }
}

# 查询 Agent 注册信息
query {
  agents {
    id
    name
    owner
    constitutionId
    status
    createdAt
  }
}

11.6 The Graph 子图

网络 子图名称 状态
主网 msgchain-mainnet 📋 规划中
测试网 msgchain-testnet 📋 规划中

子图部署在托管服务或本地 Graph 节点上。详情参见 The Graph子图索引器指南.md。


12. Keplr/Leap钱包配置

12.1 Keplr 钱包配置

以下 JSON 配置用于将 MSG Chain 添加到 Keplr 钱包扩展。

{
  "chainId": "msg-chain-1",
  "chainName": "MSG Chain",
  "chainSymbolImageUrl": "https://msgchain.org/assets/msg-chain-logo.png",
  "rpc": "https://rpc.msgchain.org",
  "rest": "https://api.msgchain.org",
  "nodeProvider": {
    "name": "MSG Chain Foundation",
    "email": "validator@msgchain.org",
    "website": "https://msgchain.org"
  },
  "bip44": {
    "coinType": 118
  },
  "bech32Config": {
    "bech32PrefixAccAddr": "msg",
    "bech32PrefixAccPub": "msgpub",
    "bech32PrefixValAddr": "msgvaloper",
    "bech32PrefixValPub": "msgvaloperpub",
    "bech32PrefixConsAddr": "msgvalcons",
    "bech32PrefixConsPub": "msgvalconspub"
  },
  "currencies": [
    {
      "coinDenom": "MSG",
      "coinMinimalDenom": "umsg",
      "coinDecimals": 18,
      "coinImageUrl": "https://msgchain.org/assets/msg-coin.png"
    }
  ],
  "feeCurrencies": [
    {
      "coinDenom": "MSG",
      "coinMinimalDenom": "umsg",
      "coinDecimals": 18,
      "coinImageUrl": "https://msgchain.org/assets/msg-coin.png",
      "gasPriceStep": {
        "low": 0.01,
        "average": 0.025,
        "high": 0.04
      }
    }
  ],
  "stakeCurrency": {
    "coinDenom": "MSG",
    "coinMinimalDenom": "umsg",
    "coinDecimals": 18,
    "coinImageUrl": "https://msgchain.org/assets/msg-coin.png"
  },
  "features": [
    "cosmwasm",
    "ibc-transfer",
    "ibc-go",
    "ibc-hooks",
    "wasmd_0.31+",
    "axelar-evm-bridge"
  ],
  "walletUrlForStaking": "https://msgchain.org/stake",
  "theme": {
    "primaryColor": "#7C3AED",
    "secondaryColor": "#A78BFA"
  }
}

12.2 Leap 钱包配置

Leap 钱包与 Keplr 使用相同的 Chain Registry 格式,以上 JSON 配置同样适用于 Leap。

12.3 测试网配置 (Keplr/Leap)

{
  "chainId": "msg-chain-testnet-1",
  "chainName": "MSG Chain Testnet",
  "rpc": "https://rpc-testnet.msgchain.org",
  "rest": "https://api-testnet.msgchain.org",
  "bip44": { "coinType": 118 },
  "bech32Config": {
    "bech32PrefixAccAddr": "msg",
    "bech32PrefixAccPub": "msgpub",
    "bech32PrefixValAddr": "msgvaloper",
    "bech32PrefixValPub": "msgvaloperpub",
    "bech32PrefixConsAddr": "msgvalcons",
    "bech32PrefixConsPub": "msgvalconspub"
  },
  "currencies": [{
    "coinDenom": "tMSG",
    "coinMinimalDenom": "umsg",
    "coinDecimals": 18
  }],
  "feeCurrencies": [{
    "coinDenom": "tMSG",
    "coinMinimalDenom": "umsg",
    "coinDecimals": 18,
    "gasPriceStep": {
      "low": 0.01,
      "average": 0.025,
      "high": 0.04
    }
  }],
  "stakeCurrency": {
    "coinDenom": "tMSG",
    "coinMinimalDenom": "umsg",
    "coinDecimals": 18
  },
  "features": ["cosmwasm", "ibc-transfer", "ibc-go"]
}

12.4 JavaScript/TypeScript — 使用 Keplr API 添加网络

// 浏览器扩展 — 使用 Keplr API 添加 MSG Chain
async function addMSGChainToKeplr() {
  if (!window.keplr) {
    alert("请安装 Keplr 钱包扩展");
    return;
  }

  const chainConfig = {
    chainId: "msg-chain-1",
    chainName: "MSG Chain",
    rpc: "https://rpc.msgchain.org",
    rest: "https://api.msgchain.org",
    bip44: { coinType: 118 },
    bech32Config: {
      bech32PrefixAccAddr: "msg",
      bech32PrefixAccPub: "msgpub",
      bech32PrefixValAddr: "msgvaloper",
      bech32PrefixValPub: "msgvaloperpub",
      bech32PrefixConsAddr: "msgvalcons",
      bech32PrefixConsPub: "msgvalconspub"
    },
    currencies: [{
      coinDenom: "MSG",
      coinMinimalDenom: "umsg",
      coinDecimals: 18
    }],
    feeCurrencies: [{
      coinDenom: "MSG",
      coinMinimalDenom: "umsg",
      coinDecimals: 18,
      gasPriceStep: { low: 0.01, average: 0.025, high: 0.04 }
    }],
    stakeCurrency: {
      coinDenom: "MSG",
      coinMinimalDenom: "umsg",
      coinDecimals: 18
    },
    features: ["cosmwasm", "ibc-transfer", "ibc-go"]
  };

  try {
    await window.keplr.experimentalSuggestChain(chainConfig);
    console.log("MSG Chain 已成功添加到 Keplr");

    // 连接钱包
    await window.keplr.enable("msg-chain-1");
    const offlineSigner = window.keplr.getOfflineSigner("msg-chain-1");
    const accounts = await offlineSigner.getAccounts();
    console.log("连接地址:", accounts[0].address);
  } catch (error) {
    console.error("添加 MSG Chain 失败:", error);
  }
}

12.5 WalletConnect 配置

参数 值
Project ID msgchain-walletconnect (规划中)
中继 URL wss://relay.walletconnect.com
Chain ID eip155:1 & cosmos:msg-chain-1
RPC URL https://rpc.msgchain.org

12.6 Cosmos Directory 注册

MSG Chain 将注册到 Cosmos Directory:

# cosmos-directory/msgchain/chain.json
name: MSG Chain
path: msgchain
chain_name: msgchain
status: live
network_type: mainnet
website: https://msgchain.org
pretty_name: MSG Chain
chain_id: msg-chain-1
daemon_name: msgchaind
node_home: ~/.msgchain
bech32_prefix: msg
slip44: 118
genesis:
  genesis_url: https://msgchain.org/genesis/mainnet/genesis.json
codebase:
  git_repo: https://github.com/msgchain/msgchain
  recommended_version: v1.0.0
  compatible_versions: [v1.0.0]
peers:
  seeds:
    - id: seed1
      address: msgchain-p2p.msgchain.org:26656
      provider: "MSG Chain Foundation"
apis:
  rpc:
    - address: https://rpc.msgchain.org
      provider: "MSG Chain Foundation"
  rest:
    - address: https://api.msgchain.org
      provider: "MSG Chain Foundation"
  grpc:
    - address: msgchain-grpc.msgchain.org:9090
      provider: "MSG Chain Foundation"
explorers:
  - kind: MSG Chain Explorer
    url: https://explorer.msgchain.org
    tx_page: https://explorer.msgchain.org/tx/{txHash}

13. Docker镜像与标签

13.1 Docker 镜像列表

镜像名称 描述 基础镜像 大小 (预估)
msgchain/node:latest 标准全节点 Alpine Linux ~200 MB
msgchain/node:quantum 量子安全全节点 (Dilithium-5) Alpine Linux ~250 MB
msgchain/explorer:latest 区块浏览器 Node.js Alpine ~500 MB
msgchain/indexer:latest 事件索引器 Node.js Alpine ~300 MB
msgchain/faucet:latest 水龙头服务 Node.js Alpine ~150 MB
msgchain/tools:latest CLI 工具集 Alpine Linux ~180 MB

13.2 标签命名约定

标签模式 示例 说明
latest msgchain/node:latest 最新稳定版
quantum msgchain/node:quantum 量子安全节点
v{major}.{minor} msgchain/node:v1.0 主版本号标签
v{major}.{minor}.{patch} msgchain/node:v1.0.0 完整版本号标签
sha-{commit} msgchain/node:sha-abc1234 特定 Commit 构建
dev msgchain/node:dev 开发中构建 (不稳定)
testnet msgchain/node:testnet 测试网专用构建

13.3 Docker 运行示例

# ─── 标准全节点 (主网) ───
docker run -d \
  --name msgchain-node \
  -p 26657:26657 \
  -p 26656:26656 \
  -p 1317:1317 \
  -p 9090:9090 \
  -v msgchain-data:/root/.msgchain \
  -e MONIKER="MyNode" \
  -e CHAIN_ID="msg-chain-1" \
  -e NETWORK="mainnet" \
  msgchain/node:latest

# ─── 量子安全节点 ───
docker run -d \
  --name msgchain-quantum-node \
  -p 26657:26657 \
  -p 26656:26656 \
  -p 1317:1317 \
  -p 9090:9090 \
  -v msgchain-quantum-data:/root/.msgchain \
  -e MONIKER="MyQuantumNode" \
  -e CHAIN_ID="msg-chain-1" \
  -e SIGNATURE_SCHEME="dilithium-5" \
  msgchain/node:quantum

# ─── 测试网节点 ───
docker run -d \
  --name msgchain-testnet-node \
  -p 26657:26657 \
  -p 26656:26656 \
  -v msgchain-testnet-data:/root/.msgchain \
  -e MONIKER="MyTestnetNode" \
  -e CHAIN_ID="msg-chain-testnet-1" \
  -e NETWORK="testnet" \
  -e FAUCET_URL="https://faucet.msgchain.org" \
  msgchain/node:latest

# ─── 本地开发节点 ───
docker run -d \
  --name msgchain-dev \
  -p 26657:26657 \
  -p 26656:26656 \
  -p 1317:1317 \
  -p 9090:9090 \
  -v msgchain-dev-data:/root/.msgchain \
  -e MONIKER="DevNode" \
  -e CHAIN_ID="msg-chain-local-1" \
  -e DEV_MODE="true" \
  msgchain/node:latest

# ─── 运行 CLI 命令 ───
docker exec msgchain-node msgchaind status
docker exec msgchain-node msgchaind query bank balances msg1sk9s50srx...

13.4 Docker Compose 集成

# docker-compose.yml — MSG Chain 全栈开发环境
version: "3.8"

services:
  node:
    image: msgchain/node:latest
    container_name: msgchain-node
    ports:
      - "26657:26657"  # RPC
      - "26656:26656"  # P2P
      - "1317:1317"    # REST/LCD
      - "9090:9090"    # gRPC
    volumes:
      - msgchain-data:/root/.msgchain
    environment:
      - MONIKER=DockerNode
      - CHAIN_ID=msg-chain-local-1
      - DEV_MODE=true
    networks:
      - msgchain-net
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:26657/health"]
      interval: 30s
      timeout: 10s
      retries: 3

  explorer:
    image: msgchain/explorer:latest
    container_name: msgchain-explorer
    ports:
      - "3000:3000"
    environment:
      - RPC_ENDPOINT=http://node:26657
      - REST_ENDPOINT=http://node:1317
      - CHAIN_NAME=MSG Chain Local
    depends_on:
      node:
        condition: service_healthy
    networks:
      - msgchain-net

  indexer:
    image: msgchain/indexer:latest
    container_name: msgchain-indexer
    ports:
      - "8081:8081"
    environment:
      - RPC_ENDPOINT=http://node:26657
      - DATABASE_URL=postgres://user:pass@postgres:5432/msgchain
    depends_on:
      - node
      - postgres
    networks:
      - msgchain-net

  postgres:
    image: postgres:15-alpine
    container_name: msgchain-pg
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=msgchain
    volumes:
      - pgdata:/var/lib/postgresql/data
    networks:
      - msgchain-net

  faucet:
    image: msgchain/faucet:latest
    container_name: msgchain-faucet
    ports:
      - "8080:8080"
    environment:
      - CHAIN_ID=msg-chain-local-1
      - RPC=http://node:26657
      - MNEMONIC=<faucet-wallet-mnemonic>
      - AMOUNT=1000000000000000000
      - COOLDOWN=1m
    depends_on:
      node:
        condition: service_healthy
    networks:
      - msgchain-net

volumes:
  msgchain-data:
  pgdata:

networks:
  msgchain-net:
    driver: bridge

13.5 Docker 镜像构建 (本地)

# 构建标准节点镜像
docker build -t msgchain/node:latest -f docker/Dockerfile.node .

# 构建量子安全节点镜像
docker build -t msgchain/node:quantum -f docker/Dockerfile.quantum .

# 构建浏览器镜像
docker build -t msgchain/explorer:latest -f docker/Dockerfile.explorer .

# 多架构构建 (AMD64 + ARM64)
docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t msgchain/node:latest \
  -f docker/Dockerfile.node \
  --push .

13.6 Docker 环境变量参考

环境变量 默认值 说明
MONIKER docker-node 节点名称
CHAIN_ID msg-chain-local-1 链 ID
NETWORK local 网络类型 (mainnet, testnet, local)
DEV_MODE false 开发模式 (允许快速重置)
SIGNATURE_SCHEME secp256k1 签名方案 (dilithium-5
P2P_SEEDS (空) 种子节点地址列表
P2P_PERSISTENT_PEERS (空) 持久节点地址列表
MINIMUM_GAS_PRICES 1000000000umsg 最低 Gas 价格
PRUNING default 数据修剪策略
STATESYNC_ENABLE false 是否启用状态同步
STATESYNC_RPC_SERVERS (空) 状态同步 RPC 服务器

14. 状态同步与快照

14.1 状态同步 (State Sync)

状态同步允许新节点快速追赶到最新区块高度,无需从创世块开始逐个同步。

# ~/.msgchain/config/config.toml — 状态同步配置
[statesync]
# 是否启用状态同步
enable = true

# 信任的 RPC 服务器 (至少 2 个)
rpc_servers = "https://rpc.msgchain.org:443,https://rpc2.msgchain.org:443"

# 信任高度 (应相对较新,建议在 TrustPeriod 内)
trust_height = 0
trust_hash = ""

# 信任周期 (默认为 2 小时)
trust_period = "2h0m0s"

# 恢复选项
# 如果设置为 true,节点将从快照恢复状态
use_allowance = true

状态同步启动流程:

# 1. 查询信任高度和哈希
curl -s https://rpc.msgchain.org/status | jq '.result.sync_info.latest_block_height'
curl -s https://rpc.msgchain.org/block?height=100000 | jq '.result.block_id.hash'

# 2. 在 config.toml 中配置
# trust_height = 100000
# trust_hash = "0xABC..."

# 3. 清空数据目录 (重要: 必须为空以启用状态同步)
rm -rf ~/.msgchain/data/*

# 4. 启动节点 (自动进入状态同步)
msgchaind start --x-crisis-skip-assert-invariants

14.2 快照下载 (占位符)

网络 快照 URL 频率 格式
主网 https://snapshots.msgchain.org/mainnet/latest.tar.gz 每 24 小时 tar.gz (LZ4)
测试网 https://snapshots.msgchain.org/testnet/latest.tar.gz 每 24 小时 tar.gz (LZ4)

快照使用:

# 下载快照
wget https://snapshots.msgchain.org/mainnet/latest.tar.gz

# 停止节点 (如果正在运行)
pkill msgchaind

# 备份当前数据 (可选)
mv ~/.msgchain/data ~/.msgchain/data.bak

# 解压缩快照
tar -I lz4 -xvf latest.tar.gz -C ~/.msgchain/

# 启动节点
msgchaind start

14.3 数据修剪 (Pruning) 配置

# ~/.msgchain/config/app.toml — 修剪配置
[pruning]

# 修剪策略:
# - "default":   保留最近 100 个历史状态, 每 100 块修剪一次
# - "everything": 仅保留当前状态 (最少存储)
# - "nothing":    保留所有历史状态 (最多存储)
# - "custom":     自定义参数
strategy = "default"

# 自定义修剪参数 (当 strategy = "custom" 时生效)
# 保留最近多少个状态
keep-every = 100

# 间隔多少区块执行修剪
interval = 10

# 保留的重新部署历史 (CosmWasm)
keep-recent = 100

存储空间参考:

修剪策略 年存储量 (预估) 说明
nothing ~5 TB 保留所有历史状态和区块
default ~500 GB 保留近 100 个状态,适合验证者
everything ~50 GB 仅保留当前状态,适合 RPC 节点
custom (keep=10, interval=5) ~200 GB 用户自定义

14.4 数据目录结构

~/.msgchain/
├── config/
│   ├── config.toml          # Tendermint 配置
│   ├── genesis.json         # 创世文件
│   ├── app.toml             # 应用配置
│   ├── client.toml          # CLI 客户端配置
│   ├── node_key.json        # 节点 P2P 密钥
│   └── priv_validator_key.json  # 验证者私钥
├── data/
│   ├── blockstore.db/       # 区块存储 (BadgerDB)
│   ├── cs.wal/              # 共识 WAL
│   ├── evidence.db/         # 证据存储 (BadgerDB)
│   ├── state.db/            # 状态存储 (BadgerDB)
│   ├── tx_index.db/         # 交易索引 (BadgerDB)
│   └── wasm/                # CosmWasm 合约数据
├── keyring-test/            # 测试密钥环
├── keyring-file/            # 文件密钥环 (生产推荐)
└── wasm/                    # WASM 字节码缓存

14.5 存储估算详解

数据类型 日增量 年增量 (default 修剪) 年增量 (everything 修剪)
区块数据 ~200 MB ~73 GB ~20 GB
状态数据 ~150 MB ~55 GB ~15 GB
交易索引 ~50 MB ~18 GB ~18 GB
证据存储 ~1 MB ~365 MB ~365 MB
Wasm 缓存 静态 ~5 GB ~5 GB
共识 WAL ~10 MB 循环覆盖 循环覆盖
总计 ~411 MB ~151 GB ~58 GB

建议硬件配置:

节点类型 CPU RAM 存储 带宽
验证者 8+ 核 32 GB 1 TB NVMe SSD 100 Mbps
RPC 公共节点 16+ 核 64 GB 2 TB NVMe SSD 500 Mbps
哨兵节点 8+ 核 32 GB 1 TB NVMe SSD 1 Gbps
归档节点 32+ 核 128 GB 10 TB+ NVMe SSD 1 Gbps
轻节点 2 核 4 GB 100 GB SSD 10 Mbps

15. 生产就绪状态

15.1 主网就绪评分: 52/100 (No-Go)

评估维度 分数 状态
共识引擎 50% 🚧 DAR 实现中,基础 Round-Robin 已完成
P2P 网络 40% 🚧 种子节点基础设施待部署
RPC/API 70% ✅ 本地接口已完成,开发参考级 TLS 待配置
智能合约 (CosmWasm) 80% ✅ 46 个合约已实现,需主网审计
钱包集成 30% 📋 Keplr/Leap 配置已完成,Chain Registry 待提交
区块浏览器 20% 📋 前端待部署
代币经济 40% 📋 供应分配已规划,锁仓合约待审计
治理系统 60% 🚧 基础治理已实现,DAO 模块开发中
IBC 跨链 30% 🚧 IBC 核心实现完成,连接待配置
AI Agent 模块 70% ✅ Agent 注册/支付/宪章已完成,MPC 开发中
文档 85% ✅ 中文文档较为完善
测试覆盖率 55% 🚧 基础测试通过,量子安全测试待增强
安全审计 10% ❌ 尚未进行外部审计
DevOps 工具链 60% 🚧 Docker 镜像已完成,CI/CD 待完善
整体 52/100 ❌ No-Go — 不可上线

15.2 10 大阻塞项 (Top Blockers)

优先级 项目 描述 负责团队 预估工时
🔴 P1 外部安全审计 对共识、合约、P2P 进行第三方审计 安全团队 8–12 周
🔴 P1 DAR 共识完成 Dilithium 随机数生成器在共识层完整集成 核心协议团队 6–8 周
🔴 P1 主网种子节点部署 全球分布的种子节点服务器部署 DevOps 2–3 周
🔴 P2 开发参考级 TLS 配置 RPC/REST/gRPC 的 TLS 证书与反向代理配置 DevOps 1–2 周
🔴 P2 Chain Registry 提交 向 Cosmos Directory 和 Keplr 注册链 生态团队 1 周
🟡 P2 区块浏览器部署 Explorer 前端 + 索引器 + 后端上线 前端团队 4–6 周
🟡 P3 代币锁仓合约审计 团队/投资者锁仓合约的安全验证 安全团队 2–3 周
🟡 P3 IBC 连接配置 与其他 Cosmos 链的 IBC 通道建立 核心协议团队 2–4 周
🟢 P3 压力测试 500+ 验证者场景的 7 天持续测试 QA 团队 2 周
🟢 P3 水龙头部署 (测试网) 测试网水龙头服务的部署与验证 DevOps 1 周

15.3 预计上线时间线

里程碑 预计日期 状态
完成 DAR 共识实现 Q4 2026 📋 规划中
完成外部安全审计 Q1 2027 📋 未开始
测试网上线 Q2 2027 📋 取决于审计结果
主网上线候选 (RC) Q3 2027 📋 乐观估计
主网正式上线 TBD ❌ 待定

注意: 以上时间线为当前规划下的最佳估计,实际上线时间取决于审计结果、社区反馈及阻塞项完成进度。

15.4 当前限制与注意事项

⚠️ 已知限制 (截至 2026-07-06):

1. 共识层
   - DAR 尚未完全在开发参考级环境下验证
   - 仅支持 1 个验证者的单节点测试
   - 紧急回滚/升级机制待实现

2. 存储
   - BadgerDB 在开发参考级高负载下的大规模验证尚不充分
   - 数据迁移/备份恢复工具待完善

3. 互操作性
   - IBC 连接尚未与任何外部链建立
   - IBC 中继器需要额外配置

4. AI Agent 模块
   - Agent A2A (Agent-to-Agent) 通信协议需进一步规范
   - MPC (多方计算) 签名处于开发阶段
   - Agent 宪章执行引擎待优化

5. 生态工具
   - SDK (Go/Python/Rust) 尚未发布正式版本
   - 前端 dApp 集成组件库 (React/Vue) 待封装
   - MetaMask Snap 支持待开发

6. 安全
   - 尚未完成任何第三方安全审计
   - 智能合约 Formal Verification 未执行
   - 错误赏金计划未启动

7. 运维
   - 监控/告警系统 (Prometheus/Grafana) 配置待标准化
   - 节点自动部署脚本 (Ansible/Terraform) 待发布
   - 灾难恢复手册 (DR Playbook) 待编写

15.5 生产监控建议

# Prometheus 抓取配置
scrape_configs:
  - job_name: 'msgchain-node'
    static_configs:
      - targets:
        - 'localhost:26660'  # Tendermint P2P 指标
        - 'localhost:26661'  # Tendermint 状态同步指标
    metrics_path: '/metrics'

# 关键告警规则
groups:
  - name: msgchain-node-alerts
    rules:
      - alert: NodeIsDown
        expr: up == 0
        for: 5m
      - alert: NodeIsStuck
        expr: tendermint_consensus_height == 0
        for: 1m
      - alert: NodeIsSyncing
        expr: tendermint_consensus_syncing == 1
        for: 30m
      - alert: HighBlockLatency
        expr: time() - tendermint_consensus_latest_block_time > 30
      - alert: HighPeakMemory
        expr: process_resident_memory_bytes > 32e9

16. 配置速查表

16.1 一级速查表

操作 命令 / 配置
查看节点状态 curl http://localhost:26657/status
查看账户余额 msgchaind query bank balances msg1...
查看代币详情 msgchaind query bank denom-metadata
创建密钥 msgchaind keys add my-key
发送代币 msgchaind tx bank send my-key msg1... 100umsg --fees=2500umsg
委托 msgchaind tx staking delegate msgvaloper1... 1000000umsg --from my-key
解委托 msgchaind tx staking unbond msgvaloper1... 1000000umsg --from my-key
查询验证者 msgchaind query staking validators
查询提案 msgchaind query gov proposals
投票 msgchaind tx gov vote 1 yes --from my-key
查询合约 msgchaind query wasm contract msg14hj2tavq8f...
部署合约 msgchaind tx wasm store artifact.wasm --from my-key
执行合约 msgchaind tx wasm execute msg14hj2tavq8f... '{"action":{"...":...}}' --from my-key
查看链参数 curl http://localhost:1317/cosmos/staking/v1beta1/params
查看治理参数 curl http://localhost:1317/cosmos/gov/v1beta1/params/voting
查看 Gas 价格 jq '.app_state.gov.deposit_params.min_deposit' genesis.json
验证创世文件 msgchaind validate-genesis
导出创世 msgchaind export
重置节点 rm -rf ~/.msgchain/data/*
查询种子节点 curl http://localhost:26657/net_info | jq '.result.peers[].node_info.listen_addr'
获取 Dilithium 密钥 msgchaind tendermint show-validator
查看 Docker 日志 docker logs -f msgchain-node
进入 Docker 容器 docker exec -it msgchain-node /bin/sh

16.2 端口速查表

端口 协议 服务 用途
26656 TCP P2P 节点间通信、对等交换
26657 TCP RPC 交易广播、链查询、WebSocket
26660 TCP Prometheus 节点指标暴露
1317 TCP REST/LCD Cosmos REST API
9090 TCP gRPC gRPC 查询与交易
9091 TCP gRPC-Web gRPC Web 代理
8080 TCP Agent API AI Agent 接口
8081 TCP Indexer 事件索引器 HTTP
3000 TCP Explorer 区块浏览器 Web UI
5432 TCP PostgreSQL 索引器数据库
443 TCP HTTPS TLS 加密通信 (生产)
80 TCP HTTP HTTP 重定向 (生产)

16.3 文件路径速查表

文件 路径 用途
主配置 ~/.msgchain/config/config.toml Tendermint 节点配置
应用配置 ~/.msgchain/config/app.toml 应用模块配置
CLI 配置 ~/.msgchain/config/client.toml CLI 客户端配置
创世文件 ~/.msgchain/config/genesis.json 区块链初始状态
验证者密钥 ~/.msgchain/config/priv_validator_key.json 验证者签名私钥
节点密钥 ~/.msgchain/config/node_key.json P2P 身份私钥
数据目录 ~/.msgchain/data/ 区块链数据存储
ADR 目录 ~/.msgchain/data/ BadgerDB 数据
Wasm 缓存 ~/.msgchain/wasm/ 合约字节码缓存
密钥环 (文件) ~/.msgchain/keyring-file/ 文件类型密钥环
密钥环 (OS) ~/.msgchain/keyring-test/ 测试密钥环

16.4 环境变量速查表

# 最常用环境变量
export CHAIN_ID="msg-chain-1"          # 链 ID
export MONIKER="my-msgchain-node"      # 节点名称
export KEYRING_BACKEND="file"          # 密钥环后端 (file | os | test)
export NODE="tcp://localhost:26657"    # RPC 节点地址
export OUTPUT="json"                   # 输出格式 (json | text)

# 全节点配置
export MINIMUM_GAS_PRICES="1000000000umsg"   # 最低 Gas 价格
export PRUNING="default"               # 数据修剪策略
export P2P_SEEDS=""                    # 种子节点列表
export P2P_PERSISTENT_PEERS=""         # 持久节点列表
export STATESYNC_ENABLE="false"        # 状态同步开关
export STATESYNC_RPC_SERVERS=""        # 状态同步 RPC 服务器

16.5 常用 Make 命令速查

make deps            # 安装依赖
make lint            # 运行代码检查
make test            # 运行测试
make test-quantum    # 量子安全专项测试
make build-linux     # 编译 Linux 二进制
make ci-contracts    # CI 合约编译
make package         # 创建发布包
msgchaind version    # 查看编译版本

16.6 生产部署快速启动 (Linux)

# 1. 系统准备
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential curl wget jq lz4

# 2. 下载二进制
wget https://github.com/msgchain/msgchain/releases/download/v1.0.0/genesis_node_linux
chmod +x genesis_node_linux
sudo mv genesis_node_linux /usr/local/bin/msgchaind

# 3. 初始化节点
msgchaind init MyProductionNode --chain-id=msg-chain-1

# 4. 下载创世文件
wget -O ~/.msgchain/config/genesis.json \
  https://msgchain.org/genesis/mainnet/genesis.json
msgchaind validate-genesis

# 5. 配置种子节点
sed -i 's/seeds = ""/seeds = "seed1@msgchain-p2p.msgchain.org:26656"/' \
  ~/.msgchain/config/config.toml

# 6. 设置最低 Gas 价格
sed -i 's/minimum-gas-prices = ".*"/minimum-gas-prices = "1000000000umsg"/' \
  ~/.msgchain/config/app.toml

# 7. 创建用于运行节点的系统用户
sudo useradd --no-create-home --shell /sbin/nologin msgchain

# 8. 创建 Systemd 服务
sudo cat > /etc/systemd/system/msgchaind.service <<'EOF'
[Unit]
Description=MSG Chain Node
After=network.target

[Service]
Type=simple
User=msgchain
Group=msgchain
ExecStart=/usr/local/bin/msgchaind start
Restart=on-failure
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

# 9. 启动节点
sudo systemctl daemon-reload
sudo systemctl enable msgchaind
sudo systemctl start msgchaind

# 10. 检查同步状态
journalctl -u msgchaind -f
msgchaind status | jq '.sync_info'

附录

A. 术语对照表

英文 中文 说明
Mainnet 主网 开发参考级去中心化网络
Testnet 测试网 用于测试的网络环境
Sandbox 沙箱 本地开发环境
Valdiator 验证者 参与共识的节点
Delegator 委托人 将 MSG 委托给验证者的用户
DAR 基于 Dilithium 的自主随机性 后量子安全的链上随机性生成机制
Dilithium-5 Dilithium-5 NIST 标准化的后量子签名算法
BadgerDB BadgerDB 高性能嵌入式 KV 存储数据库
Bech32 Bech32 Cosmos 生态地址编码格式
Coin Type 币类型 BIP44 路径中的币种编号
CosmWasm 通用 WebAssembly 基于 WASM 的智能合约引擎
IBC 跨链通信协议 Cosmos 链间通信标准
LCD 轻客户端守护进程 REST API 网关
gRPC gRPC 高性能远程过程调用框架
RPC 远程过程调用 节点查询与交易接口
P2P 点对点 节点间对等通信网络
PEX 对等交换 P2P 地址发现协议
Gas Gas 交易执行的计量单位
Pruning 修剪 历史状态清理策略
Genesis 创世文件 区块链初始状态定义
A2A Agent 到 Agent AI Agent 之间的通信协议
MPC 多方计算 多方参与的联合签名计算

B. 参考资料

文档 路径 描述
10 分钟快速启动 docs/MSG链10分钟快速启动.md 快速入门指南
验证者与节点运维 docs/验证者与节点运维.md 验证者运行指南
Docker 开发环境 docs/Docker本地开发环境.md Docker 配置指引
主网上线检查清单 docs/主网上线检查清单.md 主网上线准备清单
Dilithium-5 开发者指南 docs/Dilithium-5后量子签名开发者指南.md 后量子签名开发参考
代币经济模型 docs/代币经济模型.md 代币经济学白皮书
安全审计清单 docs/安全审计清单与常见漏洞.md 安全审计参考
区块浏览器搭建 docs/区块浏览器搭建指南.md 浏览器部署指南
API 接口大全 docs/API接口大全.md 完整 API 文档

C. 版本历史

版本 日期 作者 变更说明
v1.0.0 2026-07-06 MSG Chain Docs Team 初始版本完成,涵盖所有网络配置

本文档为 MSG Chain 的官方生产网络配置参考。
所有标记为"规划中"或"占位符"的内容应视为前瞻性参考。
主网和测试网均尚未启动,请勿将本文档中的公共端点用于生产部署。

反馈: 如有问题或建议,请提交 Issue 至 https://github.com/msgchain/msgchain/issues
贡献: https://github.com/msgchain/docs