#67NAC公链开发者网站与本地终端集成方案 #67

Closed
opened 2026-02-28 02:35:50 +08:00 by NAC · 0 comments

NAC公链开发者网站与本地终端集成方案
版本:1.0
制定方:NAC开发者体验工作组
发布日期:2026年2月15日
关联文档:NAC开发者工具箱 v2.0 核心技术白皮书

  1. 执行摘要
    NAC公链开发者网站旨在为全球开发者提供一站式、交互式、零门槛的NAC应用开发体验。网站的核心创新在于本地终端调用机制——开发者可在浏览器中直接操作本地操作系统终端,运行完整的NAC工具箱命令,无需远程服务器,保障代码和数据安全。
    本方案实现:
  • 高度集成:网站整合文档、教程、API参考、代码示例、社区论坛。
  • 本地终端调用:通过WebSocket连接本地守护进程,在网页内嵌终端模拟器中执行真实命令。
  • 实时反馈:命令执行结果实时显示,支持文件上传下载。
  • 项目同步:网站项目与本地文件系统双向同步。
  • 企业级安全:私钥永不离本地,所有敏感操作需用户确认。

一、总体架构
┌─────────────────────────────────────────────────────────────┐
│ 客户端(开发者机器) │
├─────────────────────────────────────────────────────────────┤
│ • 本地文件系统(项目代码) │
│ • NAC工具箱(nac CLI) │
│ • nac-daemon(本地守护进程) │
│ • 浏览器(访问开发者网站) │
└─────────────────────────────┬───────────────────────────────┘
│ WebSocket (localhost)

┌─────────────────────────────────────────────────────────────┐
│ NAC开发者网站 │
├─────────────────────────────────────────────────────────────┤
│ • 首页(终端模拟器、快速上手) │
│ • 文档中心(教程、API、示例) │
│ • 项目模板库(一键创建) │
│ • 宪法沙箱在线版(WebAssembly精简版) │
│ • 社区论坛 │
│ • 个人工作台(项目同步、历史命令) │
└─────────────────────────────────────────────────────────────┘

二、本地终端调用机制
2.1 核心组件:nac-daemon
nac-daemon是一个轻量级本地后台服务,开发者安装NAC工具箱时自动启动。它:

  • 监听本地WebSocket端口(如ws://localhost:18425)。
  • 接收来自开发者网站的命令执行请求。
  • 在本地shell中执行命令(如nac build、nac test)。
  • 将stdout/stderr实时流式返回给网站。
  • 支持文件读写操作(通过安全沙箱)。
    安装与启动:

安装NAC工具箱时自动安装并启动daemon

nac tool install 2.0.1
nac daemon start
2.2 网站终端模拟器
网站首页内置一个基于xterm.js的终端模拟器,用户打开网站即可看到终端界面。其工作流程:

  1. 网站检测本地是否运行nac-daemon(通过尝试WebSocket连接)。
  2. 若未连接,显示提示引导用户启动daemon。
  3. 连接成功后,用户在终端输入命令,通过WebSocket发送至daemon。
  4. daemon执行命令,实时回传输出,终端显示。
  5. 支持Ctrl+C中断、全屏模式、多标签。
    优势:
  • 安全:命令在本地执行,私钥、代码文件从不离开用户机器。
  • 真实环境:使用完整工具箱,而非WebAssembly模拟版本。
  • 低延迟:本地回环网络,响应迅速。
    2.3 项目同步
    网站提供“工作台”功能,可列出本地项目(通过daemon扫描~/nac-projects/),并支持:
  • 在线编辑文件(通过WebDAV或文件读写API)。
  • 一键创建项目(调用nac new)。
  • 将网站上的示例代码直接保存到本地项目。
    实现:daemon提供文件读写接口,网站通过WebSocket调用。
    2.4 安全设计
  • 连接验证:网站与daemon建立连接时,daemon要求网站提供一个动态令牌(由工具箱生成的临时密钥),防止其他网页滥用本地服务。
  • 命令白名单:daemon可配置只允许执行nac开头的命令,拒绝危险命令(如rm -rf)。
  • 用户确认:敏感操作(如部署合约、提案提交)可在网站弹窗要求用户二次确认。
  • 日志审计:所有命令记录本地日志,用户可随时查看。

三、网站功能模块
3.1 首页(终端优先)

  • 大标题:“NAC公链开发者中心——在本地终端中开发区块链”
  • 终端模拟器占据页面主体,默认显示欢迎信息和连接状态。
  • 快速上手侧边栏:显示常用命令卡片(nac new、nac build、nac test),点击自动填入终端。
  • 项目模板:展示RWA资产、宪法条款、节点插件等模板,点击“在终端中创建”自动执行相应nac new命令。
  • 最新文档:动态显示近期更新的文档链接。
    3.2 文档中心
  • 结构化文档:按层级(L0-L5)组织,支持全文检索。
  • 交互式示例:每个代码块旁边有“在终端中运行”按钮,将命令填入终端并执行。
  • 宪法沙箱在线版:基于WebAssembly编译CNNL核心库,提供轻量级条款一致性检查(无需本地daemon)。
  • API参考:自动从代码生成,支持版本切换。
    3.3 项目模板库
  • 官方模板:宪法定制、ERC-20等价物、RWA资产、NFT等。
  • 社区模板:开发者上传的模板,需经审核。
  • 一键创建:选择模板后,网站通过daemon在本地创建项目并打开终端。
    3.4 个人工作台
  • 项目列表:显示本地~/nac-projects/下的所有项目。
  • 项目详情:文件树、最近编译记录、宪法合规报告。
  • 命令历史:记录在终端执行的所有命令,可重放。
  • 同步设置:配置自动备份到IPFS或Git。
    3.5 社区论坛
  • 问答专区:与Stack Overflow类似,支持代码片段内联。
  • 提案讨论:宪法修正案讨论区,可链接到终端沙箱模拟。

四、技术实现要点
4.1 本地守护进程(nac-daemon)

  • 语言:Rust(跨平台、与工具箱一致)。
  • 通信协议:WebSocket(支持二进制流)。
  • API设计:
    {
    "id": 1,
    "type": "exec",
    "command": "nac build",
    "cwd": "/home/user/nac-projects/my-token"
    }
    // 实时输出响应
    {
    "id": 1,
    "type": "stdout",
    "data": "Compiling...\n"
    }
    {
    "id": 1,
    "type": "stderr",
    "data": "warning: unused variable"
    }
    {
    "id": 1,
    "type": "exit",
    "code": 0
    }
  • 文件操作:read_file、write_file、list_dir。
  • 安全令牌:启动时生成随机令牌存入~/.nac/token,网站通过读取该文件(需用户授权)获取。
    4.2 网站前端
  • 框架:React + TypeScript。
  • 终端组件:xterm.js + fit-addon + web-links。
  • WebSocket管理:自动重连、心跳检测。
    -代码编辑器:Monaco Editor(VS Code内核),支持语法高亮(Charter/CNNL)。
    4.3 连接引导流程
  1. 用户首次访问网站,检测daemon未连接。
  2. 显示引导弹窗:“请确保已安装NAC工具箱并启动daemon”。
  3. 提供下载链接(跳转至GitHub Releases)。
  4. 提供一键启动脚本(复制到终端执行)。
  5. 若用户已安装,引导输入授权令牌(自动从本地文件读取或手动输入)。

五、示例场景
5.1 新手上路

  1. 用户打开网站,看到终端界面。
  2. 点击“创建第一个RWA资产”模板卡片。
  3. 网站通过daemon执行nac new my-first-rwa --type contract。
  4. 终端显示项目创建成功,并自动cd到项目目录。
  5. 用户继续在终端中运行nac build、nac test,所有输出实时显示。
    5.2 宪法条款模拟
  6. 用户在文档中心找到“黄金覆盖率修正案”示例条款。
  7. 点击“在沙箱中测试”,网站打开终端并执行:
    cd ~/nac-projects
    nac new test-amendment --type constitution
    cd test-amendment

将示例条款写入文件(通过文件操作API)

nac sandbox --duration 7d --constitution my-amendment.cnml
3. 沙箱运行结果显示在终端。
5.3 团队协作

  1. 团队成员A在网站上创建项目,通过nac deploy部署到测试网。
  2. 生成项目分享链接,成员B打开链接后,网站自动将项目同步到本地(通过daemon的write_file)。
  3. 成员B在终端中继续开发。

六、安全与隐私

  • 私钥管理:所有签名操作在终端由用户手动完成,网站不介入。
  • 数据隔离:daemon只允许访问~/nac-projects/和临时目录,无法读取系统敏感文件。
  • 令牌机制:每次daemon启动生成新令牌,旧令牌失效。
  • HTTPS:网站使用HTTPS,防止中间人攻击。
  • 开源:daemon与网站前端代码均开源,接受社区审计。

七、开发路线图
阶段 时间 交付物
Phase 1 2026.02-03 nac-daemon原型,支持基本命令执行和WebSocket
Phase 2 2026.03-04 网站前端基础框架,终端模拟器集成
Phase 3 2026.04-05 连接引导、令牌认证、文件操作API
Phase 4 2026.05-06 文档中心、模板库集成,交互式示例
Phase 5 2026.06-07 个人工作台、项目同步
Phase 6 2026.07-08 公测上线,社区反馈迭代

八、结论
NAC开发者网站通过本地终端调用机制,彻底打破了传统区块链开发者网站“文档+远程沙箱”的局限。开发者可以在网页中直接使用本地完整的工具箱,享受真实环境、实时反馈、安全隔离的开发体验。这是NAC“完美中心化框架下的去中心化”理念在开发者生态的延伸——规则由宪法定义,工具由社区提供,开发在本地完成。

制定人:NAC开发者体验工作组
最后更新:2026年2月15日
文档状态:正式发布

NAC公链开发者网站与本地终端集成方案 版本:1.0 制定方:NAC开发者体验工作组 发布日期:2026年2月15日 关联文档:NAC开发者工具箱 v2.0 核心技术白皮书 ---------------------------------------------------------------------- 0. 执行摘要 NAC公链开发者网站旨在为全球开发者提供一站式、交互式、零门槛的NAC应用开发体验。网站的核心创新在于本地终端调用机制——开发者可在浏览器中直接操作本地操作系统终端,运行完整的NAC工具箱命令,无需远程服务器,保障代码和数据安全。 本方案实现: - 高度集成:网站整合文档、教程、API参考、代码示例、社区论坛。 - 本地终端调用:通过WebSocket连接本地守护进程,在网页内嵌终端模拟器中执行真实命令。 - 实时反馈:命令执行结果实时显示,支持文件上传下载。 - 项目同步:网站项目与本地文件系统双向同步。 - 企业级安全:私钥永不离本地,所有敏感操作需用户确认。 ---------------------------------------------------------------------- 一、总体架构 ┌─────────────────────────────────────────────────────────────┐ │ 客户端(开发者机器) │ ├─────────────────────────────────────────────────────────────┤ │ • 本地文件系统(项目代码) │ │ • NAC工具箱(nac CLI) │ │ • nac-daemon(本地守护进程) │ │ • 浏览器(访问开发者网站) │ └─────────────────────────────┬───────────────────────────────┘ │ WebSocket (localhost) ↓ ┌─────────────────────────────────────────────────────────────┐ │ NAC开发者网站 │ ├─────────────────────────────────────────────────────────────┤ │ • 首页(终端模拟器、快速上手) │ │ • 文档中心(教程、API、示例) │ │ • 项目模板库(一键创建) │ │ • 宪法沙箱在线版(WebAssembly精简版) │ │ • 社区论坛 │ │ • 个人工作台(项目同步、历史命令) │ └─────────────────────────────────────────────────────────────┘ ---------------------------------------------------------------------- 二、本地终端调用机制 2.1 核心组件:nac-daemon nac-daemon是一个轻量级本地后台服务,开发者安装NAC工具箱时自动启动。它: - 监听本地WebSocket端口(如ws://localhost:18425)。 - 接收来自开发者网站的命令执行请求。 - 在本地shell中执行命令(如nac build、nac test)。 - 将stdout/stderr实时流式返回给网站。 - 支持文件读写操作(通过安全沙箱)。 安装与启动: # 安装NAC工具箱时自动安装并启动daemon nac tool install 2.0.1 nac daemon start 2.2 网站终端模拟器 网站首页内置一个基于xterm.js的终端模拟器,用户打开网站即可看到终端界面。其工作流程: 1. 网站检测本地是否运行nac-daemon(通过尝试WebSocket连接)。 2. 若未连接,显示提示引导用户启动daemon。 3. 连接成功后,用户在终端输入命令,通过WebSocket发送至daemon。 4. daemon执行命令,实时回传输出,终端显示。 5. 支持Ctrl+C中断、全屏模式、多标签。 优势: - 安全:命令在本地执行,私钥、代码文件从不离开用户机器。 - 真实环境:使用完整工具箱,而非WebAssembly模拟版本。 - 低延迟:本地回环网络,响应迅速。 2.3 项目同步 网站提供“工作台”功能,可列出本地项目(通过daemon扫描~/nac-projects/),并支持: - 在线编辑文件(通过WebDAV或文件读写API)。 - 一键创建项目(调用nac new)。 - 将网站上的示例代码直接保存到本地项目。 实现:daemon提供文件读写接口,网站通过WebSocket调用。 2.4 安全设计 - 连接验证:网站与daemon建立连接时,daemon要求网站提供一个动态令牌(由工具箱生成的临时密钥),防止其他网页滥用本地服务。 - 命令白名单:daemon可配置只允许执行nac开头的命令,拒绝危险命令(如rm -rf)。 - 用户确认:敏感操作(如部署合约、提案提交)可在网站弹窗要求用户二次确认。 - 日志审计:所有命令记录本地日志,用户可随时查看。 ---------------------------------------------------------------------- 三、网站功能模块 3.1 首页(终端优先) - 大标题:“NAC公链开发者中心——在本地终端中开发区块链” - 终端模拟器占据页面主体,默认显示欢迎信息和连接状态。 - 快速上手侧边栏:显示常用命令卡片(nac new、nac build、nac test),点击自动填入终端。 - 项目模板:展示RWA资产、宪法条款、节点插件等模板,点击“在终端中创建”自动执行相应nac new命令。 - 最新文档:动态显示近期更新的文档链接。 3.2 文档中心 - 结构化文档:按层级(L0-L5)组织,支持全文检索。 - 交互式示例:每个代码块旁边有“在终端中运行”按钮,将命令填入终端并执行。 - 宪法沙箱在线版:基于WebAssembly编译CNNL核心库,提供轻量级条款一致性检查(无需本地daemon)。 - API参考:自动从代码生成,支持版本切换。 3.3 项目模板库 - 官方模板:宪法定制、ERC-20等价物、RWA资产、NFT等。 - 社区模板:开发者上传的模板,需经审核。 - 一键创建:选择模板后,网站通过daemon在本地创建项目并打开终端。 3.4 个人工作台 - 项目列表:显示本地~/nac-projects/下的所有项目。 - 项目详情:文件树、最近编译记录、宪法合规报告。 - 命令历史:记录在终端执行的所有命令,可重放。 - 同步设置:配置自动备份到IPFS或Git。 3.5 社区论坛 - 问答专区:与Stack Overflow类似,支持代码片段内联。 - 提案讨论:宪法修正案讨论区,可链接到终端沙箱模拟。 ---------------------------------------------------------------------- 四、技术实现要点 4.1 本地守护进程(nac-daemon) - 语言:Rust(跨平台、与工具箱一致)。 - 通信协议:WebSocket(支持二进制流)。 - API设计: { "id": 1, "type": "exec", "command": "nac build", "cwd": "/home/user/nac-projects/my-token" } // 实时输出响应 { "id": 1, "type": "stdout", "data": "Compiling...\n" } { "id": 1, "type": "stderr", "data": "warning: unused variable" } { "id": 1, "type": "exit", "code": 0 } - 文件操作:read_file、write_file、list_dir。 - 安全令牌:启动时生成随机令牌存入~/.nac/token,网站通过读取该文件(需用户授权)获取。 4.2 网站前端 - 框架:React + TypeScript。 - 终端组件:xterm.js + fit-addon + web-links。 - WebSocket管理:自动重连、心跳检测。 -代码编辑器:Monaco Editor(VS Code内核),支持语法高亮(Charter/CNNL)。 4.3 连接引导流程 1. 用户首次访问网站,检测daemon未连接。 2. 显示引导弹窗:“请确保已安装NAC工具箱并启动daemon”。 3. 提供下载链接(跳转至GitHub Releases)。 4. 提供一键启动脚本(复制到终端执行)。 5. 若用户已安装,引导输入授权令牌(自动从本地文件读取或手动输入)。 ---------------------------------------------------------------------- 五、示例场景 5.1 新手上路 1. 用户打开网站,看到终端界面。 2. 点击“创建第一个RWA资产”模板卡片。 3. 网站通过daemon执行nac new my-first-rwa --type contract。 4. 终端显示项目创建成功,并自动cd到项目目录。 5. 用户继续在终端中运行nac build、nac test,所有输出实时显示。 5.2 宪法条款模拟 1. 用户在文档中心找到“黄金覆盖率修正案”示例条款。 2. 点击“在沙箱中测试”,网站打开终端并执行: cd ~/nac-projects nac new test-amendment --type constitution cd test-amendment # 将示例条款写入文件(通过文件操作API) nac sandbox --duration 7d --constitution my-amendment.cnml 3. 沙箱运行结果显示在终端。 5.3 团队协作 1. 团队成员A在网站上创建项目,通过nac deploy部署到测试网。 2. 生成项目分享链接,成员B打开链接后,网站自动将项目同步到本地(通过daemon的write_file)。 3. 成员B在终端中继续开发。 ---------------------------------------------------------------------- 六、安全与隐私 - 私钥管理:所有签名操作在终端由用户手动完成,网站不介入。 - 数据隔离:daemon只允许访问~/nac-projects/和临时目录,无法读取系统敏感文件。 - 令牌机制:每次daemon启动生成新令牌,旧令牌失效。 - HTTPS:网站使用HTTPS,防止中间人攻击。 - 开源:daemon与网站前端代码均开源,接受社区审计。 ---------------------------------------------------------------------- 七、开发路线图 阶段 时间 交付物 Phase 1 2026.02-03 nac-daemon原型,支持基本命令执行和WebSocket Phase 2 2026.03-04 网站前端基础框架,终端模拟器集成 Phase 3 2026.04-05 连接引导、令牌认证、文件操作API Phase 4 2026.05-06 文档中心、模板库集成,交互式示例 Phase 5 2026.06-07 个人工作台、项目同步 Phase 6 2026.07-08 公测上线,社区反馈迭代 ---------------------------------------------------------------------- 八、结论 NAC开发者网站通过本地终端调用机制,彻底打破了传统区块链开发者网站“文档+远程沙箱”的局限。开发者可以在网页中直接使用本地完整的工具箱,享受真实环境、实时反馈、安全隔离的开发体验。这是NAC“完美中心化框架下的去中心化”理念在开发者生态的延伸——规则由宪法定义,工具由社区提供,开发在本地完成。 --- 制定人:NAC开发者体验工作组 最后更新:2026年2月15日 文档状态:正式发布
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: nacadmin/NAC_Blockchain#67
No description provided.