gop2p
1.0.0
gop2p 是一个 Golang 库,用于在软件客户端之间实现基于 UDP 的简单点对点通信。目标是能够通过发出 RSA 签名的命令来远程控制各种节点。对等方维护只有客户端拥有的私钥的公钥。
这是我的第一个主要的 Go 项目,所以它可能不太漂亮,但它运行得非常快。
客户端文件夹包含运行发出命令的客户端所需的所有代码。
对等文件夹包含运行节点所需的所有代码。
生成 RSA 公钥和私钥后,将它们放入客户端和对等方的 cryptotext.go 文件中。
将密钥放在正确的位置后,构建客户端和对等点。
使用以下命令运行客户端:
./p2pclient < IP ADDRESS OF PEER HERE >
像这样运行初始对等点:
./p2ppeer -p < port >
并像这样运行任何新的对等点:
./p2ppeer -p < port > -b < ANY OTHER PEER IP >
对等点将自动共享有关当前网络中对等点的信息,因此引导对等点不必与每个后续对等点相同。这些同级本身就是引导同级。
对等方当前不会对发送给它们的命令执行任何操作。它们只打印出数据的原始字节片。我只对 Golang 中实现的 p2p 通信感兴趣,因此没有默认命令。然而,实现一些对等点要做的命令只需要修改commands.go文件中的“executeCommand”函数。缓冲区仅包含命令数组,因此可以根据需要对其进行处理。我注释掉了一些代码,这些代码将作为 shell 执行该命令(但是如果您键入恶意命令,这可能会对安全性产生可怕的后果。您已被警告)。
欢迎请求请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
请随意将代码包含在您拥有的任何项目中。我只要求您注明该项目的名称并链接回 github 页面。您也不必完整地使用该项目。您可以使用任何您想要的片段。只需通过源代码中某处的注释来归因,不要声称自己是原作者。
麻省理工学院