CN114356995A - 区块链数据分析方法、装置及相关设备 - Google Patents
区块链数据分析方法、装置及相关设备 Download PDFInfo
- Publication number
- CN114356995A CN114356995A CN202210003136.2A CN202210003136A CN114356995A CN 114356995 A CN114356995 A CN 114356995A CN 202210003136 A CN202210003136 A CN 202210003136A CN 114356995 A CN114356995 A CN 114356995A
- Authority
- CN
- China
- Prior art keywords
- data
- analysis
- account book
- analyzing
- blockchain
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000007405 data analysis Methods 0.000 title claims abstract description 57
- 238000004458 analytical method Methods 0.000 claims abstract description 80
- 238000004364 calculation method Methods 0.000 claims abstract description 64
- 238000001914 filtration Methods 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 15
- 238000011217 control strategy Methods 0.000 claims description 15
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 241001522296 Erithacus rubecula Species 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种区块链数据分析方法、装置及相关设备,该方法包括:依据账本的优先等级,解析从区块链节点获取的链数据,获取解析数据;基于流式计算引擎,选定算子集,对所述解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;基于规则引擎,对所述解析数据进行实时过滤,获取分析结果;依据所述流计算结果,对所述规则引擎进行更新。通过该方法可以实现根据业务需求紧迫性优先解析重要的账本数据,防止有限的计算资源被均分,以及第一时间得出期望的指标、问题交易、问题数据。
Description
技术领域
本公开涉及区块链技术领域,尤其涉及一种区块链数据分析方法、装置及相关设备。
背景技术
随着区块链项目的持续运转,尤其是产业区块链项目的规模化应用,区块链系统上沉淀了大量业务数据,区块链数据分析变得十分必要。然而现有的相关技术存在着用户基于多账本开展业务时,无法根据用户需求优先解析重要的账本的业务数据,以及实时性不足,无法第一时间识别和拦截恶意交易的技术问题。
发明内容
针对现有技术存在的问题,本公开提供一种区块链数据分析方法、装置及相关设备。
第一方面,本公开提供一种区块链数据分析方法,包括:依据账本的优先等级,解析从区块链节点获取的链数据,获取解析数据;基于流式计算引擎,选定算子集,对所述解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;基于规则引擎,对所述解析数据进行实时过滤,获取分析结果;依据所述流计算结果,对所述规则引擎进行更新。
根据本公开提供的一种区块链数据分析方法,所述账本的优先等级依据预先存储的账本控制策略确定;所述账本控制策略包括可配置的账本名称、和账本优先等级;所述账本优先等级用于表征所关联业务的优先等级。
根据本公开提供的一种区块链数据分析方法,所述账本控制策略还包括账本窗口,所述账本窗口用于通过其大小控制数据的并发量。
根据本公开提供的一种区块链数据分析方法,在所述获取解析数据后,该方法还包括:对所述解析数据基于消息队列进行缓存。
根据本公开提供的一种区块链数据分析方法,该方法还包括,对所述流计算结果和所述分析结果进行去中心化或数据库方式的存储。
根据本公开提供的一种区块链数据分析方法,所述解析从区块链节点获取的链数据进一步为:基于轮询或加权轮询的负载均衡方式,对从区块链节点获取的链数据进行解析。
根据本公开提供的一种区块链数据分析方法,所述解析从区块链节点获取的链数据还包括:若所述链节点服务当前不可用,在外在干预后正常运转的情况下,启动重连机制,再次进行解析。
根据本公开提供的一种区块链数据分析方法,所述基于轮询或加权轮询的负载均衡方式,对从区块链节点获取的链数据进行解析前还包括:设置链适配器,基于所述链适配器设定适用于不同类型区块链的通用操作语义接口。
根据本公开提供的一种区块链数据分析方法,所述从区块链节点获取的链数据通过如下方式访问:在访问区块链节点时,优先从连接池中获取可用的闲置连接。
第二方面,本公开还提供一种区块链数据分析装置,所述区块链数据分析装置包括解析模块、流计算模块、规则引擎模块和更新模块。其中,解析模块,用于依据预先存储的账本控制策略,确定账本的优先等级,依据账本优先等级,解析从区块链节点获取的链数据,获取解析数据;流计算模块,用于基于流式计算引擎,选定算子集,对所述解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;规则引擎模块,用于基于规则引擎,对所述解析数据进行实时过滤,获取分析结果;更新模块,用于依据所述流计算结果,对所述规则引擎进行更新。
第三方面,本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述区块链数据分析方法的步骤。
第四方面,本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述区块链数据分析方法的步骤。
第五方面,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述区块链数据分析方法的步骤。
本公开提供的区块链数据分析方法、装置及相关设备,通过依据账本的优先等级,解析从区块链节点获取的链数据,获取解析数据;基于流式计算引擎,选定算子集,对所述解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;基于规则引擎,对所述解析数据进行实时过滤,获取分析结果;依据所述流计算结果,对所述规则引擎进行更新。基于账本的优先等级解析从区块链节点获取的链数据,在硬件资源固定前提下,可根据需求优先解析重要的账本的业务数据,使得一定程度上解决在流量激增时,重要的账本的业务数据解析滞后的问题。利用流式计算引擎丰富的算子集、可伸缩的计算能力轻松应对数据量激增场景下实时数据分析要求,获取到流计算结果可对所述规则引擎进行更新,针对多样化的链业务场景、快速变化的数据分析需求,基于规则引擎,第一时间定位问题业务、问题交易等实时性需求。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开提供的区块链数据分析方法的流程示意图;
图2是本公开提供的区块链数据分析方法的具体实施的流程示意图;
图3是本公开提供的区块链数据分析装置的结构示意图;
图4是本公开提供的区块链数据分析装置的流计算模块的结构示意图;
图5是本公开提供的区块链数据分析装置的规则引擎模块的结构示意图;
图6是本公开提供的区块链数据分析装置的解析模块的结构示意图;
图7是本公开提供的电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开实施例一部分实施例,而不是全部的实施例。基于本公开实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开实施例保护的范围。
随着区块链项目的持续运转,尤其是产业区块链项目的规模化应用,区块链系统上沉淀了大量业务数据,区块链数据分析变得十分必要。现有的提供访问区块链数据接口的方法为:调用区块链节点的API从区块链上收集交易/区块/账户数据;将原始数据经解析服务解析后的结构化数据存放到数据库服务中或每隔一段时长从存储服务中增量同步数据到大数据计算服务集群,利用大数据集群的优势快速获得统计、计算结果,并转存计算结果到数据库服务中;提供数据服务接口。
区块链在设计之初只有一个账本(例如,比特币、以太坊),但随着区块链脱虚向实,企业级用户对上链数据隐私的关切,演化出了多账本。同一个企业可能加入多个账本开展业务。现有的提供访问区块链数据接口的方法,在硬件资源固定前提下,无法根据需求优先解析重要的账本的业务数据而引起解析滞后现象。
另外,典型的链数据服务产品通常是增量同步数据到计算集群,但是规则无法更改,计算能力差导致实时性差,企业用户(例如,交易所、钱包提供者)无法第一时间定位问题业务、问题交易,从而错失第一时间拦截恶意交易的时机。
为解决上述问题,本公开提供了一种区块链数据分析方法,参照图1,图1为本公开提供的区块链数据分析方法的流程示意图,本公开实施例中的区块链数据分析方法,包括:
步骤S101、依据账本的优先等级,解析从区块链节点获取的链数据,获取解析数据;
步骤S103、基于流式计算引擎,选定算子集,对解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;
步骤S105、基于规则引擎,对解析数据进行实时过滤,获取分析结果;
步骤S107、依据流计算结果,对规则引擎进行更新。
本公开提供的区块链数据分析方法,通过依据账本的优先等级,解析从区块链节点获取的链数据,获取解析数据;基于流式计算引擎,选定算子集,对解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;基于规则引擎,对解析数据进行实时过滤,获取分析结果;依据所述流计算结果,对规则引擎进行更新。基于账本的优先等级解析从区块链节点获取的链数据,在硬件资源固定前提下,可根据需求优先解析重要的账本的业务数据,使得一定程度上解决在流量激增时,重要的账本的业务数据解析滞后的问题。利用流式计算引擎丰富的算子集、可伸缩的计算能力轻松应对数据量激增场景下实时数据分析要求,获取到流计算结果可对规则引擎进行更新,针对多样化的链业务场景、快速变化的数据分析需求,基于规则引擎,第一时间定位问题业务、问题交易等实时性需求。
下面结合图1描述本公开实施例的各个步骤。
步骤S101、依据账本的优先等级,解析从区块链节点获取的链数据,获取解析数据;
具体来说,区块链节点为区块链系统、链下应用系统等数据源上的区块链的节点。
步骤S103、基于流式计算引擎,选定算子集,对解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;
大数据领域不乏产品级的流计算产品。这类产品有丰富的算子支持,支持SQL(Structured Query Language)编写计算任务,可伸缩的计算能力。在具体实施时,为了进一步降低流式计算服务使用门槛,可以考虑选用成熟的流式计算管理平台。典型的流式计算引擎都可以纳入技术选型范围之内。
具体来说,流式计算服务主要负责实时计算数据流指标。预先设定的计算任务是由用户编写的特定业务属性的SQL语言。计算过程,即执行依据预先设定的计算任务所对应的计算指令是解析并执行编写的SQL语句。流式数据计算服务主要从数据缓冲中消费数据。获取的流计算结果可放置到常用的存储引擎中。
步骤S105、基于规则引擎,对解析数据进行实时过滤,获取分析结果;
具体来说,基于规则引擎,首先基于规则过滤出指定的业务对象。例如,合约名称、函数名、函数参数。在符合条件的业务对象上基于事实和指标(例如,敏感词库、函数调用频次、窗口期)判断出分析结果。需要说明的是,事实和指标可以是预先存储在常用的存储引擎,也可以是从外部导入的。规则可以通过规则管理模块输入规则引擎,规则管理模块有助于编写规则、更新规则、删除规则。结合具体业务数据内容、场景编写的规则更有针对性,结果更有说服力。
步骤S107、依据流计算结果,对规则引擎进行更新。
具体来说,流计算结果可以作为事实和指标更新规则引擎,使得判断出的分析结果更准确,实时性更好。
在一种可选实施例中,步骤S101中的账本的优先等级依据预先存储的账本控制策略确定;账本控制策略包括可配置的账本名称、和账本优先等级;账本优先等级用于表征所关联业务的优先等级。
具体来说,账本控制策略是预先配置的,初次使用时需要加载账本控制策略的配置。账本控制策略也可以在实时使用过程中进行调整,即数据分析过程中由外界(通常为应用程序)根据需求变更。账本优先等级用于表征所关联业务的优先等级,账本优先等级高,则可被优先解析。
在一种可选实施例中,账本控制策略还包括账本窗口,账本窗口用于通过其大小控制数据的并发量。
在具体实施中,账本窗口可以应对特定时期激增的业务流量引起的链数据解析进度滞后,通过配置窗口大小,即并发量,进行缓解,也就是在流量激增时通过增大并发量,加快实时解析数据。
在一种可选实施例中,在步骤S101后,该方法还包括:
步骤S102、对解析数据基于消息队列进行缓存。
具体来说,消息队列是一个载体,可以存放结构化数据,非结构化数据,这里主要是存放结构化数据。通过对解析数据基于消息队列进行缓存可以缓解数据解析和数据处理速度失衡。这里的数据处理包括基于流式计算引擎,选定算子集,对解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果和基于规则引擎,对解析数据进行实时过滤,获取分析结果等步骤。可选的消息队列缓冲有Kafka、RabbitMQ等。
在一种可选实施例中,该方法还包括,对流计算结果和分析结果进行去中心化或数据库方式的存储。
具体来说,这里的存储是对流计算结果和分析结果进行持久化,保证流计算结果和分析结果数据不丢失。根据数据量大小和访问响应速度等,常用的存储引擎有MySQL、Redis等。
参照图2,在具体实施中,依据预先存储的账本控制策略,确定账本的优先等级,依据账本优先等级,解析从数据源中的区块链节点获取的链数据,获取解析数据;将解析数据基于消息队列进行缓存,以数据流的形式分别送入流式计算引擎和规则引擎进行运算,将得到的流计算结果和分析结果以去中心化或数据库方式的存储,其中,存储的流计算结果可以作为新增的事实和指标送入规则引擎判断数据流,实现对规则引擎的更新。当用户想调用报表、敏感词、通知等数据时,可通过数据服务接口从数据库或去中心存储中获取。
在一种可选实施例中,步骤S101中解析从区块链节点获取的链数据进一步为:
步骤S1013、基于轮询或加权轮询的负载均衡方式,对从区块链节点获取的链数据进行解析。
具体来说,轮询算法是最简单的一种负载均衡算法。它的原理是把来自用户的请求轮流分配给内部的服务器:从服务器1开始,直到服务器N,然后重新开始循环。其算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。轮询算法假设所有服务器的处理性能都相同,不关心每台服务器的当前连接数和响应速度。当请求服务间隔时间变化比较大时,轮询算法容易导致服务器间的负载不平衡。所以此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。
加权轮询算法的原理就是:根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。加权轮询算法的结果,就是要生成一个服务器序列。每当有请求到来时,就依次从该序列中取出下一个服务器用于处理该请求。换言之,加权轮询算法要生成一个服务器序列,该序列中包含n个服务器。n是所有服务器的权重之和。在该序列中,每个服务器的出现的次数,等于其权重值。并且,生成的序列中,服务器的分布应该尽可能的均匀。
负载均衡方式可以减轻单个区块链节点的负载,比较适用于区块链节点集群。区块链节点可以是自建的区块链节点或者来自公开的第三方节点服务提供商。一般的,外部节点服务提供商有单日调用次数的限制。因此,优选地,区块链节点集稳定、高性能的自建节点、外部服务节点于一体。
在一种可选实施例中,步骤S101中解析从区块链节点获取的链数据还包括:
步骤S1015、若链节点服务当前不可用,在外在干预后正常运转的情况下,启动重连机制,再次进行解析。
具体来说,重连机制作为服务自愈的一种基础性策略,是确保区块链节点因自身原因(例如,内存不足)造成的服务暂时不可用但一段时间后在外在干预后再次正常运转时链数据解析服务应主动重连,尤其是在区块链节点集群数量较少的情况下。若轮询时,区块链节点因自身原因(例如,内存不足)造成的服务暂时不可用则从该序列中取出下一个服务器用于处理下一个请求,该区块链节点解析暂停,一段时间后在外在干预后再次正常运转时,启动重连机制,再次进行解析。
在一种可选实施例中,步骤S101中解析从区块链节点获取的链数据进一步包括:
步骤S1011、设置链适配器,基于链适配器设定适用于不同类型区块链的通用操作语义接口。
具体来说,为了具备对接不同的区块链的能力,需设置链适配器,链适配器会抽象出一套通用的操作语义接口,这套操作语义会覆盖账本、区块、交易、账户、合约等。基于链适配器配置可访问特定类型的区块链服务,这使得扩展异构的区块链数据源变得容易。
在一种可选实施例中,从区块链节点获取的链数据通过如下方式访问:
步骤S1012、在访问区块链节点时,优先从连接池中获取可用的闲置连接。
具体来说,由于不断的创建、销毁链接,会导致访问链节点服务器的压力,而且对于内存来说,不断的开辟与销毁,内存的使用率极低,通过连接池可以明显提高对链节点操作的性能。连接池负责分配、管理和释放连接,它允许应用程序重复使用一个现有的连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的连接来避免因为没有释放连接而引起的连接遗漏。
为了提高链数据解析服务吞吐量、降低延迟,需建立一个连接池。在访问区块链节点进行解析时应先从连接池中获取可用的闲置连接。连接池的大小应可配置。
下面对本公开实施例提供的区块链数据分析装置进行描述,下文描述的区块链数据分析装置与上文描述的区块链数据分析方法可相互对应参照。
本公开提供了一种区块链数据分析装置,参照图3,图3为本公开提供的区块链数据分析装置的结构示意图,本公开实施例中的区块链数据分析装置,包括:解析模块32、流计算模块34、规则引擎模块36和更新模块38。其中,解析模块32,用于依据账本的优先等级,解析从区块链节点获取的链数据,获取解析数据;流计算模块34,用于基于流式计算引擎,选定算子集,对解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;规则引擎模块36,用于基于规则引擎,对解析数据进行实时过滤,获取分析结果;更新模块38,用于依据流计算结果,对规则引擎进行更新。
本公开提供的区块链数据分析装置,解析模块32通过依据账本优先等级,解析从区块链节点获取的链数据,获取解析数据;通过流计算模块34基于流式计算引擎,选定算子集,对解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;规则引擎模块36通过基于规则引擎,对解析数据进行实时过滤,获取分析结果;更新模块38依据流计算结果,对规则引擎进行更新。解析模块32基于账本的优先等级解析从区块链节点获取的链数据,在硬件资源固定前提下,可根据需求优先解析重要的账本的业务数据,使得一定程度上解决在流量激增时,重要的账本的业务数据解析滞后的问题。流计算模块34利用流式计算引擎丰富的算子集、可伸缩的计算能力轻松应对数据量激增场景下实时数据分析要求,获取到流计算结果可通过更新模块38对规则引擎进行更新,针对多样化的链业务场景、快速变化的数据分析需求,基于规则引擎,第一时间定位问题业务、问题交易等实时性需求。
下面结合图3描述本公开实施例的各个模块。
具体来说,解析模块32中区块链节点为区块链系统、链下应用系统等数据源上的区块链的节点。
大数据领域不乏产品级的流计算产品。这类产品有丰富的算子支持,支持SQL(Structured Query Language)编写计算任务,可伸缩的计算能力。在具体实施时,为了进一步降低流式计算服务使用门槛,流计算模块34可以考虑选用成熟的流式计算管理平台。典型的流式计算引擎都可以纳入技术选型范围之内。
具体来说,参照图4,流计算模块34主要负责实时计算数据流指标。预先设定的计算任务是由用户编写的特定业务属性的SQL语言。计算过程,即执行依据预先设定的计算任务所对应的计算指令是解析并执行编写的SQL语句。流式数据计算服务主要从数据缓冲中消费数据。获取的流计算结果可放置到常用的存储引擎中。流计算模块34利用流式大数据技术丰富的算子集、可伸缩的计算能力轻松应对数据量激增场景下准实时数据分析要求,获取到指标可作为事实数据和指标更新规则引擎。
具体来说,参照图5,基于规则引擎,规则引擎模块36首先基于规则过滤出指定的业务对象。例如,合约名称、函数名、函数参数。在符合条件的业务对象上基于事实和指标(例如,敏感词库、函数调用频次、窗口期)判断出分析结果。需要说明的是,事实和指标可以是预先存储在常用的存储引擎,也可以是从外部导入的。规则可以通过规则管理模块输入规则引擎,规则管理模块有助于编写规则、更新规则、删除规则。结合具体业务数据内容、场景编写的规则更有针对性,结果更有说服力。规则引擎模块36针对多样化的链业务场景、快速变化的数据分析需求,围绕规则引擎、规则(库)和事实数据建立一套实时分析线,第一时间定位问题业务、问题交易等实时性需求。
具体来说,更新模块38中的流计算结果可以作为事实和指标更新规则引擎,使得判断出的分析结果更准确,实时性更好。
在一种可选实施例中,解析模块32中依据的账本的优先等级可依据预先存储的账本控制策略确定;账本控制策略包括可配置的账本名称、和账本优先等级;账本优先等级用于表征所关联业务的优先等级。
具体来说,账本控制策略是预先配置的,初次使用时需要加载账本控制策略的配置。账本控制策略也可以在实时使用过程中进行调整,即数据分析过程中由外界(通常为应用程序)根据需求变更。账本优先级用于表征所关联业务的优先等级,账本的优先等级高,则可被优先解析。
在一种可选实施例中,账本控制策略还包括账本窗口,账本窗口用于通过其大小控制数据的并发量。
在具体实施中,账本窗口可以应对特定时期激增的业务流量引起的链数据解析进度滞后,通过配置窗口大小,即并发量,进行缓解,也就是在流量激增时通过增大并发量,加快实时解析数据。
在一种可选实施例中,本公开提供的区块链数据分析装置,还包括:
数据缓存模块33,用于对解析数据基于消息队列进行缓存。
具体来说,消息队列是一个载体,可以存放结构化数据,非结构化数据,这里主要是存放结构化数据。通过对解析数据基于消息队列进行缓存可以缓解数据解析和数据处理速度失衡。这里的数据处理包括流计算模块34、规则引擎模块36和更新模块38,数据解析为解析模块32。数据缓存模块33中可选的消息队列缓冲有Kafka、RabbitMQ等。
在一种可选实施例中,该区块链数据分析装置还包括,存储模块30,用于对流计算结果和分析结果进行去中心化或数据库方式的存储。
具体来说,存储模块30这里的存储是对流计算结果和分析结果进行持久化,即通过存储地点的方式的选择,保证流计算结果和分析结果数据不丢失。根据数据量大小和访问响应速度等,常用的存储引擎有MySQL、Redis等。
在具体实施中,存储模块30还可以存储解析数据,从而应尽可能地支持存储可扩展。诸如星际文件系统、关系型数据库、HBase这些常见的选项应该视为一等公民进行支持。在这种情况下,存储模块30应该抽象出一套读写操作语义。并支持私有化的存储集群、公有云的存储服务产品的配置。
在一种可选实施例中,解析模块32进一步包括:
账本控制策略单元320,用于依据预先存储的账本控制策略,确定账本的优先等级;
负载均衡单元321,用于基于轮询或加权轮询的负载均衡方式,对从区块链节点获取的链数据进行解析。
具体来说,轮询算法是最简单的一种负载均衡算法。它的原理是把来自用户的请求轮流分配给内部的服务器:从服务器1开始,直到服务器N,然后重新开始循环。其算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。轮询算法假设所有服务器的处理性能都相同,不关心每台服务器的当前连接数和响应速度。当请求服务间隔时间变化比较大时,轮询算法容易导致服务器间的负载不平衡。所以此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。
加权轮询算法的原理就是:根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。加权轮询算法的结果,就是要生成一个服务器序列。每当有请求到来时,就依次从该序列中取出下一个服务器用于处理该请求。换言之,加权轮询算法要生成一个服务器序列,该序列中包含n个服务器。n是所有服务器的权重之和。在该序列中,每个服务器的出现的次数,等于其权重值。并且,生成的序列中,服务器的分布应该尽可能的均匀。
负载均衡单元321用于减轻单个区块链节点的负载,比较适用于区块链节点集群。区块链节点可以是自建的区块链节点或者来自公开的第三方节点服务提供商。一般的,外部节点服务提供商有单日调用次数的限制。因此,优选地,区块链节点集稳定、高性能的自建节点、外部服务节点于一体。
在一种可选实施例中,解析模块32还包括:
重连单元323,用于若链数据当前不可用,在外在干预后正常运转的情况下,启动重连机制,再次进行解析。
具体来说,重连机制作为服务自愈的一种基础性策略,是确保区块链节点因自身原因(例如,内存不足)造成的服务暂时不可用但一段时间后在外在干预后再次正常运转时链数据解析服务应主动重连,尤其是在区块链节点集群数量较少的情况下。若轮询时,区块链节点因自身原因(例如,内存不足)造成的服务暂时不可用则从该序列中取出下一个服务器用于处理下一个请求,该区块链节点解析暂停,一段时间后在外在干预后再次正常运转时,通过重连单元323再次进行解析。
在一种可选实施例中,解析模块32进一步包括:
链适配器单元325,用于设置链适配器,基于链适配器设定适用于不同类型区块链的通用操作语义接口。
具体来说,为了具备对接不同的区块链的能力,需设置链适配器,链适配器会抽象出一套通用的操作语义接口,这套操作语义会覆盖账本、区块、交易、账户、合约等。基于链适配器配置可访问特定类型的区块链服务,这使得扩展异构的区块链数据源变得容易。
在一种可选实施例中,解析模块32中从区块链节点获取的链数据通过连接池单元327访问,即连接池单元327用于在访问区块链节点时,优先从连接池中获取可用的闲置连接。
具体来说,由于不断的创建、销毁链接,会导致访问链节点服务器的压力,而且对于内存来说,不断的开辟与销毁,内存的使用率极低,通过连接池可以明显提高对链节点操作的性能。连接池负责分配、管理和释放链节点连接,它允许应用程序重复使用一个现有的连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的连接来避免因为没有释放连接而引起的数据库连接遗漏。
为了提高链数据解析服务吞吐量、降低延迟,需通过连接池单元327,在访问区块链节点进行解析时应先从连接池中获取可用的闲置连接。连接池单元327中的连接池的大小应可配置。
在具体实施例中,参照图6,解析模块32包括账本控制策略单元320、负载均衡单元321、重连单元323、链适配器单元325、连接池单元327和存储单元329,通过调用节点暴露的接口,实现解析从区块链节点获取的链数据起到高利用率、高灵活性、具备对接不同的区块链的能力、存储引擎可扩展的效果。其中,账本控制策略单元320中维持一个优先级队列并且暴露账本优先级设置接口和账本窗口设置接口。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行区块链数据分析方法。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本公开还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的区块链数据分析方法。
又一方面,本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的区块链数据分析方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
Claims (13)
1.一种区块链数据分析方法,其特征在于,包括:
依据账本的优先等级,解析从区块链节点获取的链数据,获取解析数据;
基于流式计算引擎,选定算子集,对所述解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;
基于规则引擎,对所述解析数据进行实时过滤,获取分析结果;
依据所述流计算结果,对所述规则引擎进行更新。
2.根据权利要求1所述的区块链数据分析方法,其特征在于,
所述账本的优先等级依据预先存储的账本控制策略确定;
所述账本控制策略包括可配置的账本名称、和账本优先等级;所述账本优先等级用于表征所关联业务的优先等级。
3.根据权利要求2所述的区块链数据分析方法,其特征在于,
所述账本控制策略还包括账本窗口,所述账本窗口用于通过其大小控制数据的并发量。
4.根据权利要求3所述的区块链数据分析方法,其特征在于,在所述获取解析数据后,该方法还包括:对所述解析数据基于消息队列进行缓存。
5.根据权利要求4所述的区块链数据分析方法,其特征在于,该方法还包括,
对所述流计算结果和所述分析结果进行去中心化或数据库方式的存储。
6.根据权利要求5所述的区块链数据分析方法,其特征在于,所述解析从区块链节点获取的链数据进一步为:
基于轮询或加权轮询的负载均衡方式,对从区块链节点获取的链数据进行解析。
7.根据权利要求6所述的区块链数据分析方法,其特征在于,所述解析从区块链节点获取的链数据还包括:
若所述链节点服务当前不可用,在外在干预后正常运转的情况下,启动重连机制,再次进行解析。
8.根据权利要求7所述的区块链数据分析方法,其特征在于,所述基于轮询或加权轮询的负载均衡方式,对从区块链节点获取的链数据进行解析前还包括:
设置链适配器,基于所述链适配器设定适用于不同类型区块链的通用操作语义接口。
9.根据权利要求8所述的区块链数据分析方法,其特征在于,所述从区块链节点获取的链数据通过如下方式访问:
在访问区块链节点时,优先从连接池中获取可用的闲置连接。
10.一种区块链数据分析装置,其特征在于,所述区块链数据分析装置包括:
解析模块,用于依据账本的优先等级,解析从区块链节点获取的链数据,获取解析数据;
流计算模块,用于基于流式计算引擎,选定算子集,对所述解析数据执行依据预先设定的计算任务所对应的计算指令,获取流计算结果;
规则引擎模块,用于基于规则引擎,对所述解析数据进行实时过滤,获取分析结果;
更新模块,用于依据所述流计算结果,对所述规则引擎进行更新。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至9任一项所述区块链数据分析方法的步骤。
12.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述区块链数据分析方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述区块链数据分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210003136.2A CN114356995A (zh) | 2022-01-04 | 2022-01-04 | 区块链数据分析方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210003136.2A CN114356995A (zh) | 2022-01-04 | 2022-01-04 | 区块链数据分析方法、装置及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114356995A true CN114356995A (zh) | 2022-04-15 |
Family
ID=81104502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210003136.2A Pending CN114356995A (zh) | 2022-01-04 | 2022-01-04 | 区块链数据分析方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356995A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694589A (zh) * | 2018-05-08 | 2018-10-23 | 杭州佑他科技有限公司 | 一种基于区块链的资产监控方法 |
CN109522735A (zh) * | 2018-11-29 | 2019-03-26 | 上海中信信息发展股份有限公司 | 一种基于智能合约的数据权限验证方法及装置 |
CN109710387A (zh) * | 2018-12-06 | 2019-05-03 | 成都佰纳瑞信息技术有限公司 | 一种用于区块链事务优先级排序的策略引擎及其使用方法 |
CN113282611A (zh) * | 2021-06-29 | 2021-08-20 | 深圳平安智汇企业信息管理有限公司 | 一种流数据同步的方法、装置、计算机设备及存储介质 |
WO2021253820A1 (zh) * | 2020-06-18 | 2021-12-23 | 南京龙猫商业智能科技股份有限公司 | 一种基于区块链技术的智能物流配送系统 |
-
2022
- 2022-01-04 CN CN202210003136.2A patent/CN114356995A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694589A (zh) * | 2018-05-08 | 2018-10-23 | 杭州佑他科技有限公司 | 一种基于区块链的资产监控方法 |
CN109522735A (zh) * | 2018-11-29 | 2019-03-26 | 上海中信信息发展股份有限公司 | 一种基于智能合约的数据权限验证方法及装置 |
CN109710387A (zh) * | 2018-12-06 | 2019-05-03 | 成都佰纳瑞信息技术有限公司 | 一种用于区块链事务优先级排序的策略引擎及其使用方法 |
WO2021253820A1 (zh) * | 2020-06-18 | 2021-12-23 | 南京龙猫商业智能科技股份有限公司 | 一种基于区块链技术的智能物流配送系统 |
CN113282611A (zh) * | 2021-06-29 | 2021-08-20 | 深圳平安智汇企业信息管理有限公司 | 一种流数据同步的方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684358B (zh) | 数据查询的方法和装置 | |
US20180225344A1 (en) | Database access control method and apparatus | |
US10055483B2 (en) | Data stream management systems | |
CN110266716B (zh) | 电网统一服务平台系统 | |
US7953100B2 (en) | System and method for providing a pluggable architecture for state management in a telecommunication service access gateway | |
CN107545338B (zh) | 业务数据处理方法及业务数据处理系统 | |
CN108804237A (zh) | 数据实时统计方法、装置、存储介质和电子设备 | |
US20150199281A1 (en) | Apparatus and method for meeting performance metrics for users in file systems | |
US8660991B2 (en) | Systems and methods for management of subscriber databases within mobile communications networks | |
CN112445857A (zh) | 一种基于数据库的资源配额管理方法和装置 | |
CN109981702B (zh) | 一种文件存储方法及系统 | |
US10063601B2 (en) | Client identification for enforcing computer resource quotas | |
US20170272379A1 (en) | Visualization of computer resource quotas | |
CN110019539A (zh) | 一种数据仓库的数据同步的方法和装置 | |
CN112685499A (zh) | 一种工作业务流的流程数据同步方法、装置及设备 | |
CN113794755B (zh) | 基于微服务架构的共享服务推送方法及系统 | |
US12026390B2 (en) | Record information management based on self-describing attributes | |
CN112286930A (zh) | redis业务方资源共享的方法、装置、存储介质及电子设备 | |
CN110071952A (zh) | 服务调用量的控制方法和装置 | |
CN114356995A (zh) | 区块链数据分析方法、装置及相关设备 | |
WO2022089321A1 (zh) | 调度接入点的方法、装置、服务器以及存储介质 | |
CN116980526A (zh) | 应用于融合通信的多渠道排队机实现方法、装置及设备 | |
CN108536854A (zh) | 数据交互的方法、装置及计算机可读存储介质 | |
CN114553959A (zh) | 基于态势感知的云原生服务网格配置按需下发方法及应用 | |
CN110401708A (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 |