问题标签 [peer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
distributed - 公平 DHT 的实施
我正在考虑一种基础架构,其中许多用户连接到一台服务器,并使用哈希存储键值对。
存在许多这样的服务器,每个服务器都为自己的用户存储键值对。我们假设键不冲突。
服务器 S1 上的用户 U1 可能会使用密钥 K2 查找位于服务器 S2 上的对象(用户还不知道这一点)。我们需要某种分布式哈希表来将键映射到 server_addr,这样我们就可以在该服务器中查询该对象。
这样的DHT有很多,比如Tapesry、Chord等等,我一直在想怎么做一个这样公平的系统。
例如,在具有三台服务器的系统中,服务器 S1 可能有 1000 个用户,S2 有 2 个用户,S3 有 5 个用户。如果我们假设用户每人创建 10 个对象并且我们均匀地分配密钥空间,那么服务器 S2 和 S3 将分别存储大约 3500 个密钥,这比他们自己的密钥消耗量大一到两个数量级。
我希望 S1 能够为其在 DHT 中公平分享的密钥负责。
我的一个想法是类似于审计系统,每个对等方都询问其他人他们在 DHT 中存储了多少密钥,然后检查他们是否也对这部分密钥空间负责。
但是,这会导致使用大量带宽来获取每个节点的消耗。
还有其他想法吗?
bittorrent - Torrent 协议找到对等点
我正在研究比特洪流协议。我对洪流协议感到困惑。假设我有一个具有静态 IP 的路由器,并且两个客户端连接到该路由器,它们是 C1 和 C2。其中一位客户说 C1 充当种子。现在下载文件的客户端将如何知道 C1 正在播种,考虑到外部网络唯一知道的是路由器的静态 IP。torrent 有什么方法可以识别客户端 C1 ???请解释一下。
bitcoin - 连接到硬编码节点后,比特币对等点发现如何工作?
我正在修改比特币源代码,并试图了解对等发现机制在testnet
我进行了以下更改的模式下的确切工作方式:
禁用 DNS 种子发现以强制 bitcoind 回退以连接到硬编码节点。
将默认硬编码节点更改为我已知的 4 个地址,比如 A、B、C 和 D,我确保它们始终在线。
现在,当我运行 bitcoind 客户端(称为 E)时,它连接到 A、B、C 或 D 之一,运行相同的修改版本的 bitcoind。getaddr
它通过交换和消息从它首先连接到的硬编码节点获取对等地址,addr
但我不确定之后它是如何进行的。我有以下查询:
一个。如果一个节点回退到连接到硬编码节点,它应该只连接到一个硬编码节点,就像在我的情况下发生的那样,还是可以连接到多个硬编码节点?
湾。通过addr
消息获取对等地址后,节点 E 什么时候开始连接这些对等点?
如果可能,请指出相关的代码文件/部分。谢谢
javascript - UDP组播系统
我正在尝试创建一个分布式信息系统,该系统使用对等架构和多播通信。
首先我开始实现多播通信。我从来没有这样做过,所以我遇到了一些很难理解为什么它不能正常工作的问题。
这是我设法做到的:
服务器
客户
当我启动服务器和客户端时,一切正常。来自 server.js 的消息成功发送到 client.js。
问题
当我想要多个客户端(节点)时会出现问题。将来我想向所有客户端(节点)提出请求,我犯了什么错误,不允许使用多播从所有客户端发送一些信息。
使用上面的代码,我无法同时打开 2 个客户端来接收来自服务器的消息。
这是尝试连接超过 1 个客户端时的错误:
我知道问题是我两次使用相同的代码(client.js),具有相同的端口和其他参数。为了在更多客户端上使用多播发送(通过 server.js)和接收成功消息,我犯了什么错误?
c# - 将文件拆分为 UDP 数据包大小的块以进行对等文件共享的最佳方法?
我正在开发一个 P2P 文件共享程序,为了以少量的方式传递文件,我需要以某种方式拆分上传的文件。现在,我制作了一个程序,将文件拆分为小文件,并使用 C# Stream 类将它们放入文件夹中,它还可以重建它。但是,它效率低下并且需要很多时间。我想根据请求的文件从带有偏移量的流中读取数据,然后在不保存的情况下发送它。但是,我不知道如何以正确的顺序将其添加到接收端,因为数据不会按顺序发送。
顺便说一句,bitTorrent 是如何实现这种功能的?
谢谢
p2p - 私有局域网上的对等方如何连接到 bittorrent 中另一个私有局域网上的另一个对等方
如何将数据的和平传输到路由器后面的客户端(私有局域网)
我知道每个对等点最初都连接到跟踪器(公共 IP),但跟踪器不涉及数据传输。
我已经阅读了很多关于 stackoverflow 和超级用户关于 bittorrent 工作的答案,但我没有得到答案。
如果有人像这个答案一样详细解释它,我将不胜感激https://superuser.com/questions/401802/how-do-ip-answer-packets-reach-their-destination-inside-of-a-private-局域网
我很想知道路由器上发生的洪流流量。
express - peer.js 不工作 http 但不在 https 上?
当我使用这个http://cdnjs.cloudflare.com/ajax/libs/peerjs/0.3.14/peer.js 它给出了以下错误
通过 HTTPS 加载,但请求了不安全的脚本“ http://cdnjs.cloudflare.com/ajax/libs/peerjs/0.3.14/peer.js ”。此请求已被阻止;内容必须通过 HTTPS 提供。
添加 https://cdnjs.cloudflare.com/ajax/libs/peerjs/0.3.14/peer.js后, 它开始提供
已通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点 '0.peerjs.com:9000/c03lztxhq78vkj4i/...;。此请求已被阻止;内容必须通过 HTTPS 提供。
connection - wget:redhat linux中对等方重置连接
我正在尝试通过命令访问远程soa
p URL ,但有时我会低于。以下错误可能是什么原因。我期待响应,但会低于错误。wget
RedHat linux
Exception
HTTP 200
问候,杰伊
qt - Qt/C++:如何获取远程 PC(通信对等)MAC 地址?
我在 Windows 7 上使用 Qt5。
在我的应用程序(TCP 服务器)中,我目前正在使用 QTcpSocket 类中的一些方法:
-QAbstractSocket::peerAddress()
为了获取对等地址;
-QAbstractSocket::peerPort()
为了获得对等端口。
我还想获取通信对等方的MAC 地址。
这是否可能,无需使用自定义协议(即无需在我的应用程序和对等方之间交换一些自定义消息)?如果是,如何?
后期编辑:现在有一个非常好的解决方案- 我几个月前实施了。与此同时,我对其进行了测试,它可以 100% 完美运行。享受 :)
multipeer-connectivity - Android(JAVA) P2P WiFi 直连
在使用Wifi direct的P2P中,我可以列出客户端设备并将其连接到服务器设备,但一次只能将数据从服务器传输到一个客户端。我的疑问是!!!- 是否可以一次将数据从服务器传输到多个客户端?在P2P Wifi 直接。提前致谢...