C-toxcore: 功能提案:网络保镖

创建于 2018-01-18  ·  11评论  ·  资料来源: TokTok/c-toxcore

这个想法在很大程度上类似于 IRC 保镖,其中设置了一个保持连接到网络的代理/中继客户端,而实际的客户端连接到保镖/从保镖分离以进行通信。 这将特别有助于移动系统(例如智能手机)的采用,因为 DHT 会导致电池消耗和电信网络成本。

仅提及这一点,因为我至少有 3 人放弃了网络,仅仅是因为他们主要是移动用户,并且认为上述缺点是不可接受的。

P3 proposal

最有用的评论

您应该能够编写一个暴露tox.h接口的保镖库,以便可以像构建毒核一样针对它构建客户端,而无需更改任何客户端代码。 例如,客户端对这个保镖库中tox_bootstrap()函数的第一次调用可以被视为保镖库应该连接到的保镖守护程序的地址:端口:pubkey。 建立连接后,客户端上的所有tox_函数将是远程保镖的 RPC,例如,执行tox_friend_send_message()的客户端将发送一个 RPC 到守护程序,要求它在我们的代表并将功能代码返回给我们回馈给客户。 保镖库可以使用它想要的任何东西与远程服务器上运行的保镖守护程序进行通信,从普通的 HTTPS(如果你想减少网络使用量,这可能是你想要的)到 toxcore 的自定义数据包。

是的,我同意@sudden6 ,这应该是一个单独的库,而不是 toxcore 库的一部分。

所有11条评论

我认为这个功能可能在机器人而不是核心库中更好地实现。

您应该能够编写一个暴露tox.h接口的保镖库,以便可以像构建毒核一样针对它构建客户端,而无需更改任何客户端代码。 例如,客户端对这个保镖库中tox_bootstrap()函数的第一次调用可以被视为保镖库应该连接到的保镖守护程序的地址:端口:pubkey。 建立连接后,客户端上的所有tox_函数将是远程保镖的 RPC,例如,执行tox_friend_send_message()的客户端将发送一个 RPC 到守护程序,要求它在我们的代表并将功能代码返回给我们回馈给客户。 保镖库可以使用它想要的任何东西与远程服务器上运行的保镖守护程序进行通信,从普通的 HTTPS(如果你想减少网络使用量,这可能是你想要的)到 toxcore 的自定义数据包。

是的,我同意@sudden6 ,这应该是一个单独的库,而不是 toxcore 库的一部分。

我什至没有想到 RPC 库,而更像是一个只存储消息并通过文本命令转发它们的机器人。

你将如何与机器人沟通? 如果它是 Tox 机器人,您是否不需要连接到 zer0def 想要避免的 DHT?

@sudden6我更多地考虑的是 IRC 保镖而不是机器人。 不确定你是否熟悉 IRC 保镖,所以想象一下 qTox 客户端,它是一个 GUI + toxcore,但不是在本地机器上运行 GUI 和 toxcore,而是在你的机器上运行 GUI,但 toxcore 是 GUI与正在通信的远程服务器上运行。 您可以通过编写一个伪装成 toxcore 的库来实现这一点,这样 qTox 就可以在不需要任何代码更改的情况下对其进行编译,但实际上它不是一个 toxcore,而是一个与远程 toxcore 实例通信的库。

但这不是在移动客户端通过 TCP 模式使用的全节点中实现的吗? 据我所知,TCP 模式不参与 DHT 网络。

@dingosan您仍然需要一直连接到 TCP 节点。 据我了解,保镖也会存储消息?

@sudden6它可能应该保持日志一致性,否则将客户端作为 TCP 节点运行可能就足够了

嗨,我正在做一些这样的工作,而无需修改 toxcore 协议。
它不像 IRC 那样是保镖,更像是一座桥梁。
它使用 gRPC/websock 来支持原生程序客户端和 Web 应用程序。
网桥在线时存储所有消息。 并且所有网桥的客户端都可以接收同步的消息。
客户端可以拉取所有历史消息,并且多个客户端可以在桥的帮助下相互同步消息。

这是正在进行的工作,仍然是一个演示,任何有兴趣的人可以看看:
https://github.com/envsh/tox-homeserver

现在的问题是组是临时的,重新创建组后没有合并组消息的好方法。

整洁:) 听起来棒极了!

现在的问题是组是临时的,重新创建组后没有合并组消息的好方法。

我们在 qTox 中也有同样的问题。 持久组将是可能的,因为它们具有唯一的 ID。 另一种方法可能是将每个创建的组视为单独的,并将它们全部显示为单独的历史记录给用户。 像这样:

26.05.2018 12:45 Tox Public Chat
26.05.2018 11:31 #toktok
26.05.2018 10:15 meeting
25.05.2018 08:10 meeting
24.05.2018 01:20 Tox Public Chat

它不是那么好,但仍然可以使用。 有些人甚至可能更愿意以这种方式看待历史。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

DataMaster-2501 picture DataMaster-2501  ·  6评论

tox-user picture tox-user  ·  9评论

hkarel picture hkarel  ·  8评论

fabionar picture fabionar  ·  5评论

zetok picture zetok  ·  9评论