docs(vox1000): 发布评审预修——const.md 洗内部模块名引用(公开宪法不引内部仓决策号,家法措辞自足)+ moon.mod 补 readme 字段(moongard 发布形)
六边形 p2p 连接框架(MoonBit):PeerId 身份、端点发现、路径选择、连接 状态机、协议路由、可靠/有损双泳道、三面安全(身份 / 授权 / 保密)—— 千里传音,一发即达。
名字致敬金庸笔下一灯大师的千里传音:内力所至,声音直达一人耳中, 旁人只闻微风。p2p 连接框架的本分正在于此——穿过 NAT 与中继的重重 山水,把字节送到该收的那一端。
架构思想参考 iroh(MagicSocket / Endpoint / relay-bootstrap 保底在前 / netcheck 式自检皆借其形)、 netcheck 自检借 Tailscale 思想——思想与形态致敬,线全自研:wire 帧、握手消息、relay 协议、 发现记录、协议 id 词表全部自定义,不与 iroh / libp2p / 任何 QUIC 实现线级互通。算法层是唯一遵循层(Ed25519 / AES-GCM / SHA-256 / HKDF),经 mooncry 单一真源,标准测试向量对拍即门。
thy1016/vox1000/core
moonbitlang/async
thy1016/vox1000/adapter/sim
thy1016/vox1000/adapter/kcp
thy1016/vox1000/adapter/gate_moongard
thy1016/vox1000/examples/
状态:0.1.0。0.x 实验期,API 仍可能随反馈调整;未经独立安全审计。 协议形态与演进锚见 spec.md;分步文档见 guides/。
path_select
"vox1000-dial-v1"
sub
P2pEvent
adapter/sim
moon add thy1016/vox1000
消费包 moon.pkg 按需添加 import:thy1016/vox1000/core(@core), 及子包 adapter/sim(@sim)、adapter/kcp(@kcp)、 adapter/gate_moongard(@gate_moongard)。
moon.pkg
@core
@sim
adapter/kcp
@kcp
adapter/gate_moongard
@gate_moongard
依赖自家件:moonkcp (KCP 纯核 + secchan)、moongard (token 授权)、mooncry (算法单一真源)。
最小对打(sim 布线,双节点加密建链、协议派发):
// 布线:内存缝 + 发现;身份:32 字节种子出 PeerId(ed25519) let fabric = @sim.SimFabric::new() let psk = Bytes::make(32, b'\x77') // 保密面:PSK-CR + 记录层 let peer_a = @core.peer_id_from_seed(Bytes::from_array(Array::make(32, 1))) let peer_b = @core.peer_id_from_seed(Bytes::from_array(Array::make(32, 2))) // 构造错误(端点非法等)以 raise P2pError 报 let node_a = @core.Node::new( seam=@sim.SimNode::new(fabric~, addr=@core.Endpoint::LocalIpv4("10.0.0.1", 5001)), discovery=@core.MemoryDiscovery::new(now=fn() { 0L }, default_ttl_ms=60000L), local_peer=peer_a, psk~, ) let node_b = @core.Node::new( seam=@sim.SimNode::new(fabric~, addr=@core.Endpoint::LocalIpv4("10.0.0.2", 5002)), discovery=..., local_peer=peer_b, psk~, ) // 应门:注册协议处理器(协议 = 连接级,无每流协商) node_b.handle_protocol( protocol=@core.ProtocolId::parse("echo/1"), handler=EchoHandler, ) // 呼叫:认证通过才有连接返回,失败即 raise P2pError—— // 未认证可收发的连接态不存在 let conn = node_a.connect(peer_b, @core.ProtocolId::parse("echo/1"))
真传输一步到位(实 UDP 缝 + KCP 可靠泳道 + 加密握手 + 授权闸):
cd vox1000 && moon run examples/green_door3 --target native
绿门三四段:UdpSeam 冒烟 → Node 双端加密 dial + 闸 + 派发 → secchan 记录层密语往返 → KcpLane 真环回三消息。授权面(token)见 guides/02-security.md。
Apache-2.0
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
vox1000
六边形 p2p 连接框架(MoonBit):PeerId 身份、端点发现、路径选择、连接 状态机、协议路由、可靠/有损双泳道、三面安全(身份 / 授权 / 保密)—— 千里传音,一发即达。
名字致敬金庸笔下一灯大师的千里传音:内力所至,声音直达一人耳中, 旁人只闻微风。p2p 连接框架的本分正在于此——穿过 NAT 与中继的重重 山水,把字节送到该收的那一端。
血统明示
架构思想参考 iroh(MagicSocket / Endpoint / relay-bootstrap 保底在前 / netcheck 式自检皆借其形)、 netcheck 自检借 Tailscale 思想——思想与形态致敬,线全自研:wire 帧、握手消息、relay 协议、 发现记录、协议 id 词表全部自定义,不与 iroh / libp2p / 任何 QUIC 实现线级互通。算法层是唯一遵循层(Ed25519 / AES-GCM / SHA-256 / HKDF),经 mooncry 单一真源,标准测试向量对拍即门。
包结构
thy1016/vox1000/coremoonbitlang/asyncthy1016/vox1000/adapter/simthy1016/vox1000/adapter/kcpthy1016/vox1000/adapter/gate_moongardthy1016/vox1000/examples/状态:0.1.0。0.x 实验期,API 仍可能随反馈调整;未经独立安全审计。 协议形态与演进锚见 spec.md;分步文档见 guides/。
特性
path_select),策略 可配(direct_bias / rtt 门限)。"vox1000-dial-v1"绑定串);授权面 = moongard token(CallGate 方言,sub与 PeerId 互核);保密面 = secchan PSK-CR 握手 + AES-GCM 记录层(方向密钥 + 滑窗防重放)。未认证可收发的连接态 不存在。P2pEvent八拍事件流 (resolved / probed / selected / established / switched / failed / closed / announced),编排面吃事件不轮询。adapter/sim虚拟钟 + 内存布线,绿门用例零睡眠 零竞态,注入口丢包重传全程可断言。安装
消费包
moon.pkg按需添加 import:thy1016/vox1000/core(@core), 及子包adapter/sim(@sim)、adapter/kcp(@kcp)、adapter/gate_moongard(@gate_moongard)。依赖自家件:moonkcp (KCP 纯核 + secchan)、moongard (token 授权)、mooncry (算法单一真源)。
快速上手
最小对打(sim 布线,双节点加密建链、协议派发):
真传输一步到位(实 UDP 缝 + KCP 可靠泳道 + 加密握手 + 授权闸):
绿门三四段:UdpSeam 冒烟 → Node 双端加密 dial + 闸 + 派发 → secchan 记录层密语往返 → KcpLane 真环回三消息。授权面(token)见 guides/02-security.md。
文档
License
Apache-2.0