区块链节点怎么通讯(区块链通信协议有哪些?)
通信协议有哪些?
MAP协议技术概述节点通用通信协议节点的常规通信现有中的大多数基本节点发现和数据传输算法不可互操作。比如节点无法通过P2P协议直接找到以太坊节点,必须建立TCP连接才能实现。然而,MAP协议要求所有P2P网络相互通信。因此,我们需要一个统一的、标准化的P2P通信协议。协议实验室的LibP2P协议完全可以满足我们的需求。LibP2P是P2P网络的一个基本模块。它高度抽象了主流的传输协议,因此应用层不需要担心具体的底层实现,从而实现跨环境、跨协议的P2P节点通信。目前,以太坊2.0、Polkadot等项目已经宣布将使用LibP2P作为其底层节点。
通信算法。MAP也选择LibP2P算法作为我们的节点通信算法。
LibP2P
以前开发互联网应用时,我们只需要关注应用的上层逻辑,不需要重新实现下层的通信协议(TCP/IP)。LibP2P设计的初衷是为了支持未来的分布式网络协议。其目的是让开发者开发去中心化的应用,而不用关注底层的具体实现。最终实现了跨环境、跨协议的节点通信。
在分布式对等网络中,节点之间的关系不再是传统的服务器-客户端模式。它要求每个节点既可以作为服务器处理响应,也可以作为客户端发送请求。在这种复杂的情况下,我们需要一个通用的通信协议,它可以支持多种通信协议,以支持任意节点之间的相互通信。
通信协议需要支持传统的非加密TCP/IP通信和TLS等加密通信协议。协议需要包括节点发现和长短连接的建立,以及加密数据传输等一系列功能。LibP2P是一个符合上述所有要求的通用协议。在基于MAP协议的多链互操作生态系统中,会涉及到不同链中的节点发现和通信。因此,需要在所有链节点之间支持一个通用的通信协议,所有链节点都在一个大型P2P网络中。同时,不同链中使用的具体节点需要位于不同的子网结构中。因此,网络结构应该是多层结构化的网络拓扑结构。LibP2P支持结构化、非结构化、混合式和集中式网络拓扑,这正好满足了我们的需求。
通用ChainID规范
在MAP的监督下,必须制定一套统一的ChainID规则来标识不同的。每个链将被分配一个唯一的链ID。这个链号的功能类似于今天的 的IP地址和端口,以便在地图生态系统中确定。位并标识一个链。在传输需要签名的信息时,需要在签名数据中包含ChainID,以防止重复传输攻击。还需要在基础公链上实时更新ChainID的分发信息,以便其他链获取相关信息。目前的解决方案是部署一个智能脚本来管理MarcoPolo标准链上ChainID的分发信息,会有一个委员会来管理智能脚本。委员会需要对适合加入生态系统的公链项目进行审核,通过审核的公链会被分配一个标准化的ChainID,并在脚本中更新。这个脚本只有分配标准化ChainID的功能,没有其他集中管理的功能。同时,没有标准化ChainID的公链也可以与协议中的其他公链进行通信,但其安全性无法保证。在这种情况下,我们不建议与没有标准化ChainID的公共链进行互操作。
ChainID规格
在MAP的监督下,必须制定一套统一的ChainID规则来标识不同的。每个链将被分配一个唯一的链ID。这个链号的功能类似于今天的 的IP地址和端口,从而定位和识别地图生态系统中的一个链。在传输需要签名的信息时,需要在签名数据中包含ChainID,以防止重复传输攻击。还需要在基础公链上实时更新ChainID的分发信息,以便其他链获取相关信息。目前的解决方案是部署一个智能脚本来管理MarcoPolo标准链上ChainID的分发信息,会有一个委员会来管理智能脚本。委员会需要对适合加入生态系统的公链项目进行审核,通过审核的公链会被分配一个标准化的ChainID,并在脚本中更新。这个脚本只有分配标准化ChainID的功能,没有其他集中管理的功能。同时,没有标准化ChainID的公链也可以与协议中的其他公链进行通信,但其安全性无法保证。在这种情况下,我们不建议与没有标准化ChainID的公共链进行互操作。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。