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网络编程

Download history 136/week @ 2024-07-05 91/week @ 2024-07-12 3/week @ 2024-07-19

每月 100 次下载

MIT 许可证

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服务器

结论

EMNetChain,受WebRTC启发,是一个用于创建和管理互联网节点的强大工具链。其用户友好的设计,基于JSON结构的文本和多个crate,使其非常适合教育用途以及VPN和区块链等通用应用。其独特的协议确保了网络完整性,即使在断开连接的情况下,也使其成为网络管理的可靠解决方案。

依赖项

~93KB