CN110798535A - 区块链中实现p2p通信方法、区块链应用系统及相关设备 - Google Patents
区块链中实现p2p通信方法、区块链应用系统及相关设备 Download PDFInfo
- Publication number
- CN110798535A CN110798535A CN201911102879.XA CN201911102879A CN110798535A CN 110798535 A CN110798535 A CN 110798535A CN 201911102879 A CN201911102879 A CN 201911102879A CN 110798535 A CN110798535 A CN 110798535A
- Authority
- CN
- China
- Prior art keywords
- module
- container
- node
- internal communication
- consensus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了区块链中实现P2P通信方法、区块链应用系统及相关设备,用于实现区块链中P2P通信功能的解耦,提高P2P通信的效率。本发明实施例中,将同一个区块链节点的区块链应用程序划分为P2P模块、节点模块、智能合约模块、共识模块、存储模块,使用公用的P2P模块统一维护区块链节点的IP接口及各个区块链节点的状态信息,使得P2P功能实现过程与节点模块、智能合约模块、共识模块、存储模块在程序实现中解耦,实现逻辑简单,降低了后续的迭代开发成本。其次,采用应用容器引擎将P2P模块打包成容器镜像,并运行容器镜像生成P2P模块对应的至少一个P2P容器,使得同一个区块链节点可以同时运行多个P2P容器,大大提高了P2P通信的效率。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及区块链中实现P2P通信方法、区块链应用系统及相关设备。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
现有的区块链实现方案中,同一个区块链节点各个功能组件都需要各自维护自身与外部节点的P2P(节点-to-节点,对等式网络)通信功能,需要各自维护接入区块链中节点的IP端口及各个IP端口对应的区块链节点的状态信息,导致同一个区块链节点P2P模块都耦合了大量非P2P模块的代码,实现逻辑复杂,维护成本极高,大大增加了后续的迭代开发成本。
有鉴于此,有必要提出一种区块链中实现P2P通信的新方式。
发明内容
本发明实施例提供了区块链中实现P2P通信方法、区块链应用系统及相关设备,用于实现区块链中P2P通信功能的解耦,提高P2P通信的效率。
本发明实施例第一方面提供了一种区块链中实现P2P通信方法,运用于区块链节点,所述区块链节点包括P2P模块、节点模块、智能合约模块、共识模块、存储模块,其中,节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;
智能合约模块,用于实现智能合约的管理;
共识模块,用于实现区块链共识机制;
存储模块,用于将达成共识的区块数据写入到硬盘或数据库中;
P2P模块,用于维护区块链节点的IP接口及各个区块链节点的状态信息,以实现区块链节点之间的消息分发;
所述方法包括:采用应用容器引擎将所述P2P模块打包成容器镜像,并运行容器镜像生成所述P2P模块对应的至少一个P2P容器。
可选的,作为一种可能的实施方式,本发明实施例中,所述P2P模块中配置有内部通信服务端,所述节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信客户端;
所述内部通信服务端用于接收所述内部通信客户端发送的信息。
可选的,作为一种可能的实施方式,本发明实施例中,区块链中实现P2P通信方法还包括:采用应用容器引擎将所述节点模块、智能合约模块、共识模块、存储模块分别打包成容器镜像,并运行容器镜像分别生成节点容器、智能合约容器、共识容器、存储容器。
可选的,作为一种可能的实施方式,本发明实施例中,所述P2P容器中配置有内部通信服务端,所述节点容器、智能合约容器、共识容器、存储容器中均配置有内部通信客户端;
所述内部通信服务端用于接收所述内部通信客户端发送的信息。
可选的,作为一种可能的实施方式,本发明实施例中所述P2P容器中配置有所述节点容器对应的内部通信客户端、智能合约容器对应的内部通信客户端、共识容器对应的内部通信客户端、存储容器对应的内部通信客户端;
所述节点容器、智能合约容器、共识容器、存储模块中均配置有内部通信服务端;
所述内部通信服务端用于接收所述内部通信客户端发送的信息。
可选的,作为一种可能的实施方式,本发明实施例中,当同一个区块链节点内运行多个P2P容器时,每个P2P容器具有各自的服务端口,每个P2P容器与其它节点中具有相同服务端口的P2P容器进行通信。
本发明实施例第二方面提供了一种区块链应用系统,包括多个区块链节点,每个所述区块链节点包括:
P2P模块、节点模块、智能合约模块、共识模块、存储模块,其中,
节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;
智能合约模块,用于实现智能合约的管理;
共识模块,用于实现区块链共识机制;
存储模块,用于将达成共识的区块数据写入到硬盘或数据库中;
P2P模块,用于维护区块链节点的IP接口及各个区块链节点的状态信息,以实现区块链节点之间的消息分发;
所述区块链节点中运行有至少一个所述P2P模块对应的P2P容器,所述P2P容器为采用应用容器引擎将所述P2P模块打包成容器镜像,并运行容器镜像生成。
可选的,作为一种可能的实施方式,本发明实施例中的区块链应用系统中,P2P模块中配置有内部通信服务端,节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信客户端;内部通信服务端用于接收内部通信客户端发送的信息。其中,内部通信服务端用于接收内部通信客户端之间的消息可以采用gRPC、RPC、http、socket等通信形式进行传输。
可选的,作为一种可能的实施方式,本发明实施例中的区块链应用系统中,所述节点模块、智能合约模块、共识模块、存储模块均运行于对应的节点容器、智能合约容器、共识容器、存储容器之中;
所述P2P模块中配置有内部通信服务端,所述节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信客户端;
所述内部通信服务端用于接收所述内部通信客户端发送的信息。
可选的,作为一种可能的实施方式,本发明实施例中,所述P2P模块中配置有所述节点模块对应的内部通信客户端、智能合约模块对应的内部通信客户端、共识模块对应的内部通信客户端、存储模块对应的内部通信客户端;
所述节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信服务端;
所述内部通信服务端用于接收所述内部通信客户端发送的信息。
可选的,作为一种可能的实施方式,本发明实施例中,同一个区块链节点内运行多个P2P容器时,每个P2P容器具有各自的服务端口,每个P2P容器与其它节点中具有相同服务端口的P2P容器进行通信。
本发明实施例第三方面提供了一种终端设备,可包括:
P2P模块、节点模块、智能合约模块、共识模块、存储模块,其中,
节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;
智能合约模块,用于实现智能合约的管理;
共识模块,用于实现区块链共识机制;
存储模块,用于将达成共识的区块数据写入到硬盘或数据库中;
P2P模块,用于维护区块链节点的IP接口及各个区块链节点的状态信息,以实现区块链节点之间的消息分发;
所述区块链应用系统中运行有至少一个所述P2P模块对应的P2P容器,所述P2P容器为采用应用容器引擎将所述P2P模块打包成容器镜像,并运行容器镜像生成。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,将区块链节点设备中的区块链应用程序划分为P2P模块、节点模块、智能合约模块、共识模块、存储模块,使用公用的P2P模块统一维护区块链节点的IP接口及各个区块链节点的状态信息,使得P2P功能实现过程与节点模块、智能合约模块、共识模块、存储模块在程序实现中解耦,实现逻辑简单,代码量减小,降低了后续的迭代开发成本。其次,采用应用容器引擎将P2P模块打包成容器镜像,并运行容器镜像生成P2P模块对应的至少一个P2P容器,使得同一个区块链节点可以同时运行多个P2P容器,大大提高了P2P通信的效率。
附图说明
图1为本发明实施例中一种区块链中实现P2P通信方法的一个实施例示意图;
图2为本发明实施例中一种区块链中实现P2P通信方法的一个具体运用实施例示意图;
图3为本发明实施例中同一区块链节点中包含多个P2P容器时实现P2P服务的一种实施例示意图;
图4为本发明实施例中一种区块链中实现P2P通信方法的另一个具体运用实施例示意图;
图5为本发明实施例中一种区块链系统的一个实施例示意图。
具体实施方式
本发明实施例提供了区块链中实现P2P通信方法、区块链应用系统及相关设备,用于实现区块链中P2P通信功能的解耦,提高P2P通信的效率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中一种区块链中实现P2P通信方法的一个实施例可包括:
101、将同一个区块链节点的区块链应用程序划分为多个功能模块组件;
现有的区块链实现方案中,同一个区块链节点各个功能组件都需要各自维护自身与外部节点的P2P通信功能,需要各自维护接入区块链中节点的IP端口及各个IP端口对应的区块链节点的状态信息,导致同一个区块链节点P2P模块都耦合了大量非P2P模块的代码,实现逻辑复杂,维护成本极高,大大增加了后续的迭代开发成本。
有鉴于此,申请人将同一个区块链节点的区块链应用程序划分为多个独立的功能模块组件,具体可以分为P2P模块、节点(Peer)模块、智能合约模块、共识模块、存储模块,使用公用的P2P模块用于维护区块链节点的IP接口及各个区块链节点的状态信息,根据节点模块、智能合约模块、共识模块、存储模块的调用实现区块链节点之间的消息分发。同时,P2P模块与节点模块、智能合约模块、共识模块、存储模块在程序实现中解耦,实现逻辑简单,代码量减小,降低了后续的迭代开发成本。
其中,节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;智能合约模块,用于实现智能合约的管理(例如智能合约的注册、创建、调用、查询);共识模块,用于实现区块链共识机制;存储模块,用于将达成共识的区块数据写入到硬盘或数据库中;P2P模块,用于维护区块链节点的IP接口及各个区块链节点的状态信息,以实现区块链节点之间的消息分发。
102、采用应用容器引擎将P2P模块打包成容器镜像,并运行容器镜像生成P2P模块对应的至少一个P2P容器。
实际运用中,当区块链节点之间的P2P通信的需求较大时,为了不影响整个区块链的响应速度,可以采用应用容器引擎将P2P模块打包成容器镜像,并运行容器镜像生成P2P模块对应的一个或多个P2P容器。
如图3所示,当同一个区块链节点具有多个P2P容器时,例如,区块链节点A、B、C、D中容器间因处于隔离状态,不在同一进程中,多个P2P容器可以并行分发消息实现一对一传输或一对多广播,大大提升P2P服务的高可用性;同时,提高了通信的并发数,提升数据通信的吞吐量;而且,这种方式将P2P做成了拆箱即用的服务模式,降低了使用P2P服务的困难度。
本发明实施例中,将同一个区块链节点的区块链应用程序划分为P2P模块、节点模块、智能合约模块、共识模块、存储模块,使用公用的P2P模块统一维护区块链节点的IP接口及各个区块链节点的状态信息,使得P2P功能实现过程与节点模块、智能合约模块、共识模块、存储模块在程序实现中解耦,实现逻辑简单,降低了后续的迭代开发成本。其次,采用应用容器引擎将P2P模块打包成容器镜像,并运行容器镜像生成P2P模块对应的至少一个P2P容器,使得同一个区块链节点可以同时运行多个P2P容器,大大提高了P2P通信的效率。
为了便于理解,下面将结合具体运用实例对本发明实施例中的区块链中实现P2P通信方法进行描述。
如图2所示,仅以区块链中的节点A、B、C、D中节点A实现与节点B、C、D的P2P通信为例进行说明。客户端(client)向节点A的Peer(节点)模块(A.Peer)发送业务请求(tx)之后,如果业务需要与节点B、C、D进行P2P通信,则A.Peer调用A.P2P(节点A的P2P容器)分别向B.P2P(节点B的P2P容器)、C.P2P(节点C的P2P容器)、D.P2P(节点D的P2P容器)发送通信消息,对应的节点中的P2P容器接收到通信消息之后转发给对应节点内部的Peer(节点)模块进行业务逻辑处理或转发处理。
可选的,在上述图1所示的实施例的基础上,为了实现Peer(节点)模块、智能合约模块、共识模块、存储模块与P2P模块的单向通信,作为一种可能的实施方式,P2P模块中配置有内部通信服务端,节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信客户端;内部通信服务端用于接收内部通信客户端发送的信息。其中,内部通信服务端用于接收内部通信客户端之间的消息可以采用gRPC、RPC、http、socket等通信形式进行传输。
可选的,在上述图1所示的实施例的基础上,为了实现P2P模块与节点模块、智能合约模块、共识模块、存储模块的单向通信,P2P模块中配置有节点模块对应的内部通信客户端、智能合约模块对应的内部通信客户端、共识模块对应的内部通信客户端、存储模块对应的内部通信客户端;节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信服务端;内部通信服务端用于接收内部通信客户端发送的信息。其中,内部通信服务端用于接收内部通信客户端之间的消息可以采用gRPC、RPC、http、socket等通信形式进行传输。
可选的,在上述任一实施例的基础上,为了进一步提高区块链应用程序的响应速度,当同一个区块链节点内运行多个P2P容器时,每个P2P容器具有各自的服务端口,每个P2P容器与其它节点中具有相同服务端口的P2P容器进行通信,以使得P2P广播时对同一个节点只广播一次。示例性的,请参阅图3,区块链节点A、B为例,该区块链节点A中包含P2P容器1、P2P容器2,区块链节点B中包含P2P容器3、P2P容器4,其中P2P容器1、P2P容器2的端口号不同,P2P容器3、P2P容器4的端口号不同,区块链节点A、B之间进行P2P通信时,相同端口号的P2P容器之间进行通信,由于P2P容器1与P2P容器3之间的服务端口号相同,则P2P容器1与P2P容器3之间可以通信;P2P容器2与P2P容器4之间的服务端口号相同,则P2P容器2与P2P容器4之间可以通信。
可选的,在上述任一实施例的基础上,为了进一步提高区块链应用程序的响应速度,本发明实施例中的区块链中实现P2P通信方法还包括:
采用应用容器引擎将节点模块、智能合约模块、共识模块、存储模块分别打包成容器镜像,并运行容器镜像分别生成节点容器、智能合约容器、共识容器、存储容器。
实际运用中,可以采用应用容器引擎将所述节点模块、智能合约模块、共识模块、存储模块分别打包成容器镜像,并运行容器镜像分别生成节点容器、智能合约容器、共识容器、存储容器。容器化之后,同一个模块可以根据需求同时运用至少一个容器,由于容器间因处于隔离状态,不在同一进程中,同一模块的多个容器可以并行执行对应的功能,大大提高了程序功能的业务处理效率。
为了便于理解下面将结合具体运用实例对本发明实施例中区块链节点容器化之后的区块链中实现P2P通信方法进行描述。
请参阅图4,仅以区块链中的节点A、B、C、D中节点A实现与节点B、C、D的P2P通信为例进行说明。客户端(client)向节点A的Peer(节点)容器(A.Peer)发送业务请求之后,如果业务需要与节点B、C、D进行P2P通信,则A.Peer通过内部通信客户端(M2M.client)向调用A.P2P(节点A的P2P容器)中的内部通信服务端(M2M.sever)发送通信消息,然后M2M.sever调用对应的P2P.client分别向B.P2P(节点B的P2P容器)中的P2P.sever、C.P2P(节点C的P2P容器)中的P2P.sever、D.P2P(节点D的P2P容器)中的P2P.sever发送通信消息。对应的节点中的P2P容器接收到通信消息之后转发给对应节点内部的Peer模块进行业务逻辑处理或转发处理,例如,P2P.sever可以通过Peer.client与Peer.Sever之间的接口实现P2P容器向Peer容器的单向通信。
其中,每个节点内运行了多个职责不同的容器,如Peer(节点)、共识等容器,P2P容器作为服务端提供给这些容器访问的接口,就假设为M2M(model 2model),表示模块与模块间的通信,也可叫做容器与容器间的通信。由于P2P采用容器形式进行部署,在启动多个P2P容器的情况下,P2P服务(区别于M2M服务)可以使用不同的端口,每个P2P服务维护其他节点相同端口的P2P服务端(以保证P2P广播时对同一个区块链节点只广播一次),而M2M服务由于是在同一节点内使用,则可以使用相同的端口。
请参阅图5,本发明实施例中还提供了一种区块链应用系统,其特征在于,包括:
P2P模块501、节点模块502、智能合约模块503、共识模块504、存储模块405,其中,
节点模块502,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;
智能合约模块503,用于实现智能合约的管理;
共识模块504,用于实现区块链共识机制;
存储模块505,用于将达成共识的区块数据写入到硬盘或数据库中;
P2P模块501,用于维护区块链节点的IP接口及各个区块链节点的状态信息,以实现区块链节点之间的消息分发;
区块链应用系统中运行有至少一个P2P模块对应的P2P容器,P2P容器为采用应用容器引擎将P2P模块打包成容器镜像,并运行容器镜像生成。
可选的,作为一种可能的实施方式,本发明实施例中的区块链应用系统中,P2P模块中配置有内部通信服务端,节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信客户端;内部通信服务端用于接收内部通信客户端发送的信息。其中,内部通信服务端用于接收内部通信客户端之间的消息可以采用gRPC、RPC、http、socket等通信形式进行传输。
可选的,作为一种可能的实施方式,本发明实施例中的区块链应用系统中,P2P模块中配置有节点模块对应的内部通信客户端、智能合约模块对应的内部通信客户端、共识模块对应的内部通信客户端、存储模块对应的内部通信客户端;节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信服务端;内部通信服务端用于接收内部通信客户端发送的信息。其中,内部通信服务端用于接收内部通信客户端之间的消息可以采用gRPC、RPC、http、socket等通信形式进行传输。
可选的,作为一种可能的实施方式,本发明实施例中的区块链应用系统中,节点模块、智能合约模块、共识模块、存储模块均运行于对应的节点容器、智能合约容器、共识容器、存储容器之中。
本发明实施例中还提供了一种计算机设备,计算机设备可包括:存储器、处理器、有线或无线网络模块以及存储在存储器中并可在处理器上运行的计算机程序模块。其中,计算机程序模块可包括:
P2P模块、节点模块、智能合约模块、共识模块、存储模块,其中,
节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;
智能合约模块,用于实现智能合约的管理;
共识模块,用于实现区块链共识机制;
存储模块,用于将达成共识的区块数据写入到硬盘或数据库中;
P2P模块,用于维护区块链节点的IP接口及各个区块链节点的状态信息,以实现区块链节点之间的消息分发;
区块链应用系统中运行有至少一个P2P模块对应的P2P容器,P2P容器为采用应用容器引擎将P2P模块打包成容器镜像,并运行容器镜像生成。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种区块链中实现P2P通信方法,其特征在于,运用于区块链节点,所述区块链节点包括P2P模块、节点模块、智能合约模块、共识模块、存储模块,其中,节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;
智能合约模块,用于实现智能合约的管理;
共识模块,用于实现区块链共识机制;
存储模块,用于将达成共识的区块数据写入到硬盘或数据库中;
P2P模块,用于维护区块链节点的IP接口及各个区块链节点的状态信息,以实现区块链节点之间的消息分发;
所述方法包括:采用应用容器引擎将所述P2P模块打包成容器镜像,并运行容器镜像生成所述P2P模块对应的至少一个P2P容器。
2.根据权利要求1所述的方法,其特征在于,还包括:
采用应用容器引擎将所述节点模块、智能合约模块、共识模块、存储模块分别打包成容器镜像,并运行容器镜像分别生成节点容器、智能合约容器、共识容器、存储容器。
3.根据权利要求2所述的方法,其特征在于,所述P2P容器中配置有内部通信服务端,所述节点容器、智能合约容器、共识容器、存储容器中均配置有内部通信客户端;
所述内部通信服务端用于接收所述内部通信客户端发送的信息。
4.根据权利要求3所述的方法,其特征在于,所述P2P容器中配置有所述节点容器对应的内部通信客户端、智能合约容器对应的内部通信客户端、共识容器对应的内部通信客户端、存储容器对应的内部通信客户端;
所述节点容器、智能合约容器、共识容器、存储模块中均配置有内部通信服务端;
所述内部通信服务端用于接收所述内部通信客户端发送的信息。
5.根据权利要求1至4中任一项所述的方法,其特征在于,当同一个区块链节点内运行多个P2P容器时,每个P2P容器具有各自的服务端口,每个P2P容器与其它节点中具有相同服务端口的P2P容器进行通信。
6.一种区块链应用系统,其特征在于,包括:
P2P模块、节点模块、智能合约模块、共识模块、存储模块,其中,
节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;
智能合约模块,用于实现智能合约的管理;
共识模块,用于实现区块链共识机制;
存储模块,用于将达成共识的区块数据写入到硬盘或数据库中;
P2P模块,用于维护区块链节点的IP接口及各个区块链节点的状态信息,以实现区块链节点之间的消息分发;
所述区块链应用系统中运行有至少一个所述P2P模块对应的P2P容器,所述P2P容器为采用应用容器引擎将所述P2P模块打包成容器镜像,并运行容器镜像生成。
7.根据权利要6中所述的系统,其特征在于,
所述节点模块、智能合约模块、共识模块、存储模块均运行于对应的节点容器、智能合约容器、共识容器、存储容器之中;
所述P2P模块中配置有内部通信服务端,所述节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信客户端;
所述内部通信服务端用于接收所述内部通信客户端发送的信息。
8.根据权利要求7所述的系统,其特征在于,所述P2P模块中配置有所述节点模块对应的内部通信客户端、智能合约模块对应的内部通信客户端、共识模块对应的内部通信客户端、存储模块对应的内部通信客户端;
所述节点模块、智能合约模块、共识模块、存储模块中均配置有内部通信服务端;
所述内部通信服务端用于接收所述内部通信客户端发送的信息。
9.根据权利要求6至8中任一项所述的系统,其特征在于,同一个区块链节点内运行多个P2P容器时,每个P2P容器具有各自的服务端口,每个P2P容器与其它节点中具有相同服务端口的P2P容器进行通信。
10.一种终端设备,其特征在于,包括如权利要求6至9任一项所述的区块链应用系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102879.XA CN110798535B (zh) | 2019-11-12 | 2019-11-12 | 区块链中实现p2p通信方法、区块链应用系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102879.XA CN110798535B (zh) | 2019-11-12 | 2019-11-12 | 区块链中实现p2p通信方法、区块链应用系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110798535A true CN110798535A (zh) | 2020-02-14 |
CN110798535B CN110798535B (zh) | 2022-08-23 |
Family
ID=69444072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911102879.XA Active CN110798535B (zh) | 2019-11-12 | 2019-11-12 | 区块链中实现p2p通信方法、区块链应用系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798535B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651467A (zh) * | 2020-05-25 | 2020-09-11 | 杭州溪塔科技有限公司 | 一种区块链节点接口发布调用方法和装置 |
CN113067902A (zh) * | 2021-06-02 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 区块链消息的传输方法及装置 |
CN113098982A (zh) * | 2021-06-02 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 区块链消息的传输方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108921551A (zh) * | 2018-06-11 | 2018-11-30 | 西安纸贵互联网科技有限公司 | 基于Kubernetes平台的联盟区块链系统 |
CN109460593A (zh) * | 2018-10-26 | 2019-03-12 | 广东科学技术职业学院 | 一种区块链虚拟仿真系统 |
CN109831413A (zh) * | 2018-12-27 | 2019-05-31 | 链极智能科技(上海)有限公司 | 一种区块链网络点对点通信协议 |
WO2019158213A1 (en) * | 2018-02-19 | 2019-08-22 | Lenovo (Singapore) Pte. Ltd. | Provisioning a remote unit via a blockchain network |
CN110222532A (zh) * | 2019-06-06 | 2019-09-10 | 杭州趣链科技有限公司 | 一种基于命名空间实现联盟链隐私保护的分区共识方法 |
CN110392052A (zh) * | 2019-07-22 | 2019-10-29 | 中国工商银行股份有限公司 | 一种区块链智能合约处理系统及方法 |
KR102041720B1 (ko) * | 2018-07-20 | 2019-11-06 | 숭실대학교산학협력단 | 플렉서블 블록체인 프레임워크 구현 시스템 및 p2p 네트워크 설계 방법, 상기 방법을 수행하기 위한 기록 매체 |
-
2019
- 2019-11-12 CN CN201911102879.XA patent/CN110798535B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019158213A1 (en) * | 2018-02-19 | 2019-08-22 | Lenovo (Singapore) Pte. Ltd. | Provisioning a remote unit via a blockchain network |
CN108921551A (zh) * | 2018-06-11 | 2018-11-30 | 西安纸贵互联网科技有限公司 | 基于Kubernetes平台的联盟区块链系统 |
KR102041720B1 (ko) * | 2018-07-20 | 2019-11-06 | 숭실대학교산학협력단 | 플렉서블 블록체인 프레임워크 구현 시스템 및 p2p 네트워크 설계 방법, 상기 방법을 수행하기 위한 기록 매체 |
CN109460593A (zh) * | 2018-10-26 | 2019-03-12 | 广东科学技术职业学院 | 一种区块链虚拟仿真系统 |
CN109831413A (zh) * | 2018-12-27 | 2019-05-31 | 链极智能科技(上海)有限公司 | 一种区块链网络点对点通信协议 |
CN110222532A (zh) * | 2019-06-06 | 2019-09-10 | 杭州趣链科技有限公司 | 一种基于命名空间实现联盟链隐私保护的分区共识方法 |
CN110392052A (zh) * | 2019-07-22 | 2019-10-29 | 中国工商银行股份有限公司 | 一种区块链智能合约处理系统及方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651467A (zh) * | 2020-05-25 | 2020-09-11 | 杭州溪塔科技有限公司 | 一种区块链节点接口发布调用方法和装置 |
CN111651467B (zh) * | 2020-05-25 | 2023-09-12 | 杭州溪塔科技有限公司 | 一种区块链节点接口发布调用方法和装置 |
CN113067902A (zh) * | 2021-06-02 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 区块链消息的传输方法及装置 |
CN113098982A (zh) * | 2021-06-02 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 区块链消息的传输方法及装置 |
CN113067902B (zh) * | 2021-06-02 | 2021-07-30 | 支付宝(杭州)信息技术有限公司 | 区块链消息的传输方法及装置 |
CN113098982B (zh) * | 2021-06-02 | 2021-08-10 | 支付宝(杭州)信息技术有限公司 | 区块链消息的传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110798535B (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798535B (zh) | 区块链中实现p2p通信方法、区块链应用系统及相关设备 | |
CN103166874B (zh) | 一种报文转发方法及设备 | |
CN104137518B (zh) | 在面向服务架构总线上的互联网协议连接 | |
CN112565389B (zh) | 基于区块链的消息广播方法、装置、电子设备及存储介质 | |
CN100558109C (zh) | 基于会话初始协议的负载均衡实现方法及系统 | |
CN111163130B (zh) | 一种网络服务系统及其数据传输方法 | |
CN102447638A (zh) | 负载均衡的方法及转发设备 | |
EP3477561A1 (en) | System for goods delivery | |
US8903972B2 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
CN110601906A (zh) | 一种基于区块链的数据传输方法及装置 | |
EP3447996A1 (en) | Resource subscription method, resource subscription device, and resource subscription system | |
CN109412949B (zh) | 一种数据报文传输方法和装置 | |
US20190089778A1 (en) | Ad hoc decentralized cloud infrastructure | |
US11310719B1 (en) | Peer-to-peer self-organizing mobile network | |
CN102946351A (zh) | 一种数据传输方法和系统 | |
CN102404193B (zh) | 生成转发表项、报文转发、地址获取的方法及边缘设备 | |
CN104717117A (zh) | 在虚拟端口通道(vPC)上的以太网光纤通道(FCoE) | |
CN110582998A (zh) | 群组的通信方法及装置、计算机存储介质、计算机设备 | |
US8447039B2 (en) | Active-active hierarchical key servers | |
CN110012107B (zh) | 一种数据通信方法、设备、装置、系统及存储介质 | |
CN115622833B (zh) | 基于总线的跨端通信的设备管理方法、系统、装置及介质 | |
CN102202103A (zh) | 一种访问网络设备的方法、系统及装置 | |
CN110192382B (zh) | 一种网络通信方法、对等体及系统 | |
CN101309154B (zh) | 报文的发送方法、发送装置和传输系统 | |
CN114629744B (zh) | 基于macvlan主机网络的数据访问方法、系统及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |