本技术涉及区块链,尤其涉及一种区块链数据存证溯源系统及方法。
背景技术:
1、目前,业内通常采用区块链技术存储拥有高可靠性、高安全性、透明性及隐私性需求的数据,以解决数据在互联网中传播的防篡改、透明可靠、隐私安全等问题。数据在上链存证之前通常需要进行加工,常用的数据加工有两种方式:一是对数据进行对称式或非对称式加密处理;二是使用md5、sha256等摘要算法计算数据摘要,并在数据加工完成后将数据发送至区块链节点,由区块链网络完成交易广播、区块共识等动作。
2、溯源操作则是从区块链节点上读取到对应数据,然后进行数据解密,或者对已有的数据进行摘要计算,对比区块链上的数据摘要以确认数据的完整性。最后将多个相关数据串联形成完整的溯源链路,至此完成溯源操作。
3、然而,当区块链数据请求流量较大时,现有的处理方式会导致区块链节点机器负载较大,从而影响区块链网路的正常执行。
技术实现思路
1、本技术所要解决的技术问题是针对现有技术的上述不足,提供一种区块链数据存证溯源系统及方法,用以解决现有技术存在的问题。
2、第一方面,本技术提供一种区块链数据存证溯源系统,包括:
3、代理中心与溯源缓存装置;
4、其中,所述溯源缓存装置用于缓存所述代理中心与区块链的交互数据;
5、所述代理中心用于在接收到客户端发送的区块链数据请求后,根据所述区块链数据请求从所述溯源缓存装置缓存的交互数据中获取对应的目标数据并返回至客户端,或者,根据所述区块链数据请求与区块链进行数据交互以得到对应的目标数据,将所述目标数据返回至客户端并缓存至所述溯源缓存装置。
6、在一些实施例中,所述代理中心包括代理路由模块,所述溯源缓存装置包括缓存控制模块以及缓存池,所述区块链数据请求包括存证请求或者溯源请求;
7、其中,所述代理路由模块用于在接收到存证请求后,向区块链节点发送存证请求以完成存证动作,以及,用于在接收到溯源请求后,将所述溯源请求转发至所述缓存控制模块;
8、所述缓存控制模块用于根据所述溯源请求在缓存池中查找对应的目标数据,若所述缓存池中存在所述目标数据,则将所述目标数据返回至所述代理路由模块;
9、所述代理路由模块还用于在接收到所述缓存控制模块返回的目标数据后,将所述目标数据返回至客户端,或者,在确定所述缓存池中不存在所述目标数据时,向区块链节点发送所述溯源请求,将得到的溯源结果返回至客户端,并将所述溯源结果发送至所述缓存控制模块;
10、所述缓存控制模块还用于在接收到所述代理路由模块发送的溯源结果后,将所述溯源结果缓存至所述缓存池。
11、在一些实施例中,所述缓存控制模块包括缓存控制器、缓存策略组件、策略更新组件;
12、其中,所述缓存策略组件用于配置缓存策略,所述缓存策略包括缓存淘汰策略、缓存留存时间、缓存智能更新策略中的至少一项;
13、所述策略更新组件用于对缓存策略进行更新;
14、所述缓存控制器用于在接收到所述代理路由模块发送的溯源请求后,在缓存池中查找对应的目标数据,并将所述目标数据返回至所述代理路由模块;
15、所述缓存控制器还用于在接收到所述代理路由模块发送的溯源结果后,将所述溯源结果缓存至所述缓存池。
16、在一些实施例中,所述代理中心还包括代理配置模块,所述代理配置模块用于进行所述代理中心的信息配置;
17、所述代理路由模块用于根据所述代理配置模块的配置信息进行所述区块链数据请求的处理;
18、其中,所述代理中心的配置信息包括对外应用程序编程接口api、区块链调用api、流量限制、请求体校验、超时时间、失败回调事件中的至少一项。
19、在一些实施例中,所述代理中心还包括代理监控模块;
20、所述代理监控模块用于在所述代理路由模块向所述客户端返回数据之前,对所述代理路由模块返回至所述客户端的数据进行监控;
21、所述代理路由模块用于在数据通过监控后,将数据返回至所述客户端。
22、在一些实施例中,所述缓存池的数据格式包括键值型数据;
23、其中,所述缓存控制器对于所述键值型数据的加载策略包括:加载指定区块/交易id的数据及相邻数据段;
24、所述缓存控制器对于所述键值型数据的淘汰策略包括:根据预设过期时间对数据缓存进行淘汰,或者,当缓存空间达到上限时使用过期算法进行淘汰,其中,所述过期算法包括最近最不频繁使用lfu算法或者最近最少使用lru算法。
25、在一些实施例中,所述缓存池的数据格式包括文档型数据;
26、其中,所述缓存控制器对于所述文档型数据的加载策略包括:加载查询条件对应的数据,以及区块链实时出块的数据;
27、所述缓存控制器对于所述文档型数据的淘汰策略包括:通过引用计数清除法对未使用或非热点数据缓存进行清理。
28、在一些实施例中,所述缓存控制器通过引用计数清除法对未使用或非热点数据缓存进行清理,具体包括:
29、创建历史查询键列表,所述历史查询键列表用于存储允许查询数据缓存内容的条件键值;
30、创建文档引用计数器,所述文档引用计数器用于记录数据缓存的引用计数;
31、当所述缓存池的缓存空间达到第一预设阈值时,根据所述历史查询键列表中的条件键值以及所述文档引用计数器中记录的数据缓存引用计数,采用引用计数清除法对所述缓存池的未使用或非热点数据缓存进行清理。
32、在一些实施例中,所述缓存控制器根据所述历史查询键列表中的条件键值以及所述文档引用计数器中记录的数据缓存引用计数,采用引用计数清除法对所述缓存池的未使用或非热点数据缓存进行清理,具体包括:
33、t1:基于lfu算法,对所述历史查询键列表中的条件键值进行排序,得到非热点条件键值的第一排序列表;
34、t2:删除所述第一排序列表中排名靠前的预设比例的非热点条件键值,得到剩余非热点条件键值的第二排序列表;
35、t3:根据所述第二排序列表对所述文档引用计数器进行更新,得到更新后的文档引用计数器;
36、t4:根据所述更新后的文档引用计数器,删除所述缓存池中引用计数为0的数据缓存,其中,所述第二排序列表中不存在的非热点条件键值对应的数据缓存引用计数置0;
37、t5:判断所述缓存池的缓存空间是否小于第二预设阈值,其中,所述第二预设阈值小于所述第一预设阈值;
38、若是,则确定数据缓存清理完成;
39、若否,则重新调整预设比例,并返回删除所述第一排序列表中排名靠前的预设比例的非热点条件键值的步骤,其中,调整后的预设比例大于调整前的预设比例。
40、第二方面,本技术提供一种区块链数据存证溯源方法,应用于上述的区块链数据存证溯源系统,包括:
41、s1、缓存与区块链的交互数据;
42、s2、在接收到客户端发送的区块链数据请求后,根据所述区块链数据请求从缓存的交互数据中获取对应的目标数据并返回至客户端,或者,根据所述区块链数据请求与区块链进行数据交互以得到对应的目标数据,将所述目标数据返回至客户端并缓存。
43、本技术提供的区块链数据存证溯源系统及方法,具体的,系统包括:代理中心与溯源缓存装置;其中,所述溯源缓存装置用于缓存所述代理中心与区块链的交互数据;所述代理中心用于在接收到客户端发送的区块链数据请求后,根据所述区块链数据请求从所述溯源缓存装置缓存的交互数据中获取对应的目标数据并返回至客户端,或者,根据所述区块链数据请求与区块链进行数据交互以得到对应的目标数据,将所述目标数据返回至客户端并缓存至所述溯源缓存装置。本技术提出了一种存证溯源的代理与缓存机制,增强了常规基于区块链的存证溯源系统的可用性。通过代理机制拓展区块链功能,还通过缓存机制提升溯源的速度,整体方案使区块链计算左移,减少区块链网路的计算负担。
1.一种区块链数据存证溯源系统,其特征在于,包括:代理中心(10)与溯源缓存装置(20);
2.根据权利要求1所述的区块链数据存证溯源系统,其特征在于,所述代理中心(10)包括代理路由模块(12),所述溯源缓存装置(20)包括缓存控制模块(21)以及缓存池(22),所述区块链数据请求包括存证请求或者溯源请求;
3.根据权利要求2所述的区块链数据存证溯源系统,其特征在于,所述缓存控制模块(21)包括缓存控制器(211)、缓存策略组件(212)、策略更新组件(213);
4.根据权利要求2所述的区块链数据存证溯源系统,其特征在于,所述代理中心(10)还包括代理配置模块(11),所述代理配置模块(11)用于进行所述代理中心(10)的信息配置;
5.根据权利要求2所述的区块链数据存证溯源系统,其特征在于,所述代理中心(10)还包括代理监控模块(13);
6.根据权利要求3所述的区块链数据存证溯源系统,其特征在于,所述缓存池(22)的数据格式包括键值型数据;
7.根据权利要求3所述的区块链数据存证溯源系统,其特征在于,所述缓存池(22)的数据格式包括文档型数据;
8.根据权利要求7所述的区块链数据存证溯源系统,其特征在于,所述缓存控制器(211)通过引用计数清除法对未使用或非热点数据缓存进行清理,具体包括:
9.根据权利要求8所述的区块链数据存证溯源系统,其特征在于,所述缓存控制器(211)根据所述历史查询键列表中的条件键值以及所述文档引用计数器中记录的数据缓存引用计数,采用引用计数清除法对所述缓存池(22)的未使用或非热点数据缓存进行清理,具体包括:
10.一种区块链数据存证溯源方法,应用于如权利要求1-9任一项所述的区块链数据存证溯源系统,其特征在于,包括: