问题标签 [gossip]
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.
c++ - 实现 Gossip 协议:发送成员表会导致收到垃圾值
我正在尝试为在线云计算课程作业实施 Gossip 风格的会员协议,但遇到了一个奇怪的问题。当成员进入网络时,他们向“介绍人节点”报告,该节点向他们发送网络成员表。为此,分配的第一步是实现 JOINREQ 和 JOINREP 消息。
新节点进来 -> 将 JOINREQ 发送给介绍人。介绍人收到 JOINREQ -> 包含成员资格表的 JOINREP 回复。
我已经实现了这些消息,但似乎有些节点在收到垃圾数据时会在其成员表中随机获取垃圾数据。这是一个例子:
因此,对于所描述的问题,这里是代码
课程讲师在这门课程的论坛上非常不活跃,我不知道该去哪里寻求帮助。这是我的 github 存储库的链接,其中包含更多代码和文件,以及分配规范。Github
我想我想问的主要问题是我构建消息的方式是否有问题,或者这是否是节点故障的结果?这是一个虚拟网络,因此它可能会在这些点发生故障。有关更多信息,报告垃圾值的始终是相同的节点,但每次的值都不同:
bitnami - Bitnami Consul Gossip 加密
我正在尝试在运行 bitnami/consul 映像的本地集群上启用八卦加密。
我已经使用CONSUL_GOSSIP_ENCRYPTION: 'true'
和CONSUL_GOSSIP_ENCRYPTION_KEY
环境变量创建了容器,但我得到的只是这个错误:
2020-10-29T11:00:32.089Z [ERROR] agent: Error starting agent: error="Failed to configure keyring: Invalid key: key size must be 16, 24 or 32 bytes" 2020-10-29T11:00:32.089Z [INFO] agent: Exit code: code=1
我正在使用consul keygen
文档中所说的加密密钥。
distributed-system - 服务器如何发现 gossip 成员协议中的现有成员?
如果我对服务器集群使用 gossip 风格的成员协议,我如何最初加入集群?
例如,在 Serf 中,您需要了解一个现有代理才能加入集群(该代理会将您的成员资格传播给集群的其他成员)。但是,如何在没有静态配置的情况下发现现有代理?
distributed-computing - HashGraph 八卦协议如何工作?
我阅读了 HashGraph 论文https://www.swirlds.com/downloads/SWIRLDS-TR-2016-01.pdf并查看“The HashGraph Protocol” https://www.youtube.com/watch?v=BAfsN3NW2Zg&list=PLr- BND1DE3sUR7GMm4lgw3B3D94OT4NuL&index=8&t=774s解释了哈希图的工作原理,但我仍然不太清楚 Gossip 协议的工作原理。
有人可以给我一个详细的例子来说明它是如何工作的。
更具体地说,当我与某人同步我的消息包含的内容时,另一个节点在他的图中插入了什么,我如何了解插入的内容以及执行如何进行?
例如,当我从客户端收到交易时,我创建了一个包含该交易的节点,将其插入图表(在我的行中)并将当前时间作为时间戳提供给它。那么我该如何进行?
distributed-computing - HashGraph Gossip about Gossip - 恶意节点分叉
我正在研究哈希图和八卦协议。我试图了解哈希图是如何工作的,以及如何使用强视图来处理分叉。
有人有任何例子说明有叉子时如何使用它吗?特别是如果恶意节点发送具有不同时间戳或不同父或自父哈希的事件会发生什么?
谢谢你。
cassandra - 节点之间的 Cassandra 写/读协议
有人可以帮助我理解节点在读写时相互交谈时使用的协议,例如,客户端连接到协调器节点进行写入,然后协调器节点将写入转发到拥有分片的适当节点。现在我的问题是,在这种情况下他们使用什么协议(Cassandra 代码参考也会很有帮助)?
我知道节点使用 gossip 来传播关于他们自己和他们知道的其他节点的状态信息,但试图理解节点之间的读写协议。
publish-subscribe - libp2p 节点 pubsub 八卦网络 怪异
所以我在文件中配置了这个 p2p 节点node_file.js
:
并使用以下方法创建一个 3 节点虚拟网络:
问题是:激活网络时,每个节点都在断开连接并重新连接。
例如
而我希望不会断开连接。
我的代码有问题吗?我真的不知道!
如果有帮助,这是我的package.json
:
任何帮助表示赞赏!
publish-subscribe - go-libp2p 和 jvm-libp2p 之间的 Gossip 实现
作为我探索工作的一部分,我正在尝试使用 gossip pubsub 实现在 jvm-libp2p 和 go-libp2p 主机之间进行通信。不幸的是,我无法达到预期的结果,因为我没有看到接收者端收到的消息。我能否获得有关如何使用 gossip pubsub 在两个库之间进行通信的任何线索/参考?
我没有使用本地 mDNS 服务进行对等发现,而是尝试使用 Connect() API 在主机之间建立显式连接。但是似乎不起作用的事件。
任何有关这些问题的线索将不胜感激!