#去中心化 #网络 #路由 #分布式 #发布/订阅 #延迟 #SDN

atm0s-sdn

去中心化超低延迟软件定义网络

14 个版本

0.2.2 2024年7月22日
0.2.1 2024年7月22日
0.1.10 2024年2月21日
0.1.9 2024年1月31日
0.1.1 2023年11月23日

#1000 in 网络编程

Download history 29/week @ 2024-04-14 25/week @ 2024-04-21 8/week @ 2024-04-28 3/week @ 2024-05-12 24/week @ 2024-05-19 15/week @ 2024-05-26 20/week @ 2024-06-02 12/week @ 2024-06-09 11/week @ 2024-06-16 17/week @ 2024-06-23 9/week @ 2024-06-30 39/week @ 2024-07-07 128/week @ 2024-07-14 642/week @ 2024-07-21 673/week @ 2024-07-28

1,482 每月下载量
用于 2 crates

MIT 许可证

155KB
620

License: MIT Discord

atm0s-sdn: 全球规模超低延迟去中心化SDN

由SAN I/O驱动的开源去中心化网络基础设施,能够以最小延迟和高效的成本提供高质量数据,类似于Cloudflare为其网络实现的效果。

关于网络架构的技术细节,请参阅我们的 智能路由

项目状态:alpha

该项目目前处于开发alpha阶段。它正在积极开发中,可能会经历重大变化,包括API的变化。此阶段的主要重点是使项目稳定可靠。

我们正在与一些潜在合作伙伴合作,将网络集成到现实世界的场景中。如果您有兴趣测试网络,请随时联系我们或发送问题。

功能

  • 通过完全分布式,无中央控制器实现高可用性。
  • 支持多区域,高可扩展性。
  • 基于指标的自适应路由:延迟、带宽
  • 网络编排和发现(仅手动模式)。
  • 通过使用网络服务实现高度可扩展性。
  • 内置功能:PubSub,KeyValue ..
  • 跨平台:Linux,MacOs。

内置功能

  • 路由器同步:自动在节点之间同步路由表以实现智能路由
  • Pubsub:发布/订阅
  • DHT 多映射:键值存储
  • 节点别名:每个节点可以有多个别名
  • 虚拟套接字:充当虚拟UDP套接字
  • 通过eBPF重定向实现网络加速器
  • 身份验证和加密

内置服务

  • 可视化:显示网络结构
  • 手动发现:每个节点可以设置所有者标签和兴趣标签。每个节点将尝试连接到具有兴趣标签的其他节点。

架构

我们将逻辑分为两部分:功能和服务。

  • 特性:是一种高级逻辑,可用于构建网络服务。例如,发布/订阅、键值、虚拟套接字等。
  • 服务:是一种可扩展的逻辑,可用于构建自定义逻辑。每个服务都可以使用所有其他特性来构建自定义逻辑。

Network Protocol

为了更好的测试和开发,我们将库分为两个部分。

  • 网络协议:采用SANS-I/O风格实现。
  • 运行器:用于与SANS-I/O运行时集成。

入门指南

项目包括一些示例和一个独立节点,可用于测试网络。

从源代码构建

cd bin
cargo build --release

将第一个种子节点作为网络结构收集器运行

cargo run -- --collector --local-tags demo --connect-tags demo --node-id 1 --udp-port 10001 --web-addr 0.0.0.0:3000

运行第二个节点并加入种子节点组成的网络(如果它在另一台设备上运行,则需要替换种子节点的IP地址)

cargo run -- --local-tags demo --connect-tags mode --seeds 1@/ip4/127.0.0.1/udp/10001 --node-id 2 --udp-port 10002

与此类似,我们可以运行更多节点并将它们连接到网络。请记住更改节点ID和端口号,以避免与其他节点冲突。

访问Web界面以查看网络结构: https://127.0.0.1:3000

Network Structure

您还可以通过添加--vpn标志在每个节点中启用VPN功能。之后,每个节点都将分配一个私有IP规则:10.33.33.{node_id % 8}

基准测试

网络优化器

我们在亚洲、美国、欧洲运行了9个节点,通过Digital Ocean和越南的一些本地ISP测试了节点间的延迟。结果显示,与正常路由相比,网络可以将延迟提高最多48.5%。

最大优化

美国 欧洲 亚洲
美国 0
欧洲 3.40% 0
亚洲 48.5% 28.30% 47%

平均优化

美国 欧洲 亚洲
美国 0
欧洲 0.40% 0
亚洲 11.6% 9.50% 3%

我们将在未来进行更多测试,以获得更精确的结果,并与更多的云服务和本地ISP进行测试。

速度

在某些快速测试中,它显示网络节点可以每个核心中继大约1Gbps。我们将在未来进行更多测试以获得更精确的结果。

展示

  • 去中心化媒体服务器: Repo
  • 去中心化VPN: Repo
  • 去中心化反向代理: Repo

贡献

该项目正在不断改进和更新。我们始终在寻找使其变得更好的方法,无论是通过优化性能、添加新功能还是修复错误。我们欢迎来自社区的贡献,并始终欢迎新的想法和建议。如果您对此感兴趣或认为它可能有所帮助,我们欢迎您对代码库的贡献,或者考虑收藏存储库以显示您的支持并激励我们的团队!

有关更多信息,您可以加入我们的Discord频道

路线图

第一个版本将与媒体服务器一起于2023年底发布。

有关我们的路线图详情,请参阅待定

许可证

本项目的许可证为MIT许可证 - 有关详细信息,请参阅LICENSE文件。

致谢

我们感谢所有帮助使本项目成功的人。

依赖项

~11–40MB
~661K SLoC