Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Client server 是否有编写分散应用程序的框架?_Client Server_Distributed_P2p_Bittorrent_Dht - Fatal编程技术网

Client server 是否有编写分散应用程序的框架?

Client server 是否有编写分散应用程序的框架?,client-server,distributed,p2p,bittorrent,dht,Client Server,Distributed,P2p,Bittorrent,Dht,如果我想为比特币、Bitorrent等P2P应用程序编写节点,那么有很多相同的部分: 我需要引导到网络以发现其他对等点 我需要管理一个同龄人列表,并监控他们的状态 我需要从我的邻居同事那里检索更多同事的列表 等等等等。 既然我不想重新发明轮子,我可以把它作为一种基础库来构建吗?你提到了比特币和比特洪流,这两种都是完全不同的,所以我假设你不想被绑定到任何特定的协议,甚至序列化格式 然而,您提到的对等发现和统计数据管理是高级别的关注点,是建立在某些网络协议之上的。 但协议规定了这样一种机制的工作方式

如果我想为比特币、Bitorrent等P2P应用程序编写节点,那么有很多相同的部分:

我需要引导到网络以发现其他对等点 我需要管理一个同龄人列表,并监控他们的状态 我需要从我的邻居同事那里检索更多同事的列表 等等等等。
既然我不想重新发明轮子,我可以把它作为一种基础库来构建吗?

你提到了比特币和比特洪流,这两种都是完全不同的,所以我假设你不想被绑定到任何特定的协议,甚至序列化格式

然而,您提到的对等发现和统计数据管理是高级别的关注点,是建立在某些网络协议之上的。 但协议规定了这样一种机制的工作方式

听起来你好像在问,是否有预制屋顶既适合木屋,也适合摩天大楼

<>所以如果你真的想设计自己的协议,你应该先看一下基础。 你想用哪种语言 有哪些IO/事件处理库可用 有哪些协议解析器和序列化程序可用 你的目标是吞吐量吗?低内存占用?低延迟?程序员花费的最小时间? 需要什么样的安全?在协议级别大量使用加密将需要一个值得信赖的加密库—不要使用自己的加密库! 你需要什么样的辅助工具数据到哪里去了?文件系统?数据库?你需要一个用户界面吗? 或者,根据您对问题的解释,如果您想为特定网络编写客户机,那么您只需寻找一个实现该特定网络核心概念的库,同时让您自由地实现应用程序的其余部分。
就bittorrent而言,这样一个例子是

您是在寻找学术还是实际用途?我认为可能存在一些这样的库,但现实世界中的应用程序似乎由于不同的需求而各自为政。@8472实际用途我通常检查任何p2p库。。同时引导比特币正式使用的网络。但不确定它是否仍在使用。比特币和Bittorrent的操作完全相同?只是协议不同。但我想自己写协议。更喜欢C。所有其他的东西,比如GUI、DB和平台都不重要,因为它只是一个网络库?C?我在这方面没有什么经验,但我怀疑您是否会找到您在问题中要求的抽象级别的库。此外,在我看来,比特币和比特洪流在很多概念层面上看起来都不一样。我认为你并不真正理解这个问题,我可能对它的表述有点模糊。但是我为这两个项目都提交了代码,所有的东西直到实际的握手非常相似。这让我觉得是相当通用的网络/消息反序列化的东西,加上一些加密。不是真正的p2p特定的。