一个采用 C++20 构建的安全 P2P 网络,内置面向恶劣 NAT 环境的自定义中继。
为高保证对等存储提供可编程遗忘能力。
Shardian 为那些将删除保证与机密性同等重视的团队设计基础设施。EphemeralNet 是我们用 C++20 打造的研究型守护进程,专为必须消失的数据而生:一种将强制生存时间(TTL)语义作为一等约束的 P2P 协议。EphemeralNet 不会把 BitTorrent 风格的节点群临时改造成保留策略,而是将每个清单、数据块和路由提示都视为消耗性材料,其生命周期在边缘协商并以密码学方式强制实施。
每个节点都运行 eph,这是一个紧凑的守护进程,暴露了受 gRPC 启发的控制套接字和远程风格 CLI。内核将 TTL 感知的 Kademlia DHT 与 ChaCha20/HMAC 会话、用于密钥粉碎的 Shamir 秘密共享以及确定性清理钩子相结合,使过期状态同时从存储层级、路由表和清单中蒸发。最终形成一个可以像现代 CDN 覆盖网络一样进行 gossip、存储和获取的网格——同时保证数据按计划不复存在。
与归档系统不同,EphemeralNet 优化了时间正确性:它验证数据块不可能存留超过其截止时间,即使对等节点离线也是如此。这使其成为事件数据室、临时协同编辑以及任何需要针对删除设置零信任护栏的工作负载的理想选择。
flowchart LR
subgraph "Operator Workstation"
CLI["eph CLI<br/>(remote shell)"]
end
subgraph "Local Host"
Demon["eph daemon<br/>(control+data kernel)"]
end
subgraph Mesh
DHT["Kademlia DHT<br/>(TTL-indexed)"]
Relays["STUN/TURN + Relay"]
Peers["Peer Swarm"]
end
CLI -->|gRPC-style control| Demon
Demon -->|announce/store/fetch| DHT
Demon -->|NAT traversal| Relays
Demon <-->|ChaCha20 sessions| Peers
eph 二进制同时提供后台服务和远程控制面,便于自动化操作。| 平台 | 命令 |
|---|---|
| Linux 与 macOS | curl -sSf https://eph.shardian.com/install.sh | sh |
| Windows(PowerShell) | iwr https://eph.shardian.com/install.ps1 -useb | iex |
安装脚本会从 GitHub 下载最新发布工件,将
eph放置到您的 PATH 中,并打印后续操作说明。
# Start the daemon with loopback control plane, TCP transport on 45000
PS> eph start --storage-dir C:\temp\ephemeral --control-host 127.0.0.1
# Store a file with a 15-minute TTL; PoW is negotiated automatically
PS> eph store secrets.bin --ttl 900
# Fetch via manifest; direct-only keeps traffic on explicitly advertised peers
PS> eph fetch eph://6c5f... --direct-only --out C:\downloads
# Inspect node health, DHT saturation, and relay status
PS> eph status --verbose
# Check whether a newer CLI release is available
PS> eph update-check
# Configure (creates build/ and toolchain files)
cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
# Compile all targets (daemon, CLI, relay, tests)
cmake --build build --parallel
# Optional: execute the full test suite
ctest --test-dir build --output-on-failure
使用 -DEPHEMERALNET_BUILD_TESTS=OFF 可跳过测试二进制,或使用 -GNinja(如果您更喜欢 Ninja 构建)。
完整的操作手册、协议参考和可观测性指南位于 eph.shardian.com。离线副本镜像在 docs/ 下,供隔离网络审查。
欢迎提交 Pull Request——请先在 docs/todo.md 中提出方案,或开启 GitHub Discussion,以便我们统一范围。新模块应在 tests/ 下包含设计说明、遥测钩子和确定性测试。
EphemeralNet 以 MIT 许可证 发布。贡献即表示您同意您的工作将以 MIT 许可授权,并保证您拥有这样做的权利。