CN113434503A - 一种区块链浏览方法及系统 - Google Patents
一种区块链浏览方法及系统 Download PDFInfo
- Publication number
- CN113434503A CN113434503A CN202110713535.3A CN202110713535A CN113434503A CN 113434503 A CN113434503 A CN 113434503A CN 202110713535 A CN202110713535 A CN 202110713535A CN 113434503 A CN113434503 A CN 113434503A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- database
- application
- browsing
- 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 47
- 230000008569 process Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 abstract description 7
- 230000002159 abnormal effect Effects 0.000 description 11
- 230000005856 abnormality Effects 0.000 description 9
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 8
- 238000013500 data storage Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链浏览方法及系统,包括以下步骤:S1:扫描区块链的各个区块,获取区块链的区块数据;S2:将区块数据存储于MYSQL数据库,并提取区块数据中的应用数据存储于ES数据库并建立对应的应用索引,其中,应用数据为浏览应用执行所需的数据;S3:基于MYSQL数据库与ES数据库,提供区块链的浏览服务,其中,根据浏览服务的所需数据类型,调取MYSQL数据库中的数据和/或通过应用索引调取ES数据库中的数据。本发明通过MYSQL数据库则可以调取任意一般性的区块数据,保证区块数据的全面性,通过应用索引可以快速从ES数据库中调取浏览应用执行所需的数据,可以大大加快浏览应用的响应速度,从而提高整体的数据服务体验。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种区块链浏览方法及系统。
背景技术
区块链技术基于其不可伪造、全程留痕、可以追溯、公开透明、集体维护等特征,在现实生活中实现了各种各样的功能,不仅得到了安全、可靠的保障,而且极大地方便了现实生活的方方面面。
随着区块链应用场景越来越多,区块链数据信息也越来越多,为了获取这些区块链数据,就需要通过区块链浏览器进行调取,其中,区块链浏览器是提供不同用户浏览与查询区块链所有信息的工具,可以广泛为相关区块链应用提供数据服务。
但是面对庞大的区块链数据时,如果还基于一般数据库的数据浏览方式,则会出现区块链浏览器的响应速度将特别的缓慢,从而降低数据服务的用户体验。因此,针对区块链数据浏览需要解决其大数据量下存在的缺陷。
发明内容
本发明为解决上述技术问题,提供了一种区块链浏览方法及系统,其技术方案为:
一种区块链浏览方法,包括:
S1:扫描区块链的各个区块,获取区块链的区块数据;
S2:将区块数据存储于MYSQL数据库,并提取区块数据中的应用数据存储于ES数据库并建立对应的应用索引,其中,应用数据为浏览应用执行所需的数据;
S3:基于MYSQL数据库与ES数据库,提供区块链的浏览服务,其中,根据浏览服务的所需数据类型,调取MYSQL数据库中的数据和/或通过应用索引调取ES数据库中的数据。
在其中一个实施例中,步骤S1进一步包括:
按区块链的区块顺序不间断地对区块链的各个区块进行扫块,获取区块数据,其中,若无区块数据扫描,则等待新数据产生;
在扫块过程中,检查扫块是否存在漏块或跳块,若存在则对漏块或跳块的区块进行扫块,获取漏块或跳块的遗漏数据,并合并至区块数据中;
在扫块过程中,检查是否存在扫块异常,若存在异常,则根据异常对应的预设解决策略进行处理。
在其中一个实施例中,在步骤S1中,通过区块链节点的远程过程调用协议接口获取区块数据。
在其中一个实施例中,步骤S2进一步包括:
将区块数据存储于MYSQL数据库,同时,提取区块数据中的应用数据存储于ES数据库并建立对应的应用索引。
在其中一个实施例中,步骤S2进一步包括:
将区块数据存储于MYSQL数据库,并提取区块数据中的应用数据从MYSQL数据库迁移至ES数据库并建立对应的应用索引。
在其中一个实施例中,应用索引包括搜索应用索引、排序应用索引、统计应用索引中至少任一项。
在其中一个实施例中,步骤S3中,根据浏览服务的所需数据类型,调取MYSQL数据库中的数据和/或通过应用索引调取ES数据库中的数据进一步包括:
若浏览服务所需数据类型为展示层数据,则调取MYSQL数据库中的数据;
若浏览服务所需数据类型为应用层数据,则通过应用索引调取ES数据库中的数据;
若浏览服务所需数据类型为展示层数据和应用层数据,则调取MYSQL数据库,并通过应用索引调取ES数据库中的数据。
一种区块链浏览系统,包括:
扫块模块,用于扫描区块链的各个区块获取区块链的区块数据;
存储模块,用于将区块数据存储于MYSQL数据库,并提取区块数据中的应用数据存储于ES数据库并建立对应的应用索引,其中,应用数据为浏览应用执行所需的数据;
浏览模块,用于基于MYSQL数据库与ES数据库,提供区块链的浏览服务,其中,根据浏览服务的所需数据类型,调取MYSQL数据库中的数据和/或通过应用索引调取ES数据库中的数据。
一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述区块链浏览方法。
一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述区块链浏览方法。
本发明与现有技术相比具有以下的优点和积极效果:
1)本发明将获取的区块链的区块数据存储于MYSQL数据库,即全量数据持久化存储到MYSQL数据库,基于MYSQL数据库可以将区块数据完整地持久化存储,同时,将区块链数据中的应用数据存储于ES数据库并建立应用索引,基于ES数据库可以将区块数据中一些关键、敏感的应用数据进行存储,其中,通过MYSQL数据库则可以调取任意一般性的区块数据,保证区块数据的全面性,通过应用索引可以快速从ES数据库中调取浏览应用执行所需的数据,可以大大加快浏览应用的响应速度,从而提高整体的数据服务体验;
2)本发明通过对区块链的各个区块进行扫块,获取区块数据,其中,在扫块过程中,不仅会检查是否存在漏块、跳块,以防止区块数据不全,而且会检查是否存在扫块异常,如节点网络断掉、运行环境出错、节点卡住等导致数据获取或解析异常,以进行对应的处理,保证区块数据获取的正常;
3)本发明在对区块数据进行存储时,一种方式可以同时对MYSQL数据库、ES数据库进行存储,另一种方式可以先把区块数据存于MYSQL数据库,再从MYSQL数据库中把应用数据迁移至ES数据库,如此,均可以实现区块的快速浏览,其中,后者可以快速完成数据区块数据存储,并在浏览过程中逐渐将应用数据迁移至ES数据库,在保证区块链的正常浏览的同时,提高数据存储效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为本发明一个实施例中区块链浏览方法的整体流程图;
图2为本发明一个实施例中区块链浏览系统的结构框图;
图3为本发明一个实施例中区块链浏览系统的架构图。
附图标记说明:
1-扫块模块;2-存储模块;3-浏览模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
区块链简单地说就是一种去中心化的分布式账本数据库,区块链技术本质上是一种数据库技术,每个区块就像一个硬盘,把信息全部保存下来,再通过密码学技术进行加密,这些被保存的信息就无法被篡改。区块链具有去中心化、开放性、独立性、安全性、匿名性的特征,可以应用到生活的众多方面。区块链浏览器作为提供不同用户浏览与查询区块链所有信息的工具,针对区块链数据,数据量大进一步使得区块链浏览的速度大大限制,传统数据库的数据浏览方式显然已无法满足数据日益更新的现有区块链浏览需求,这就需要一种更加高效快速的区块链浏览方法与系统。
第一实施例
为解决上述问题,参看图1,本实施例提出一种区块链浏览方法,包括:
S1:扫描区块链的各个区块,获取区块链的区块数据;
S2:将区块数据存储于MYSQL数据库,并提取区块数据中的应用数据存储于ES数据库并建立对应的应用索引,其中,应用数据为浏览应用执行所需的数据;
S3:基于MYSQL数据库与ES数据库,提供区块链的浏览服务,其中,根据浏览服务的所需数据类型,调取MYSQL数据库中的数据和/或通过应用索引调取ES数据库中的数据。
现对本实施例进行详细说明,但不仅限于此。
本实施例适用于区块链数据的快速浏览,尤其适用于大数据下区块链数据的浏览,可以为区块链浏览器的浏览应用提供快速响应,从而大大提高区块链浏览整体体验。
1)具体介绍步骤S1
本实施例扫描区块链的各个区块,获取区块链的区块数据。其中,从区块链中的一全节点扫描区块链的各个区块,获取区块数据,区块链的全节点,是拥有完整区块链账本的节点,其同步所有的区块链数据,并且能够独立校验区块链上的所有交易并实时更新数据,例如以太坊,以太坊包括多个ETH全节点,从其中一个ETH全节点中获取该以太坊上的所有区块数据。
具体地,本实施例按区块链的区块顺序不间断地对区块链的各个区块进行扫块,获取区块数据,其中,通过区块链节点的远程过程调用协议接口(RPC,Remote ProcedureCall Protocol)获取区块数据,例如,查询区块信息的RPC、查询交易信息的RPC,通过这些RPC接口获取所有的区块信息。进一步地,本实施例是持续、不停地进行扫块,以保持区块数据的实时获取,并且若无区块数据扫描,则等待新数据产生,例如,当处理了第99个块之后,紧接着处理第100个块,如果该第100个块尚未生成,则持续等待直至生成该第100个块并从中获取区块数据。
优选地,在扫块过程中,检查扫块是否存在漏块或跳块,若存在则对漏块或跳块的区块进行扫块,获取漏块或跳块的遗漏数据,并合并至区块数据中。具体而言,如果扫块的时候漏掉了某个块或者跳块了,本实施例则将该块中的交易信息补上,并通过后续步骤写到对应的数据库中,例如,扫块已经在处理到第100个块了,此时检测区块数据是否连续,当发现第98个块的数据没处理全或者中间有错误,则本实施例去把第98个块的数据获取,再通过后续步骤写到对应的数据库。
优选地,在扫块过程中,检查是否存在扫块异常,若存在异常,则根据异常对应的预设解决策略进行处理。具体而言,当节点网络断掉、运行环境有问题、节点卡住了一直获取不到数据等时,会导致某个区块的数据获取不到从而异常,或是解析数据异常,则本实施例可以判断出现异常,例如,预设一预定时长阈值,当超过该预定时长阈值仍旧未从某个区块中获取到数据时则判断产生异常,或者,当解析出来的数据的格式不符合预定格式时,判断产生异常。本实施例在判断存在异常之后,对该异常进行相应处理,具体而言,异常处理可以按照预设解决策略进行,例如,当网络不好而导致RPC接口调不到数据,或者调取数据超时,解决策略可以是重启重试,假设第一次重试还是获取不到,则按照解决策略再等10分钟后再重试调取,第二次还不成功,再等1小时再试,如果3次不成功,将该异常信息记录下来,通过报警的方式通知技术人员去查看问题。值得注意的是,上述为一种异常的解决策略,本实施例不仅限于此,具体策略可以按照实际情况调整。
本实施例通过对区块链的各个区块进行扫块,获取区块数据,其中,在扫块过程中,不仅会检查是否存在漏块、跳块,以防止区块数据不全,而且会检查是否存在扫块异常,如节点网络断掉、运行环境出错、节点卡住等导致数据获取或解析异常,以进行对应的处理,保证区块数据获取的正常。
2)具体介绍步骤S2
本实施例将区块数据存储于MYSQL数据库,并提取区块数据中的应用数据存储于ES数据库并建立对应的应用索引。其中,为了存储区块数据,本实施例设置了两个数据库,即MYSQL数据库和ES(Elastic Search)数据库,本实施例的MYSQL数据库可以将数据持久化存储,本实施例的ES数据库是用来进行全文检索浏览的数据库,当具有海量区块数据时,MYSQL数据库由于其存储能力的强大,故用作区块数据的持久化存储,ES数据库由于其查询能力的强大、分布式、可扩展性强,故用作区块数据中应用数据的存储,同时在该数据库中建立对应的应用索引,以便于浏览应用进行快速全文检索查询,提高浏览速度。
具体地,本实施例将全量区块数据持久化到MYSQL数据库中,例如,可以将全量的、不敏感、仅用来展示的数据则写入MYSQL数据库,相对于ES数据库,MYSQL数据库中数据相对查询需求更少,但是数据更全。本实施例将区块数据中的关键和/或敏感的应用数据存储到ES数据库,并建立对应的应用索引,本实施例的应用数据为浏览应用执行所需的数据,浏览应用例如搜索服务、排序服务、统计服务等等,这些浏览应用服务执行需要基于特定的数据,本实施例基于浏览应用的需要从区块数据中提取出来并存储于ES数据库,以便于浏览应用服务可以快速地查询,应用索引就是为了浏览应用服务快速查询设置的索引,可以极大程度地方便应用查询,例如,ES数据需要跟上层应用,如搜索服务、排序服务、统计服务等结合起来,要在ES数据库中建不同的索引,本实施例具体的应用索引可以包括搜索应用索引、排序应用索引、统计应用索引,具体分浏览应用进行索引的建立,可以更好地适应每一浏览应用的执行,实现更加细致化地加速浏览。
对于MYSQL数据库与ES数据库的数据存储,在一种实施方式中,本实施例将区块数据存储于MYSQL数据库,同时,提取区块数据中的应用数据存储于ES数据库并建立对应的应用索引,在另一种实施方式中,本实施例将区块数据存储于MYSQL数据库,并提取区块数据中的应用数据从MYSQL数据库迁移至ES数据库并建立对应的应用索引,MYSQL数据库中的数据很容易迁移到ES(Elastic Search)数据库中,如此,可以快速完成数据区块数据存储,并在浏览过程中逐渐将应用数据迁移至ES数据库,在保证区块链的正常浏览的同时,提高数据存储效率。
3)具体介绍步骤S3
本实施例基于MYSQL数据库与ES数据库,提供区块链的浏览服务,本实施例的浏览服务包括但不限于搜索、查询某笔交易的交易详情、某一个区块下面有多少笔交易,排序服务例如,按照价格对交易进行排序,取最高的xx笔交易,统计服务,统计一个地址下面,过去一个小时、一天、一年,总共发起了多少笔交易等等。这些浏览服务如果仅仅在MYSQL数据库中执行的话会比较复杂,本实施例通过ES数据库存储浏览服务对应浏览应用执行所需的应用数据,具体基于应用索引可以快速地为浏览服务提供数据基础。
优选地,本实施例根据浏览服务的所需数据类型,调取MYSQL数据库中的数据和/或通过应用索引调取ES数据库中的数据。具体而言,若浏览服务所需数据类型为展示层数据,则调取MYSQL数据库中的数据,若浏览服务所需数据类型为应用层数据,则通过应用索引调取ES数据库中的数据,若浏览服务所需数据类型为展示层数据和应用层数据,则调取MYSQL数据库,并通过应用索引调取ES数据库中的数据。例如,具体在上述数据存储方式下,想调取的数据是展示层的区块数据,则去MYSQL数据库中调取,如果想做些统计服务、其他的二层开发,需要借助ES数据库中的应用数据,则去ES数据库中调取,若同时需要借助MYSQL数据库和ES数据库中的数据,则两个数据库同时使用,具体不同的场景应用不同的数据。
本实施例将获取的区块链的区块数据存储于MYSQL数据库,即全量数据持久化存储到MYSQL数据库,基于MYSQL数据库可以将区块数据完整地持久化存储,同时,将区块链数据中的应用数据存储于ES数据库并建立应用索引,基于ES数据库可以将区块数据中一些关键、敏感的应用数据进行存储,其中,通过MYSQL数据库则可以调取任意一般性的区块数据,保证区块数据的全面性,通过应用索引可以快速从ES数据库中调取浏览应用执行所需的数据,可以大大加快浏览应用的响应速度,从而提高整体的数据服务体验。
第二实施例
参看图2,本发明提出了一种基于第一实施例的区块链浏览系统,包括:
扫块模块1,用于扫描区块链的各个区块获取区块链的区块数据;
存储模块2,用于将区块数据存储于MYSQL数据库,并提取区块数据中的应用数据存储于ES数据库并建立对应的应用索引,其中,应用数据为浏览应用执行所需的数据;
浏览模块3,用于基于MYSQL数据库与ES数据库,提供区块链的浏览服务,其中,根据浏览服务的所需数据类型,调取MYSQL数据库中的数据和/或通过应用索引调取ES数据库中的数据。
现对本实施例进行详细说明,但不仅限于此。
本实施例适用于区块链数据的快速浏览,尤其适用于大数据下区块链数据的浏览,可以为区块链浏览器的浏览应用提供快速响应,从而大大提高区块链浏览整体体验。
更为广泛地,参看图3,本实施例的区块链浏览系统为一种区块链浏览器架构,该区块链浏览器架构包括后端服务器、数据库层、应用层,其中,后端服务器中设有扫块模块,数据库层设有存储模块,应用层设有浏览模块,进一步地,扫块模块包括扫块子模块、写入子模块、追块子模块、异常处理子模块,扫块子模块负责扫描各个区块,获取区块数据,写入子模块负责将区块数据写入数据库中,追块子模块负责检查扫块是否存在漏块或跳块,异常处理子模块负责检查扫块是否存在扫块异常,存储模块包括MYSQL数据库、ES数据库,MYSQL数据库负责存储全量区块数据,ES数据库负责存储区块数据中的应用数据并建立应用索引,浏览模块包括搜索服务子模块、排序服务模块、统计服务模块,该些模块根据各自执行所需的数据类型,调取MYSQL数据库中的数据和/或通过应用索引调取ES数据库中的数据。
基于上述区块链浏览器架构设置,现对本实施例进一步说明:
1)具体介绍扫块模块
本实施例扫描区块链的各个区块,获取区块链的区块数据。其中,从区块链中的一全节点扫描区块链的各个区块,获取区块数据,区块链的全节点,是拥有完整区块链账本的节点,其同步所有的区块链数据,并且能够独立校验区块链上的所有交易并实时更新数据,例如以太坊,以太坊包括多个ETH全节点,从其中一个ETH全节点中获取该以太坊上的所有区块数据。
具体地,扫块子模块按区块链的区块顺序不间断地对区块链的各个区块进行扫块,获取区块数据,其中,通过区块链节点的远程过程调用协议接口(RPC,RemoteProcedure Call Protocol)获取区块数据,例如,查询区块信息的RPC、查询交易信息的RPC,通过这些RPC接口获取所有的区块信息。进一步地,本实施例是持续、不停地进行扫块,以保持区块数据的实时获取,并且若无区块数据扫描,则等待新数据产生,例如,当处理了第99个块之后,紧接着处理第100个块,如果该第100个块尚未生成,则持续等待直至生成该第100个块并从中获取区块数据。
优选地,在扫块过程中,追块子模块检查扫块是否存在漏块或跳块,若存在则对漏块或跳块的区块进行扫块,获取漏块或跳块的遗漏数据,并合并至区块数据中。具体而言,如果扫块的时候漏掉了某个块或者跳块了,本实施例则将该块中的交易信息补上,并通过后续子模块写到对应的数据库中,例如,扫块已经在处理到第100个块了,此时检测区块数据是否连续,当发现第98个块的数据没处理全或者中间有错误,则本实施例去把第98个块的数据获取,再通过后续子模块写到对应的数据库。
优选地,在扫块过程中,异常处理子模块检查是否存在扫块异常,若存在异常,则根据异常对应的预设解决策略进行处理。具体而言,当节点网络断掉、运行环境有问题、节点卡住了一直获取不到数据等时,会导致某个区块的数据获取不到异常,或是解析数据异常,则本实施例可以判断出现异常,例如,预设一预定时长阈值,当超过该预定时长阈值仍旧未从某个区块中获取到数据时则判断产生异常,或者,当解析出来的数据的格式不符合预定格式时,判断产生异常。本实施例在判断存在异常之后,对该异常进行相应处理,具体而言,异常处理可以按照预设解决策略进行,例如,当网络不好而导致RPC接口调不到数据,或者调取数据超时,解决策略可以是重启重试,假设第一次重试还是获取不到,则按照解决策略再等10分钟后再重试调取,第二次还不成功,再等1小时再试,如果3次不成功,将该异常信息记录下来,通过报警的方式通知技术人员去查看问题。值得注意的是,上述为一种异常的解决策略,本实施例不仅限于此,具体策略可以按照实际情况调整。
本实施例通过对区块链的各个区块进行扫块,获取区块数据,其中,在扫块过程中,不仅会检查是否存在漏块、跳块,以防止区块数据不全,而且会检查是否存在扫块异常,如节点网络断掉、运行环境出错、节点卡住等导致数据获取或解析异常,以进行对应的处理,保证区块数据获取的正常。
2)具体介绍存储模块
本实施例通过写入子模块将区块数据存储于存储模块的MYSQL数据库,并且写入子模块提取区块数据中的应用数据存储于存储模块的ES数据库并建立对应的应用索引。其中,为了存储区块数据,本实施例的存储模块设置了两个数据库,即MYSQL数据库和ES(Elastic Search)数据库,本实施例的MYSQL数据库可以将数据持久化存储,本实施例的ES数据库是用来进行全文检索浏览的数据库,当具有海量区块数据时,MYSQL数据库由于其存储能力的强大,故用作区块数据的持久化存储,ES数据库由于其查询能力的强大、分布式、可扩展性强,故用作区块数据中应用数据的存储,同时在该数据库中建立对应的应用索引,以便于浏览应用进行快速全文检索查询,提高浏览速度。
具体地,本实施例将全量区块数据持久化到MYSQL数据库中,例如,可以将全量的、不敏感、仅用来展示的数据则写入MYSQL数据库,相对于ES数据库,MYSQL数据库中数据相对查询需求更少,但是数据更全。本实施例将区块数据中的关键和/或敏感的应用数据存储到ES数据库,并建立对应的应用索引,本实施例的应用数据为浏览应用执行所需的数据,浏览应用例如搜索服务、排序服务、统计服务等等,这些浏览应用服务执行需要基于特定的数据,本实施例基于浏览应用的需要从区块数据中提取出来并存储于ES数据库,以便于浏览应用服务可以快速地查询,应用索引就是为了浏览应用服务快速查询设置的索引,可以极大程度地方便应用查询,例如,ES数据需要跟上层应用,如搜索服务、排序服务、统计服务等结合起来,要在ES数据库中建不同的索引,本实施例具体的应用索引可以包括搜索应用索引、排序应用索引、统计应用索引,具体分浏览应用进行索引的建立,可以更好地适应每一浏览应用的执行,实现更加细致化地加速浏览。
对于MYSQL数据库与ES数据库的数据存储,在一种实施方式中,本实施例将区块数据存储于MYSQL数据库,同时,提取区块数据中的应用数据存储于ES数据库并建立对应的应用索引,在另一种实施方式中,本实施例将区块数据存储于MYSQL数据库,并提取区块数据中的应用数据从MYSQL数据库迁移至ES数据库并建立对应的应用索引,MYSQL数据库中的数据很容易迁移到ES(Elastic Search)数据库中,如此,可以快速完成数据区块数据存储,并在浏览过程中逐渐将应用数据迁移至ES数据库,在保证区块链的正常浏览的同时,提高数据存储效率。
3)具体介绍浏览模块
本实施例的浏览模块基于MYSQL数据库与ES数据库,提供区块链的浏览服务,浏览模块的浏览服务包括但不限于搜索、查询某笔交易的交易详情、某一个区块下面有多少笔交易,排序服务例如,按照价格对交易进行排序,取最高的xx笔交易,统计服务,统计一个地址下面,过去一个小时、一天、一年,总共发起了多少笔交易等等。这些浏览服务如果仅仅在MYSQL数据库中执行的话会比较复杂,本实施例通过ES数据库存储浏览服务对应浏览应用执行所需的应用数据,具体基于应用索引可以快速地为浏览服务提供数据基础。
优选地,本实施例浏览模块根据浏览服务的所需数据类型,调取MYSQL数据库中的数据和/或通过应用索引调取ES数据库中的数据。具体而言,若浏览服务所需数据类型为展示层数据,则调取MYSQL数据库中的数据,若浏览服务所需数据类型为应用层数据,则通过应用索引调取ES数据库中的数据,若浏览服务所需数据类型为展示层数据和应用层数据,则调取MYSQL数据库,并通过应用索引调取ES数据库中的数据。例如,具体在上述数据存储方式下,想调取的数据是展示层的区块数据,则去MYSQL数据库中调取,如果想做些统计服务、其他的二层开发,需要借助ES数据库中的应用数据,则去ES数据库中调取,若同时需要借助MYSQL数据库和ES数据库中的数据,则两个数据库同时使用,具体不同的场景应用不同的数据。
本实施例将获取的区块链的区块数据存储于MYSQL数据库,即全量数据持久化存储到MYSQL数据库,基于MYSQL数据库可以将区块数据完整地持久化存储,同时,将区块链数据中的应用数据存储于ES数据库并建立应用索引,基于ES数据库可以将区块数据中一些关键、敏感的应用数据进行存储,其中,通过MYSQL数据库则可以调取任意一般性的区块数据,保证区块数据的全面性,通过应用索引可以快速从ES数据库中调取浏览应用执行所需的数据,可以大大加快浏览应用的响应速度,从而提高整体的数据服务体验。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
第三实施例
本发明还提出了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上述第一实施例所提及的区块链浏览方法。
第四实施例
本发明提出了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述第一实施例中所提及的区块链浏览方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种区块链浏览方法,其特征在于,包括以下步骤:
S1:扫描区块链的各个区块,获取区块链的区块数据;
S2:将所述区块数据存储于MYSQL数据库,并提取所述区块数据中的应用数据存储于ES数据库并建立对应的应用索引,其中,所述应用数据为浏览应用执行所需的数据;
S3:基于所述MYSQL数据库与所述ES数据库,提供区块链的浏览服务,其中,根据浏览服务的所需数据类型,调取所述MYSQL数据库中的数据和/或通过所述应用索引调取所述ES数据库中的数据。
2.根据权利要求1所述的区块链浏览方法,其特征在于,所述步骤S1进一步包括:
按区块链的区块顺序不间断地对区块链的各个区块进行扫块,获取所述区块数据,其中,若无所述区块数据扫描,则等待新数据产生;
在扫块过程中,检查扫块是否存在漏块或跳块,若存在则对漏块或跳块的区块进行扫块,获取漏块或跳块的遗漏数据,并合并至所述区块数据中;
在扫块过程中,检查是否存在扫块异常,若存在异常,则根据异常对应的预设解决策略进行处理。
3.根据权利要求2所述的区块链浏览方法,其特征在于,在所述步骤S1中,通过区块链节点的远程过程调用协议接口获取所述区块数据。
4.根据权利要求1所述的区块链浏览方法,其特征在于,所述步骤S2进一步包括:
将所述区块数据存储于所述MYSQL数据库,同时,提取所述区块数据中的所述应用数据存储于所述ES数据库并建立对应的所述应用索引。
5.根据权利要求1所述的区块链浏览方法,其特征在于,所述步骤S2进一步包括:
将所述区块数据存储于所述MYSQL数据库,并提取所述区块数据中的应用数据从所述MYSQL数据库迁移至所述ES数据库并建立对应的所述应用索引。
6.根据权利要求4或5所述的区块链浏览方法,其特征在于,所述应用索引包括搜索应用索引、排序应用索引、统计应用索引中至少任一项。
7.根据权利要求1所述的区块链浏览方法,其特征在于,所述步骤S3中,所述根据浏览服务的所需数据类型,调取所述MYSQL数据库中的数据和/或通过所述应用索引调取所述ES数据库中的数据进一步包括:
若浏览服务所需数据类型为展示层数据,则调取所述MYSQL数据库中的数据;
若浏览服务所需数据类型为应用层数据,则通过所述应用索引调取所述ES数据库中的数据;
若浏览服务所需数据类型为展示层数据和应用层数据,则调取所述MYSQL数据库,并通过所述应用索引调取所述ES数据库中的数据。
8.一种区块链浏览系统,其特征在于,包括:
扫块模块,用于扫描区块链的各个区块获取区块链的区块数据;
存储模块,用于将所述区块数据存储于MYSQL数据库,并提取所述区块数据中的应用数据存储于ES数据库并建立对应的应用索引,其中,所述应用数据为浏览应用执行所需的数据;
浏览模块,用于基于所述MYSQL数据库与所述ES数据库,提供区块链的浏览服务,其中,根据浏览服务的所需数据类型,调取所述MYSQL数据库中的数据和/或通过所述应用索引调取所述ES数据库中的数据。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述的区块链浏览方法。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述的区块链浏览方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713535.3A CN113434503A (zh) | 2021-06-25 | 2021-06-25 | 一种区块链浏览方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713535.3A CN113434503A (zh) | 2021-06-25 | 2021-06-25 | 一种区块链浏览方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113434503A true CN113434503A (zh) | 2021-09-24 |
Family
ID=77754672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110713535.3A Pending CN113434503A (zh) | 2021-06-25 | 2021-06-25 | 一种区块链浏览方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434503A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943951A (zh) * | 2017-11-24 | 2018-04-20 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链业务信息的检索方法及系统 |
CN109086409A (zh) * | 2018-08-02 | 2018-12-25 | 泰康保险集团股份有限公司 | 微服务数据处理方法、装置、电子设备及计算机可读介质 |
CN109408513A (zh) * | 2018-10-23 | 2019-03-01 | 杭州能链科技有限公司 | 数据处理方法、系统以及存储介质 |
CN109933611A (zh) * | 2019-02-22 | 2019-06-25 | 深圳达普信科技有限公司 | 一种自适应的数据采集方法及系统 |
CN110309196A (zh) * | 2019-05-22 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 区块链数据存储和查询方法、装置、设备及存储介质 |
CN110659430A (zh) * | 2019-08-23 | 2020-01-07 | 上海共链信息科技有限公司 | 一种支持多区块链网络的区块链浏览方法 |
CN111078723A (zh) * | 2019-11-29 | 2020-04-28 | 支付宝(杭州)信息技术有限公司 | 一种区块链浏览器的数据处理方法及装置 |
-
2021
- 2021-06-25 CN CN202110713535.3A patent/CN113434503A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943951A (zh) * | 2017-11-24 | 2018-04-20 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链业务信息的检索方法及系统 |
CN109086409A (zh) * | 2018-08-02 | 2018-12-25 | 泰康保险集团股份有限公司 | 微服务数据处理方法、装置、电子设备及计算机可读介质 |
CN109408513A (zh) * | 2018-10-23 | 2019-03-01 | 杭州能链科技有限公司 | 数据处理方法、系统以及存储介质 |
CN109933611A (zh) * | 2019-02-22 | 2019-06-25 | 深圳达普信科技有限公司 | 一种自适应的数据采集方法及系统 |
CN110309196A (zh) * | 2019-05-22 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 区块链数据存储和查询方法、装置、设备及存储介质 |
CN110659430A (zh) * | 2019-08-23 | 2020-01-07 | 上海共链信息科技有限公司 | 一种支持多区块链网络的区块链浏览方法 |
CN111078723A (zh) * | 2019-11-29 | 2020-04-28 | 支付宝(杭州)信息技术有限公司 | 一种区块链浏览器的数据处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
汪洋等: "基于物联网的消防设备管理系统设计", 《智能处理与应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5961689B2 (ja) | 増分データの抽出 | |
CN111898139B (zh) | 数据读写方法及装置、电子设备 | |
US11176110B2 (en) | Data updating method and device for a distributed database system | |
CN110503435B (zh) | 基于区块链的交易预警方法、装置及设备 | |
CN109918678B (zh) | 一种字段含义识别方法和装置 | |
CN111784468B (zh) | 一种账户关联方法、装置及电子设备 | |
TW202008147A (zh) | 區塊鏈資料的壓縮處理方法和裝置 | |
CN105574026A (zh) | 非关系型数据库支持事务的方法及装置 | |
CN105022676A (zh) | 一种内存数据库重做日志文件的恢复方法和装置 | |
CN109582476B (zh) | 数据处理方法、装置及系统 | |
CN113434503A (zh) | 一种区块链浏览方法及系统 | |
CN113643030A (zh) | 交易处理方法、装置及设备 | |
CN108681558B (zh) | 一种数据回滚方法、装置、及终端 | |
CN108021464B (zh) | 一种应用程序响应数据的兜底处理的方法以及装置 | |
US9378230B1 (en) | Ensuring availability of data in a set being uncorrelated over time | |
CN107609038B (zh) | 数据清理方法和装置 | |
US20140379762A1 (en) | Content management system | |
CN115421856A (zh) | 一种数据恢复方法及装置 | |
CN112035471B (zh) | 一种事务处理方法及计算机设备 | |
CN109656805B (zh) | 用于业务分析的代码链路的生成方法、装置及业务服务器 | |
CN113051105A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113836154B (zh) | 一种数据库切换方法及装置 | |
CN111858487A (zh) | 数据更新方法及设备 | |
CN107273217A (zh) | 一种信息显示方法、装置及终端设备 | |
CN109753228B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220725 Address after: 201702 room 235, area K, 2 / F, 158 Shuanglian Road, Qingpu District, Shanghai Applicant after: Shanghai Jiansu Network Technology Co.,Ltd. Address before: Room 4058, building 3, No. 495, Yuejin South Road, Xinhai Town, Chongming District, Shanghai 202172 Applicant before: Shanghai pelac Information Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210924 |
|
RJ01 | Rejection of invention patent application after publication |