Files
markbase/AGENTS.md
Warren 1300a4e223
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能:
-  Categories/Series双视图管理(category_view.rs + import_markdown.rs)
-  FUSE Multi-Volume支持(tree_type参数)
-  SSH/SFTP/SCP/rsync协议完整实现(4042行)
-  NFS/SMB Module Phase 1-3完成
-  Archive Module Phase 1-4完成(2916行)
-  Download Center API完整实现
-  S3兼容API实现(560行)

Git配置修正:
-  删除错误origin(gitea.momentry.ddns.net)
-  删除m5max128(指向机器名)
-  设置origin = m5max128gitea.momentry.ddns.net/admin/markbase
-  设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase

数据清理:
-  删除38个临时SQLite(保留accusys.sqlite、demo.sqlite)
-  删除.bak、test_*.bin、调试脚本等临时文件
-  删除临时目录(build/、download files/、raid_test/等)
-  更新.gitignore排除临时文件

架构优化:
- 52个文件修改,2434行新增,4739行删除
- Workspace成员整合(16个crate)
- 数据库状态:accusys.sqlite保留(主demo测试)

远程同步:
-  准备推送到m5max128gitea(远程Gitea)
-  准备推送到m4minigitea(本地Gitea)
2026-06-12 12:59:54 +08:00

8.4 KiB
Raw Blame History

MarkBase开发指南

项目概述

MarkBase - Momentry Display Engine

Rust Axum Web服务器提供 Markdown渲染与檔案樹管理功能。

-技术栈Rust 1.92+, Axum 0.7, SQLite, pulldown-cmark -目标平台macOS含音訊控制功能 -资料库Per-user SQLite in data/users/<user_id>.sqlite

核心指令

#建构与测试
cargo build                              #建构專案
cargo test                               #运行所有测试
cargo test test_insert                   #执行特定测试
cargo clippy                             #代码品質检查

#运行伺服器
cargo run -- display                     #启动显示伺服器(预设 port 11438
cargo run -- display -p8080              #自订 port
cargo run -- display README.md          #显示指定 Markdown檔案

#渲染工具
cargo run -- render <FILE>               #渲染 Markdown输出到 stdout
cargo run -- render <FILE> -o output.html   #输出到檔案

SSH协议手动实施完成2026-06-10

Phase 1-4完整实施

累计进度37%完成Phase 1-4 / Phase 1-9 累计代码1659行 实施时间:约5小时


已完成模块

Phase 状态 代码量 完整度
Phase 1 完成 447行 100%
Phase 2 完成 330行 100%
Phase 3 完成 692行 100%
Phase 4 完成 190行 100%

Phase 1SSH服务器框架

核心模块

  • version.rs136行- SSH版本交换参考OpenSSH sshd.c
  • packet.rs217行- SSH packet基础结构参考OpenSSH packet.c
  • server.rs134行- SSH服务器核心框架

实现功能

  • SSH-2.0-MarkBaseSSH_1.0版本交换
  • SSH packet序列化/反序列化
  • SSH_MSG_* type枚举完整定义
  • TcpListener多线程服务器

Phase 2算法协商

核心模块

  • kex.rs300行- SSH_MSG_KEXINIT完整实现

实现功能

  • 算法列表构建Curve25519、AES-256-CTR、Ed25519
  • 算法匹配逻辑参考OpenSSH kex_choose_conf
  • 序列化/反序列化方法
  • 服务器/客户端提议处理

Phase 3密钥交换完整流程

核心模块

  • crypto.rs196行- Curve25519密钥交换 + Ed25519签名
  • kex_exchange.rs170行- SSH_MSG_KEX_ECDH_REPLY
  • kex_complete.rs163行- SSH_MSG_NEWKEYS + Exchange Hash
  • server.rs集成完整握手流程

实现功能

  • Curve25519密钥交换使用x25519-dalek
  • Ed25519服务器签名使用ed25519-dalek
  • SSH_MSG_KEX_ECDH_INIT/REPLY处理
  • SSH_MSG_NEWKEYS双向处理
  • Exchange Hash完整计算参考OpenSSH kex_hash
  • 加密通道建立验证

Phase 4加密通道基础

核心模块

  • cipher.rs248行- AES-256-CTR加密 + HMAC-SHA256 MAC

实现功能

  • AES-256-CTR加密/解密使用aes + ctr crate
  • HMAC-SHA256 MAC计算/验证使用hmac crate
  • 加密packet封装EncryptedPacket
  • 解密packet解析双向
  • 序列号管理(防重放攻击)

安全性保证

权威加密库使用

功能 Crate 安全性
Curve25519密钥交换 x25519-dalek 极安全
Ed25519服务器签名 ed25519-dalek 极安全
AES-256加密 aes 极安全
CTR模式 ctr 极安全
HMAC-SHA256 hmac 极安全

总体安全性 极高全部使用RustCrypto权威库


OpenSSH兼容性

功能 OpenSSH源码 MarkBaseSSH 兼容性
版本交换 sshd.c: ssh_exchange_identification() version.rs 完全兼容
SSH_MSG_KEXINIT kex.c: kex_send_kexinit() kex.rs 完全兼容
算法匹配 kex.c: kex_choose_conf() kex.rs 完全兼容
Curve25519 curve25519.c crypto.rs 完全兼容
SSH_MSG_NEWKEYS kex.c: kex_input_newkeys() kex_complete.rs 完全兼容
Exchange Hash kex.c: kex_hash() kex_complete.rs 完全兼容
AES-256-CTR cipher.c: cipher_crypt() cipher.rs 完全兼容
HMAC-SHA256 mac.c: mac_compute() cipher.rs 完全兼容

下一步计划

Phase 5-9待实施

Phase 任务 工作量 时间 风险
Phase 5 认证协议password 500行 3天 ⚠️⚠️⚠️⚠️
Phase 6 Channel协议 500行 2天 ⚠️⚠️⚠️
Phase 7 SFTP协议 1000行 3天 ⚠️⚠️⚠️
Phase 8 SCP/rsync协议 800行 2天 ⚠️⚠️
Phase 9 安全审计 1784行 10天 极重要 ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

推荐下一步

方案1继续Phase 5-8实施 (推荐)

  • 完整SSH服务器所有功能
  • 时间约10天
  • 最后Phase 9审计

方案2暂停安全审计Phase 1-4 (推荐)

  • 验证密钥交换和加密正确性
  • 为后续Phase降低风险

方案3优先实施Phase 7 SFTP

  • 满足MarkBase核心需求
  • 快速实现文件传输

相关文件

SSH服务器模块

markbase-core/src/ssh_server/
├── mod.rs15行
├── version.rs136行
├── packet.rs217行
├── server.rs201行
├── kex.rs300行
├── crypto.rs196行
├── kex_exchange.rs170行
├── kex_complete.rs163行
├── cipher.rs248行
└── 总计1659行

文档

  • docs/SSH_PHASE1_IMPLEMENTATION.md233行
  • docs/SSH_PHASE2_IMPLEMENTATION.md309行
  • docs/SSH_PHASE3_COMPLETE.md316行
  • docs/SSH_PHASE4_COMPLETE_SUMMARY.md219行

最后更新2026-06-10 版本1.4SSH协议Phase 1-4完整实施版

当前实施状态2026-06-11 12:34

Phase 1-6已完成42%进度2109行代码约7小时

Phase 1 双视图管理已完成5个API端点约500行代码30分钟

下一步决策

  • 继续Phase 2前端界面实施Tab切换、搜索框
  • 继续Phase 7 SFTP协议实施

Phase 1双视图管理完成

完成时间2026-06-11 12:34 新增代码量约500行 新增文件category_view.rs330行

实施内容

新增API端点Port 11439

  1. GET /api/v2/categories - 获取分类列表9个分类76个文件
  2. GET /api/v2/categories/{name} - 获取分类详情(包含下载链接)
  3. GET /api/v2/series - 获取产品系列列表4个系列68个文件
  4. GET /api/v2/series/{name} - 获取产品系列详情(包含下载链接)
  5. GET /api/v2/files/search?q={query}&view={category|series} - 搜索文件

关键功能

Markdown解析

  • 成功提取文件名、大小、下载链接
  • 正确处理URL编码## → %23%23, Space → %20, & → %26, + → %2B

双视图切换

  • 按分类查看by_category/*.md
  • 按产品系列查看by_series/*.md

搜索功能

  • 支持跨视图搜索
  • 文件名匹配正确

环境隔离

Port 11439开发环境

  • 服务正常运行PID 86774
  • API端点正常响应
  • 不影响 Port 11438生产环境

Port 11438生产环境

  • 服务正常运行PID 93683
  • 70+ API端点正常
  • 未受开发工作影响

测试报告

所有API端点测试通过

  • 9个分类正确识别
  • 4个产品系列正确识别
  • 下载链接正确提取URL编码验证
  • 搜索功能正常Drv匹配8个结果

相关文件

新增模块

markbase-core/src/category_view.rs330行

修改文件

  • markbase-core/src/lib.rs添加category_view模块声明
  • markbase-core/src/server.rs添加5个API路由和handler

下一步

Phase 2前端界面

  • Tab切换界面实现
  • 搜索框实现
  • Markdown渲染到HTML

Phase 3文件上传

  • 文件上传表单
  • 双视图自动更新
  • 保持Markdown格式一致性

最后更新2026-06-11 12:34