数据处理方法、区块链节点、系统和计算机可读存储介质与流程

文档序号:16628439发布日期:2019-01-16 06:20阅读:151来源:国知局
数据处理方法、区块链节点、系统和计算机可读存储介质与流程

本公开涉及区块链技术领域,特别涉及一种数据处理方法、区块链节点、区块链系统和计算机可读存储介质。



背景技术:

随着互联网技术的发展和人们对信任问题的逐步关注,如何保证数据的安全性(不被篡改)和保密性越来越受到人们重视。区块链技术以其防篡改、可追溯等特点,已经成为解决这个问题的关键技术。越来越多的企业开始提供对外的区块链存储系统,以便用户进行数据存储。

在相关技术中,将所有交易数据存储至本地账本。



技术实现要素:

本公开的发明人发现上述相关技术中存在如下问题:针对数据进行检索时,需要从整个本地账本中查询,造成本地账本查询频率高,数据读取效率低。

鉴于此,本公开提出了一种数据处理技术方案,能够提高数据读取效率。

根据本公开的一些实施例,提供了一种数据处理方法,包括:区块链节点根据待写入数据的热门程度,从所述待写入数据中筛选出热门数据;所述区块链节点将所述热门数据以key-value(关键字-数据对)的形式存储在缓存中;所述区块链节点将所述待写入数据存储在区块链本地账本中。

在一些实施例中,该方法还包括:所述区块链节点生成排序列表,所述排序列表中包括各所述热门数据的key值和所述key值相应的热门参数,所述热门参数越大代表的热门程度越高,所述排序列表中的key值根据所述热门参数排序;所述区块链节点将所述排序列表存储在所述缓存中;所述区块链节点根据所述排序列表中的key值检索待读取数据。

在一些实施例中,该方法还包括:在所述缓存中存在所述待读取数据的情况下,所述区块链节点从所述缓存中读取所述待读取数据;所述区块链节点增大所述排序列表中所述待读取数据的key值相应的热门参数,并更新所述排序列表中key值的排序。

在一些实施例中,该方法还包括:在所述缓存中不存在待读取数据的情况下,所述区块链节点从所述区块链本地账本中读取所述待读取数据;所述区块链节点将所述待读取数据存入所述缓存中;所述区块链节点生成所述待读取数据的热门参数;所述区块链节点按照所述排序列表的排序,将所述待读取数据的key值和所述待读取数据的热门参数存入所述排序列表。

在一些实施例中,该方法还包括:所述区块链节点定时从所述缓存中读取所述排序列表,所述排序列表中的key值按照热门参数由小到大的顺序排列;在key值的序号小于序号阈值的情况下,或在key值排在所述排序列表的预设比例范围之内的情况下,所述区块链节点删除该key值、该key值相应的热门参数和该key值相应的热门数据。

根据本公开的另一些实施例,提供一种区块链节点,包括:筛选单元,用于根据待写入数据的热门程度,从所述待写入数据中筛选出热门数据;存储单元,用于将所述热门数据以key-value的形式存储在缓存中,将所述待写入数据存储在区块链本地账本中。

在一些实施例中,该区块链节点还包括:生成单元,用于生成排序列表,所述排序列表中包括各所述热门数据的key值和所述key值相应的热门参数,所述热门参数越大代表的热门程度越高,所述排序列表中的key值根据所述热门参数排序;读取单元,用于根据所述排序列表中的key值检索待读取数据;其中,所述存储单元将所述排序列表存储在所述缓存中。

在一些实施例中,该区块链节点还包括:读取单元,用于在所述缓存中存在待读取数据的情况下,从所述缓存中读取所述待读取数据;维护单元,用于所述缓存中存在待读取数据的情况下,增大所述排序列表中所述待读取数据的key值相应的热门参数,并更新所述排序列表中key值的排序。

在一些实施例中,读取单元用于在所述缓存中不存在待读取数据的情况下,从所述区块链本地账本中读取所述待读取数据;其中,所述生成单元生成所述待读取数据的热门参数;所述存储单元将所述待读取数据存入所述缓存中,按照所述排序列表的排序,将所述待读取数据的key值和所述待读取数据的热门参数存入所述排序列表。

在一些实施例中,读取单元,用于定时从所述缓存中读取所述排序列表,所述排序列表中的key值按照热门参数由小到大的顺序排列;

维护单元,维护单元,用于在key值的序号小于序号阈值的情况下,或在key值排在所述排序列表的预设比例范围之内的情况下,删除该key值、该key值相应的热门参数和该key值相应的热门数据。

根据本公开的又一些实施例,提供一种块链系统,包括:上述任一个实施例中的区块链节点;缓存装置,用于存储热门数据;和区块链本地账本,用于存储待写入数据。

根据本公开的又一些实施例,提供一种区块链节点,包括:存储器;和耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器装置中的指令,执行上述任一个实施例中的数据处理方法中的一个或多个步骤。

根据本公开的再一些实施例,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一个实施例中的数据处理方法中的一个或多个步骤。

在上述实施例中,在区块链节点和区块链本地账本之间设置缓存作为中间层,根据数据的热门程度对数据进行筛选,将读取频率较频繁的热门数据存储在缓存中。这样,可以避免对区块链本地账本的频繁读取,从而提高数据的读取效率。

附图说明

构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:

图1示出本公开的数据处理方法的一些实施例的流程图;

图2示出本公开的数据处理方法的另一些实施例的流程图;

图3示出本公开的数据处理方法的又一些实施例的流程图;

图4示出本公开的数据处理方法的再一些实施例的流程图;

图5示出本公开的数据处理方法的再一些实施例的流程图;

图6示出本公开的区块链节点的一些实施例的框图;

图7示出本公开的区块链系统的一些实施例的框图;

图8示出本公开的区块链节点的另一些实施例的框图;

图9示出本公开的区块链节点的又一些实施例的框图。

具体实施方式

现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1示出本公开的数据处理方法的一些实施例的流程图。

如图1所示,该方法包括:步骤110,筛选热门数据;步骤120,存储热门数据;和步骤130,存储待写入数据。

在步骤110中,区块链节点根据待写入数据的热门程度,从待写入数据中筛选出热门数据。例如,热门程度的判断方式可由程序自身实现或通过调用外部接口的方式实现。

在一些实施例中,热门程度根据待写入数据的时间戳信息确定,时间戳信息代表的时间较新说明相应的待写入数据在近期被关注,该待写入数据的热门程度也就较高。热门程度也可以根据能够表明待写入数据被关注程度的其他因素确定,如待写入数据的点击率、访问量等等。

在步骤120中,区块链节点将热门数据以key-value的形式存储在缓存中。例如,缓存可以是高速redis缓存,redis是一种内存数据库,支持key-value的存储方式,key代表关键字,value代表数据,key-value即为关键字数据对。redis支持字符串、hash、列表、集合及有序集合等多种数据结构。

在一些实施例中,可以根据区块链节点写入数据的不同,选择不同的数据结构。例如,热门数据为交易id对应的交易数据,则key为交易id,value为交易数据(如字符串类型)。

缓存中存储的数据可以快速地读取,将热门数据存储在缓存中可以减少区块链本地账本的访问频率,从而提高数据读取的效率。

在步骤130中,区块链节点将待写入数据存储在区块链本地账本中。步骤130和步骤120没有执行顺序。

在一些实施例中,还可以在缓存中存储热门数据相应的排序列表。例如,可以通过图2中的步骤实现。

图2示出本公开的数据处理方法的另一些实施例的流程图。

如图2所示,与图1中的实施例相比,本实施例在步骤120之后还包括:步骤121,生成排序列表;和步骤122,存储排序列表;和步骤123,检索待读取数据。

在步骤121中,区块链节点生成排序列表。排序列表中包括各热门数据的key值和key值相应的热门参数。热门参数越大代表的热门程度越高。排序列表中的key值根据热门参数排序。

在一些实施例中,排序列表可以设置为有序集合数据结构。有序集合是redis缓存支持的一种数据结构。有序集合中的每个元素都可以设置一个分值,分值是double数据类型,通过该分值可以标识相应元素的顺序。例如,采用有序集合数据结构的排序列表中的元素为待写入数据的key值,分值为热门参数。

在一些实施例中,热门参数可以为待写入数据的时间戳(例如,可以精确到秒)的时间戳数字。例如,时间戳代表的时间点为2018-06-0608:08:08,对应的时间戳数字为1528243688。热门参数代表了相应热门数据的热门程度,时间越新则表明热门数据被关注程度越高,参数越大,热门程度越高。热门参数也可以根据能够表明待写入数据被关注程度的其他因素确定,如待写入数据的点击率、访问量等等。也可以设置成热门参数越低,热门程度越高。

在步骤122中,区块链节点将排序列表存储在缓存中。排序列表可以用于缓存中热门数据的检索和维护,从而提高数据读取效率。

在一些实施例中,也可以先不判断待写入数据的热门程度,而是将所有待写入数据存储在缓存和区块链本地账本中。然后,根据排序列表中各数据的热门参数,删除缓存中热门程度低于阈值的数据。

在步骤123中,区块链节点根据排序列表中的key值检索待读取数据。

在一些实施例中,在存储了数据之后,可以通过图3中的步骤读取存储的数据。

图3示出本公开的数据处理方法的又一些实施例的流程图。

如图3所示,相比于图1和图2,该实施例还包括:步骤310,从缓存中读取数据;和步骤320,更新排序列表。

在步骤310中,在缓存中存在待读取数据的情况下,区块链节点从缓存中读取待读取数据。例如,可以根据用户输入的key值从redis缓存中读取相应的value。

在步骤320中,区块链节点增大排序列表中待读取数据的key值相应的热门参数,并更新排序列表中key值的排序。

在一些实施例中,可以将key相应的热门参数增加预设数值。例如,可以通过热插拔式的处理方式(例如,调用其他程序接口和外部接口)判断是否需要增加预设数值以及预设数值的大小。

每次读取都是对数据的关注,响应于读取数据对相应的热门参数进行调整能够更加准确地标识数据的热门程度,以方便缓存中热门数据的维护,从而提高读取的效率。

在一些实施例中,还可以通过图4中的步骤读取存储的数据。

图4示出本公开的数据处理方法的再一些实施例的流程图。

如图4所示,相比于图1和图2,该实施例还包括:步骤410,从区块链本地账本中读取数据;步骤420,存储在缓存中;步骤430,生成热门参数;和步骤440,更新排序列表。

在步骤410中,在缓存中不存在待读取数据的情况下,区块链节点从区块链本地账本中读取待读取数据。

在步骤420中,区块链节点将待读取数据存入缓存中。

在步骤430中,区块链节点生成待读取数据的热门参数。

在步骤440中,区块链节点按照排序列表的排序,将待读取数据的key值和待读取数据的热门参数存入排序列表。

在一些实施例中,需要读取本地账本中的交易信息,说明该交易信息的关注度上升,因此,需要将该交易信息“升级”写入redis缓存中,并将该交易信息的key值和相应的热门参数写入顺序列表。例如,也可以由程序本身或调用外部接口对该交易信息的热门程度进行判断,从而确定是否将该交易信息写入缓存。这样,可以灵活调整和维护缓存和区块链本地账本中的数据,以适应实际情况的变化,从而提高数据读取效率。

在一些实施例中,还可以通过图5中的步骤对缓存中的数据进行维护。

图5示出本公开的数据处理方法的再一些实施例的流程图。

如图5所示,相比于图1、图2、图3和图4,该实施例还包括:

步骤510,定时读取排序列表;和步骤520,更新排序列表。

在步骤510中,区块链节点定时从缓存中读取排序列表,排序列表中的key值按照热门参数由小到大的顺序排列。当然,排序列表中的key值也可以按照热门参数由大到小的顺序排列。另外,也可以按照热门参数由小到大的顺序,或者按照热门参数由大到小的顺序从排序列表读取数据。下面的判断逻辑也可以根据排序列表中的排列顺序或数据读取顺序做相应的调整,在此不再赘述。

在一些实施例中,可以设置定时器定时对redis缓存中的热门数据进行维护。例如,可配置每小时读取一次排序列表进行维护。

在步骤520中,在key值的序号小于序号阈值的情况下,或在key值排在排序列表的预设比例范围之内的情况下,区块链节点删除该key值、该key值相应的热门参数和该key值相应的热门数据。例如,可以在key值的序号小于序号阈值的情况下,或在key值排在排序列表的前x%之内的情况下,删除该key值、该key值相应的热门参数和该key值相应的热门数据,0<x<100。

在一些实施例中,可以遍历排序列表中的数据,将排在前几位(例如,排在前10位,可以根据实际情况具体设定阈值),或者将排在前x%的数据删除(例如,排在前10%,可以根据实际情况具体设定阈值)。

这样,可以根据绝对排序和相对排序(不受排序列表长度影响)两个不同标准筛选出热门程度相对较低的数据,将它们从缓存中删除,从而可以提高检索数据的速度,提高数据读取效率,减轻缓存的存储压力。除了根据排序序号和排序百分比判断删除的数据,还可以根据实际情况设置相应的判断标准。

上述实施例中,在区块链节点和区块链本地账本之间设置缓存作为中间层,根据数据的热门程度对数据进行筛选,将读取频率较频繁的热门数据存储在缓存中。这样,可以避免对区块链本地账本的频繁读取,从而提高数据的读取效率。

图6示出本公开的区块链节点的一些实施例的框图。

如图6所示,区块链节点6包括筛选单元61、存储单元62。

筛选单元61根据待写入数据的热门程度,从待写入数据中筛选出热门数据。

存储单元62将热门数据以key-value的形式存储在缓存中,将待写入数据存储在区块链本地账本中。

在一些实施例中,区块链节点6还包括生成单元63、读取单元64。

生成单元63生成排序列表。排序列表中包括各热门数据的key值和key值相应的热门参数,热门参数越大代表的热门程度越高,排序列表中的key值根据热门参数排序。存储单元62将排序列表存储在缓存中。读取单64根据排序列表中的key值检索待读取数据。

在一些实施例中,区块链节点6还包括维护单元65。

在缓存中存在待读取数据的情况下,读取单元64从缓存中读取待读取数据。维护单元65增大排序列表中待读取数据的key值相应的热门参数,并更新排序列表中key值的排序。

在所述缓存中不存在待读取数据的情况下,读取单元64从区块链本地账本中读取待读取数据。生成单元63生成待读取数据的热门参数。存储单元62将待读取数据存入缓存中,按照排序列表的排序,将待读取数据的key值和待读取数据的热门参数存入排序列表。

在一些实施例中,读取单元64定时从缓存中读取排序列表,排序列表中的key值按照热门参数由小到大的顺序排列。在key值的序号小于序号阈值的情况下,或在key值排在排序列表的预设比例范围之内的情况下,维护单元65删除该key值、该key值相应的热门参数和该key值相应的热门数据。

上述实施例中,在区块链节点和区块链本地账本之间设置缓存作为中间层,根据数据的热门程度对数据进行筛选,将读取频率较频繁的热门数据存储在缓存中。这样,可以避免对区块链本地账本的频繁读取,从而提高数据的读取效率。

图7示出本公开的区块链系统的一些实施例的框图。

如图7所示,区块链系统7包括上述任一个实施例中的区块链节点71、用于存储热门数据的缓存装置72、用于存储待写入数据的区块链本地账本73。缓存装置72还可以用于存储排序列表。区块链本地账本73为区块链节点71的本地账本。

图8示出本公开的区块链节点的另一些实施例的框图。

如图8所示,该实施例的区块链节点8包括:存储器81以及耦接至该存储器81的处理器82,处理器82被配置为基于存储在存储器81中的指令,执行本公开中任意一个实施例中的数据处理方法中的一个或多个步骤。

其中,存储器81例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)、数据库以及其他程序等。

图9示出本公开的区块链节点的又一些实施例的框图。

如图9所示,该实施例的区块链节点9包括:存储器910以及耦接至该存储器910的处理器920,处理器920被配置为基于存储在存储器910中的指令,执行前述任意一个实施例中的数据处理方法。

存储器910例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)以及其他程序等。

区块链节点9还可以包括输入输出接口930、网络接口940、存储接口950等。这些接口930、940、950以及存储器910和处理器920之间例如可以通过总线960连接。其中,输入输出接口930为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口940为各种联网设备提供连接接口。存储接口950为sd卡、u盘等外置存储设备提供连接接口。

本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

至此,已经详细描述了根据本公开的数据处理方法、区块链节点、区块链系统和计算机可读存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1