4个版本
0.1.3 | 2024年7月12日 |
---|---|
0.1.2 | 2024年7月10日 |
0.1.1 | 2024年7月10日 |
0.1.0 | 2024年7月10日 |
#473 在 网络编程
每月 100 次下载
10KB
127 行
EMNetChain
- EMNetChain是一个强大的工具链,灵感来源于WebRTC。它是一个跨平台服务器,可以用来在互联网上建立节点。
为什么?
- EMNetChain提供了一种通用且简单的方法来创建互联网上的节点。这使得它成为网络配置和管理的便捷高效工具。
- EMNetChain基于简单的JSON结构文本。
- EMNetChain被设计为一个教育应用,并使用多个crate构建。这种模块化方法提高了源代码的可读性。(EMNet, EMDisi_lib, EMUtil, simple_json_parser)
- 它可以用来创建VPN、区块链等。
安装
cargo install EMNetChain
入门
- 您可以使用命令行标志 -dis-addr 和 -chain-addr 启动应用程序,并且它们都必须是 ipv4:端口号格式
示例
EMNetChain -dis-addr 127.0.0.1:8080 -chain-addr 127.0.0.1:8081
- 如果没有使用命令行参数启动,它将要求您提供它们
- 它将启动两个服务器,EMDisi和EMNetChain
EMNetChain服务器
- 此服务器用于创建节点并将它们连接起来
- 每个客户端创建两个UDP套接字,一个作为尾部,另一个作为头部
- 客户端连接到它,并以以下格式向它发送JSON消息
{
"msg":"CONNECT",
"head":"127.0.0.1:1222",
"tail": "127.0.0.1:1224"
}
然后等待服务器以以下格式回复
{"msg":"CONNECT","part":"head","ip":"127.0.0.1:1224"}
部分指定哪个UDP套接字必须连接到该 ipv4:端口
EMDisi服务器
- 此服务器用于修复链,如果客户端断开连接等
- 在断开连接的情况下,客户端启动一个协议来维护网络的完整性。这包括客户端向其连接的对等方发送通知,指示其即将离线状态,并附带一个唯一标识符。随后,接收通知的两个客户端以预定义的格式与服务器进行通信
{
"msg":"RECONNECT",
"id":"1234",
"ip": "127.0.0.1:1224"
}
ip将是丢失朋友的UDP套接字的 ipv4:端口,如果服务器有新朋友,服务器将这样回复
{"msg":"CONNECT","ip":"127.0.0.1:1223"}
您可以编写自己的ID生成服务器来创建100%唯一的ID
EMUDP服务器
- 为用户提供获取其UDP套接字的IPv4:端口,该服务器仅回显已连接客户端的IPv4:端口 https://github.com/SkillfulElectro/EMNet/tree/main/src/EMUDP
结论
EMNetChain,受WebRTC启发,是一个用于创建和管理互联网节点的强大工具链。其用户友好的设计,基于JSON结构的文本和多个crate,使其非常适合教育用途以及VPN和区块链等通用应用。其独特的协议确保了网络完整性,即使在断开连接的情况下,也使其成为网络管理的可靠解决方案。
依赖项
~93KB