4.9 KiB
4.9 KiB
CNNL 编译器修复与 HTTP 服务部署完成报告
工单编号: #64 + #65
完成时间: 2026-02-28
负责人: NAC Core Team
状态: ✅ 100% 完成
一、工单概述
| 工单 | 标题 | 状态 |
|---|---|---|
| #64 | CNNL编译库建设方案 | ✅ 已关闭 |
| #65 | 宪政神经网络语言(CNNL)核心技术白皮书与落地方案 | ✅ 已关闭 |
二、完成内容
2.1 CNNL 编译器修复(cnnl-compiler)
问题根因
ast.rs字段名被错误修改:ty: Type→type_: TypeAnnotation,导致所有下游模块编译失败parser/mod.rs缺少pub mod ast; pub use ast::*;头部声明- 多个模块中
Clause/Program构造缺少新增字段
修复内容
ast.rs 修复:
- 恢复原始字段名
ty: Type(而非type_: TypeAnnotation) - 添加
name: Option<String>到Clause - 添加
version: Option<String>到Clause - 添加
description: Option<String>到Clause - 添加
description: Option<String>到Obligation - 添加
tests: Vec<TestBlock>到Program - 添加
TestBlock结构体(支持内置测试语法) - 添加
Expression::Raw(String)变体 - 实现
DisplayforObligationFrequency - 实现
DisplayforLiteral
parser/mod.rs 重写:
- 支持
name: "..."字段解析 - 支持
version: "..."字段解析 - 支持
description: "..."字段解析 - 支持
test "描述" { assert ... }测试块解析 - 支持
obligation { description: "..." }字段
下游模块修复:
codegen/bytecode_generator.rs:添加缺失的tests: vec![]字段semantic/type_checker.rs:修复TypeAnnotation→Type引用semantic/scope_resolver.rs:修复字段名引用semantic/obligation_validator.rs:修复Obligation结构体语法verification/constraint_generator.rs:修复Clause构造
2.2 测试结果
test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
覆盖模块:
lexer::tests- 词法分析(5个测试)parser::tests- 语法分析(4个测试)parser::ast::tests- AST 构造(2个测试)semantic::*- 语义分析(7个测试)codegen::*- 字节码生成(2个测试)verification::*- 形式化验证(1个测试)
2.3 HTTP 服务(cnnl-service)
新增模块:/opt/nac/cnnl-service/
API 端点:
| 端点 | 方法 | 说明 | 测试状态 |
|---|---|---|---|
/api/v1/compile |
POST | 编译 CNNL 源代码为 NVM 字节码 | ✅ |
/api/v1/parse |
POST | 解析 CNNL 源代码,返回 AST | ✅ |
/api/v1/validate |
POST | 验证 CNNL 语法(不生成字节码) | ✅ |
/api/v1/health |
GET | 健康检查 | ✅ |
/api/v1/version |
GET | 版本信息 | ✅ |
服务配置:
- 监听地址:
0.0.0.0:8765 - systemd 服务名:
nac-cnnl-service - 自动启动:已启用
- 工作目录:
/opt/nac/cnnl-service
编译测试示例(黄金覆盖率条款):
{
"success": true,
"data": {
"bytecode_hex": "434e4e4c01000100e0120058545a485f474f4c445f434f564552414745...",
"bytecode_size": 63,
"clause_count": 1
}
}
三、部署信息
| 项目 | 值 |
|---|---|
| 服务器 | 103.96.148.7:22000 |
| 服务地址 | http://103.96.148.7:8765 |
| 服务状态 | active (running) |
| Git 提交 | dfe2a85 |
| 代码仓库 | https://git.newassetchain.io/nacadmin/NAC_Blockchain |
| 后台管理账号 | nacadmin / NACadmin2026! |
四、验证命令
# 健康检查
curl http://103.96.148.7:8765/api/v1/health
# 编译测试
curl -X POST http://103.96.148.7:8765/api/v1/compile \
-H "Content-Type: application/json" \
-d {source: clause TEST { level: eternal\n title: "测试" }}
# 查看服务状态
systemctl status nac-cnnl-service
五、关联工单
- #64 CNNL编译库建设方案 → 已关闭
- #65 CNNL核心技术白皮书与落地方案 → 已关闭
六、域名化 + SSL 完成记录
完成时间: 2026-02-28
| 项目 | 详情 |
|---|---|
| 服务域名 | https://cnnl.newassetchain.io |
| SSL 证书 | *.newassetchain.io(Certum 颁发,有效期至 2027-01-31) |
| 协议 | TLSv1.3 / TLS_AES_256_GCM_SHA384 |
| HTTP2 | 已启用 |
| HTTP→HTTPS | 301 强制跳转 |
| Nginx 配置 | /www/server/panel/vhost/nginx/cnnl.newassetchain.io.conf |
| Git 提交 | fccdc8d |
浏览器验证结果
- GET https://cnnl.newassetchain.io/api/v1/health → 200 OK,status: ok
- GET https://cnnl.newassetchain.io/api/v1/version → 200 OK,service: nac-cnnl-service
- SSL 证书验证通过,subjectAltName 匹配 *.newassetchain.io
- HTTP/2 协议正常工作
服务器管理员信息
- 服务器 SSH: root@103.96.148.7:22000 / XKUigTFMJXhH
- 宝塔面板: http://103.96.148.7:12/btwest(cproot / vajngkvf)
- Gitea: https://git.newassetchain.io/nacadmin/NAC_Blockchain(nacadmin / NACadmin2026!)