5.7 KiB
5.7 KiB
NAC XIC预售系统 部署日志
模块:nac-presale(XIC代币预售系统)
部署日期:2026-03-10
服务器:AI服务器 43.224.155.27
服务端口:3100
访问地址:https://pre-sale.newassetchain.io
管理后台:https://pre-sale.newassetchain.io/admin
代码仓库:https://git.newassetchain.io/nacadmin/nac-presale
系统架构
前端(React 19 + Tailwind 4)
↓
Node.js服务端(tRPC + Express)
↓
MySQL 8.0(127.0.0.1:3306,数据库:nac_presale)
↓
区块链节点(BSC/ETH/TRON)
技术栈
| 组件 | 技术 | 说明 |
|---|---|---|
| 前端框架 | React 19 + Vite | 深色赛博朋克风格 |
| UI组件库 | Tailwind 4 + shadcn/ui | |
| 后端框架 | Node.js + tRPC 11 + Express 4 | |
| 数据库 | MySQL 8.0 | 本机127.0.0.1:3306 |
| 进程管理 | PM2 | 进程ID: 8,名称: nac-presale-test |
| 反向代理 | Nginx | /etc/nginx/conf.d/nac-presale.conf |
| SSL证书 | 通配符证书 *.newassetchain.io |
数据库结构
数据库名:nac_presale
数据库用户:nac_presale(密码:NACpresale2026!)
表结构
trc20_purchases - TRC20购买记录
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT AUTO_INCREMENT | 主键 |
| txHash | VARCHAR(100) UNIQUE | 交易哈希 |
| fromAddress | VARCHAR(50) | TRC20发送地址 |
| usdtAmount | DECIMAL(18,6) | USDT金额 |
| xicAmount | DECIMAL(18,6) | XIC代币数量 |
| status | ENUM | pending/confirmed/distributed/failed |
| evmAddress | VARCHAR(50) | 接收XIC的EVM地址(可选) |
| createdAt | DATETIME | 创建时间 |
presale_config - 预售配置
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键(固定为1) |
| tokenPrice | DECIMAL | XIC价格(默认0.02 USDT) |
| hardCap | DECIMAL | 硬顶(默认50,000,000 USDT) |
| presaleStatus | ENUM | live/paused/ended |
| bscContractAddress | VARCHAR | BSC合约地址 |
| ethContractAddress | VARCHAR | ETH合约地址 |
| trc20ReceivingWallet | VARCHAR | TRC20接收钱包地址 |
trc20_intents - TRC20购买意向
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| evmAddress | VARCHAR | 用户EVM地址 |
| expectedUsdt | DECIMAL | 预期USDT金额 |
| status | ENUM | pending/matched/expired |
users - 用户表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| address | VARCHAR | EVM钱包地址 |
| role | ENUM | admin/user |
核心功能模块
1. TRC20监控守护进程(server/trc20Monitor.ts)
- 每30秒轮询TRON链上的USDT转账
- 自动匹配购买意向(evmAddress)
- 检测到转账后自动创建购买记录
- 通过Telegram机器人发送通知
2. 链上数据查询(server/onchain.ts)
- BSC合约数据查询(每5分钟更新缓存)
- ETH合约数据查询(每5分钟更新缓存)
- TRC20统计汇总
3. 管理后台(client/src/pages/Admin.tsx)
- 密码登录(默认密码:NACadmin2026!)
- 查看所有购买记录
- 手动分发XIC代币
- 修改预售配置
- 查看统计数据
4. 购买流程
BSC/ETH(EVM链):
- 用户连接MetaMask钱包
- 输入USDT金额
- 授权USDT → 调用合约购买 → 自动分发XIC
TRC20(TRON链):
- 用户填写EVM接收地址(创建购买意向)
- 向指定TRC20地址转账USDT
- 监控进程检测到转账 → 自动匹配 → 记录购买
- 管理员手动分发XIC(或自动分发)
服务配置
PM2配置
进程名:nac-presale-test
进程ID:8
端口:3100
启动命令:NODE_ENV=production node dist/index.js
工作目录:/www/wwwroot/nac-presale-test
Nginx配置(/etc/nginx/conf.d/nac-presale.conf)
server {
listen 443 ssl http2;
server_name pre-sale.newassetchain.io;
ssl_certificate /etc/ssl/newassetchain/_.newassetchain.io.crt;
ssl_certificate_key /etc/ssl/newassetchain/_.newassetchain.io.key;
location / {
proxy_pass http://127.0.0.1:3100;
}
}
当前数据状态(2026-03-10)
| 指标 | 数值 |
|---|---|
| TRC20购买记录 | 1条 |
| 已筹集USDT | 9,900 USDT |
| 已售出XIC | 495,000 XIC |
| 预售状态 | live(进行中) |
已知购买记录:
- 交易哈希:
d49965f9783efad7dd52121c7f290ba53b8b8250cae0d0bc223cfa74edac1b0e - 发送地址:
TKRYXhhpnufNH14LxgNcRG7G1y79QeNEb6 - 金额:9,900 USDT → 495,000 XIC
- 状态:confirmed(待分发,无EVM地址)
运维注意事项
-
MySQL:AI服务器上有两套MySQL
- 系统MySQL 8.0(
/usr/sbin/mysqld):正在使用,数据在/var/lib/mysql/ - 宝塔MySQL 5.7.43(
/www/server/mysql/bin/mysqld):系统表损坏,不使用 - MySQL root密码:
NACroot2026!(已重置)
- 系统MySQL 8.0(
-
MongoDB:AI服务器上有重要AI数据(约11,000+条)
- 数据库:
nac_ai(3,365条技术文档 + 6,775条合规规则) - 不要随意操作MongoDB
- 数据库:
-
AI服务:7个PM2进程在运行,不要随意重启
-
宝塔面板:宝塔管理的是5.7.43(已损坏),不显示系统MySQL 8.0的数据库,这是正常的
管理员信息
| 项目 | 值 |
|---|---|
| 管理后台地址 | https://pre-sale.newassetchain.io/admin |
| 管理员密码 | NACadmin2026! |
| MySQL root密码 | NACroot2026! |
| MySQL presale用户密码 | NACpresale2026! |
变更历史
| 日期 | 变更内容 |
|---|---|
| 2026-03-10 | 初始部署,修复MySQL启动问题,初始化预售配置,同步代码到Gitea |
| 2026-03-09 | 前端完整开发(深色赛博朋克风格),TRC20监控,管理后台 |
| 2026-03-08 | 项目初始化,数据库结构设计 |