gpt4 book ai didi

区 block 链 - 实现如何进行点对点发现?

转载 作者:行者123 更新时间:2023-12-05 03:35:29 30 4
gpt4 key购买 nike

出于个人好奇心,我目前正在学习区 block 链的工作原理。我正在学习这门类(class),现在我已经使用网络套接字设置了点对点连接。区 block 链应用程序的多个实例现在可以使用这些套接字运行并相互通信。

类(class)实现的一个缺点是实例如何知道如何找到彼此。本质上,它们需要明确配置才能进行通信。在我当前的项目中,我设置了 3 个实例。一个在端口 5001 上打开一个套接字并且不连接任何其他东西。另一个在端口 5002 上打开一个套接字并连接到 5001 上的实例。第三个在端口 5003 上打开一个套接字并连接到 5002 和 5001 上的实例。

要点是,所有三个都是这样明确配置的。所有三个都必须完全按照该顺序启动,以便它们可以正确连接到其他。虽然这对于实践实现来说很好,但我知道这不是真正的区 block 链实现必须在野外工作的方式。必须存在某种发现机制,允许这些实例中的任何一个找到当前正在运行的任何其他实例。

网络不是我的专业领域,所以我不知道如何做到这一点。

最佳答案

P2P 加密货币客户端通常具有硬编码的对等点列表。这些节点由社区管理。如果您是第一次启动客户端,那么这些节点就是您所拥有的。

当您连接到另一个节点时,它会将您的 IP 保存在其内部列表中。任何节点都可以从另一个节点请求此列表。通过这种方式,您的客户端可以发现其他节点。客户端应用程序将节点列表保存到磁盘。在下一次启动时,您将硬编码节点和上次连接的节点。有些节点可能会离线,但这没关系。

比特币的更详细解释:https://developer.bitcoin.org/devguide/p2p_network.html#peer-discovery

关于区 block 链 - 实现如何进行点对点发现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69852475/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com