#connection #p2p #nat #reliable #automatic #networking #messages

不再维护 crust

对等网络库。自动重新连接和管理连接。

86 个版本

使用旧的 Rust 2015

0.32.1 2019年6月4日
0.31.0 2018年8月24日
0.30.0 2017年12月26日
0.28.1 2017年9月14日
0.2.2 2015年7月31日

#39 in #nat

Download history 36/week @ 2024-03-24 1008/week @ 2024-03-31 102/week @ 2024-04-07 17/week @ 2024-04-14 20/week @ 2024-04-21 21/week @ 2024-04-28 2/week @ 2024-05-05 7/week @ 2024-05-12 51/week @ 2024-05-19 15/week @ 2024-05-26 54/week @ 2024-06-02 37/week @ 2024-06-09 44/week @ 2024-06-16 38/week @ 2024-06-23 806/week @ 2024-06-30 15/week @ 2024-07-07

905 每月下载量
用于 10 个crate (2 个直接)

MIT OR BSD-3-Clause

410KB
5K SLoC

Crust

使用Rust和NAT穿越实现可靠的对等网络连接。任何无服务器、去中心化项目的必需库之一。

文档 Linux/OS X Windows 问题
Documentation Build Status Build status Stories in Ready
MaidSafe网站 SAFE开发者论坛 SAFE网络论坛

概述

crusty

Crust是一个针对对等连接和数据传输优化的低级别网络库。它实现了连接两个对等节点并安全、可靠地交换消息的原始功能。它支持多种协议(UDP和TCP打洞)并且是加密安全的——所有通信,从握手消息开始,都是加密的。它还提供了其他安全功能,如随机化端口,用于防止针对特定已知端口进行DoS攻击。Crust实现了多种NAT穿越技术,如打洞和使用IGD。

即将推出的功能/优势

多协议扩展

除了现有的TCP & UDP打洞协议外,Crust很快将包括TCP-direct并引入µTP,它包装UDP并添加可靠性、拥塞控制和有序交付,以创建更健壮和更好的范例。支持多种协议意味着如果防火墙/路由器不支持特定协议,则网络切换到另一个协议以建立连接。如果防火墙/路由器支持所有协议,则Crust选择第一个成功建立连接的协议。

安全序列化

网络自动加密传输给它的所有内容。通过安全序列化,我们消除了中间人攻击,因为网络上的所有内容在每个网络跳转处都是加密的。此外,每个节点对数据包进行签名提供了不可否认性,因为发送者不能否认他们签发了该数据包。

引导缓存

Bootstrap缓存增强了使用创世节点(硬编码的地址)进行初始库房检测的概念,通过动态创建一个无需打洞即可直接到达的节点列表。该列表在节点连接/断开网络时进行追加和修剪,因此始终保持最新。

许可证

此Crust库根据您的选择,采用修改后的BSD许可证(LICENSE-BSD)或MIT许可证(LICENSE-MIT)。

贡献

SAFE网络中的版权归其贡献者所有。不需要将版权转让给本项目即可进行贡献。

依赖项

~16MB
~301K SLoC