发明内容
基于此,有必要针对上述技术问题,提供一种能够有效提高区块链可用性的区块链集群处理系统和方法。
一种区块链集群处理系统,所述系统包括计算集群和存储集群,所述计算集群包括多个计算节点,所述存储集群包括内存数据库集群和磁盘数据库集群,所述内存数据库集群包括多个内存数据库,所述磁盘数据库集群包括多个磁盘数据库;所述计算集群在同一时刻只有一个计算节点工作,所内存数据库集群在同一时刻只有一个内存数据库工作,所述磁盘数据库在同一时刻只有一个磁盘数据库工作;当前工作的计算节点获取交易信息,对所述交易信息进行计算得到对应的区块链数据,将所述区块链数据写入内存数据库集群中当前工作的内存数据库,并且将所述区块链数据写入磁盘数据库集群中当前工作的磁盘数据库;当所述计算节点发生故障时,切换至所述计算集群中的其他计算节点继续工作;当所述内存数据库发生故障时,切换至所述内存数据库集群中的其他内存数据库继续工作;当所述磁盘数据库发生故障时,切换至所述磁盘数据库集群中的其他磁盘数据库继续工作。
在其中一个实施例中,所述计算集群包括多个,所述计算集群包括对应的机构标识,其中一个机构标识对应的计算集群的计算节点将交易信息发送至其他机构标识对应的计算集群运行中的计算节点进行共识,得到其他机构标识对应的计算集群返回的共识后的交易信息,所述计算节点利用共识后的交易信息进行计算,得到对应的区块链数据。
在其中一个实施例中,当所述计算节点将区块链数据写入内存数据库集群失败时,所述计算节点对区块链数据建立本地数据缓存,在内存数据库集群将写入失败的内存数据库切换至其他内存数据库后,所述计算节点将本地缓存的区块链数据写入切换后的内存数据库。
在其中一个实施例中,当所述计算节点将区块链数据写入磁盘数据库集群失败时,所述计算节点对区块链数据建立本地数据缓存,在磁盘数据库集群将写入失败的磁盘数据库切换至其他磁盘数据库后,所述计算节点将本地缓存的区块链数据写入切换后的磁盘数据库。
在其中一个实施例中,所述磁盘数据库集群包括写数据库集群和读数据库集群,所述写数据库集群接收计算节点写入的区块链数据并且进行存储,所述读数据库集群与所述写数据库集群保存区块链数据同步;当计算节点读取区块链数据时,在所述度数据库集群中进行读取。
在其中一个实施例中,所述系统还包括安全集群,所述安全集群包括多个安全节点,所述安全集群在同一时刻只运行一个安全节点;所述安全节点用于接收计算节点上传的验证信息,根据验证信息对区块链使用者的合法性进行验证;当所述安全节点发生故障时,切换至所述安全集群中的其他安全节点继续运行。
一种区块链集群处理方法,所述方法应用于计算集群,在同一时刻所述计算集群中只有一个计算节点工作,具体包括以下步骤:
获取交易信息,对所述交易信息进行计算,得到对应的区块链数据;
将所述区块链数据写入内存数据库集群,以使得所述内存数据库集群当前工作的一个内存数据库接收所述区块链数据并且进行存储;
将所述区块链数据写入磁盘数据库集群,以使得所述磁盘数据库集群当前工作的一个磁盘数据库接收所述区块链数据并且进行存储;
当所述计算节点发生故障时,切换至所述计算集群中的其他计算节点继续工作。
在其中一个实施例中,所述计算集群包括多个,所述计算集群包括对应的机构标识;在所述获取交易信息的步骤之后,还包括:
将所述交易信息发送至其他机构标识对应的计算集群运行中的计算节点,以使得其他计算集群对所述交易信息进行共识;
接收其他机构标识对应的计算集群返回的共识后的交易信息;
利用共识后的交易信息进行计算,得到对应的区块链数据。
在其中一个实施例中,所述方法还包括:
当区块链数据写入内存数据库集群失败时,对区块链数据建立本地数据缓存;
在内存数据库集群将写入失败的内存数据库切换至其他内存数据库后,将本地缓存的区块链数据写入切换后的内存数据库。
在其中一个实施例中,所述方法还包括:
当区块链数据写入磁盘数据库集群失败时,对区块链数据建立本地数据缓存,
在磁盘数据库集群将写入失败的磁盘数据库切换至其他磁盘数据库后,将本地缓存的区块链数据写入切换后的磁盘数据库。
上述区块链集群处理系统和方法,计算集群在同一时刻只有一个计算节点工作,该工作节点获取交易信息,对交易信息进行计算得到对应的区块链数据,并且将区块链数据写入内存数据库集群当前唯一工作的内存数据库进行存储,以及将区块链数据写入磁盘数据库集群当前唯一工作的磁盘数据库进行存储。当该计算节点发生故障时,切换至所述计算集群中的其他计算节点继续工作,由此通过对每个计算节点进行负载均衡处理和对区块链数据的一致性管理能够有效提高区块链中计算节点的可用性。当该内存数据库发生故障时,切换至所述内存数据库集群中的其他内存数据库继续工作,能够有效提高区块链中内存数据库的可用性。当该磁盘数据库发生故障时,切换至所述磁盘数据库集群中的其他磁盘数据库继续工作,能够有效提高区块链中磁盘数据库的可用性。由于区块链中计算节点和存储节点的可用性均得到有效提高,因此,区块链整体的可用性得到有效提高。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在一个实施例中,如图1所示,提供了一种区块链集群处理系统,包括计算集群和存储集群,计算集群包括多个计算节点,存储集群包括内存数据库集群和磁盘数据库集群,内存数据库集群包括多个内存数据库,磁盘数据库集群包括多个磁盘数据库;计算集群在同一时刻只有一个计算节点工作,所内存数据库集群在同一时刻只有一个内存数据库工作,磁盘数据库在同一时刻只有一个磁盘数据库工作;当前工作的计算节点获取交易信息,对交易信息进行计算得到对应的区块链数据,将区块链数据写入内存数据库集群中当前工作的内存数据库,并且将区块链数据写入磁盘数据库集群中当前工作的磁盘数据库;当计算节点发生故障时,切换至计算集群中的其他计算节点继续工作;当内存数据库发生故障时,切换至内存数据库集群中的其他内存数据库继续工作;当磁盘数据库发生故障时,切换至磁盘数据库集群中的其他磁盘数据库继续工作。
计算集群包括多个计算节点。计算集群可以是按照预设规则来划分的,例如,预设规则可以是将同属于一个机构标识的多个计算节点组成一个计算集群。计算集群可以包括两个或两个以上的服务器节点。计算集群可以通过一个虚拟地址对区块链提供服务。计算集群在同一时刻只有一个计算节点在工作,其他计算节点保持待机状态。工作中的计算节点获取交易信息,对交易信息进行计算,计算得到对应的区块链数据。区块链数据包括交易执行结果和交易日志等。
存储集群包括内存数据库集群和磁盘数据库集群。存储集群也可以按照预设规则来划分。内存数据库集群包括多个内存数据库,磁盘数据库集群包括多个磁盘数据库。内存数据库和磁盘数据库也可以统称为区块链的存储节点。内存数据库集群在同一时刻只有一个内存数据库工作,其他内存数据库保持待机状态。磁盘数据库集群在同一时刻只有一个磁盘数据库工作,其他磁盘数据库保持待机状态。内存数据库集群中的多个内存数据库通过数据复制保持数据一致性。磁盘数据库集群中的多个磁盘数据库通过数据复制保持数据一致性。
当前工作的计算节点可以将计算得到的区块链数据分别存储至内存数据库集群和磁盘数据库集群。具体的,当前工作的计算节点通过内存数据库接口层将区块链数据写入至内存数据库集群当前工作的唯一内存数据库进行存储。当前工作的计算节点通过磁盘数据库接口、数据路由、分库分表中间件等将区块链数据写入至磁盘数据库集群当前工作的唯一磁盘数据库进行存储。由于内存数据库的写入速度远远高于磁盘数据库的写入速度,将区块链数据存入内存数据库能够有效提高存储效率。区块链数据被高频率的写入内存数据库时也不会对区块链性能造成影响。但是内存数据库的容量是相对有限的,还需要磁盘数据库对区块链数据提供永久性存储。
计算集群对当前工作的计算节点进行故障监控。具体的,计算集群可以通过负载均衡的方式对当前工作的计算节点进行故障监控,也可以通过基于消息传递的一致性算法对当前工作的计算节点进行故障监控,或者通过分布式应用程序协调服务Zookeeper(一个分布式的,开放源码的分布式应用程序协调服务)对当前工作的计算节点进行故障监控。若当前工作的计算节点发生故障,通过负载均衡的方式和/或虚拟地址漂移的方式切换至计算集群中的其他计算节点继续工作。以此对计算集群中的每个计算节点进行负载均衡处理,以及对区块链数据的一致性管理,能够有效提高区块链中计算节点的可用性。
内存数据库集群对当前工作的内存数据库进行故障监控。具体的,可以通过负载均衡的方式对当前工作的内存数据库进行故障监控,也可以通过基于消息传递的一致性算法对当前工作的内存数据库进行故障监控,或者通过分布式应用程序协调服务Zookeeper对当前工作的内存数据库进行故障监控。内存数据库集群的各个内存数据库中的区块链数据保持一致,若当前工作的内存数据库发生故障,通过负载均衡的方式切换至内存数据库集群中的其他内存数据库继续工作。由此能够有效提高区块链中内存数据库的可用性。
磁盘数据库集群对当前工作的磁盘数据库进行故障监控。具体的,可以通过负载均衡的方式对当前工作的磁盘数据库进行故障监控,也可以通过基于消息传递的一致性算法对当前工作的磁盘数据库进行故障监控,或者通过分布式应用程序协调服务Zookeeper对当前工作的磁盘数据库进行故障监控。磁盘数据库集群的各个磁盘数据库中的区块链数据保持一致,若当前工作的磁盘数据库发生故障,通过负载均衡的方式切换至磁盘数据库集群中其他的磁盘数据库继续工作。由此能够有效提高区块链中磁盘数据库的可用性。
本实施例中,计算集群在同一时刻只有一个计算节点工作,该工作节点获取交易信息,对交易信息进行计算得到对应的区块链数据,并且将区块链数据写入内存数据库集群当前唯一工作的内存数据库进行存储,以及将区块链数据写入磁盘数据库集群当前唯一工作的磁盘数据库进行存储。当该计算节点发生故障时,切换至计算集群中的其他计算节点继续工作,由此通过对每个计算节点进行负载均衡处理和对区块链数据的一致性管理能够有效提高区块链中计算节点的可用性。当该内存数据库发生故障时,切换至内存数据库集群中的其他内存数据库继续工作,能够有效提高区块链中内存数据库的可用性。当该磁盘数据库发生故障时,切换至磁盘数据库集群中的其他磁盘数据库继续工作,能够有效提高区块链中磁盘数据库的可用性。由于区块链中计算节点和存储节点的可用性均得到有效提高,因此,区块链整体的可用性得到有效提高。
进一步的,当计算集群中的计算节点读取区块链数据时,先读取内存数据库集群中当前唯一工作的内存数据库。由于内存数据库的读取速度远远快于磁盘数据库的读取速度,因此从内存数据库集群读取数据能够有效提高数据读取速度。若读取失败,计算节点再读取磁盘数据库集群中当前唯一工作的磁盘数据库。若再次读取失败,则读取本地数据缓存,若仍旧读取失败,则返回数据读取失败的提示信息。
在一个实施例中,计算集群包括多个,计算集群包括对应的机构标识,其中一个机构标识对应的计算集群的计算节点将交易信息发送至其他机构标识对应的计算集群运行中的计算节点进行共识,得到其他机构标识对应的计算集群返回的共识后的交易信息,计算节点利用共识后的交易信息进行计算,得到对应的区块链数据。
计算集群可以包括对应的机构标识。假设,机构标识分别为A和B,其中A对应的计算集群包括3个计算节点,B对应的计算集群包括5个计算节点。在计算节点对交易信息进行计算之前,需要多个计算节点对交易信息进行共识。传统的方式中,若A中的一个计算节点发起共识请求,则需要将待共识的交易信息发送至A对应的另外2个计算节点和B对应的5个计算节点进行共识。如果A对应的计算节点和/或B对应的计算节点发生故障,则可能出现共识结果不准确的情形,对区块链的性能造成影响,导致区块链的可用性下降。
本实施例中,每个计算集群在同一时刻只有一个计算节点工作。多个计算集群可以分别通过虚拟地址对区块链提供服务器。多个计算集群的连接示意图如图2所示。当其中一个计算集群中计算节点需要对交易信息进行共识时,可以将交易信息发送至其他机构标识对应的计算集群当前唯一工作的计算节点进行共识。如果计算集群中当前工作的计算节点,可以按照上述实施例中提供的方式切换至其他计算节点继续工作。从而能够避免因计算节点故障而导致共识结果不准确的情形,能够有效提高区块链的可用性。
在一个实施例中,当计算节点将区块链数据写入内存数据库集群失败时,计算节点对区块链数据建立本地数据缓存,在内存数据库集群将写入失败的内存数据库切换至其他内存数据库后,计算节点将本地缓存的区块链数据写入切换后的内存数据库。
本实施例中,当内存数据库集群中当前工作的内存数据库出现故障时,内存数据库集群会从该故障内存数据库切换至其他内存数据库。在这个切换过程中,如果计算节点向内存数据库集群写入区块链数据,会出现写入失败的情形。为了确保区块链数据不丢失并且能够存入内存数据库集群,计算节点对区块链数据建立本地缓存。在内存数据库集群从故障内存数据库切换至其他内存数据库之后,计算节点将本地缓存的区块链数据写入内存数据库集群当前工作的内存数据库。从而确保区块链数据能够被完整存储至内存数据库集群。
在一个实施例中,当计算节点将区块链数据写入磁盘数据库集群失败时,计算节点对区块链数据建立本地数据缓存,在磁盘数据库集群将写入失败的磁盘数据库切换至其他磁盘数据库后,计算节点将本地缓存的区块链数据写入切换后的磁盘数据库。
本实施例中,当磁盘数据库集群中当前工作的磁盘数据库出现故障时,磁盘数据库集群会从该故障磁盘数据库切换至其他磁盘数据库。在这个切换过程中,如果计算节点向磁盘数据库集群写入区块链数据,会出现写入失败的情形。为了确保区块链数据不丢失并且能够存入磁盘数据库集群,计算节点对区块链数据建立本地缓存。在磁盘数据库集群从故障磁盘数据库切换至其他磁盘数据库之后,计算节点将本地缓存的区块链数据写入磁盘数据库集群当前工作的磁盘数据库。从而确保区块链数据能够被完整存储至磁盘数据库集群。
在一个实施例中,磁盘数据库集群包括写数据库集群和读数据库集群,写数据库集群接收计算节点写入的区块链数据并且进行存储,读数据库集群与写数据库集群保存区块链数据同步;当计算节点读取区块链数据时,在度数据库集群中进行读取。
本实施例中,磁盘数据库可以包括写数据库和读数据库。多个写数据库组成写数据库集群,多个读数据库集群组成读数据库集群。写数据库集群在同一时刻只有一个写数据库保持工作,读数据库集群在同一时刻也是只有一个读数据库保持工作。计算节点通过磁盘数据库接口层、数据路由、分库分表中间件和写数据库连接池对写数据库集群进行写操作。计算节点通过磁盘数据库接口层、数据路由、分库分表中间件和读数据库连接池对读数据库集群进行读操作。
当计算节点向磁盘数据库集群写入区块链数据时,计算节点将区块链数据写入写数据库集群当前唯一工作的写数据库中进行存储。若写数据库集群中的写数据库发生故障,通过负载均衡和/或一致性服务切换至写数据库集群中的其他写数据库继续工作。写数据库集群和读数据库集群通过数据复制保持数据一致性。当计算节点需要读取区块链数据时,计算节点访问读数据库集群当前唯一工作的读数据库,进行数据读取。若读数据库集群中的读数据库发生故障,通过负载均衡和/或一致性服务切换至读数据库集群中的其他读数据库继续工作。通过将磁盘数据库集群的读写功能进行分离,能够有效提高区块链数据的存储和读取效率,有效提高区块链的可用性。
在一个实施例中,该系统还包括安全集群,安全集群包括多个安全节点,安全集群在同一时刻只运行一个安全节点;安全节点接收计算节点上传的验证信息,根据验证信息对区块链使用者的合法性进行验证;当安全节点发生故障时,切换至安全集群中的其他安全节点继续运行。
区块链使用者通过计算节点登录以及进行交易时,该系统会通过安全集群对区块链使用者的合法性进行验证。在传统的方式中,多个安全节点是独立的,当需要进行安全验证时,计算节点将验证信息上传至对应的安全节点。若安全节点出现故障,则可能无法完成安全验证,或者出现非法入侵者被验证通过的情形,由此对区块链的安全性带来不利影响,也降低了区块链的可用性。
本实施例中,安全集群包括多个安全节点,安全节点也可以称为CA(CertificateAuthority,证书授权中心)或安全中心。安全集群通过一个虚拟地址对区块链提供服务。安全集群在同一时刻只有一个安全节点进行工作,其他安全节点保持待机状态。当前工作的安全节点接收计算节点上传的验证信息,根据验证信息对区块链使用者的合法性进行验证,以此确保区块链数据的安全性。
安全集群可以采用上述实施例中提供的方式对当前工作的安全节点进行故障监控。当前工作的安全节点发生故障时,通过负载均衡的方式和/或虚拟地址漂移的方式切换至安全集群中的其他安全节点继续工作。由此能够确区块链使用者的合法性验证顺利进行,从而有效提高区块链的可用性。
进一步的,为了便于对区块链使用者的验证信息进行管理,多个机构标识对应的计算集群可以向同一个安全集群发送验证信息,安全集群接收多个机构标识对应的计算集群内的计算节点发送的验证信息,根据验证信息分别对多个机构标识对应的区块链使用者的合法性进行验证。
进一步的,为了有效提高验证效率,安全集群可以有多个,安全集群可以有对应的机构标识。同一机构标识对应的计算集群向同一机构标识的安全集群发送验证信息,多个安全集群可以同时对不同区块链使用的合法性进行验证。
在一个实施例中,如图3所示,提供了一种区块链集群处理方法,应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。该方法应用于计算集群,在同一时刻计算集群中只有一个计算节点工作,具体包括以下步骤:
步骤302,获取交易信息,对交易信息进行计算,得到对应的区块链数据;
步骤304,将区块链数据写入内存数据库集群,以使得内存数据库集群当前工作的一个内存数据库接收区块链数据并且进行存储;
步骤306,将区块链数据写入磁盘数据库集群,以使得磁盘数据库集群当前工作的一个磁盘数据库接收区块链数据并且进行存储;
步骤308,当计算节点发生故障时,切换至计算集群中的其他计算节点继续工作。
本实施例中,计算集群包括多个计算节点。计算集群可以通过一个虚拟地址对区块链提供服务。计算集群在同一时刻只有一个计算节点在工作,其他计算节点保持待机状态。工作中的计算节点获取交易信息,对交易信息进行计算,计算得到对应的区块链数据。区块链数据包括交易执行结果和交易日志等。若当前工作的计算节点发生故障,通过负载均衡的方式和/或虚拟地址漂移的方式切换至计算集群中的其他计算节点继续工作。以此对计算集群中的每个计算节点进行负载均衡处理,以及对区块链数据的一致性管理,能够有效提高区块链中计算节点的可用性。
存储集群包括内存数据库集群和磁盘数据库集群。存储集群也可以按照预设规则来划分。内存数据库集群包括多个内存数据库,磁盘数据库集群包括多个磁盘数据库。内存数据库和磁盘数据库也可以统称为区块链的存储节点。内存数据库集群在同一时刻只有一个内存数据库工作,其他内存数据库保持待机状态。磁盘数据库集群在同一时刻只有一个磁盘数据库工作,其他磁盘数据库保持待机状态。内存数据库集群中的多个内存数据库通过数据复制保持数据一致性。磁盘数据库集群中的多个磁盘数据库通过数据复制保持数据一致性。
当前工作的计算节点通过内存数据库接口层将区块链数据写入至内存数据库集群当前工作的唯一内存数据库进行存储。若当前工作的内存数据库发生故障,通过负载均衡的方式切换至内存数据库集群中的其他内存数据库继续工作。在其中一个实施例中,该方法还包括:当区块链数据写入内存数据库集群失败时,对区块链数据建立本地数据缓存;在内存数据库集群将写入失败的内存数据库切换至其他内存数据库后,将本地缓存的区块链数据写入切换后的内存数据库。
当前工作的计算节点通过磁盘数据库接口、数据路由、分库分表中间件等将区块链数据写入至磁盘数据库集群当前工作的唯一磁盘数据库进行存储。若当前工作的磁盘数据库发生故障,通过负载均衡的方式切换至磁盘数据库集群中其他的磁盘数据库继续工作。在其中一个实施例中,该方法还包括:当区块链数据写入磁盘数据库集群失败时,对区块链数据建立本地数据缓存,在磁盘数据库集群将写入失败的磁盘数据库切换至其他磁盘数据库后,将本地缓存的区块链数据写入切换后的磁盘数据库。
本实施例中,计算集群在同一时刻只有一个计算节点工作,该工作节点获取交易信息,对交易信息进行计算得到对应的区块链数据,并且将区块链数据写入内存数据库集群当前唯一工作的内存数据库进行存储,以及将区块链数据写入磁盘数据库集群当前唯一工作的磁盘数据库进行存储。当该计算节点发生故障时,切换至计算集群中的其他计算节点继续工作,由此通过对每个计算节点进行负载均衡处理和对区块链数据的一致性管理能够有效提高区块链中计算节点的可用性。当该内存数据库发生故障时,切换至内存数据库集群中的其他内存数据库继续工作,能够有效提高区块链中内存数据库的可用性。当该磁盘数据库发生故障时,切换至磁盘数据库集群中的其他磁盘数据库继续工作,能够有效提高区块链中磁盘数据库的可用性。由于区块链中计算节点和存储节点的可用性均得到有效提高,因此,区块链整体的可用性得到有效提高。
在一个实施例中,计算集群包括多个,计算集群包括对应的机构标识;在获取交易信息的步骤之后,还包括:将交易信息发送至其他机构标识对应的计算集群运行中的计算节点,以使得其他计算集群对所述交易信息进行共识;接收其他机构标识对应的计算集群返回的共识后的交易信息;利用共识后的交易信息进行计算,得到对应的区块链数据。
本实施例中,每个计算集群在同一时刻只有一个计算节点工作。多个计算集群可以分别通过虚拟地址对区块链提供服务器。当其中一个计算集群中计算节点需要对交易信息进行共识时,可以将交易信息发送至其他机构标识对应的计算集群当前唯一工作的计算节点进行共识。如果计算集群中当前工作的计算节点,可以按照上述实施例中提供的方式切换至其他计算节点继续工作。从而能够避免因计算节点故障而导致共识结果不准确的情形,能够有效提高区块链的可用性。
在一个实施例中,该方法还包括:向安全集群上传验证信息,以使得安全集群中在同一时刻唯一工作的安全节点根据验证信息对区块链使用者的合法性进行验证;安全集群中包括多个安全节点,若当前工作的安全节点发生故障,则切换至安全集群中的其他安全节点继续工作。
本实施例中,安全集群通过一个虚拟地址对区块链提供服务。安全集群在同一时刻只有一个安全节点进行工作,其他安全节点保持待机状态。当前工作的安全节点接收计算节点上传的验证信息,根据验证信息对区块链使用者的合法性进行验证,以此确保区块链数据的安全性。
安全集群可以采用上述实施例中提供的方式对当前工作的安全节点进行故障监控。当前工作的安全节点发生故障时,通过负载均衡的方式和/或虚拟地址漂移的方式切换至安全集群中的其他安全节点继续工作。由此能够确区块链使用者的合法性验证顺利进行,从而有效提高区块链的可用性。
在一个实施例中,计算集群中的计算节点可以是服务器,如图4所示,服务器400包括通过系统总线连接的处理器401、内存储器402、非易失性存储介质403和网络接口404。其中,该服务器的非易失性存储介质403中存储有操作系统4031和区块链集群处理处理装置4032,区块链集群处理装置4032用于实现有效提高区块链的可用性。服务器400的处理器401用于提供计算和控制能力,被配置为执行一种区块链集群处理方法。终端400的内存储器402为非易失性存储介质中的区块链集群处理处理装置4032的运行提供环境,内存储器402中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种区块链集群处理方法。服务器400的网络接口404用于据以与其他计算集群或存储集群通过网络连接通信。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体地服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图5所示,提供了一种区块链集群处理装置,包括:获取模块502、计算模块504、存储模块506和切换模块508,其中:
获取模块502,用于获取交易信息。
计算模块504,用于对交易信息进行计算,得到对应的区块链数据。
存储模块506,用于将区块链数据写入内存数据库集群,以使得内存数据库集群当前工作的一个内存数据库接收区块链数据并且进行存储;将区块链数据写入磁盘数据库集群,以使得磁盘数据库集群当前工作的一个磁盘数据库接收区块链数据并且进行存储。
切换模块508,用于当计算节点发生故障时,切换至计算集群中的其他计算节点继续工作。
在一个实施例中,计算集群包括多个,计算集群包括对应的机构标识;该装置还包括:发送模块510和接收模块512,其中:
发送模块510,用于将交易信息发送至其他机构标识对应的计算集群运行中的计算节点,以使得其他计算集群对交易信息进行共识。
接收模块512,用于接收其他机构标识对应的计算集群返回的共识后的交易信息。
计算模块504还用于利用共识后的交易信息进行计算,得到对应的区块链数据。
在一个实施例中,存储模块506还用于当区块链数据写入内存数据库集群失败时,对区块链数据建立本地数据缓存;在内存数据库集群将写入失败的内存数据库切换至其他内存数据库后,将本地缓存的区块链数据写入切换后的内存数据库。
在一个实施例中,存储模块506当区块链数据写入磁盘数据库集群失败时,对区块链数据建立本地数据缓存,在磁盘数据库集群将写入失败的磁盘数据库切换至其他磁盘数据库后,将本地缓存的区块链数据写入切换后的磁盘数据库。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。