CN110855688A - 一种区块链信息处理方法及相关设备 - Google Patents
一种区块链信息处理方法及相关设备 Download PDFInfo
- Publication number
- CN110855688A CN110855688A CN201911130834.3A CN201911130834A CN110855688A CN 110855688 A CN110855688 A CN 110855688A CN 201911130834 A CN201911130834 A CN 201911130834A CN 110855688 A CN110855688 A CN 110855688A
- Authority
- CN
- China
- Prior art keywords
- block chain
- block
- blockchain
- transaction
- link point
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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
- 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
Abstract
本发明实施例公开了一种区块链信息处理方法及相关设备,所述方法包括:在通过客户端进程检测到第一区块链事务后确定对应的第一区块链;通过第一区块链节点进程获取包含第一区块链各个区块链节点进程的节点进程套接字的第一进程配置文件;基于第一套接字与节点进程套接字,通过所述第一区块链节点进程建立与各个区块链节点进程的socket连接;通过第一区块链节点进程生成事务区块,并通过socket连接发送给各个区块链节点进程进行共识验证;通过第一区块链节点进程在确认满足共识策略时通过第一区块链节点进程将事务区块添加至第一区块链。通过本发明实现在同一设备上部署多个区块链节点,以及多个区块链节点的正常运行。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链信息处理方法及相关设备。
背景技术
区块链是一种由多方共同维护,以块链结构存储数据,使用密码学保证传输和访问安全,能够实现数据一致存储、无法篡改、无法抵赖的技术体系。区块链能够在网络中建立点对点之间可靠的信任,使得价值传递过程去除了中介的干扰,既公开信息又保护隐私,既共同决策又保护个体权益,这种机制提高了价值交互的效率并降低了成本。
随着区块链技术的发展,越来越多的企业和个人加入到区块链技术的应用中,在应用区块链技术之前,使用者需要部署区块链节点,区块链节点可以部署在任意的计算机、手机、平板电脑等设备上部署区块链的底层代码、相关配置等,然后才能作为区块链节点加入对应的区块链,有时用户希望加入的不仅是一条区块链,可能希望加入两条或多条区块链,这就需要一种针对多链的管理方法。
发明内容
本申请提供一种区块链信息处理方法及相关设备,通过本发明可以实现在同一设备上部署多个区块链节点,并实现多个区块链节点的正常运行。
本发明实施例第一方面提供了一种区块链信息处理方法,包括:
第一设备在通过客户端进程检测到用户触发的第一区块链事务后,从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链,所述归属区块链为在所述第一设备中部署的至少两个区块链节点进程各自归属的不同的区块链;
所述第一设备通过所述第一区块链对应的第一区块链节点进程,获取所述第一区块链节点进程的第一进程配置文件,所述第一进程配置文件中包含所述第一区块链中各个区块链节点进程的节点进程套接字,所述节点进程套接字由所述第一区块链中各个区块链节点进程的节点进程IP地址和节点进程端口号得到;
基于第一套接字与所述第一区块链中各个区块链节点进程的节点进程套接字,所述第一设备通过所述第一区块链节点进程建立与所述第一区块链中各个区块链节点进程之间的socket连接,所述第一套接字为根据所述第一区块链节点进程的节点进程IP地址和节点进程端口号生成的;
所述第一设备通过所述第一区块链节点进程针对所述第一区块链事务生成事务区块,并通过所述socket连接将所述事务区块发送给所述第一区块链中的各个区块链节点进程,以使所述第一区块链中的各个区块链节点进程对所述事务区块进行共识验证,并在共识验证通过后向所述第一区块链节点进程返回共识确认信息;
所述第一设备在通过所述第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,所述第一设备通过所述第一区块链节点进程将所述事务区块作为所述第一区块链当前最大区块高度的区块添加至所述第一区块链。
其中,所述至少两个归属区块链对应不同的区块链类别,所述第一设备的客户端进程包括属于不同的客户端类别的至少两个客户端进程;
所述方法还包括:
所述第一设备确定所述归属区块链各自对应的区块链类别;
所述第一设备根据所述归属区块链各自对应的区块链类别,从所述归属区块链中,确定与目标客户端类别的客户端进程匹配的至少一个目标区块链,所述目标客户端类别为所述第一设备的客户端进程对应的任意一个客户端类别;
所述第一设备将所述至少一个目标区块链在所述第一设备中对应的区块链节点进程,作为所述目标客户端类别的客户端进程的子进程,部署在所述第一设备中。
其中,所述第一区块链事务为通过第一节点标识对应的区块链节点进程向第二节点标识对应的区块链节点进程转移虚拟资产数据的事务;
所述从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链包括:
所述第一设备从预存的各个所述归属区块链的区块链标识与各个所述归属区块链中所有区块链节点进程的节点标识的对应关系中,确定所述第一节点标识和所述第二节点标识对应的第一区块链标识;
所述第一设备将所述第一区块链标识对应的归属区块链确定为所述第一区块链。
其中,所述方法还包括:
所述第一设备通过所述客户端进程接收用户针对所述第一区块链事务的查询请求;
所述第一设备在通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述第一区块链节点进程获取所述事务区块在所述第一区块链中的事务区块高度;
所述第一设备通过所述第一区块链节点进程获取所述事务区块高度对应的区块,提取所述事务区块高度对应的区块中包含的第一区块链事务;
所述第一设备通过所述客户端进程向用户返回所述第一区块链事务。
其中,所述方法还包括:
所述第一设备建立所述客户端进程与所述第一区块链节点进程之间的通信管道,生成通信管道对应的管道文件描述符对,所述管道文件描述符对包含写入端管道描述符和读取端管道描述符;
所述第一设备将所述写入端管道描述符分配给所述客户端进程,将所述读取端管道描述符分配给所述第一区块链节点进程;
所述第一设备在通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述第一区块链节点进程获取所述事务区块在所述第一区块链中的事务区块高度包括:
所述第一设备通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述客户端进程将所述第一区块链事务对应的事务标识写入所述写入端管道描述符;
所述第一设备通过所述第一区块链节点进程基于所述通信管道,从所述读取端管道描述符读取所述第一区块链事务的事务标识,并根据所述第一区块链事务的事务标识,获取所述事务区块高度。
其中,所述方法还包括:
所述第一设备通过所述客户端进程接收第二区块链节点进程发送的事务获取请求,所述事务获取请求中携带所述第一区块链事务的事务标识,以及所述第二区块链节点进程对应的节点进程权限信息,所述第二区块链节点进程为所述第一区块链以外的节点进程;
所述第一设备通过所述客户端进程,根据所述节点进程权限信息,对所述第二区块链节点进程获取所述第一区块链事务的权限进行验证;
在验证通过的情况下,所述第一设备通过所述第一区块链节点进程,根据所述第一区块链事务的事务标识,获取所述第一区块链事务对应的事务区块,并从所述事务区块中提取所述第一区块链事务;
所述第一设备通过所述客户端进程将所述第一区块链事务返回所述第二区块链节点进程。
其中,所述方法还包括:
所述第一设备接收针对第三区块链节点进程的部署指令,所述部署指令中携带所述第三区块链节点进程对应的区块链节点脚本以及所述第三区块链节点进程的系统资源需求信息;
所述第一设备获取所述第一设备中部署的各个区块链节点进程的系统资源占用信息;
若所述第一设备在根据所述系统资源占用信息和系统资源需求信息,确定在所述第三区块链节点进程启动的情况下系统资源的占用率未达到占用率阈值,则加载所述区块链节点脚本启动所述第三区块链节点进程。
本发明实施例第二方面提供了一种区块链信息处理装置,包括:
区块链确定模块,用于在通过客户端进程检测到用户触发的第一区块链事务后,从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链,所述归属区块链为在所述第一设备中部署的至少两个区块链节点进程各自归属的不同的区块链;
配置文件获取模块,用于通过所述第一区块链对应的第一区块链节点进程,获取所述第一区块链节点进程的第一进程配置文件,所述第一进程配置文件中包含所述第一区块链中各个区块链节点进程的节点进程套接字,所述节点进程套接字由所述第一区块链中各个区块链节点进程的节点进程IP地址和节点进程端口号得到;
进程连接模块,用于基于第一套接字与所述第一区块链中各个区块链节点进程的节点进程套接字,通过所述第一区块链节点进程建立与所述第一区块链中各个区块链节点进程之间的socket连接,所述第一套接字为根据所述第一区块链节点进程的节点进程IP地址和节点进程端口号生成的;
区块生成模块,用于通过所述第一区块链节点进程针对所述第一区块链事务生成事务区块,并通过所述socket连接将所述事务区块发送给所述第一区块链中的各个区块链节点进程,以使所述第一区块链中的各个区块链节点进程对所述事务区块进行共识验证,并在共识验证通过后向所述第一区块链节点进程返回共识确认信息;
记账模块,用于在通过所述第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,所述第一设备通过所述第一区块链节点进程将所述事务区块作为所述第一区块链当前最大区块高度的区块添加至所述第一区块链。
其中,所述至少两个归属区块链对应不同的区块链类别,所述第一设备的客户端进程包括属于不同的客户端类别的至少两个客户端进程;
所述区块链确定模块,还用于:
确定所述归属区块链各自对应的区块链类别;
根据所述归属区块链各自对应的区块链类别,从所述归属区块链中,确定与目标客户端类别的客户端进程匹配的至少一个目标区块链,所述目标客户端类别为所述第一设备的客户端进程对应的任意一个客户端类别;
将所述至少一个目标区块链在所述第一设备中对应的区块链节点进程,作为所述目标客户端类别的客户端进程的子进程,部署在所述第一设备中。
其中,所述第一区块链事务为通过第一节点标识对应的区块链节点进程向第二节点标识对应的区块链节点进程转移虚拟资产数据的事务;
所述区块链确定模块具体用于:
从预存的各个所述归属区块链的区块链标识与各个所述归属区块链中所有区块链节点进程的节点标识的对应关系中,确定所述第一节点标识和所述第二节点标识对应的第一区块链标识;
将所述第一区块链标识对应的归属区块链确定为所述第一区块链。
其中,所述装置还包括:
请求接收模块,用于通过所述客户端进程接收用户针对所述第一区块链事务的查询请求;
区块高度确定模块,用于在通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述第一区块链节点进程获取所述事务区块在所述第一区块链中的事务区块高度;
事务获取模块,用于通过所述第一区块链节点进程获取所述事务区块高度对应的区块,提取所述事务区块高度对应的区块中包含的第一区块链事务;
事务返回模块,用于通过所述客户端进程向用户返回所述第一区块链事务。
其中,所述装置还包括管道建立模块,用于:
建立所述客户端进程与所述第一区块链节点进程之间的通信管道,生成通信管道对应的管道文件描述符对,所述管道文件描述符对包含写入端管道描述符和读取端管道描述符;
将所述写入端管道描述符分配给所述客户端进程,将所述读取端管道描述符分配给所述第一区块链节点进程;
所述区块高度确定模块具体用于:
通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述客户端进程将所述第一区块链事务对应的事务标识写入所述写入端管道描述符;
通过所述第一区块链节点进程基于所述通信管道,从所述读取端管道描述符读取所述第一区块链事务的事务标识,并根据所述第一区块链事务的事务标识,获取所述事务区块高度。
其中,所述装置还包括中继模块,用于:
通过所述客户端进程接收第二区块链节点进程发送的事务获取请求,所述事务获取请求中携带所述第一区块链事务的事务标识,以及所述第二区块链节点进程对应的节点进程权限信息,所述第二区块链节点进程为所述第一区块链以外的节点进程;
通过所述客户端进程,根据所述节点进程权限信息,对所述第二区块链节点进程获取所述第一区块链事务的权限进行验证;
在验证通过的情况下,通过所述第一区块链节点进程,根据所述第一区块链事务的事务标识,获取所述第一区块链事务对应的事务区块,并从所述事务区块中提取所述第一区块链事务;
通过所述客户端进程将所述第一区块链事务返回所述第二区块链节点进程。
其中,所述装置还包括资源均衡模块,用于:
接收针对第三区块链节点进程的部署指令,所述部署指令中携带所述第三区块链节点进程对应的区块链节点脚本以及所述第三区块链节点进程的系统资源需求信息;
获取所述第一设备中部署的各个区块链节点进程的系统资源占用信息;
若在根据所述系统资源占用信息和系统资源需求信息,确定在所述第三区块链节点进程启动的情况下系统资源的占用率未达到占用率阈值,则加载所述区块链节点脚本启动所述第三区块链节点进程。
本发明实施例第三方面提供了一种区块链信息处理装置,包括:处理器和存器;
所述处理器与存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行本发明实施例中上述任一方面中的方法。
本发明实施例第四方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述任一方面中的方法。
本发明实施例中,第一设备通过客户端进程检测到用户触发的第一区块链事务后,从第一设备的至少两个归属区块链中确定第一区块链事务对应的第一区块链,然后通过第一区块链在第一设备中对应的第一区块链节点进程,获取第一区块链节点进程的第一进程配置文件,并基于由第一区块链接点进程的节点进程IP地址和节点进程端口号生成的第一套接字,以及第一进程配置文件中的由各个区块链节点进程的节点进程IP地址和节点进程端口号得到的各个区块链节点进程的节点进程套接字,建立第一区块链节点进程与第一区块链中各个区块链节点进程之间的socket连接,进而通过第一区块链节点进程针对第一区块链事务生成事务区块,并通过socket连接将事务区块发送给第一区块链中各个区块链节点进程进行共识验证,在共识验证通过后向第一区块链节点进程返回共识确认信息,从而第一设备在通过第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,通过第一区块链节点进程将事务区块作为第一区块链当前最大区块高度的区块添加至第一区块链。通过不同的区块链节点进程,实现在第一设备中部署对应不同归属区块链的多个区块链节点,节约了设备资源,通过客户端进程对针对不同区块链的上链事务进行识别管理,保证了在第一设备部署的不同区块链节点的正常运行。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块链信息处理方法的流程示意图;
图2a为本发明实施例提供的一种第一设备中的进程示意图;
图2b为本发明实施例提供的另一种第一设备中的进程示意图;
图3为本发明实施例提供的一种区块链部署示例图;
图4为本发明实施例提供的另一种区块链信息处理方法的流程示意图;
图5为本发明实施例提供的一种区块链信息处理装置的结构示意图;
图6是本发明实施例提供的另一种区块链信息处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先介绍本发明实施例中区块链信息处理方法的应用场景,本发明实施例中提供的区块链信息处理方法可以应用在同一机构在自己的一台计算机上部署归属两条区块链的场景,例如广州市某一税务机构,可以加入广东省内各个地级市的税务机构共同维护的一条市级税务区块链,也可以加入全国各个省会的税务机构共同维护的一条省级税务区块链,这时广州市的这一税务机构就可以在同一台计算机上部署一个属于市级税务区块链的区块链节点,以及另外一个属于省级税务区块链的区块链节点,进而通过部署的计算机参与这两条区块链的维护。本发明实施例中提供的区块链信息处理方法还可以应用在运营区块链节点的云平台上,不同的用户可以不提供硬件设备,在云平台的设备上部署不同种类的区块链节点,例如,云平台的设备上可以部署数字资产区块链中的一个资产节点,还可以部署供应链溯源区块链中的一个溯源节点,等等,基于云平台的设备对部署的区块链节点进行统一管理。上述场景中在设备中部署区块链节点的方式可以为在设备中运行对应的区块链节点进程,本发明实施例中涉及的区块链进程与区块链节点一一对应。需要指出的是,上述两种适用场景仅为两种示例性的应用场景,并不是本申请适用的全部应用场景。
接下来介绍本发明实施例提供的区块链信息处理方法,参见图1,图1为本发明实施例提供的一种区块链信息处理方法的流程示意图,如图所示,所述方法可以包括:
S101,第一设备在通过客户端进程检测到用户触发的第一区块链事务后,从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链。
这里,第一设备可以是平板电脑、手机、个人计算机(Personal Computer,PC)、笔记本电脑等设备。第一设备中部署至少两个区块链节点,即对应运行有至少两个区块链节点进程,各个区块链节点有自身归属的区块链,第一设备的归属区块链为自身部署的至少两个区块链节点进程各自归属的不同的区块链。例如,在第一设备中部署了区块链节点进程1和区块链节点进程2,区块链节点进程1是区块链A中的一个节点进程,区块链节点2进程是区块链B中的一个节点进程,那么第一设备的归属区块链有区块链A和区块链B。第一设备中可以部署的区块链节点可以归属同一区块链,但区块链技术是一种去中心化的技术,通常将同一区块链的两个区块链节点部署在不同的设备。
其中,第一设备的归属区块链在第一设备中对应的区块链节点进程中均包含自身的共识机制相关的进程、区块链账本同步的进程、区块链应用同步的进程,等等。这些区块链节点进程在第一设备中互补干扰,独立运行。
各个区块链节点进程有各自对应的客户端进程,客户端进程实时检测用户是否触发针对归属区块链的区块链事务。若第一设备中的归属区块链为同一类区块链,例如均为虚拟资产数据链,或者均为司法证据链,或者均为商品溯源链等等,那么第一设备中部署有所有区块链节点进程共同对应的一个客户端进程。第一设备通过该客户端进程针对第一设备的所有归属区块链检测区块链事务。参见图2a,图2a为本发明实施例提供的一种第一设备中的进程示意图,如图所示,第一设备的归属区块链有四个,包括区块链1、区块链2、区块链3和区块链4,上述四个区块链分别对应区块链节点进程1、区块链节点进程2、区块链节点进程3和区块链节点进程4,区块链1、区块链2、区块链3和区块链4均为虚拟资产数据链,有一个共同的资产客户端进程,第一设备通过资产客户端进程针对区块链1、区块链2、区块链3和区块链4检测是否有用户触发的资产事务。若第一设备中的归属区块链中有属于不同区块链类别的区块链,则第一设备中部署的客户端进程可以包括多个不同客户端类别的客户端进程,多个客户端进程并行运行,互不干扰。这时,第一设备通过各个客户端进程检测各个客户端进程对应的归属区块链的区块链事务。参见图2b,图2b为本发明实施例提供的另一种第一设备中的进程示意图,如图所示,第一设备的归属区块链有三个,包括区块链1’、区块链2’和区块链3’,上述三个区块链分别对应区块链节点进程1’、区块链节点进程2’和区块链节点进程3’,其中区块链1’和区块链2’为虚拟资产数据链,区块链3’为司法证据链,区块链1’和区块链2’在第一设备中有一个共同的资产客户端进程,区块链3’在第一设备中有自身对应的司法客户端进程,第一设备通过资产客户端进程针对区块链1’和区块链2’检测是否有用户触发的资产事务,第一设备通过司法客户端进程针对区块链3’检测是否有用户触发的司法证据事务。
若第一设备的至少两个归属区块链对应不同的区块链类别,第一设备的客户端进程包括属于不同客户端类别的至少两个客户端进程,在步骤S101之前,第一设备确定归属区块链各自对应的区块链类别,根据归属区块链各自对应的区块链类别,从归属区块链中,确定与目标客户端类别的客户端进程匹配的至少一个目标区块链,目标客户端类别为第一设备的客户端进程对应的任意一个客户端类别,进而第一设备将至少一个目标区块链对应的区块链进程,作为目标客户端类别的客户端进程的子进程,部署在第一设备中。
这里,若有新的区块链节点进程新部署在第一设备后,可以根据新的区块链节点归属的区块链的区块链类别,判断第一设备中是否已经存在对应客户端类别的客户端进程,进而确定使用对应的已部署的区客户端进程,或部署新的客户端类别的客户端进程。
进一步的,在有新的第三区块链节点进程部署在第一设备时,用户可以向第一设备发送针对第三区块链节点进程的部署指令,部署指令中携带第三区块链节点进程对应的区块链节点脚本以及第三区块链节点进程的系统资源需求信息;第一设备获取第一设备中部署的各个区块链节点进程的系统资源占用信息;第一设备在根据所述系统资源占用信息和系统资源需求信息,判断在第三区块链节点进程启动的情况下,系统资源的占用率是否达到占用率阈值,若否,加载区块链节点脚本启动第三区块链节点进程,若是,周期性检测实时的系统资源占用信息,根据实时的系统资源占用信息确定系统资源的实时占用率,在实时占用率小于占用率阈值的情况下,加载区块链节点脚本启动第三区块链节点进程。实现了第一设备根据系统资源的使用情况,对第三区块链进程进行部署,防止第一设备由于资源占用率过高引起的故障问题。
根据第一设备的归属区块链的区块链类型的不同,第一设备通过客户端进程检测到用户触发的区块链事务也有多种类型,例如第一设备通过资产客户端进程检测到资产事务,该资产事务可以具体为将某一节点的资产钱包中一定数量的虚拟资产转移至另外一个节点的资产钱包;又如第一设备通过司法客户端进程检测到司法证据事务,该司法证据事务可以具体为将某一司法案件在某一时间某一地点的案件证据的相关信息上传中司法证据链。
当检测到用户触发的第一区块链事务后,第一设备通过客户端进程从对应的归属区块链中,确定第一区块链事务对应的第一区块链。具体的,若检测到第一区块链事务的客户端进程仅对应一个区块链节点进程,则将该区块链节点进程对应的归属区块链确定为第一区块链事务对应的第一区块链。若检测到第一区块链事务的客户端进程对应多个区块链节点进程,根据第一区块链事务的相关信息确定第一区块链事务对应的第一区块链。
一种实现方式中,第一区块链事务为通过第一节点标识对应的区块链节点进程向第二节点标识的区块链节点进程转移虚拟资产数据的事务,第一设备可以从预存的各个归属区块链的区块链标识与各个归属区块链中所有区块链节点进程的节点标识的对应关系中,确定第一节点标识和第二节点标识对应的第一区块链标识,进而将第一区块链标识对应的归属区块链确定为第一区块链。这里的区块链标识可以是区块链建立时为区块链分配的唯一的ChainID(链标识),区块链节点进程的节点标识可以是区块链节点加入区块链时为区块链节点分配的唯一的NodeID(节点标识)。
另一种实现方式中,第一区块链事务为将第一供应链节点针对目标商品的商品运输信息上传至溯源区块链的事务,第一设备获取目标商品的商品类型,根据预设的商品类型与归属区块链的区块链标识的对应关系,确定目标商品的商品类型对应的第二区块链标识,将所述第二区块链标识对应的归属区块链确定为第一区块链。例如,预设的商品类型与归属区块链的区块链标识的对应关系为:药品类型对应ChainID1、生鲜类食品对应ChainID2、加工类食品对应ChainID3,若目标商品的商品类型为药品类型,则ChainID1对应的归属区块链为第一区块链。
S102,所述第一设备通过所述第一区块链对应的第一区块链节点进程,获取所述第一区块链节点进程的第一进程配置文件。
其中,第一进程配置文件中包含所述第一区块链中各个区块链节点进程的节点进程套接字,节点进程套接字由第一区块链中各个区块链节点进程的节点进程IP地址和节点进程端口号得到。例如,某一区块链节点进程的节点IP地址是10.12.12.1,节点进程端口号为10,该区块链进程节点的节点进程套接字可以通过10.12.12.1:10的形式表示。
所述第一区块链进程对应的第一进程配置文件是可以是由用户直接配置给第一设备的,若第一设备是基于BaaS(Blockchain as a Service,区块链即服务)平台管理的区块链设备,用户可以直接将第一区块链中各个区块链节点进程的节点进程套接字提交给BaaS平台,BaaS平台根据用户提交的节点进程套接字生成第一区块链节点进程的第一进程配置文件,进而在第一设备中部署了第一区块链节点进程后,BaaS平台将第一进程配置文件配置发送给第一设备。
S103,基于第一套接字与所述第一区块链中各个区块链节点进程的节点进程套接字,所述第一设备通过所述第一区块链节点进程建立与所述第一区块链中各个区块链节点进程之间的socket连接。
其中,第一套接字为根据所述第一区块链节点进程的节点进程IP地址和节点进程端口号生成的。第一区块链节点进程的节点进程IP地址可以为第一设备的IP地址,第一区块链节点进程的节点进程端口号为第一区块链节点进程在启动时,第一设备为第一区块链节点进程分配的端口号。进而第一区块链节点进程通过第一套接字与第一区块链中各个区块链节点进程的节点进程套接字,与第一区块链中的各个区块链节点进程建立socket连接,以第一区块链节点进程与第四区块链节点进程建立socket连接示例性介绍socket连接的介绍,第四区块链节点进程是第一区块链中第一区块链节点进程以外的任意一个区块链节点进程。
具体的,第四区块链进程的节点进程套接字处于监听状态,第一区块链节点进程的第一套接字生成后,第一区块链节点进程生成第一同步序列编码,并通过第一套接字向第四区块链进程的节点进程套接字,发送携带所述第一同步序列编码的连接请求,第一套接字处于监听状态;第四区块链节点进程对应的节点进程套接字监听到连接请求后,第四区块链节点进程将连接请求中的第一同步序列编码加1,得到第一同步确认编码,并生成第二同步序列编码,将携带第一同步确认编码和第二同步序列编码的连接响应消息,通过第四区块链节点进程的节点进程套接字,发送给第一套接字,第四区块链节点进程的节点进程套接字处于监听状态;第一套接字监听到第四区块链节点进程的节点进程套接字发送的连接响应消息后,第一区块链节点进程验证第一同步确认编码是否比第一同步序列编码的取值大1,若是,将第二同步序列编码加1得到第二同步确认编码,通过第一套接字将携带第二同步确认编码的连接确认消息发送给第四区块链节点进程的节点进程套接字,第一套接字处于监听状态;第四区块链节点进程的节点进程套接字监听到第一套接字发送的连接确认消息后,验证第二同步确认编码是否比第二同步序列编码的取值大1,若是,第四区块链节点进程通过自身的节点进程套接字向第一套接字返回确认消息,第一区块链节点进程与第四区块链节点进程之间的socket连接建立完成。
另一种实现方式中第一区块链节点进程与第四区块链节点进程之间的socket连接也可以是第四区块链节点进程主动发起的,可参考上述过程,不再具体赘述。
S104,所述第一设备通过所述第一区块链节点进程针对所述第一区块链事务生成事务区块,并通过所述socket连接将所述事务区块发送给所述第一区块链中的各个区块链节点进程。
具体的,第一区块链可以为基于Raft共识机制(一种分布式共识机制)的区块链,第一区块链中的各个区块链节点进程有各自随机的竞选倒计时,竞选倒计时未结束的区块链节点进程为随从节点进程,竞选倒计时结束的区块链节点进程为竞选节点进程,竞选节点进程可以向其他区块链节点进程发送选举成为领导节点进程的竞选请求,在接收到第一区块链中一半以上的区块链节点进程响应所述竞选请求,返回竞选支持信息后,发送竞选请求的竞选节点进程成为第一区块链中的领导节点进程。
这里,所述第一设备可以通过所述第一区块链节点进程确定第一区块链中的领导节点进程,在所述第一区块链节点进程为当前第一区块链中的领导节点进程的情况下,通过所述第一区块链节点进程针对第一区块链事务生成事务区块,并通过socket连接将事务区块发送给第一区块链中的各个区块链节点进程。若当前第一区块链中的领导节点进程为其他区块链节点进程,则第一设备通过第一区块链节点进程通过socket连接将第一区块链事务发送给领导节点进程,由领导节点进程生成第一区块链事务对应的事务区块,并由领导节点进程将第一区块链事务对应的事务区块发送给包括第一区块链节点进程的第一区块链的所有区块链节点进程进行共识验证,并在共识验证通过的情况下,将事务区块上链至第一区块链。
第一区块链事务生成事务区块中包含区块头和区块体,第一区块链事务的相关事务信息包含在事务区块的区块体中。例如,第一区块链事务为虚拟资产转移的资产事务,资产事务相关事务信息包括虚拟资产的转出区块链节点进程对应的节点标识、虚拟资产的转入区块链节点进程对应的节点标识、虚拟资产转移数量,以及虚拟资产的转出区块链节点进程对资产事务的数字签名等;又如,第一区块链事务为将某一司法案件的案件证据的相关信息上链的司法证据事务,司法证据事务的相关信息事务信息包括案件证据的相关信息以及案件证据的相关信息上传者对司法事务的数字签名等。事务区块的区块头中包含事务区块的区块号、生成时间、版本、父区块哈希值、本区块的区块哈希值等数据。
第一设备通过第一区块链进程将事务区块发送给第一区块链中的各个区块链节点进程后,所述第一区块链中的各个区块链节点进程对事务区块进行共识验证,并在共识验证通过后向所述第一区块链节点进程返回共识确认信息。这里,第一区块链中各个区块链节点进程对事务区块进行的共识验证可以包括对区块的生成时间、区块头中父结点的哈希值、区块体中的第一区块链事务的相关信息等进行验证。在验证通过后第一区块链中各个区块链节点进程可以生成携带自身数字签名的共识确认信息返回给第一区块链节点进程。
S105,所述第一设备在通过所述第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,所述第一设备通过所述第一区块链节点进程将所述事务区块作为所述第一区块链当前最大区块高度的区块添加至所述第一区块链。
这里预设的共识策略可以为接收到的共识确认消息超过预设数量的情况下,或者超过第一区块链中区块链节点进程总数的预设百分比的情况下,确定共识验证成功,即事务区块得到了第一区块链中区块链节点进程的共识,那么第一设备通过第一区块链节点进程,将事务区块添加至第一区块链。
一种可选的实现方式中,在第一设备中部署的至少两个区块链节点进程中包括第二区块链节点进程,第二区块链节点进程为第一区块链以外的节点进程,即第二区块链节点进程不参与第一区块链的账本维护,假设第二区块链节点进程是第二区块链的区块链节点进程,通常情况下,第二区块链节点进程不具备访问第一区块链的账本数据的权限,但在一些特殊的应用场景下,如,第一区块链为商品生产流程链,第二区块链为商品溯源链,那么在第二区块链的账本数据维护过程中,需要用到商品生产流程链中商品在生产过程中的信息,进行共识验证等,若第二区块链中的第二区块链节点进程为第二区块链中的共识节点进程,那么就需要从第一区块链的区块链节点进程中获取第一区块链的账本数据。为了解决权限控制的问题,这里,可以通过客户端进程对第二区块链节点进程的权限进程把控。
举例来说,参见图3,图3为本发明实施例提供的一种区块链部署示例图,如图所示,第一设备中部署的区块链节点进程包括第一区块链节点进程和第二区块链节点进程,第一区块链节点进程、第二设备中部署的区块链节点进程a、第三设备中部署的区块链节点进程b、第四设备中部署的区块链节点进程c为第一区块链中的区块链节点进程,共同维护第一区块链的账本数据;第一设备中部署的第二区块链节点进程、第五设备中部署的区块链节点进程d、第六设备中部署的区块链节点进程e、第七设备中部署的区块链节点进程f为第二区块链中的区块链节点进程,共同维护第二区块链的账本数据。那么在图3对应的示例中,第二区块链节点进程不具备访问第一区块链中账本数据的权限,若向访问第一区块链中的账本数据,需要通过客户端进程进行权限鉴定。
具体的,第一设备可以通过客户端进程接收第二区块链节点进程发送的事务获取请求,事务获取请求中携带第一区块链事务的事务标识,以及第二区块链节点进程对应的节点进程权限信息,通过所述客户端进程,根据节点进程权限信息,对第二区块链节点进程获取第一区块链事务的权限进行验证,例如,节点进程权限信息为第二区块链节点进程的进程标识,包括IP地址和端口号等,客户端进程可以判断预存的授权访问第一区块链账本数据的进程标识中是否包括第二区块链节点进程的进程标识,来判断验证是否通过。在验证通过的情况下,第一设备通过第一区块链节点进程,根据第一区块链事务的事务标识,获取第一区块链事务对应的事务区块,并从事务区块中提取第一区块链事务;通过客户端进程将第一区块链事务返回第二区块链节点进程。通过上述过程,实现了不同区块链节点进程对第一区块链账本数据的访问,满足了业务需求,同时又保证了未被授权的区块节点进程无法访问第一区块链的账本数据,保证了第一区块链账本数据的安全性。
本发明实施例中,第一设备通过客户端进程检测到用户触发的第一区块链事务后,从第一设备的至少两个归属区块链中确定第一区块链事务对应的第一区块链,然后通过第一区块链在第一设备中对应的第一区块链节点进程,获取第一区块链节点进程的第一进程配置文件,并基于由第一区块链接点进程的节点进程IP地址和节点进程端口号生成的第一套接字,以及第一进程配置文件中的由各个区块链节点进程的节点进程IP地址和节点进程端口号得到的各个区块链节点进程的节点进程套接字,建立第一区块链节点进程与第一区块链中各个区块链节点进程之间的socket连接,进而通过第一区块链节点进程针对第一区块链事务生成事务区块,并通过socket连接将事务区块发送给第一区块链中各个区块链节点进程进行共识验证,在共识验证通过后向第一区块链节点进程返回共识确认信息,从而第一设备在通过第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,通过第一区块链节点进程将事务区块作为第一区块链当前最大区块高度的区块添加至第一区块链。通过不同的区块链节点进程,实现在第一设备中部署对应不同归属区块链的多个区块链节点,同时通过客户端进程对针对不同区块链的上链事务进行识别管理,保证了在第一设备部署的不同区块链节点的正常运行。
参加图4,图4为本发明实施例提供的另一种区块链信息处理方法的流程示意图,如图所示,所述方法可以包括:
S201,第一设备在通过客户端进程检测到用户触发的第一区块链事务后,从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链。
所述归属区块链为在所述第一设备中部署的至少两个区块链节点进程各自归属的不同的区块链。第一区块链事务可以携带自身的事务标识,第一设备通过所述客户端进程存储事务标识与第一区块链的区块链标识的对应关系。第一区块链为资产事务时,资产事务的事务标识可以为虚拟资产的转出区块链节点进程对应的节点标识以及用户触发资产事务的时间戳,第一区块链为司法证据事务时,司法证据事务可以为司法证据对应的案件标识以及触发司法证据事务的时间戳。
S202,所述第一设备通过所述第一区块链对应的第一区块链节点进程,获取所述第一区块链节点进程的第一进程配置文件。
所述第一进程配置文件中包含所述第一区块链中各个区块链节点进程的节点进程套接字,所述节点进程套接字由所述第一区块链中各个区块链节点进程的节点进程IP地址和节点进程端口号得到。
S203,基于第一套接字与所述第一区块链中各个区块链节点进程的节点进程套接字,所述第一设备通过所述第一区块链节点进程建立与所述第一区块链中各个区块链节点进程之间的socket连接。
所述第一套接字为根据所述第一区块链节点进程的节点进程IP地址和节点进程端口号生成的。
S204,所述第一设备通过所述第一区块链节点进程针对所述第一区块链事务生成事务区块,并通过所述socket连接将所述事务区块发送给所述第一区块链中的各个区块链节点进程。
所述第一区块链中的各个区块链节点进程对所述事务区块进行共识验证,并在共识验证通过后向所述第一区块链节点进程返回共识确认信息。
S205,所述第一设备在通过所述第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,所述第一设备通过所述第一区块链节点进程将所述事务区块作为所述第一区块链当前最大区块高度的区块添加至所述第一区块链。
这里,第一设备通过第一区块链节点进程将第一区块链事务的事务区块添加至第一区块链后,记录第一区块链事务的事务标识与第一区块链事务的事务区块在第一区块链中区块高度的对应关系。
第一设备通过第一区块链节点进程存储第一区块链的各个区块,第一区块链的各个区块的区块头和区块体在存储时,分别存储在第一设备为第一区块链节点进程分配的键-值(key-value)数据库中,区块头和区块体有各自对应的键-值对。其中,在第一设备为第一区块链节点进程分配的键-值(key-value)数据库中,区块体对应的key包含区块体前缀“b”、区块64位大端格式的区块高度以及区块的哈希(hash)值;区块体对应的value包含区块体经过RLP(Recursive Length Prefix,递归长度前缀)编码后的序列码。
步骤S201~步骤S205的实现方式可以参加图1对应的实施例中步骤S101~步骤S105的具体实现方式,此处不再赘述。
S206,所述第一设备通过所述客户端进程接收用户针对所述第一区块链事务的查询请求。
其中,所述查询请求中携带第一区块链事务的事务标识。
S207,所述第一设备在通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述第一区块链节点进程获取所述事务区块在所述第一区块链中的事务区块高度。
第一设备通过客户端进程提取查询请求中携带的事务标识,根据事务标识确定第一区块链事务在第一设备的归属区块链中对应的区块链,在查询到预先存储的事务标识与第一区块链的区块链标识的对应关系后,确定第一区块链事务对应的事务区块存储在第一区块链。然后,客户端进程将第一区块链事务的事务标识发送给第一区块链节点进程,第一区块链节点进程根据预先记录的第一区块链事务的事务标识与第一区块链事务的事务区块在第一区块链中区块高度的对应关系,获取事务区块在第一区块链中的事务区块高度。
一种实现方式中,客户端进程与第一区块链节点进程之间可以通过管道技术进行通信,实现事务请求中包含事务标识的传输,具体的,第一设备首先建立客户端进程与第一区块链节点进程之间的通信管道,生成通信管道对应的管道文件描述符对,管道描述符对包含写入端管道描述符和读取端管道描述符,并将写入端管道描述符分配给客户端进程,将读取端管道描述符分配给第一区块链节点进程,进而客户端进程将事务请求中包含的事务标识写入分配的写入端管道描述符,第一区块链节点进程将基于建立的通信管道,从对应的读取端管道描述符读取事务请求中包含的事务标识,并根据读取的事务标识获取对应的事务区块高度。
S208,所述第一设备通过所述第一区块链节点进程获取所述事务区块高度对应的区块,提取所述事务区块高度对应的区块中包含的第一区块链事务。
这里,第一设备通过第一区块链节点进程获取到第一区块链事务对应的事务区块高度后,在存储第一区块链的区块体的键-值数据库中,检索包含第一区块链事务对应的事务区块高度,且前缀为区块体前缀“b”的key对应的value,将检索得到的value经过RLP解码后,得到第一区块链事务。
S209,所述第一设备通过所述客户端进程向用户返回所述第一区块链事务。
这里,第一设备通过第一区块链节点进程获取第一区块链事务后,第一区块链进程可以基于管道技术将第一区块链事务发送给客户端进程,使第一设备通过客户端进程向用户返回第一区块链事务。这里第一区块链进程向客户端进程返回第一区块链事务使用的通信管道,与步骤S207中客户端进程向第一区块链进程发送事务请求中包含的事务标识所使用的通信管道不为同一个管道,这里,第一区块链事务对应的通信管道在建立完成后所生成的管道文件描述符对中,写入端管道描述符分配给第一区块链节点进程,读取端管道描述符分配给客户端进程。
本发明实施例中,通过不同的区块链进程实现在第一设备中部署对应不同归属区块链的多个区块链节点,同时通过客户端进程对针对不同区块链的上链事务进行识别管理,保证了在第一设备部署的不同区块链节点的正常事务上链。在用户请求第一区块链事务时,通过客户端进程对第一区块链事务对应的第一区块链进行识别,通过第一区块链进程获取第一区块链上第一区块链事务的事务区块,并提取事务区块中的第一区块链事务,进而通过客户端进程向用户返回第一区块链进程获取到的第一区块链事务。实现了在第一设备部署的不同区块链节点的账本数据的正常读取。
参见图5,图5为本发明实施例提供的一种区块链信息处理装置的结构示意图,如图所示,所述装置50至少可以包括区块链确定模块501、配置文件获取模块502、进程连接模块503、区块生成模块504和记账模块505,其中:
区块链确定模块501,用于在通过客户端进程检测到用户触发的第一区块链事务后,从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链,所述归属区块链为在所述第一设备中部署的至少两个区块链节点进程各自归属的不同的区块链;
配置文件获取模块502,用于通过所述第一区块链对应的第一区块链节点进程,获取所述第一区块链节点进程的第一进程配置文件,所述第一进程配置文件中包含所述第一区块链中各个区块链节点进程的节点进程套接字,所述节点进程套接字由所述第一区块链中各个区块链节点进程的节点进程IP地址和节点进程端口号得到;
进程连接模块503,用于基于第一套接字与所述第一区块链中各个区块链节点进程的节点进程套接字,通过所述第一区块链节点进程建立与所述第一区块链中各个区块链节点进程之间的socket连接,所述第一套接字为根据所述第一区块链节点进程的节点进程IP地址和节点进程端口号生成的;
区块生成模块504,用于通过所述第一区块链节点进程针对所述第一区块链事务生成事务区块,并通过所述socket连接将所述事务区块发送给所述第一区块链中的各个区块链节点进程,以使所述第一区块链中的各个区块链节点进程对所述事务区块进行共识验证,并在共识验证通过后向所述第一区块链节点进程返回共识确认信息;
记账模块505,用于在通过所述第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,所述第一设备通过所述第一区块链节点进程将所述事务区块作为所述第一区块链当前最大区块高度的区块添加至所述第一区块链。
可选的,所述至少两个归属区块链对应不同的区块链类别,所述第一设备的客户端进程包括属于不同的客户端类别的至少两个客户端进程;
所述区块链确定模块501,还用于:
确定所述归属区块链各自对应的区块链类别;
根据所述归属区块链各自对应的区块链类别,从所述归属区块链中,确定与目标客户端类别的客户端进程匹配的至少一个目标区块链,所述目标客户端类别为所述第一设备的客户端进程对应的任意一个客户端类别;
将所述至少一个目标区块链在所述第一设备中对应的区块链节点进程,作为所述目标客户端类别的客户端进程的子进程,部署在所述第一设备中。
可选的,所述第一区块链事务为通过第一节点标识对应的区块链节点进程向第二节点标识对应的区块链节点进程转移虚拟资产数据的事务;
所述区块链确定模块501具体用于:
从预存的各个所述归属区块链的区块链标识与各个所述归属区块链中所有区块链节点进程的节点标识的对应关系中,确定所述第一节点标识和所述第二节点标识对应的第一区块链标识;
将所述第一区块链标识对应的归属区块链确定为所述第一区块链。
可选的,所述装置50还包括:
请求接收模块506,用于通过所述客户端进程接收用户针对所述第一区块链事务的查询请求;
区块高度确定模块507,用于在通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述第一区块链节点进程获取所述事务区块在所述第一区块链中的事务区块高度;
事务获取模块508,用于通过所述第一区块链节点进程获取所述事务区块高度对应的区块,提取所述事务区块高度对应的区块中包含的第一区块链事务;
事务返回模块509,用于通过所述客户端进程向用户返回所述第一区块链事务。
其中,所述装置50还包括管道建立模块510,用于:
建立所述客户端进程与所述第一区块链节点进程之间的通信管道,生成通信管道对应的管道文件描述符对,所述管道文件描述符对包含写入端管道描述符和读取端管道描述符;
将所述写入端管道描述符分配给所述客户端进程,将所述读取端管道描述符分配给所述第一区块链节点进程;
所述区块高度确定模块504具体用于:
通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述客户端进程将所述第一区块链事务对应的事务标识写入所述写入端管道描述符;
通过所述第一区块链节点进程基于所述通信管道,从所述读取端管道描述符读取所述第一区块链事务的事务标识,并根据所述第一区块链事务的事务标识,获取所述事务区块高度。
其中,所述装置50还包括中继模块511,用于:
通过所述客户端进程接收第二区块链节点进程发送的事务获取请求,所述事务获取请求中携带所述第一区块链事务的事务标识,以及所述第二区块链节点进程对应的节点进程权限信息,所述第二区块链节点进程为所述第一区块链以外的节点进程;
通过所述客户端进程,根据所述节点进程权限信息,对所述第二区块链节点进程获取所述第一区块链事务的权限进行验证;
在验证通过的情况下,通过所述第一区块链节点进程,根据所述第一区块链事务的事务标识,获取所述第一区块链事务对应的事务区块,并从所述事务区块中提取所述第一区块链事务;
通过所述客户端进程将所述第一区块链事务返回所述第二区块链节点进程。
其中,所述装置还包括资源均衡模块512,用于:
接收针对第三区块链节点进程的部署指令,所述部署指令中携带所述第三区块链节点进程对应的区块链节点脚本以及所述第三区块链节点进程的系统资源需求信息;
获取所述第一设备中部署的各个区块链节点进程的系统资源占用信息;
若在根据所述系统资源占用信息和系统资源需求信息,确定在所述第三区块链节点进程启动的情况下系统资源的占用率未达到占用率阈值,则加载所述区块链节点脚本启动所述第三区块链节点进程。
具体实现中,所述区块链信息处理装置50可以通过其内置的各个功能模块执行如图1和图4的区块链信息处理方法中执行的各个步骤,具体实施细节可参阅图1和图4对应的实施例中各个步骤的实现细节,此处不再赘述。
本发明实施例中,区块链确定模块通过客户端进程检测到用户触发的第一区块链事务后,从第一设备的至少两个归属区块链中确定第一区块链事务对应的第一区块链,然后配置文件获取模块第一区块链节点进程,获取第一区块链节点进程的第一进程配置文件,进程连接模块基于由第一区块链接点进程的节点进程IP地址和节点进程端口号生成的第一套接字,以及第一进程配置文件中的由各个区块链节点进程的节点进程IP地址和节点进程端口号得到的各个区块链节点进程的节点进程套接字,建立第一区块链节点进程与第一区块链中各个区块链节点进程之间的socket连接,进而区块生成模块通过第一区块链节点进程针对第一区块链事务生成事务区块,并通过socket连接将事务区块发送给第一区块链中各个区块链节点进程进行共识验证,在共识验证通过后向第一区块链节点进程返回共识确认信息,从而记账模块在通过第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,通过第一区块链节点进程将事务区块作为第一区块链当前最大区块高度的区块添加至第一区块链。通过不同的区块链节点进程,实现在第一设备中部署对应不同归属区块链的多个区块链节点,同时通过客户端进程对针对不同区块链的上链事务进行识别管理,保证了在第一设备部署的不同区块链节点的正常运行。
参见图6,图6是本发明实施例提供的另一种区块链信息处理装置的结构示意图。如图6所示,所述区块链信息处理装置60可以包括:至少一个处理器601,例如CPU,至少一个网络接口604,用户接口603,存储器605,至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,用户接口603可以包括显示屏(Display)、键盘(Keyboard),可选用户接口603还可以包括标准的有线接口、无线接口。网络接口604可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器605可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器605可选地还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图6所示的区块链信息处理装置60中,网络接口604主要用于连接部署归属区块链中的其他区块链节点进程的设设备;而用户接口603主要用于为用户提供输入的接口;而处理器601可以用于调用存储器605中存储的设备控制应用程序,以实现:
在通过客户端进程检测到用户触发的第一区块链事务后,从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链,所述归属区块链为在所述第一设备中部署的至少两个区块链节点进程各自归属的不同的区块链;
通过所述第一区块链对应的第一区块链节点进程,获取所述第一区块链节点进程的第一进程配置文件,所述第一进程配置文件中包含所述第一区块链中各个区块链节点进程的节点进程套接字,所述节点进程套接字由所述第一区块链中各个区块链节点进程的节点进程IP地址和节点进程端口号得到;
基于第一套接字与所述第一区块链中各个区块链节点进程的节点进程套接字,通过所述第一区块链节点进程建立与所述第一区块链中各个区块链节点进程之间的socket连接,所述第一套接字为根据所述第一区块链节点进程的节点进程IP地址和节点进程端口号生成的;
通过所述第一区块链节点进程针对所述第一区块链事务生成事务区块,并通过所述socket连接将所述事务区块发送给所述第一区块链中的各个区块链节点进程,以使所述第一区块链中的各个区块链节点进程对所述事务区块进行共识验证,并在共识验证通过后向所述第一区块链节点进程返回共识确认信息;
在通过所述第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,所述第一设备通过所述第一区块链节点进程将所述事务区块作为所述第一区块链当前最大区块高度的区块添加至所述第一区块链。
应当理解,本发明实施例中所描述的区块链信息处理装置60可执行前文图1和图4所对应实施例中对所述区块链信息处理方法的描述,也可执行前文图5所对应实施例中对所述区块链信息处理50的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的区块链信息处理装置50所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图1和图4所对应实施例中对所述区块链信息处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种区块链信息处理方法,其特征在于,包括:
第一设备在通过客户端进程检测到用户触发的第一区块链事务后,从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链,所述归属区块链为在所述第一设备中部署的至少两个区块链节点进程各自归属的不同的区块链;
所述第一设备通过所述第一区块链对应的第一区块链节点进程,获取所述第一区块链节点进程的第一进程配置文件,所述第一进程配置文件中包含所述第一区块链中各个区块链节点进程的节点进程套接字,所述节点进程套接字由所述第一区块链中各个区块链节点进程的节点进程IP地址和节点进程端口号得到;
基于第一套接字与所述第一区块链中各个区块链节点进程的节点进程套接字,所述第一设备通过所述第一区块链节点进程建立与所述第一区块链中各个区块链节点进程之间的socket连接,所述第一套接字为根据所述第一区块链节点进程的节点进程IP地址和节点进程端口号生成的;
所述第一设备通过所述第一区块链节点进程针对所述第一区块链事务生成事务区块,并通过所述socket连接将所述事务区块发送给所述第一区块链中的各个区块链节点进程,以使所述第一区块链中的各个区块链节点进程对所述事务区块进行共识验证,并在共识验证通过后向所述第一区块链节点进程返回共识确认信息;
所述第一设备在通过所述第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,所述第一设备通过所述第一区块链节点进程将所述事务区块作为所述第一区块链当前最大区块高度的区块添加至所述第一区块链。
2.根据权利要求1所述的方法,其特征在于,所述至少两个归属区块链对应不同的区块链类别,所述第一设备的客户端进程包括属于不同的客户端类别的至少两个客户端进程;
所述方法还包括:
所述第一设备确定所述归属区块链各自对应的区块链类别;
所述第一设备根据所述归属区块链各自对应的区块链类别,从所述归属区块链中,确定与目标客户端类别的客户端进程匹配的至少一个目标区块链,所述目标客户端类别为所述第一设备的客户端进程对应的任意一个客户端类别;
所述第一设备将所述至少一个目标区块链在所述第一设备中对应的区块链节点进程,作为所述目标客户端类别的客户端进程的子进程,部署在所述第一设备中。
3.根据权利要求1所述的方法,其特征在于,所述第一区块链事务为通过第一节点标识对应的区块链节点进程向第二节点标识对应的区块链节点进程转移虚拟资产数据的事务;
所述从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链包括:
所述第一设备从预存的各个所述归属区块链的区块链标识与各个所述归属区块链中所有区块链节点进程的节点标识的对应关系中,确定所述第一节点标识和所述第二节点标识对应的第一区块链标识;
所述第一设备将所述第一区块链标识对应的归属区块链确定为所述第一区块链。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一设备通过所述客户端进程接收用户针对所述第一区块链事务的查询请求;
所述第一设备在通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述第一区块链节点进程获取所述事务区块在所述第一区块链中的事务区块高度;
所述第一设备通过所述第一区块链节点进程获取所述事务区块高度对应的区块,提取所述事务区块高度对应的区块中包含的第一区块链事务;
所述第一设备通过所述客户端进程向用户返回所述第一区块链事务。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第一设备建立所述客户端进程与所述第一区块链节点进程之间的通信管道,生成通信管道对应的管道文件描述符对,所述管道文件描述符对包含写入端管道描述符和读取端管道描述符;
所述第一设备将所述写入端管道描述符分配给所述客户端进程,将所述读取端管道描述符分配给所述第一区块链节点进程;
所述第一设备在通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述第一区块链节点进程获取所述事务区块在所述第一区块链中的事务区块高度包括:
所述第一设备通过所述客户端进程确定所述第一区块链事务对应的事务区块存储在所述第一区块链后,通过所述客户端进程将所述第一区块链事务对应的事务标识写入所述写入端管道描述符;
所述第一设备通过所述第一区块链节点进程基于所述通信管道,从所述读取端管道描述符读取所述第一区块链事务的事务标识,并根据所述第一区块链事务的事务标识,获取所述事务区块高度。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一设备通过所述客户端进程接收第二区块链节点进程发送的事务获取请求,所述事务获取请求中携带所述第一区块链事务的事务标识,以及所述第二区块链节点进程对应的节点进程权限信息,所述第二区块链节点进程为所述第一区块链以外的节点进程;
所述第一设备通过所述客户端进程,根据所述节点进程权限信息,对所述第二区块链节点进程获取所述第一区块链事务的权限进行验证;
在验证通过的情况下,所述第一设备通过所述第一区块链节点进程,根据所述第一区块链事务的事务标识,获取所述第一区块链事务对应的事务区块,并从所述事务区块中提取所述第一区块链事务;
所述第一设备通过所述客户端进程将所述第一区块链事务返回所述第二区块链节点进程。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一设备接收针对第三区块链节点进程的部署指令,所述部署指令中携带所述第三区块链节点进程对应的区块链节点脚本以及所述第三区块链节点进程的系统资源需求信息;
所述第一设备获取所述第一设备中部署的各个区块链节点进程的系统资源占用信息;
若所述第一设备在根据所述系统资源占用信息和系统资源需求信息,确定在所述第三区块链节点进程启动的情况下系统资源的占用率未达到占用率阈值,则加载所述区块链节点脚本启动所述第三区块链节点进程。
8.一种区块链信息处理装置,其特征在于,包括:
区块链确定模块,用于在通过客户端进程检测到用户触发的第一区块链事务后,从所述第一设备对应的至少两个归属区块链中,确定所述第一区块链事务对应的第一区块链,所述归属区块链为在所述第一设备中部署的至少两个区块链节点进程各自归属的不同的区块链;
配置文件获取模块,用于通过所述第一区块链对应的第一区块链节点进程,获取所述第一区块链节点进程的第一进程配置文件,所述第一进程配置文件中包含所述第一区块链中各个区块链节点进程的节点进程套接字,所述节点进程套接字由所述第一区块链中各个区块链节点进程的节点进程IP地址和节点进程端口号得到;
进程连接模块,用于基于第一套接字与所述第一区块链中各个区块链节点进程的节点进程套接字,通过所述第一区块链节点进程建立与所述第一区块链中各个区块链节点进程之间的socket连接,所述第一套接字为根据所述第一区块链节点进程的节点进程IP地址和节点进程端口号生成的;
区块生成模块,用于通过所述第一区块链节点进程针对所述第一区块链事务生成事务区块,并通过所述socket连接将所述事务区块发送给所述第一区块链中的各个区块链节点进程,以使所述第一区块链中的各个区块链节点进程对所述事务区块进行共识验证,并在共识验证通过后向所述第一区块链节点进程返回共识确认信息;
记账模块,用于在通过所述第一区块链节点进程接收到的共识确认信息满足预设的共识策略的情况下,所述第一设备通过所述第一区块链节点进程将所述事务区块作为所述第一区块链当前最大区块高度的区块添加至所述第一区块链。
9.一种区块链信息处理装置,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911130834.3A CN110855688B (zh) | 2019-11-18 | 2019-11-18 | 一种区块链信息处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911130834.3A CN110855688B (zh) | 2019-11-18 | 2019-11-18 | 一种区块链信息处理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110855688A true CN110855688A (zh) | 2020-02-28 |
CN110855688B CN110855688B (zh) | 2021-06-25 |
Family
ID=69602194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911130834.3A Active CN110855688B (zh) | 2019-11-18 | 2019-11-18 | 一种区块链信息处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110855688B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506783A (zh) * | 2020-04-08 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111641715A (zh) * | 2020-05-29 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 基于区块链的数据处理方法、装置、设备及介质 |
CN113259459A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 区块链子网运行状态的控制方法和区块链系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967677A (zh) * | 2015-06-05 | 2015-10-07 | 无锡量子云数字新媒体科技有限公司 | 一种基于ndn缓存优化的文件传输方法以及装置 |
CN106101242A (zh) * | 2016-06-24 | 2016-11-09 | 深圳前海微众银行股份有限公司 | 区块链云服务平台的构建方法和装置 |
US20170076286A1 (en) * | 2015-09-11 | 2017-03-16 | Bank Of America Corporation | Controlling access to data |
CN108027867A (zh) * | 2015-07-14 | 2018-05-11 | Fmr有限责任公司 | 计算高效的转账处理、审计以及搜索装置、方法和系统 |
CN108696578A (zh) * | 2018-04-26 | 2018-10-23 | 昆明理工大学 | 基于ZeroMQ的多机分布式计算的通信框架设计方法 |
US10200196B1 (en) * | 2018-04-25 | 2019-02-05 | Blockchain Asics Llc | Cryptographic ASIC with autonomous onboard permanent storage |
CN109492983A (zh) * | 2018-09-26 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 基于区块链智能合约的电子印章签署方法和装置 |
CN109509288A (zh) * | 2017-09-15 | 2019-03-22 | 松下电器(美国)知识产权公司 | 电子投票系统和控制方法 |
CN110249307A (zh) * | 2018-12-29 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 用于在区块链上执行原生合约的系统和方法 |
-
2019
- 2019-11-18 CN CN201911130834.3A patent/CN110855688B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967677A (zh) * | 2015-06-05 | 2015-10-07 | 无锡量子云数字新媒体科技有限公司 | 一种基于ndn缓存优化的文件传输方法以及装置 |
CN108027867A (zh) * | 2015-07-14 | 2018-05-11 | Fmr有限责任公司 | 计算高效的转账处理、审计以及搜索装置、方法和系统 |
US20170076286A1 (en) * | 2015-09-11 | 2017-03-16 | Bank Of America Corporation | Controlling access to data |
CN106101242A (zh) * | 2016-06-24 | 2016-11-09 | 深圳前海微众银行股份有限公司 | 区块链云服务平台的构建方法和装置 |
CN109509288A (zh) * | 2017-09-15 | 2019-03-22 | 松下电器(美国)知识产权公司 | 电子投票系统和控制方法 |
US10200196B1 (en) * | 2018-04-25 | 2019-02-05 | Blockchain Asics Llc | Cryptographic ASIC with autonomous onboard permanent storage |
CN108696578A (zh) * | 2018-04-26 | 2018-10-23 | 昆明理工大学 | 基于ZeroMQ的多机分布式计算的通信框架设计方法 |
CN109492983A (zh) * | 2018-09-26 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 基于区块链智能合约的电子印章签署方法和装置 |
CN110249307A (zh) * | 2018-12-29 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 用于在区块链上执行原生合约的系统和方法 |
Non-Patent Citations (1)
Title |
---|
宋文鹏等: "区块链在众筹平台中的应用", 《信息技术与标准化》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506783A (zh) * | 2020-04-08 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111506783B (zh) * | 2020-04-08 | 2023-12-22 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111641715A (zh) * | 2020-05-29 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 基于区块链的数据处理方法、装置、设备及介质 |
CN113259459A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 区块链子网运行状态的控制方法和区块链系统 |
CN113259459B (zh) * | 2021-06-02 | 2021-09-24 | 支付宝(杭州)信息技术有限公司 | 区块链子网运行状态的控制方法和区块链系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110855688B (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109949111B (zh) | 电子票据标识分配方法、电子票据生成方法、装置及系统 | |
CN110855791B (zh) | 一种区块链节点部署方法及相关设备 | |
CN110855688B (zh) | 一种区块链信息处理方法及相关设备 | |
CN111383021B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
CN108377272B (zh) | 一种管理物联网终端的方法及系统 | |
CN109447645B (zh) | 一种设备联动方法、区块链网络及存储介质 | |
US20230089134A1 (en) | Data communication method and apparatus, computer device, and storage medium | |
CN110149323B (zh) | 一种具有千万级tps合约处理能力的处理装置 | |
CN111597567B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN111476572A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN111461720B (zh) | 基于区块链的身份验证方法、装置、存储介质及电子设备 | |
CN113055176B (zh) | 终端认证方法和系统、终端设备、p2p验证平台和介质 | |
CN111740966A (zh) | 一种基于区块链网络的数据处理方法及相关设备 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN113255014B (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
CN110263579A (zh) | 一种数据处理方法、系统及相关设备 | |
CN112804354B (zh) | 跨链进行数据传输的方法、装置、计算机设备和存储介质 | |
CN109194651A (zh) | 一种身份认证方法、装置、设备及存储介质 | |
CN111932239B (zh) | 业务处理方法、装置、节点设备及存储介质 | |
CN106453349A (zh) | 账号登录方法及装置 | |
CN110619022B (zh) | 基于区块链网络的节点检测方法、装置、设备及存储介质 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN113765675B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN111327602B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40021513 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |