# OMNX Chain（omnx-1）· 源码目录结构

```
02-测试网/
├── OMNX公链浏览器-离线版（双击打开）.html   # 区块浏览器正式版（纯 RPC 数据，双击本地打开）
├── node/                                    # 链节点程序（Python，本地先跑通，AWS 同包部署）
│   ├── rpc.py                               # JSON-RPC 服务 + 区块浏览器托管 + /net/* P2P 端点
│   ├── chain.py                             # 核心链逻辑：创世/出块/共识(简化PoS)/交易/持久化
│   ├── network.py                           # P2P 网络层：交易/区块广播 + 周期区块同步
│   ├── modules.py                           # 系统模块：代币经济/流动性池/预言机/跨链桥
│   ├── modules_rwa.py                       # RWA 原生协议层：资产引擎/合规/收益/路由/订单簿
│   ├── vm.py                                # EVM 教学虚拟机（兼容接口）
│   ├── contracts/simpletoken.py             # 教学 Token 合约字节码
│   ├── demo.html / explorer.html            # 浏览器页面（rpc.py 托管，与根目录正式版同源）
│   ├── assets/omnx-logo.png                 # Logo 静态资源
│   └── data/                                # 链状态持久化（chain.json，自动生成）
├── contracts/                               # 生产主网 Solidity 合约（迁移目标，地址不变）
│   ├── OMNXToken.sol / TrinityPool.sol / OracleFeed.sol / BridgeSystem.sol
│   ├── RwaEngine.sol / ComplianceRegistry.sol / RwaRevenue.sol
│   ├── CrossChainRouter.sol / OrderBook.sol
│   └── README.md
├── deploy/                                  # 服务器部署配置
│   ├── genesis.json                         # 创世配置（chain_id=omnx-1，总量 10 亿）
│   ├── docker-compose.yml / Dockerfile / .env.example   # 容器一键部署
│   ├── README.md                            # 部署说明
│   └── aws/                                 # 亚马逊 AWS 部署包
│       ├── install.sh / omnx-node.service   # 一键安装 + 守护进程
│       ├── nginx-omnx-rpc.conf              # RPC 网关 + 浏览器反代 + SSL
│       ├── multi-node.sh                    # 多节点集群助手（3 节点起步）
│       ├── cloudformation-omnx.yaml         # EC2+EIP+安全组+告警（含 PeerList 参数）
│       ├── bundle.sh / healthcheck.sh       # 打整包 / 健康检查
│       ├── start-node.sh / stop-node.sh     # 手动启停
│       ├── .env.example                     # 节点环境变量（OMNX_PEERS 等）
│       └── README-AWS部署说明.md            # AWS 部署/集群/LB/SSL 完整文档
├── scripts/                                 # 本地工具
│   ├── start-local.sh                       # 一键启动：节点(8545) + Web服务(8090) + 浏览器
│   ├── stop-local.sh                        # 一键停止（节点 + Web 服务）
│   ├── fix-rpc.sh                           # 一键修复 8545 冲突 + 起 Web 服务 + 开浏览器
│   ├── serve-web.py                         # 本地 Web 服务：http://127.0.0.1:8090/index.html
│   │                                        #   同源代理 /rpc -> 8545，绕过 file:// 跨域
│   ├── check-health.sh                      # 一键健康自检（节点/Web服务/RPC）
│   ├── cleanup-legacy.sh                    # 清理旧残留目录（移入回收站）
│   └── deploy-contracts.py                  # 系统合约创世校验 + 演示数据引导
├── docs/
│   ├── api.md                               # RPC/HTTP/P2P 全量接口文档
│   └── directory.md                         # 本文件
├── tests/test_testnet.py                    # 链逻辑单元测试
├── assets/omnx-logo.png                     # 浏览器 Logo（【手动放入，AI 不处理图片】）
├── 启动OMNX测试网.command                   # 双击启动（macOS）
├── 停止OMNX测试网.command                   # 双击停止
├── 双击打开公链浏览器.command               # 双击打开浏览器
├── 部署说明.md / 架构说明.md / 主网部署清单.md   # 工程文档
└── README.md
```

## 关键模块对照

| 需求 | 模块 / 文件 |
|---|---|
| 共识 / 出块 / 交易 | `node/chain.py`（PoS 权重轮转选验证者 + 3 秒出块 + mempool） |
| P2P 网络 / 区块同步 / 交易广播 | `node/network.py`（HTTP gossip：`/net/tx`、`/net/blocks`、`/net/status`） |
| RPC 查询（区块/账户/交易/验证者） | `node/rpc.py`（56 个方法，见 `docs/api.md`） |
| 原生代币 / 质押 / 奖励 | `node/modules.py` TokenEco + `x/…` 等价机制 |
| 流动性池 | `node/modules.py` TrinityPool |
| 预言机 | `node/modules.py` OracleFeed |
| 跨链桥 | `node/modules.py` BridgeSystem + `node/modules_rwa.py` CrossChainRouter |
| RWA 资产存证 | `node/modules_rwa.py` RwaEngine（链上仅存哈希） |
| 合规 / KYC 白名单 | `node/modules_rwa.py` ComplianceFramework |
| 系统合约部署 | 创世固化 9 合约 + `scripts/deploy-contracts.py` 校验 |
| 浏览器（UI 不变，仅后端接口） | `OMNX公链浏览器-离线版（双击打开）.html` → 全部 RPC 实时拉取 |
| 本地 Web 服务（绕过 file:// 跨域） | `scripts/serve-web.py`（http://127.0.0.1:8090/index.html，同源代理 /rpc） |
| 健康自检 | `scripts/check-health.sh` |
| OMNIMX DEX 原生模块 | `node/modules_dex.py`（Token/Factory/Pair/Router/Timelock/Dividend/Partner，系统合约 B1~B9） |
| DEX 前端页 | `node/dex.html`（http://127.0.0.1:8090/dex：内置钱包/Swap/流动性/代币/治理/合约） |
| DEX 部署 + 闭环引导 | `scripts/deploy-omnimx.py` → `deploy/omnimx/omnimx-deploy.json` + `deploy/omnimx/abis/` |
| DEX 离线闭环测试 | `tests/test_omnimx_dex.py`（58/58） |
| 钱包网络配置 | `docs/钱包网络配置-omnx-testnet.json`（ChainID 18888） |
| AWS 部署包 | `deploy/aws/` + `deploy/omnx-aws-deploy.tar.gz`（含 DEX + tests） |
| 交易信封 / 状态版本裁决 | `node/tx_envelope.py`（信封 `v`、哈希口径、广播宽松 / 落账 closed、`x_` 扩展命名空间） |
| 快照导出 / 校验 / 导入 / 增量备份 | `scripts/omnx-snapshot.py`（`export` / `verify` / `import` / `backup` / `info`） |
| 平滑升级规范 | `docs/链升级兼容性规范.md`（改动分类表 A/B/C + 分叉预案模板） |
| 蓝绿部署方案（只交付不执行） | `docs/蓝绿部署方案.md` + `deploy/aws/bluegreen-switch.sh` |
| 平滑升级自检 | `tests/test_upgrade_compat.py`（51 项） |

## 数据流

1. 用户操作浏览器（http://127.0.0.1:8090/index.html，本地 Web 服务托管）
2. 页面同源 `POST /rpc` → `serve-web.py` 代理到链节点 8545 → `rpc.py` 处理 → `chain.py` 状态变更
3. 交易入池 → `network.py` 广播到 `OMNX_PEERS` 全部对端
4. 出块（3 秒/块）→ 广播区块；对端校验连续高度后应用，哈希一致则链同步
5. 区块浏览器从 `/rpc` 实时拉取：高度、区块、账户、验证者、各业务模块数据

## 访问方式

- 推荐：`http://127.0.0.1:8090/index.html`（启动脚本自动打开）
- 节点自带页面：`http://127.0.0.1:8545/`
- ⚠️ 不要直接双击 HTML（file:// 会被浏览器跨域策略拦截 RPC 请求）
