CN111181992B - 区块链中节点与链码的通信方法、装置、设备及存储介质 - Google Patents
区块链中节点与链码的通信方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111181992B CN111181992B CN202010005627.1A CN202010005627A CN111181992B CN 111181992 B CN111181992 B CN 111181992B CN 202010005627 A CN202010005627 A CN 202010005627A CN 111181992 B CN111181992 B CN 111181992B
- Authority
- CN
- China
- Prior art keywords
- file
- socket
- node
- path
- chain
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种区块链中节点与链码的通信方法、装置、设备及存储介质,即在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件;在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件;将所述节点中的第一文件配置路径与所述链码容器中的第二文件配置路径建立文件映射,并通过所述文件映射,在所述节点与所述链码容器之间建立进程间通信连接Unix Domain Socket通信连接。本发明通过采用Unix Domain Socket进程间通信的方式替代TCP/IP的网络通信方式,提升节点和链码容器之间通信效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种区块链中节点与链码的通信方法、装置、设备及计算机可读存储介质。
背景技术
在区块链网络中,对等节点(Peer)用于维护管理账本,链码(Chaincode)为运行在容器中的程序代码,Peer通过运行Chaincode对账本执行读写操作,一笔交易请求先经过Peer节点进行验证,验证成功后再由Peer节点将交易请求转发给Chaincode执行,Chaincode执行过程中也会通过Peer节点访问账本,Chaincode执行完成后将结果返回给Peer节点,Peer节点再将该笔交易的执行结果返回给对应的应用客户端。在上述过程中,Peer节点和Chaincode之间涉及到多次通信,现有底层采用TCP/IP协议的网络通信方式,通常情况下,Chaincode容器即为Peer启动的一个进程,Chaincode容器和Peer即为运行在同一个服务器上的两个进程。由于两个进程间采用TCP/IP网络通信,需要进行协议编码、解码、校验等过程,导致Peer和Chaincode之间通信效率低下。
发明内容
本发明的主要目的在于提供一种区块链中节点与链码的通信方法、装置、设备及计算机可读存储介质,旨在解决现有区块链中的节点与链码的通信效率低下的技术问题。
为实现上述目的,本发明提供一种区块链中节点与链码的通信方法,所述区块链中节点与链码的通信方法包括以下步骤:
根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件;
根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件;
将所述节点中的第一文件配置路径与所述链码容器中的第二文件配置路径建立文件映射,并通过所述第一套接字文件、第二套接字文件以及所述文件映射,在所述节点与所述链码容器之间建立进程间通信连接Unix Domain Socket通信连接。
可选地,所述根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件的步骤具体包括:
根据预设套接字文件参数,对所述节点中的链码注册服务地址中的第一文件配置路径进行识别,判断所述第一文件配置路径是否为套接字文件路径格式;
在所述第一文件配置路径为套接字文件路径格式时,在所述节点中创建SOCK_STREAM类型的第一套接字文件;
基于所述第一文件配置路径初始化所述节点的服务端地址,并将所述服务端地址绑定至所述第一套接字文件;
在所述第一套接字文件上启动监听服务,等待所述链码容器发送的连接请求,完成所述节点的第一套接字文件的注册。
可选地,所述根据预设套接字文件参数,对所述节点中的链码注册服务地址中的第一文件配置路径进行识别,判断所述第一文件配置路径是否为套接字文件路径格式的步骤之后,还包括:
在所述第一文件配置路径为其他路径格式时,则基于所述其他路径格式在所述节点与链码之间建立其他连接方式。
可选地,所述根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件的步骤具体包括:
根据所述套接字文件参数,对所述链码容器中的第二文件配置路径进行识别,判断所述第二文件配置路径是否为套接字文件路径格式;
若所述第二文件配置路径为套接字文件路径格式,基于所述第二文件配置路径在所述链码容器中创建一个SOCK_STREAM类型的第二套接字文件;
初始化所述节点的服务端,并将所述第二文件配置路径绑定至所述节点的服务端,并将所述第二套接字文件连接至所述节点的服务端,完成所述第二套接字文件的创建。
可选地,所述根据所述套接字文件参数,对所述链码容器中的第二文件配置路径进行识别,判断所述第二文件配置路径是否为套接字文件路径格式的步骤之后,还包括:
在所述第二文件配置路径为其他路径格式时,则基于所述其他路径格式在所述节点与链码之间建立其他连接方式。
可选地,所述根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件的步骤之前,还包括:
在接收到通信指令时,获取所述通信指令中用户输入的节点文件配置路径,作为所述第一文件配置路径;
将所述第一文件配置路径添加至所述节点的链码注册服务地址中,以在所述节点中增加支持节点与链码进行Unix Domain Socket通信连接的套接字文件。
可选地,所述根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件的步骤之前,还包括:
在接收到配置指令时,将所述配置指令中的文件内部路径添加至所述链码容器,作为第二文件配置路径。
此外,为实现上述目的,本发明还提供一种区块链中节点与链码的通信装置,所述区块链中节点与链码的通信装置包括:
文件注册模块,用于根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件;
文件创建模块,用于根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件;
进程通信模块,用于将所述节点中的第一文件配置路径与所述链码容器中的第二文件配置路径建立文件映射,并通过所述第一套接字文件、第二套接字文件以及所述文件映射,在所述节点与所述链码容器之间建立进程间通信连接Unix Domain Socket通信连接。
此外,为实现上述目的,本发明还提供一种区块链中节点与链码的通信设备,所述区块链中节点与链码的通信设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的区块链中节点与链码的通信程序,其中所述区块链中节点与链码的通信程序被所述处理器执行时,实现如上述的区块链中节点与链码的通信方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链中节点与链码的通信程序,其中所述区块链中节点与链码的通信程序被处理器执行时,实现如上述的区块链中节点与链码的通信方法的步骤。
本发明提供一种区块链中节点与链码的通信方法,根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件;根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件;将所述节点中的第一文件配置路径与所述链码容器中的第二文件配置路径建立文件映射,并通过所述第一套接字文件、第二套接字文件以及所述文件映射,在所述节点与所述链码容器之间建立进程间通信连接UnixDomain Socket通信连接。通过上述方式,本发明通过采用Unix Domain Socket进程间通信的方式替代TCP/IP的网络通信方式,提升节点和链码容器之间通信效率,解决了有区块链中的节点与链码的通信效率低下的技术问题。
附图说明
图1为本发明实施例方案中涉及的区块链中节点与链码的通信设备的硬件结构示意图;
图2为本发明区块链中节点与链码的通信方法第一实施例的流程示意图;
图3为本发明区块链中节点与链码的通信方法第二实施例的流程示意图;
图4为本发明区块链中节点与链码的通信方法第三实施例的流程示意图;
图5为本发明区块链中节点与链码的通信装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及的区块链中节点与链码的通信方法主要应用于区块链中节点与链码的通信设备,该区块链中节点与链码的通信设备可以是PC、便携计算机、移动终端等具有显示和处理功能的设备。
参照图1,图1为本发明实施例方案中涉及的区块链中节点与链码的通信设备的硬件结构示意图。本发明实施例中,区块链中节点与链码的通信设备可以包括处理器1001(例如CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口);存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的硬件结构并不构成对区块链中节点与链码的通信设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种计算机可读存储介质的存储器1005可以包括操作系统、网络通信模块以及区块链中节点与链码的通信程序。
在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的区块链中节点与链码的通信程序,并执行本发明实施例提供的区块链中节点与链码的通信方法。
本发明实施例提供了一种区块链中节点与链码的通信方法。
参照图2,图2为本发明区块链中节点与链码的通信方法第一实施例的流程示意图。
本实施例中,所述区块链中节点与链码的通信方法包括以下步骤:
步骤S10,根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件;
现有底层采用TCP/IP协议的网络通信方式,通常情况下,Chaincode容器即为Peer启动的一个进程,Chaincode容器和Peer即为运行在同一个服务器上的两个进程。由于两个进程间采用TCP/IP网络通信,需要进行协议编码、解码、校验等过程,导致Peer和Chaincode之间通信效率低下。本实施例中,为了解决上述问题,提供一种区块链中节点与链码的通信方法,通过采用Unix Domain Socket进程间通信的方式替代TCP/IP的网络通信方式,提升节点和链码容器之间通信效率,解决了有区块链中的节点与链码的通信效率低下的技术问题。具体地,在接收到通信指令时,获取所述通信指令中用户输入的节点文件配置路径,作为所述第一文件配置路径;将所述第一文件配置路径添加至所述节点的链码注册服务地址中,以在所述节点中增加支持节点与链码进行Unix Domain Socket通信连接的套接字文件。即在Peer节点中的Chaincode注册服务地址中注册一个用于支持所述peer节点与Chaincode进行Unix Domian Socket通信的第一文件配置路径。其中,Socket是网络上两个程序双向通讯连接的端点,第一套接字文件socket文件的第一文件配置路径C,如:/var/run/tmp.sock。Unix domain socket,也叫IPC socket(inter-precess communicationsocket,也就是进程间通信套接字),可以用于同一台主机上不同进程间的通信。Socket文件是一种"打开—读/写—关闭"模式的实现,需要通信的双方各自维护一个Socket文件,在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。由此,所述peer节点与Chaincode通过读取各自的Socket文件实现通信。Peer节点根据预设的socket文件参数,即路径配置的参数值,识别出所述所述Chaincode注册服务地址中的各个配置路径的配置类型,如套接字文件路径格式(如:/var/run/tmp.sock,即为Unix Domain Socket通信),或者其他路径格式(如:127.0.0.1:1234,即为普通的TCP/IP通信)。若所述配置路径的参数为其他路径格式,则根据所述其他路径创建所述peer节点的其他连接方式,如TCP/IP通信。若所述配置路径的参数为文件路径格式,则根据所述socket文件配置路径C创建注册所述peer节点端的第一socket文件,以通过所述第一socket文件与Chaincode实现Unix Domain Socket通信。
步骤S20,根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件;
本实施例中,在接收到配置指令时,将所述配置指令中的文件内部路径添加至所述链码容器,作为第二文件配置路径。即Chaincode容器由虚拟化服务Docker启动,容器基于所述Chaincode容器中的第二文件配置路径,即socket文件内部路径D,在所述Chaincode中创建第二socket文件。从而实现Peer节点与Chaincode互相读取各自的socket文件即可实现通信,也就是互相通过各自的socket文件供对方读取或者读取对方的消息内容。
步骤S30,将所述节点中的第一文件配置路径与所述链码容器中的第二文件配置路径建立文件映射,并通过所述第一套接字文件、第二套接字文件以及所述文件映射,在所述节点与所述链码容器之间建立进程间通信连接Unix Domain Socket通信连接。
本实施例中,Chaincode容器由虚拟化服务Docker启动,在容器启动的时候,可以采用-v参数将peer节点的socket文件配置路径C映射到容器中的socket文件内部路径D,这样在容器内部操作路径D就相当于操作peer节点的sock路径。从而实现Peer节点与Chaincode互相读取各自的socket文件即可实现通信,也就是互相通过各自的socket文件供对方读取或者读取对方的消息内容。
本实施例提供一种区块链中节点与链码的通信方法,根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件;根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件;将所述节点中的第一文件配置路径与所述链码容器中的第二文件配置路径建立文件映射,并通过所述第一套接字文件、第二套接字文件以及所述文件映射,在所述节点与所述链码容器之间建立进程间通信连接UnixDomain Socket通信连接。通过上述方式,本发明通过采用Unix Domain Socket进程间通信的方式替代TCP/IP的网络通信方式,提升节点和链码容器之间通信效率,解决了有区块链中的节点与链码的通信效率低下的技术问题。
参照图3,图3为本发明区块链中节点与链码的通信方法第二实施例的流程示意图。
基于上述图2所示实施例,本实施例中,所述步骤S10具体包括:
步骤S11,根据预设套接字文件参数,对所述节点中的链码注册服务地址中的第一文件配置路径进行识别,判断所述第一文件配置路径是否为套接字文件路径格式;
步骤S12,在所述第一文件配置路径为套接字文件路径格式时,在所述节点中创建SOCK_STREAM类型的第一套接字文件;
步骤S13,基于所述第一文件配置路径初始化所述节点的服务端地址,并将所述服务端地址绑定至所述第一套接字文件;
步骤S14,在所述第一套接字文件上启动监听服务,等待所述链码容器发送的连接请求,完成所述节点的第一套接字文件的注册。
本实施例中,根据预先设置的套接字文件参数,对节点中用户注册链码配置路径的链码注册服务地址中的第一文件配置路径进行识别,识别出所述所述Chaincode注册服务地址中的各个配置路径的配置类型,如文件路径格式(如:/var/run/tmp.sock,即为UnixDomain Socket通信),或者其他路径格式(如:127.0.0.1:1234,即为普通的TCP/IP通信)。即在所述第一文件配置路径为其他路径格式时,则基于所述其他路径格式在所述节点与链码之间建立其他连接方式。若所述配置路径的参数为其他路径格式,则根据所述其他路径创建所述peer节点的其他连接方式,如TCP/IP通信。若所述配置路径的参数为文件路径格式,则根据所述socket文件配置路径C创建注册所述peer节点端的第一socket文件,以通过所述第一socket文件与Chaincode实现Unix Domain Socket通信。具体地注册过称为:在Peer节点,即server端,初始化创建一个SOCK_STREAM类型的socket文件,即第一套接字文件;用路径C初始化Peer节点服务端地址,并将该Peer节点服务端地址绑定到该socket文件上;在该socket文件上启动服务监听等待Chaincode容器发送的连接请求,至此Peer节点注册服务启动成功。
参照图4,图4为本发明区块链中节点与链码的通信方法第三实施例的流程示意图。
基于上述图3所示实施例,本实施例中,所述步骤S20具体包括:
步骤S21,根据所述套接字文件参数,对所述链码容器中的第二文件配置路径进行识别,判断所述第二文件配置路径是否为套接字文件路径格式;
步骤S22,若所述第二文件配置路径为套接字文件路径格式,基于所述第二文件配置路径在所述链码容器中创建一个SOCK_STREAM类型的第二套接字文件;
步骤S23,初始化所述节点的服务端,并将所述第二文件配置路径绑定至所述节点的服务端,并将所述第二套接字文件连接至所述节点的服务端,完成所述第二套接字文件的创建。
本实施例中,根据预设套接字文件参数,对所述链码容器中的第二文件配置路径进行识别,以判断所述第二文件配置路径是否为套接字文件路径格式,在所述第二文件配置路径为其他路径格式时,则基于所述其他路径格式在所述节点与链码之间建立其他连接方式。在识别出所述第二文件配置路径为套接字文件路径时,具体的创建过称为:在Chaincode,即client端,初始化创建一个SOCK_STREAM类型的socket文件,即第二套接字文件;初始化Peer节点服务端,将路径D绑定到该Peer节点服务端;Chaincode通过第二socket文件连接Peer节点服务端,具体的连接过程由操作系统内核驱动完成,返回成功则表示Chaincode与Peer节点建立Unix Domain Socket通信连接成功。由此,Peer节点即可通过Unix Domain Socket与Chaincode进行高效通信。
此外,本发明实施例还提供一种区块链中节点与链码的通信装置。
参照图5,图5为本发明区块链中节点与链码的通信装置第一实施例的功能模块示意图。
本实施例中,所述区块链中节点与链码的通信装置包括:
文件注册模块10,用于根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件;
文件创建模块20,用于根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件;
进程通信模块30,用于将所述节点中的第一文件配置路径与所述链码容器中的第二文件配置路径建立文件映射,并通过所述第一套接字文件、第二套接字文件以及所述文件映射,在所述节点与所述链码容器之间建立进程间通信连接Unix Domain Socket通信连接。
进一步地,所述文件注册模块10具体包括:
节点路径判断单元,用于根据预设套接字文件参数,对所述节点中的链码注册服务地址中的第一文件配置路径进行识别,判断所述第一文件配置路径是否为套接字文件路径格式;
第一文件创建单元,用于在所述第一文件配置路径为套接字文件路径格式时,在所述节点中创建SOCK_STREAM类型的第一套接字文件;
第一文件绑定单元,用于基于所述第一文件配置路径初始化所述节点的服务端地址,并将所述服务端地址绑定至所述第一套接字文件;
第一文件注册单元,用于在所述第一套接字文件上启动监听服务,等待所述链码容器发送的连接请求,完成所述节点的第一套接字文件的注册。
进一步地,所述文件注册模块10还用于:
在所述第一文件配置路径为其他路径格式时,则基于所述其他路径格式在所述节点与链码之间建立其他连接方式。
进一步地,所述进程通信模块30具体包括:
链码路径判断单元,用于根据所述套接字文件参数,对所述链码容器中的第二文件配置路径进行识别,判断所述第二文件配置路径是否为套接字文件路径格式;
第二文件创建单元,用于若所述第二文件配置路径为套接字文件路径格式,基于所述第二文件配置路径在所述链码容器中创建一个SOCK_STREAM类型的第二套接字文件;
第二文件注册单元,用于初始化所述节点的服务端,并将所述第二文件配置路径绑定至所述节点的服务端,并将所述第二套接字文件连接至所述节点的服务端,完成所述第二套接字文件的创建。
进一步地,所述进程通信模块30还用于:
在所述第二文件配置路径为其他路径格式时,则基于所述其他路径格式在所述节点与链码之间建立其他连接方式。
进一步地,所述区块链中节点与链码的通信装置还包括第一路径配置模块,所述第一路径配置模块还用于:
在接收到通信指令时,获取所述通信指令中用户输入的节点文件配置路径,作为所述第一文件配置路径;
将所述第一文件配置路径添加至所述节点的链码注册服务地址中,以在所述节点中增加支持节点与链码进行Unix Domain Socket通信连接的套接字文件。
进一步地,所述区块链中节点与链码的通信装置还包括第二路径配置模块,所述第二路径配置模块还用于:
在接收到配置指令时,将所述配置指令中的文件内部路径添加至所述链码容器,作为第二文件配置路径。
其中,上述区块链中节点与链码的通信装置中各个模块与上述区块链中节点与链码的通信方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
此外,本发明实施例还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有区块链中节点与链码的通信程序,其中所述区块链中节点与链码的通信程序被处理器执行时,实现如上述的区块链中节点与链码的通信方法的步骤。
其中,区块链中节点与链码的通信程序被执行时所实现的方法可参照本发明区块链中节点与链码的通信方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种区块链中节点与链码的通信方法,其特征在于,所述区块链中节点与链码的通信方法包括以下步骤:
根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件;
根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件;其中,所述节点和所述链码容器为运行在同一个服务器上的两个进程;
将所述节点中的第一文件配置路径与所述链码容器中的第二文件配置路径建立文件映射,并通过所述第一套接字文件、第二套接字文件以及所述文件映射,在所述节点与所述链码容器之间建立进程间通信连接Unix Domain Socket通信连接;
其中,将所述节点中的第一文件配置路径与所述链码容器中的第二文件配置路径建立文件映射的步骤,包括:
由虚拟化服务Docker启动所述链码容器,采用-v参数将所述节点中的第一文件配置路径映射到所述链码容器中的第二文件配置路径,以建立文件映射;
所述根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件的步骤之前,还包括:
在接收到通信指令时,获取所述通信指令中用户输入的节点文件配置路径,并将所述节点文件配置路径作为所述第一文件配置路径;
所述由虚拟化服务Docker启动所述链码容器,采用-v参数将所述节点中的第一文件配置路径映射到所述链码容器中的第二文件配置路径,以建立文件映射的步骤之后,还包括:
根据所述文件映射使所述节点与所述链码容器通过读取各自的Socket文件实现通信。
2.如权利要求1所述的区块链中节点与链码的通信方法,其特征在于,所述根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件的步骤具体包括:
根据预设套接字文件参数,对所述节点中的链码注册服务地址中的第一文件配置路径进行识别,判断所述第一文件配置路径是否为套接字文件路径格式;
在所述第一文件配置路径为套接字文件路径格式时,在所述节点中创建SOCK_STREAM类型的第一套接字文件;
基于所述第一文件配置路径初始化所述节点的服务端地址,并将所述服务端地址绑定至所述第一套接字文件;
在所述第一套接字文件上启动监听服务,等待所述链码容器发送的连接请求,完成所述节点的第一套接字文件的注册。
3.如权利要求2所述的区块链中节点与链码的通信方法,其特征在于,所述根据预设套接字文件参数,对所述节点中的链码注册服务地址中的第一文件配置路径进行识别,判断所述第一文件配置路径是否为套接字文件路径格式的步骤之后,还包括:
在所述第一文件配置路径为其他路径格式时,则基于所述其他路径格式在所述节点与链码之间建立其他连接方式。
4.如权利要求1所述的区块链中节点与链码的通信方法,其特征在于,所述根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件的步骤具体包括:
根据所述套接字文件参数,对所述链码容器中的第二文件配置路径进行识别,判断所述第二文件配置路径是否为套接字文件路径格式;
若所述第二文件配置路径为套接字文件路径格式,基于所述第二文件配置路径在所述链码容器中创建一个SOCK_STREAM类型的第二套接字文件;
初始化所述节点的服务端,并将所述第二文件配置路径绑定至所述节点的服务端,并将所述第二套接字文件连接至所述节点的服务端,完成所述第二套接字文件的创建。
5.如权利要求4所述的区块链中节点与链码的通信方法,其特征在于,所述根据所述套接字文件参数,对所述链码容器中的第二文件配置路径进行识别,判断所述第二文件配置路径是否为套接字文件路径格式的步骤之后,还包括:
在所述第二文件配置路径为其他路径格式时,则基于所述其他路径格式在所述节点与链码之间建立其他连接方式。
6.如权利要求1所述的区块链中节点与链码的通信方法,其特征在于,所述根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件的步骤之前,还包括:
在接收到通信指令时,获取所述通信指令中用户输入的节点文件配置路径,作为所述第一文件配置路径;
将所述第一文件配置路径添加至所述节点的链码注册服务地址中,以在所述节点中增加支持节点与链码进行Unix Domain Socket通信连接的套接字文件。
7.如权利要求1至6任意一项所述的区块链中节点与链码的通信方法,其特征在于,所述根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件的步骤之前,还包括:
在接收到配置指令时,将所述配置指令中的文件内部路径添加至所述链码容器,作为第二文件配置路径。
8.一种区块链中节点与链码的通信装置,其特征在于,所述区块链中节点与链码的通信装置包括:
文件注册模块,用于根据预设套接字文件参数,在识别出节点中的链码注册服务地址中的第一文件配置路径的格式为套接字文件格式时,基于所述第一文件配置路径在所述节点中注册第一套接字文件;
文件创建模块,用于根据所述套接字文件参数,在识别出链码容器中的第二文件配置路径的格式为套接字文件格式时,基于所述第二文件配置路径在所述链码容器中创建第二套接字文件;其中,所述节点和所述链码容器为运行在同一个服务器上的两个进程;
进程通信模块,用于由虚拟化服务Docker启动所述链码容器,采用-v参数将所述节点中的第一文件配置路径映射到所述链码容器中的第二文件配置路径,以建立文件映射,并通过所述第一套接字文件、第二套接字文件以及所述文件映射,在所述节点与所述链码容器之间建立进程间通信连接Unix Domain Socket通信连接;
所述文件注册模块,还用于在接收到通信指令时,获取所述通信指令中用户输入的节点文件配置路径,并将所述节点文件配置路径作为所述第一文件配置路径;
所述进程通信模块,还用于根据所述文件映射使所述节点与所述链码容器通过读取各自的Socket文件实现通信。
9.一种区块链中节点与链码的通信设备,其特征在于,所述区块链中节点与链码的通信设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的区块链中节点与链码的通信程序,其中所述区块链中节点与链码的通信程序被所述处理器执行时,实现如权利要求1至7中任一项所述的区块链中节点与链码的通信方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有区块链中节点与链码的通信程序,其中所述区块链中节点与链码的通信程序被处理器执行时,实现如权利要求1至7中任一项所述的区块链中节点与链码的通信方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010005627.1A CN111181992B (zh) | 2020-01-03 | 2020-01-03 | 区块链中节点与链码的通信方法、装置、设备及存储介质 |
PCT/CN2020/099225 WO2021135117A1 (zh) | 2020-01-03 | 2020-06-30 | 区块链中节点与链码的通信方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010005627.1A CN111181992B (zh) | 2020-01-03 | 2020-01-03 | 区块链中节点与链码的通信方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111181992A CN111181992A (zh) | 2020-05-19 |
CN111181992B true CN111181992B (zh) | 2022-02-22 |
Family
ID=70621787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010005627.1A Active CN111181992B (zh) | 2020-01-03 | 2020-01-03 | 区块链中节点与链码的通信方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111181992B (zh) |
WO (1) | WO2021135117A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111181992B (zh) * | 2020-01-03 | 2022-02-22 | 平安科技(深圳)有限公司 | 区块链中节点与链码的通信方法、装置、设备及存储介质 |
EP4064053A1 (en) * | 2021-03-26 | 2022-09-28 | Aptiv Technologies Limited | Managing inter-service communication |
CN113721921A (zh) * | 2021-09-01 | 2021-11-30 | 杭州云象网络技术有限公司 | 一种联盟链多语言外部链码离线编译方法与系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206590A (zh) * | 2006-12-21 | 2008-06-25 | 国际商业机器公司 | 用于扩展用于通信的Unix域套接字的方法、装置和系统 |
CN105279036A (zh) * | 2015-12-04 | 2016-01-27 | 上海斐讯数据通信技术有限公司 | 进程间通信方法、装置及电子设备 |
CN107665148A (zh) * | 2016-07-28 | 2018-02-06 | 中国科学院声学研究所 | 一种基于Chromium的命名管道进程通信方法 |
CN108667904A (zh) * | 2018-04-10 | 2018-10-16 | 浙江大学 | 一种Docker容器远程内存卷管理方法和系统 |
CN108965468A (zh) * | 2018-08-16 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 区块链网络服务平台及其链码安装方法、存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9654582B2 (en) * | 2013-12-31 | 2017-05-16 | Sybase, Inc. | Enhanced shared memory based communication driver for improved performance and scalability |
US20180225661A1 (en) * | 2017-02-07 | 2018-08-09 | Microsoft Technology Licensing, Llc | Consortium blockchain network with verified blockchain and consensus protocols |
CN107491330B (zh) * | 2017-08-08 | 2020-04-03 | 中国科学院声学研究所 | 一种提高嵌入式浏览器运行速度的方法 |
US11502828B2 (en) * | 2017-11-15 | 2022-11-15 | International Business Machines Corporation | Authenticating chaincode to chaincode invocations of a blockchain |
CN108228318B (zh) * | 2017-12-29 | 2021-08-06 | 优刻得科技股份有限公司 | 云容器与管理装置通信的方法、宿主机、系统和存储介质 |
US11627003B2 (en) * | 2018-03-05 | 2023-04-11 | SmartAxiom, Inc. | Systems and methods for a blockchain multi-chain smart contract time envelope |
CN110083468A (zh) * | 2019-05-05 | 2019-08-02 | Oppo广东移动通信有限公司 | 一种数据传输方法、电子装置和存储介质 |
CN110557290B (zh) * | 2019-09-17 | 2022-11-29 | 腾讯科技(深圳)有限公司 | 网络加速服务的处理方法及装置 |
CN111181992B (zh) * | 2020-01-03 | 2022-02-22 | 平安科技(深圳)有限公司 | 区块链中节点与链码的通信方法、装置、设备及存储介质 |
-
2020
- 2020-01-03 CN CN202010005627.1A patent/CN111181992B/zh active Active
- 2020-06-30 WO PCT/CN2020/099225 patent/WO2021135117A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206590A (zh) * | 2006-12-21 | 2008-06-25 | 国际商业机器公司 | 用于扩展用于通信的Unix域套接字的方法、装置和系统 |
CN105279036A (zh) * | 2015-12-04 | 2016-01-27 | 上海斐讯数据通信技术有限公司 | 进程间通信方法、装置及电子设备 |
CN107665148A (zh) * | 2016-07-28 | 2018-02-06 | 中国科学院声学研究所 | 一种基于Chromium的命名管道进程通信方法 |
CN108667904A (zh) * | 2018-04-10 | 2018-10-16 | 浙江大学 | 一种Docker容器远程内存卷管理方法和系统 |
CN108965468A (zh) * | 2018-08-16 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 区块链网络服务平台及其链码安装方法、存储介质 |
Non-Patent Citations (1)
Title |
---|
linux本地socket简介;whatday;《https://blog.csdn.net》;20181219;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111181992A (zh) | 2020-05-19 |
WO2021135117A1 (zh) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111181992B (zh) | 区块链中节点与链码的通信方法、装置、设备及存储介质 | |
CN109547570B (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
CN111367983B (zh) | 数据库访问方法、系统、设备和存储介质 | |
CN108510389B (zh) | 基于区块链的智能合约调用方法、设备及可读存储介质 | |
CN107733922B (zh) | 用于调用服务的方法和装置 | |
US9207959B2 (en) | Creating a virtual disk using set of binding information of a paravirtual network interface card and a physical network interface card | |
CN107015870B (zh) | 实现web页面与本地应用通信的方法、装置和电子设备 | |
US20100050189A1 (en) | Method and system for socket API call emulation | |
US11057827B1 (en) | Provisioning an embedded universal integrated circuit card (eUICC) of a mobile communication device | |
CN110661853A (zh) | 一种数据代理方法、装置、计算机设备及可读存储介质 | |
CN111506366A (zh) | 插件调用方法、装置、电子设备与存储介质 | |
CN111930382A (zh) | 应用页面的接入方法、装置及设备 | |
CN107368339B (zh) | 容器入口程序运行方法、系统、设备及存储介质 | |
US8510423B2 (en) | Install system and install method | |
CN115567594A (zh) | 微服务请求处理方法、装置、计算机设备及存储介质 | |
CN107222365B (zh) | 数据处理方法、装置及服务器 | |
CN111447273A (zh) | 云处理系统及基于云处理系统的数据处理方法 | |
CN114205848B (zh) | 虚拟wifi上网方法、装置、计算机设备和存储介质 | |
CN112181930B (zh) | 虚拟交换矩阵的文件管理方法及装置 | |
CN114143144A (zh) | 基于分布式网关的微服务调用方法、装置及相关设备 | |
CN114816556A (zh) | 请求处理方法、装置和服务器 | |
CN114422456B (zh) | 任务处理方法以及装置 | |
CN114650271B (zh) | 全局负载dns邻居站点学习方法及装置 | |
CN109981640B (zh) | 连接建立方法和装置 | |
CN113467860B (zh) | 一种程序源代码的业务逻辑执行方法及装置 |
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 |