gcx/blockchain
hailin 0b1de382b0 fix(deploy): 服务器部署修复 — 全栈编译运行通过
在内网服务器 (192.168.1.222) 首次部署时发现并修复的所有问题,
涉及 backend (12微服务)、blockchain (Cosmos SDK节点)、前端 (admin-web)。

## Backend 修复

### docker-compose.yml
- DB_PASSWORD: 从硬编码 `genex_dev_password` 改为 `${DB_PASSWORD}` 环境变量插值,
  所有13个服务统一从 .env 读取,避免密码不一致导致连接失败
- Kong 镜像: `kong:3.5-alpine` → `kong:3.5`,alpine 版本在 amd64 上缺少依赖
- chain-indexer: 环境变量名 `CHAIN_RPC_URL` → `RPC_URL` (与 Go 代码 getEnv 一致)
- chain-indexer: RPC 地址改为 `http://172.17.0.1:8545` (Docker bridge gateway,
  跨 docker-compose network 访问 blockchain 节点的 EVM JSON-RPC)
- chain-indexer: 补全缺失的 DB_HOST/DB_PORT/DB_USERNAME/DB_PASSWORD/DB_NAME

### ai-service
- ai.module.ts: 移除重复的 TypeOrmModule.forRootAsync — 该模块错误地使用了
  DB_USER/DB_PASS (默认 'genex'/'genex') 和独立数据库 genex_ai,与 app.module.ts
  中已有的 TypeOrmModule.forRoot 冲突,导致密码认证失败
- app.module.ts: 添加 ConfigModule.forRoot({ isGlobal: true }),因为
  JwtModule.registerAsync 依赖 ConfigService 注入

### 依赖补全
- user-service/package.json: 添加 kafkajs ^2.2.4 (Kafka 事件消费)
- admin-service/package.json: 添加 kafkajs ^2.2.4 (Kafka 事件消费)

## Blockchain 修复

### genex-chain/app.go — 修复 chainConfig panic
- 问题: NewGenexApp 被调用两次 (tempApp 注册编码 + 实际启动),cosmos/evm 的
  SetChainConfig 在第二次调用时 panic: "chainConfig already set"
- 原因: 原代码 `if evmChainID == 0 { evmChainID = GenexEVMChainID }` 导致
  tempApp 也使用 8888,SetChainConfig 设置后,实际 app 再次设置时触发 panic
- 修复: 移除默认值回退,让 tempApp 使用 evmChainID=0 → DefaultEVMChainID(262144),
  实际 app 从 app.toml 读取 8888 后可正常覆盖

### genex-chain/cmd/genexd/cmd/root.go
- 移除未使用的 banktypes import (编译错误)

### docker-compose.yml
- 添加 `command: ["start", "--chain-id", "genex-testnet-1"]` 到 x-genex-node 默认配置,
  否则 InitChain 时 chain-id 为空导致校验失败

### init-genesis.sh (新增)
- 创世初始化脚本: init → 补丁 genesis.json → 创建验证者 → gentx → collect-gentxs
- 将所有默认 denom (aatom) 替换为 agnx (GNX, 18 decimals EVM 兼容)
- 配置: evm_denom, bond_denom, mint_denom, gov min_deposit, bank denom_metadata
- 启用 JSON-RPC (0.0.0.0:8545/8546)、REST API、CORS
- 设置 evm-chain-id=8888

## 部署结果
- 20 个 Docker 容器全部运行 (4 基础设施 + 12 后端 + 1 区块链节点 + 1 前端 + 2 辅助)
- 区块链稳定出块 (height 80+),EVM JSON-RPC 正常
- chain-indexer 实时索引区块 (lag=0)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 05:29:33 -08:00
..
.github/workflows fix: 区块链生态审计修复 — SDK补全 + Enterprise API加固 + 删除无用wallet-service 2026-02-15 22:05:52 -08:00
bridge-monitor feat: 区块链生态基础设施完整实现 — 12组件全量交付 (Phase 11) 2026-02-15 18:03:04 -08:00
chain-monitor feat: 区块链生态基础设施完整实现 — 12组件全量交付 (Phase 11) 2026-02-15 18:03:04 -08:00
enterprise-api fix: 区块链生态审计修复 — SDK补全 + Enterprise API加固 + 删除无用wallet-service 2026-02-15 22:05:52 -08:00
explorer feat: 区块链生态基础设施完整实现 — 12组件全量交付 (Phase 11) 2026-02-15 18:03:04 -08:00
faucet-service feat: 区块链生态基础设施完整实现 — 12组件全量交付 (Phase 11) 2026-02-15 18:03:04 -08:00
gas-relayer feat: 区块链生态基础设施完整实现 — 12组件全量交付 (Phase 11) 2026-02-15 18:03:04 -08:00
genex-chain fix(deploy): 服务器部署修复 — 全栈编译运行通过 2026-02-20 05:29:33 -08:00
genex-contracts feat: ERC-1155 同质化券系统 + denom统一为agnx (18位EVM标准) 2026-02-15 22:34:30 -08:00
genex-sdk-dart fix: 区块链生态审计修复 — SDK补全 + Enterprise API加固 + 删除无用wallet-service 2026-02-15 22:05:52 -08:00
genex-sdk-go fix: 区块链生态审计修复 — SDK补全 + Enterprise API加固 + 删除无用wallet-service 2026-02-15 22:05:52 -08:00
genex-sdk-js fix: 区块链生态审计修复 — SDK补全 + Enterprise API加固 + 删除无用wallet-service 2026-02-15 22:05:52 -08:00
README.md feat: Genex Chain 区块链完整实现 — cosmos/evm v0.5.1 应用链 + 9合约 + 合规集成 2026-02-14 23:40:37 -08:00
deploy.sh feat: 新增 deploy.sh 部署管理脚本体系 — 后端主控+12服务独立+区块链 2026-02-19 17:13:09 -08:00
docker-compose.explorer.yml feat: 区块链生态基础设施完整实现 — 12组件全量交付 (Phase 11) 2026-02-15 18:03:04 -08:00
docker-compose.yml fix(deploy): 服务器部署修复 — 全栈编译运行通过 2026-02-20 05:29:33 -08:00
init-genesis.sh fix(deploy): 服务器部署修复 — 全栈编译运行通过 2026-02-20 05:29:33 -08:00

README.md

Genex Chain — 区块链模块

自建 EVM 兼容应用链 + 智能合约体系

架构

blockchain/
├── genex-chain/          # Cosmos SDK 应用链Go
│   ├── cmd/genexd/       # 链节点二进制
│   ├── app/              # Application 配置
│   ├── x/evm/            # 自定义 EVM 模块
│   │   ├── keeper/       # Gas 费覆盖(平台补贴)
│   │   └── ante/         # 链级合规拦截
│   ├── config/           # 节点/创世配置
│   └── scripts/          # 初始化脚本
│
└── genex-contracts/      # Solidity 智能合约Foundry
    ├── src/              # 9 个核心合约
    ├── test/             # 10 个测试文件
    └── script/           # 部署脚本

技术栈

组件 技术 说明
链框架 Cosmos SDK v0.50 模块化200+ 生产链验证
共识引擎 CometBFT 即时终结性≤1s 出块
EVM 模块 cosmos/evm 完全 EVM 兼容Apache 2.0
合约框架 Foundry (Solidity 0.8.20) 测试 + 部署 + 验证
跨链 IBC + Axelar Cosmos 生态 + Ethereum 桥接

智能合约系统9 合约)

合约 功能
CouponFactory 券发行工厂Utility/Security 双轨)
Coupon ERC-721 券 NFT不可转让限制 + 转售计数)
Settlement 原子交换结算(多稳定币 + 价格验证)
Redemption 兑付合约(销毁 + 门店验证)
Compliance 合规OFAC + Travel Rule + KYC 差异化)
Treasury 资金托管(保障资金 + Escrow
Governance 治理3/5 多签 + 48h 时间锁 + 回滚)
ExchangeRateOracle 汇率预言机Chainlink 集成)
CouponBackedSecurity CBS 资产证券化

链设计参数

参数
Chain ID 8888
出块时间 ≤ 1 秒
TPS ≥ 5,000
Gas 策略 平台全额补贴min_gas_price = 0
原生代币 GNX (1B 总供应量)
共识 CometBFT PoS
EVM 兼容 完全兼容Solidity, Hardhat, MetaMask

快速开始

合约开发

cd blockchain/genex-contracts

# 安装依赖
forge install OpenZeppelin/openzeppelin-contracts
forge install OpenZeppelin/openzeppelin-contracts-upgradeable

# 编译
forge build

# 测试
forge test -vvv

# 部署到本地
forge script script/Deploy.s.sol --rpc-url http://localhost:8545 --broadcast

链开发

cd blockchain/genex-chain

# 编译
make build

# 初始化本地测试链
make init-local

# 启动
make start

MetaMask 配置

设置
Network Name Genex Chain
RPC URL http://localhost:8545
Chain ID 8888
Currency Symbol GNX

GNX 代币分配

总供应量: 1,000,000,000 GNX
├── 40% 平台运营/Gas 补贴
├── 20% 团队与顾问4年释放1年锁定
├── 15% 生态基金
├── 15% 融资预留
└── 10% 社区 DAO 治理

验证节点架构

生产网络(最少 5 个验证节点):
  Genex 创世节点 x3  — US(2) + SG(1)
  机构验证节点 x4+   — 持牌金融机构
  监管观察节点 x3    — FinCEN / MAS / FCA只读

安全规范

  • 所有合约上线前通过第三方安全审计
  • Transparent Proxy 部署(可升级)
  • 升级需 3/5 多签 + 48 小时时间锁
  • 紧急通道: 4/5 多签 + 4 小时时间锁
  • 不可升级的安全红线: 券类型标记、所有权记录、转售计数器