1.一种区块链账本的存储系统,其特征在于,所述系统包括:接口模块、账本逻辑模块、数据库模块与文件存储模块;所述
接口模块,用于向区块链网络节点提供节点注册接口、存储完整区块接口、存储简略区块接口和查询统计接口;
账本逻辑模块,用于向区块链节点提供注册、存储区块及数字签名、查询统计功能,同时修复账本、维护账本日志和状态数据库的完整一致性;
数据库模块,由一个概要数据库和若干个状态数据库构成;为每个区块链账本建立一个状态数据库,并维护一个概要数据库,包括所有区块链账本概要数据和节点概要数据;
文件存储模块,用于存储每个区块链账本的账本日志、运行日志和若干个节点的数字证书。
2.如权利要求1所述的区块链账本的存储系统,其特征在于,所述账本逻辑模块至少包括注册模块、完整区块模块、简略区块模块、查询模块、统计模块和异常处理模块;所述注册模块,用于接收区块链网络节点的注册请求;
完整区块模块,用于将网络节点传递来的完整区块写入账本日志,并更新区块链账本的状态数据库;
简略区块模块,用于将网络节点传递来的数字签名更新到指定区块记录中;
查询模块,通过接口模块的查询统计接口向外界提供区块及负载数据的查询功能,至少包括区块查询、负载数据查询以及概要查询;
统计模块,用于通过接口模块的查询统计接口向外界提供统计功能,至少包括指定节点已签名的区块数、指定节点的活动轨迹、指定节点的离线统计、指定节点的负载统计、指定区块链网络的节点活跃统计;
异常处理模块,用于在系统运行过程中处理异常现象,至少包括:实时修复、事后根据运行日志修复错误并清理运行日志、解析账本日志并修复账本日志错误、解析账本日志修补状态数据库里缺失的数据项。
3.如权利要求1所述的区块链账本的存储系统,其特征在于,所述状态数据库与区块链账本一一对应,由若干个区块记录构成,每个区块记录用区块编号作为区块链账本内唯一性标识,至少包括的数据项有签名数量、区块散列、前置区块散列、偏移地址、区块大小、负载数据和若干个签名构成,其中签名的个数等于签名数量。
4.如权利要求1所述的区块链账本的存储系统,其特征在于,所述账本概要数据包括账本数量、基址路径和若干个账本数据项;节点概要数据至少包括节点数量和若干个节点数据项;其中节点数量表示在系统中注册的所有区块链网络节点的数量,这些节点能够来自多个区块链网络,且每个节点数据项至少包括唯一性标识、证书存储位置。
5.如权利要求1所述的区块链账本的存储系统,其特征在于,所述区块存储包括完整区块存储和简略区块存储;完整区块存储和简略区块存储分别需要区块链节点提交区块的数字签名;所述完整区块存储还需提交完整的区块内容。
6.如权利要求1所述的区块链账本的存储系统,其特征在于,所述每个区块链账本的存储系统依据注册时提供的数字证书鉴定节点对区块的数字签名是否合法。
7.如权利要求1所述的区块链账本的存储系统,其特征在于,所述区块链节点向账本存储系统提交区块及数字签名时,调用简略区块接口,根据返回结果调用注册接口或完整区块接口。
8.如权利要求1所述的区块链账本的存储系统,其特征在于,所述查询统计功能,能够查询出指定区块的节点签名数量,用于在区块链网络内达成共识目的;以及能够统计出区块链节点的在线和离线状况。
9.如权利要求1所述的区块链账本的存储系统,其特征在于,区块链网络的节点,可以采用该存储系统即账本共享存储的节点,也可以不采用该存储系统,即区块链原节点。
10.如权利要求9所述的两种节点,其特征在于,账本共享存储的节点与区块链原节点共存于同一个区块链网络平台,且每个账本共享存储的节点可配置一个或多个账本存储系统,将区块和数字签名存储到一个或多个账本存储系统;
其中不同的区块链网络平台根据其特性和应用场景定制负载数据的内容与存储形式,根据负载数据定制负载数据查询功能模块。