CN111831744B - Dapp的链上数据检索系统、方法及介质 - Google Patents

Dapp的链上数据检索系统、方法及介质 Download PDF

Info

Publication number
CN111831744B
CN111831744B CN202010504965.XA CN202010504965A CN111831744B CN 111831744 B CN111831744 B CN 111831744B CN 202010504965 A CN202010504965 A CN 202010504965A CN 111831744 B CN111831744 B CN 111831744B
Authority
CN
China
Prior art keywords
dapp
block
index
information unit
chain
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.)
Active
Application number
CN202010504965.XA
Other languages
English (en)
Other versions
CN111831744A (zh
Inventor
刘昌平
唐懿芳
刘海
苑占江
李威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Institute of Science and Technology
Original Assignee
Guangdong Institute of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Institute of Science and Technology filed Critical Guangdong Institute of Science and Technology
Priority to CN202010504965.XA priority Critical patent/CN111831744B/zh
Publication of CN111831744A publication Critical patent/CN111831744A/zh
Application granted granted Critical
Publication of CN111831744B publication Critical patent/CN111831744B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种DAPP的链上数据检索系统、方法及介质,其中系统包括:DAPP区块伺服器,设置在区块链客户端,包括DAPP应用管理模块、新区块模块、数据检索模块、信息单元索引、DAPP区块索引以及已注册DAPP信息单元索引;DAPP信息单元区块,包括用于唯一地确定一个DAPP的DAPP信息单元。本发明针对DAPP智能合约的函数调用与合约数据,提出了一种快速检索与查询方法,提高链上合约数据的检索与查询效率,提供再现DAPP使用过程的功能。

Description

DAPP的链上数据检索系统、方法及介质
技术领域
本发明属于计算机、网络与分布式计算领域,涉及区块链、去中心化软件应用领域,尤其涉及一种DAPP的链上数据检索系统、方法及介质。
背景技术
区块链是一种分布式账本,也是一种新型应用模式;区块链技术覆盖了分布式存储、网络、信息安全、数据容错等计算机技术;区块链应用具有去中心、开放、自治等特点。DAPP(Decentralized Application)是以区块链技术为应用环境的新型软件应用模式,是构建并且能够运行在区块链环境上的应用软件,DAPP的使用者共同维护与管理DAPP的生命周期。智能合约(Smart Contract)是一种能够在区块链环境中进行可信交易的数字合同,具有可追踪且不可逆转的特征。DAPP以智能合约为基础,得以在区块链环境上应用。
DAPP可以调用智能合约的公开型函数获取合约数据,也可以直接访问公开型合约数据。如果合约函数需要修改合约数据,则DAPP必须新增1个区块,以交易的形式提交到区块链并等待确认,数据的修改存储在新区块中。DAPP多次修改合约数据,则必然产生多个区块,这些区块在区块链的位置可能较集中,也可能很分散,更甚者,这些区块之间存在很多与智能合约无关的区块。对于采用状态数据库(StateDB)的以太坊,状态树保留交易提交之后最新的状态值。如果DAPP用户(包括发布者、使用者或者旁观者)需要再现DAPP的使用全过程(例如检索充值历史、账户余额变更历史、功能模块使用频度等),则需要检索出所有与DAPP有关的区块。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提供一种DAPP的链上数据检索系统,能够检索DAPP的链上数据,关键是检索出与DAPP智能合约相关的区块,即与DAPP有关的数据区块以及调用智能合约函数而产生的新区块。
本发明还提出一种DAPP的链上数据检索方法。
本发明还提出一种实施上述DAPP的链上数据检索方法的介质。
本发明的DAPP的链上数据检索系统,将DAPP的应用场景设置为1个用户终端容纳多个DAPP应用实例,这些DAPP共用1个区块链客户端,通过区块链客户端发布智能合约、链上交易等事务。区块链客户端通过网络同步区块链的新区块到本地区块数据库,访问本地区块数据库。
根据本发明的第一方面实施例的一种DAPP的链上数据检索系统,包括:DAPP区块伺服器,设置在区块链客户端,包括DAPP应用管理模块、新区块模块、数据检索模块、信息单元索引、DAPP区块索引以及已注册DAPP信息单元索引;DAPP信息单元区块,包括用于唯一地确定一个DAPP的DAPP信息单元;所述DAPP应用管理模块,用于提供区块链上可用DAPP的信息,从所述已注册DAPP信息单元索引添加或删除DAPP信息单元索引项,以及进行DAPP区块索引同步;所述新区块模块,用于在区块链同步到新区块后,将DAPP信息单元添加到所述信息单元索引,或更新所述DAPP区块索引;所述数据检索模块,用于获取信息单元索引进而从链上获取DAPP信息单元,基于DAPP信息单元索引项检索出与指定的DAPP及智能合约有关的区块。
根据本发明实施例的DAPP的链上数据检索系统,至少具有如下有益效果:
本发明实施例针对DAPP智能合约的函数调用与合约数据,能够快速检索与查询,提高链上合约数据的检索与查询效率。
根据本发明的一些实施例,所述DAPP信息单元,至少包括有数据项:DAPP名称、DAPP作者、发布时间、访问地址、智能合约数量、合约地址列表、区块号列表以及ABI列表。
根据本发明的一些实施例,所述DAPP管理模块还用于进行DAPP区块索引同步,当用户注册DAPP应用时,将DAPP对应的信息单元索引项添加到已注册DAPP信息单元索引,然后启动DAPP区块索引同步过程。
根据本发明的一些实施例,所述新区块模块用于区块链同步到新区块,判断该区块是否具有DAPP信息单元特征,如果有,将该区块添加到信息单元索引,否则启动DAPP区块索引更新过程。
根据本发明的一些实施例,所述数据检索模块还用于获取信息单元索引进而从链上获取DAPP信息单元,将获取的DAPP信息单元作为链上可用的DAPP信息返回给用户。
根据本发明的第二方面实施例的一种DAPP的链上数据检索方法,包括以下步骤:确认智能合约上链并提交新区块后,获取合约地址及区块号并写入DAPP的信息单元,将DAPP信息单元生成区块并上链;添加DAPP信息单元索引项到已注册DAPP信息单元索引并进行DAPP区块索引同步;区块链同步到新区块后,将DAPP信息单元添加到信息单元索引或更新DAPP区块索引;基于DAPP信息单元索引项检索出与指定的DAPP及智能合约有关的区块。
根据本发明实施例的DAPP的链上数据检索方法,至少具有如下有益效果:本发明实施例针对DAPP智能合约的函数调用与合约数据,能够快速检索与查询,提高链上合约数据的检索与查询效率。
根据本发明的一些实施例,所述将DAPP信息单元添加到信息单元索引或更新DAPP区块索引步骤包括:区块链同步到新区块,判断该区块是否具有DAPP信息单元特征,如果有,将该区块添加到信息单元索引,否则启动DAPP区块索引更新过程;所述DAPP区块索引更新过程包括以下步骤:根据已注册信息单元索引,获取所有已注册使用DAPP的所有智能合约地址,构成1个合约地址集合A;确定新区块m包含交易数据,从区块m的交易数据中提取to字段值;确定to字段值属于集合A,将区块m添加到DAPP区块索引,同时更新集合A。
根据本发明的一些实施例,所述方法还包括:获取DAPP信息单元索引项;获取该DAPP的智能合约地址集合;依据所述地址集合删除DAPP区块索引项;在已注册DAPP信息单元索引中删除对应信息单元索引。
根据本发明的一些实施例,所述基于DAPP信息单元索引项检索出与指定的DAPP及智能合约有关的区块步骤包括:获取DAPP信息单元索引项;获取该DAPP的智能合约地址集合;依据所述地址集合获得所有与该DAPP有关的区块索引;依据所述与该DAPP有关的区块索引获取所有与DAPP有关的区块;返回检索结果。
根据本发明的一些实施例,所述方法还包括:获取信息单元索引进而从链上获取DAPP信息单元,将获取的DAPP信息单元作为链上可用的DAPP信息返回给用户。
根据本发明的一些实施例,所述方法还包括:获取与DAPP有关的所有区块,展现区块数据;对于调用合约函数而产生的区块数据,在区块链虚拟机中执行智能合约函数,然后展现区块数据。本实施例提供再现DAPP使用过程的功能,即对于智能合约函数产生的区块,在区块链虚拟机中执行合约函数,展现执行结果给用户,也就是再现DAPP的使用全过程。
根据本发明的第三方面实施例的一种计算机可读存储介质,其上储存有程序指令,所述程序指令被处理器执行时实施如本发明的第二方面实施例中任一项所述的方法。
由于本发明实施例的计算机可读存储介质上存储有用于执行如本发明第二方面中任一项所述的DAPP的链上数据检索方法的计算机可执行指令,因此具有本发明第二方面的所有有益效果。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是本发明实施例的DAPP的链上检索系统的应用场景示意图;
图2是本发明实施例的DAPP信息单元数据格式;
图3是在区块链上发布DAPP的流程图;
图4是本发明实施例的DAPP区块伺服器结构图;
图5是本发明实施例的DAPP链上数据检索方法流程图;
图6是本发明实施例的DAPP区块索引同步算法流程图;
图7是本发明实施例的同步DAPP区块索引时区块遍历示意图;
图8是本发明实施例的新区块处理流程图;
图9是本发明实施例的注销DAPP的流程图;
图10是本发明实施例的DAPP链上数据检索流程图;
图11是本发明实施例的再现DAPP使用全过程的流程图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
参照图1,图1为本发明实施例的应用场景,将DAPP的应用场景设置为1个用户终端容纳多个DAPP应用实例,这些DAPP共用1个区块链客户端,通过区块链客户端发布智能合约、链上交易等事务。区块链客户端通过网络同步区块链的新区块到本地区块数据库,访问本地区块数据库。
本发明实施例的技术方案是,设置一个DAPP信息单元。DAPP发布者将智能合约的地址及其区块号这些属性数据写入DAPP信息单元,同时将信息单元打包成1个新区块并上链。其中,DAPP应用管理模块用于提供区块链上可用DAPP的信息,从已注册DAPP信息单元索引添加或删除DAPP信息单元索引项,以及进行DAPP区块索引同步;新区块模块用于在区块链同步到新区块后,将DAPP信息单元添加到信息单元索引,或更新所述DAPP区块索引;数据检索模块,用于获取信息单元索引进而从链上获取DAPP信息单元,检索出与指定的DAPP及智能合约有关的区块。
参照图2,图2是本发明实施例的DAPP信息单元数据格式。本实施例中,DAPP信息单元,至少包括有数据项:DAPP名称、DAPP作者、发布时间、访问地址、智能合约数量、合约地址列表、区块号列表以及ABI列表。其中:
DAPP名称:即DAPP的简称,简要说明DAPP的作用与功能;
DAPP作者:即DAPP的创作者、所有者等;
发布时间:DAPP上链的时间;
访问地址:访问该DAPP的地址,含端口;
智能合约数量:DAPP需要上链的智能合约数量;
合约地址列表:列出每个智能合约上链并得到确认后的地址;
区块号列表:列出每个智能合约上链并得到确认后的区块号;ABI列表:列出每个智能合约的访问接口。
进一步参照图3,图3是在区块链上发布DAPP的流程图;在区块链上发布DAPP及其智能合约,将产生并上链1个或多个待确认的区块。这些区块被确认后,DAPP发布者将获得智能合约的地址及其区块号,DAPP发布者将这些属性数据写入DAPP信息单元,同时将信息单元打包成1个新区块并上链。
参照图4,图4是本发明实施例的DAPP区块伺服器结构图。本发明实施例在区块链客户端设置一个DAPP区块伺服器,该DAPP区块伺服器包括3个功能模块,分别为DAPP应用管理模块、新区块模块及数据检索模块;该DAPP区块伺服器还包括3个存储模块,分别为信息单元索引、DAPP区块索引及已注册DAPP信息单元索引。其中,DAPP应用管理模块,用于提供区块链上可用DAPP的信息,从已注册DAPP信息单元索引添加或删除DAPP信息单元索引项,以及进行DAPP区块索引同步;新区块模块,用于在区块链同步到新区块后,将DAPP信息单元添加到信息单元索引,或更新DAPP区块索引;所述数据检索模块,用于获取信息单元索引进而从链上获取DAPP信息单元,检索出与指定的DAPP及智能合约有关的区块。
在一些实施例中,新区块模块用于在区块链同步到新区块后,检查该区块是否具备DAPP信息单元的特征,将具备DAPP信息单元的特征的区块对应的DAPP信息单元添加到信息单元索引模块。
在一些实施例中,新区块模块用于在区块链同步到新区块后,检查该区块是否符合条件:包括交易数据且交易数据的to字段值出现在已注册DAPP信息单元索引模块的智能合约地址集合,将符合上述条件的区块添加到DAPP区块索引。
在一些实施例中,在区块链客户端同步到新区块之后,新区块模块检查新区块是否是DAPP的信息单元区块。如果不是,则启动DAPP区块索引更新过程。
在一些实施例中,当用户提出检索链上可用DAPP的访问请求时,数据检索模块获取信息单元索引进而从链上获取DAPP信息单元,返回给用户。该信息单元来自区块链,而不是DAPP发布者。
在一些实施例中,当用户提出检索指定DAPP的链上操作(例如统计游戏充值次数、统计转账次数等)及链上数据(例如当前账户余额、核实用户身份或版权等)时,数据检索模块根据DAPP信息单元索引项获得DAPP全部智能合约地址集合,根据地址集合在DAPP区块索引中获得所有与该DAPP有关的区块索引,根据区块索引的数据(例如区块号、交易Hash值和区块Hash值)找到所有与DAPP有关的区块,最后将检索结果返回给用户,
在一些实施例中,数据检索模块检索出指定DAPP所有相关的区块(包括智能合约区块、信息单元区块、调用智能合约函数而产生的区块)之后,DAPP应用管理模块逐一获取区块,提取区块数据展现给用户,如果是智能合约函数产生的区块,则在区块链虚拟机中执行合约函数,展现执行结果给用户。该功能也就是再现DAPP的使用全过程。
在一些实施例中,当用户注销DAPP应用时,DAPP应用管理模块首先根据信息单元索引项,获取该DAPP的智能合约地址集合,然后依据智能合约地址集合在DAPP区块索引中删除对应的索引项,最后在已注册DAPP信息单元索引中删除对应的DAPP信息单元索引。
在一些实施例中,采用Geth作为以太坊区块链的客户端,在Geth中新增1个工具包dappblkservice,实现上述的DAPP区块伺服器的功能模块和存储模块。
Geth启动时,将dappblkservice以后台线程形式加以启动,并且在Geth的区块同步模块与dappblkservice之间建立1个通道(channel)。当Geth的区块同步模块同步到1个新区块时,DAPP区块伺服器dappblkservice能够捕获到新区块,并由dappblkservice的新区块模块加以处理。
以Truffle作为DAPP发布工具,在Truffle完成DAPP的链上部署之后,获取DAPP智能合约所在的区块号、智能合约地址,按DAPP信息单元格式填写DAPP信息单元,然后将DAPP信息单元生成1个区块并发布到以太坊。
在DAPP区块伺服器dappblkservice中以Web Service方式实施DAPP应用管理模块、数据检索模拟的功能。用户通过Web Service接口访问区块链上可用的DAPP、检索指定DAPP的链上操作(即调用智能合约函数)和链上数据、注册或注销DAPP应用。
在DAPP区块伺服器dappblkservice中,采用LevelDB数据库存储信息单元索引、DAPP区块索引、已注册DAPP信息单元索引。DAPP信息单元、已注册DAPP信息单元采用区块Hash值+区块号作为键,采用DAPP信息单元的描述性数据(例如DAPP名称、作者等)作为值。DAPP区块索引采用智能合约地址+区块号作为键,采用区块Hash(或者交易Hash)作为值。
检索到DAPP所有的区块之后,DAPP区块伺服器dappblkservice的DAPP应用管理模块新建1个以太坊虚拟机EVM,如果区块中包含有智能合约的函数调用,逐个执行智能合约函数并将结果返回给用户。最后释放EVM。
在一些实施例中,采用Ganache作为以太坊的客户端,在Ganache中新增1个功能模块,实现上述的DAPP区块伺服器的功能模块和存储模块。启动Ganache时,以异步方式启动DAPP区块伺服器。在Ganache的区块同步模块设置回调函数,调用DAPP区块伺服器的新区块模块。
将DAPP区块伺服器的数据检索模块和DAPP应用管理模块设置为Web Service方式提供服务接口,采用内存以及键值对方式存储信息单元索引、DAPP区块索引和已注册DAPP信息单元索引等区块数据。
与前述实施例相对应,本发明还提供了方法的实施例。参照图5,图5是本发明实施例的DAPP链上数据检索方法流程图,包括以下步骤:确认智能合约上链并提交新区块后,获取合约地址及区块号并写入DAPP的信息单元,将DAPP信息单元生成区块并上链;添加DAPP信息单元索引项到已注册DAPP信息单元索引并进行DAPP区块索引同步;区块链同步到新区块后,将DAPP信息单元添加到信息单元索引或更新DAPP区块索引;获取信息单元索引进而从链上获取DAPP信息单元,检索出与指定的DAPP及智能合约有关的区块。
进一步参照图6,图6是本发明实施例的DAPP区块索引同步算法流程图。当用户注册DAPP应用时,将DAPP对应的信息单元索引项添加到已注册DAPP信息单元索引,然后启动DAPP区块索引同步过程。
DAPP区块索引同步算法:
输入:新区块号m
输出:添加新区块索引项到DAPP区块索引
步骤:1、根据已注册信息单元索引,获取所有已注册使用DAPP的所有智能合约地址,构成1个合约地址集合A,该集合一次构建缓存使用;
2、检查新区块m是否包含交易,如果不包含,转到3,否则转2.1;
2.1、从区块m的交易数据中提取to字段值;
2.2、如果to字段值属于集合A,说明区块m是因为调用已注册使用的DAPP的智能合约函数而产生,将区块m添加到DAPP区块索引(包括区块号、交易Hash值、区块Hash值等数据项),同时更新集合A;转3;
3、算法结束。
进行DAPP区块索引同步包括以下步骤:提取其实区块号n,构建智能合约地址集合A;进一步参照图7,如图7所示方式遍历区块;对于遍历到的区块m,判断该区块m是否包含交易数据,如果是,从交易数据中提取to字段值,否则获取下一块区块;判断to字段值是否属于智能合约地址集合A,如果是,将该区块m添加到DAPP区块索引,否则获取下一块区块。
参照图8,图8是本发明实施例的新区块处理流程图。
在区块链客户端同步到新区块之后,检查新区块是否是DAPP的信息单元区块。如果不是,则启动DAPP区块索引更新过程。
DAPP区块索引更新算法:
输入:新区块号m
输出:添加新区块索引项到DAPP区块索引
步骤:1、根据已注册信息单元索引,获取所有已注册使用DAPP的所有智能合约地址,构成1个合约地址集合A,该集合一次构建缓存使用;
2、检查新区块m是否包含交易,如果不包含,转到3,否则转2.1;
2.1、从区块m的交易数据中提取to字段值;
2.2、如果to字段值属于集合A,说明区块m是因为调用已注册使用的DAPP的智能合约函数而产生,将区块m添加到DAPP区块索引(包括区块号、交易Hash值、区块Hash值等数据项),同时更新集合A;转3;
3、算法结束。
当区块链同步到新区块,判断该区块是否具有DAPP信息单元特征,如果有,将该区块添加到信息单元索引,然后该流程;如果该区块没有DAPP信息单元特征,则启动DAPP区块索引更新过程。
参照图9,图9是本发明实施例的注销DAPP的流程图,包括以下步骤:获取DAPP信息单元索引项;获取该DAPP的智能合约地址集合;依据地址集合删除DAPP区块索引项;在已注册DAPP信息单元索引中删除对应信息单元索引。
参照图10,图10是本发明实施例的DAPP链上数据检索流程图,包括以下步骤:获取DAPP信息单元索引项;获取该DAPP的智能合约地址集合;依据地址集合获得所有与该DAPP有关的区块索引;依据与该DAPP有关的区块索引获取所有与DAPP有关的区块;返回检索结果。
参照图11,图11是本发明实施例的再现DAPP使用全过程的流程图,包括以下步骤:在检索出指定DAPP所有相关的区块(包括智能合约区块、信息单元区块、调用智能合约函数而产生的区块)之后,逐一获取区块,提取区块数据展现给用户,如果是智能合约函数产生的区块,则在区块链虚拟机中执行合约函数,展现执行结果给用户。该功能也就是再现DAPP的使用全过程。
应当认识到,本发明实施例中的方法步骤可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的安卓计算平台中实现。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还可以包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (7)

1.一种DAPP的链上数据检索系统,其特征在于,包括:
DAPP区块伺服器,设置在区块链客户端,包括DAPP应用管理模块、新区块模块、数据检索模块、信息单元索引、DAPP区块索引以及已注册DAPP信息单元索引;
DAPP信息单元区块,包括用于唯一地确定一个DAPP的DAPP信息单元,所述DAPP信息单元至少包括有数据项:DAPP名称、DAPP作者、发布时间、访问地址、智能合约数量、合约地址列表、区块号列表以及ABI列表;
所述DAPP应用管理模块,用于从所述已注册DAPP信息单元索引添加或删除DAPP信息单元索引项,以及进行DAPP区块索引同步;
所述新区块模块,用于在区块链同步到新区块后,判断该区块是否具有DAPP信息单元特征,如果有,将DAPP信息单元添加到所述信息单元索引,否则,更新所述DAPP区块索引;
所述数据检索模块,用于根据DAPP信息单元索引项获得DAPP全部智能合约地址集合,根据地址集合在DAPP区块索引中获得所有与该DAPP有关的区块索引,根据区块索引的区块号、交易Hash值和区块Hash值找到所有与DAPP有关的区块,最后将检索结果返回给用户;
所述DAPP区块索引同步和所述更新DAPP区块索引均包括以下步骤:输入新区块号m,根据已注册信息单元索引,获取所有已注册使用DAPP的所有智能合约地址,构成1个合约地址集合A,该集合一次构建缓存使用;检查新区块m是否包含交易,如果不包含交易则算法结束,如果包含交易,从区块m的交易数据中提取to字段值,如果to字段值属于集合A,将区块m的区块号、交易Hash值、区块Hash值添加到DAPP区块索引,同时更新集合A,算法结束;算法结束后,添加新区块索引项到DAPP区块索引。
2.根据权利要求1所述的DAPP的链上数据检索系统,其特征在于,所述数据检索模块还用于获取信息单元索引进而从链上获取DAPP信息单元,将获取的DAPP信息单元作为链上可用的DAPP信息返回给用户。
3.一种DAPP的链上数据检索方法,其特征在于,包括以下步骤:
确认智能合约上链并提交新区块后,获取合约地址及区块号并写入DAPP的信息单元,将DAPP信息单元生成区块并上链;
添加DAPP信息单元索引项到已注册DAPP信息单元索引并进行DAPP区块索引同步;
区块链同步到新区块后,判断该区块是否具有DAPP信息单元特征,如果有,将DAPP信息单元添加到信息单元索引,否则启动更新DAPP区块索引;
根据DAPP信息单元索引项获得DAPP全部智能合约地址集合,根据地址集合在DAPP区块索引中获得所有与该DAPP有关的区块索引,根据区块索引的区块号、交易Hash值和区块Hash值找到所有与DAPP有关的区块,最后将检索结果返回给用户;
所述DAPP区块索引同步和所述更新DAPP区块索引均包括以下步骤:输入新区块号m,根据已注册信息单元索引,获取所有已注册使用DAPP的所有智能合约地址,构成1个合约地址集合A,该集合一次构建缓存使用;检查新区块m是否包含交易,如果不包含交易则算法结束,如果包含交易,从区块m的交易数据中提取to字段值,如果to字段值属于集合A,将区块m添加到DAPP区块索引,同时更新集合A,算法结束;算法结束后,添加新区块索引项到DAPP区块索引。
4.根据权利要求3所述的DAPP的链上数据检索方法,其特征在于,所述方法还包括:
获取DAPP信息单元索引项;
获取该DAPP的智能合约地址集合;
依据所述地址集合删除DAPP区块索引项;
在已注册DAPP信息单元索引中删除对应信息单元索引。
5.根据权利要求3所述的DAPP的链上数据检索方法,其特征在于,所述基于DAPP信息单元索引项检索出与指定的DAPP及智能合约有关的区块步骤包括:
获取DAPP信息单元索引项;
获取该DAPP的智能合约地址集合;
依据所述地址集合获得所有与该DAPP有关的区块索引;
依据所述与该DAPP有关的区块索引获取所有与DAPP有关的区块;
返回检索结果。
6.根据权利要求3所述的DAPP的链上数据检索方法,其特征在于,所述方法还包括:
获取与DAPP有关的所有区块,展现区块数据;
对于调用合约函数而产生的区块数据,在区块链虚拟机中执行智能合约函数,然后展现区块数据。
7.一种计算机可读存储介质,其上储存有程序指令,所述程序指令被处理器执行时实施如权利要求3至6中任一项所述的方法。
CN202010504965.XA 2020-06-05 2020-06-05 Dapp的链上数据检索系统、方法及介质 Active CN111831744B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010504965.XA CN111831744B (zh) 2020-06-05 2020-06-05 Dapp的链上数据检索系统、方法及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010504965.XA CN111831744B (zh) 2020-06-05 2020-06-05 Dapp的链上数据检索系统、方法及介质

Publications (2)

Publication Number Publication Date
CN111831744A CN111831744A (zh) 2020-10-27
CN111831744B true CN111831744B (zh) 2023-06-06

Family

ID=72898410

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010504965.XA Active CN111831744B (zh) 2020-06-05 2020-06-05 Dapp的链上数据检索系统、方法及介质

Country Status (1)

Country Link
CN (1) CN111831744B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064898A (zh) * 2021-04-06 2021-07-02 北京瑞卓喜投科技发展有限公司 一种基于链上合约微型索引的检索方法、装置和电子设备
CN113821549B (zh) * 2021-09-23 2023-08-08 广东科学技术职业学院 一种基于云存储的区块链数据检索系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108900304A (zh) * 2018-06-21 2018-11-27 北京欧链科技有限公司 基于dapp容器的事务签名处理方法、系统及电子设备
CN108920523A (zh) * 2018-06-04 2018-11-30 深圳乐信软件技术有限公司 区块链上数据查询方法、装置、设备、系统及介质
CN109145189A (zh) * 2018-08-22 2019-01-04 杭州微链区块链科技有限公司 一种基于区块链的数据存入和搜索系统及其方法
CN109189782A (zh) * 2018-08-02 2019-01-11 哈尔滨工程大学 一种区块链商品交易查询中的索引方法
CN110377323A (zh) * 2019-06-19 2019-10-25 广东科学技术职业学院 一种区块链dapp管理系统
WO2020001108A1 (zh) * 2018-06-29 2020-01-02 阿里巴巴集团控股有限公司 基于区块链的数据处理方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920523A (zh) * 2018-06-04 2018-11-30 深圳乐信软件技术有限公司 区块链上数据查询方法、装置、设备、系统及介质
CN108900304A (zh) * 2018-06-21 2018-11-27 北京欧链科技有限公司 基于dapp容器的事务签名处理方法、系统及电子设备
WO2020001108A1 (zh) * 2018-06-29 2020-01-02 阿里巴巴集团控股有限公司 基于区块链的数据处理方法和装置
CN109189782A (zh) * 2018-08-02 2019-01-11 哈尔滨工程大学 一种区块链商品交易查询中的索引方法
CN109145189A (zh) * 2018-08-22 2019-01-04 杭州微链区块链科技有限公司 一种基于区块链的数据存入和搜索系统及其方法
CN110377323A (zh) * 2019-06-19 2019-10-25 广东科学技术职业学院 一种区块链dapp管理系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Stephen Kirkman等.InterCloud: A Data Movement Policy DApp for Managing Trust in the Cloud.2018 International Conference on Computational Science and Computational Intelligence (CSCI).2020,1303-1308. *
董祥千等.一种高效安全的去中心化数据共享模型.计算机学报.2018,第41卷(第5期),1021-1036. *

Also Published As

Publication number Publication date
CN111831744A (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
JP6875557B2 (ja) サービス・データをブロックチェーン・システムに書き込むための方法およびデバイス
CN107562775B (zh) 一种基于区块链的数据处理方法及设备
Wöhrer et al. Design patterns for smart contracts in the ethereum ecosystem
KR102026225B1 (ko) 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
CN107562513B (zh) 一种基于java的智能合约生命周期的管理方法
US10733176B2 (en) Detecting phantom items in distributed replicated database
CN110020542B (zh) 数据读写方法及装置、电子设备
US11100501B1 (en) Modular, configurable smart contracts for blockchain transactions
CN108846753B (zh) 用于处理数据的方法和装置
CN110032598B (zh) 字段更新方法及装置、电子设备
CN105302920A (zh) 一种云存储数据的优化管理方法和系统
CN111831744B (zh) Dapp的链上数据检索系统、方法及介质
CN110032568B (zh) 数据结构的读取及更新方法、装置、电子设备
KR20190110082A (ko) 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
CN114547204A (zh) 数据同步方法、装置、计算机设备和存储介质
WO2024021417A1 (zh) 数据账户创建方法及装置
CN111966994A (zh) 基于数据库的区块链鉴权方法、系统及存储介质
CN115221559A (zh) 数据账户的访问授权方法及装置
CN116644122A (zh) 数据事务处理方法、装置、计算机设备及存储介质
CN115203746A (zh) 数据账户的访问授权方法及装置
US11726818B1 (en) System for executing tasks in different programming languages
CN110222105B (zh) 数据汇总处理方法及装置
CN112699129A (zh) 一种数据处理系统、方法及装置
CN112052234A (zh) 业务数据的处理方法和装置、存储介质、电子装置
CN105610908B (zh) 一种基于安卓设备的samba服务实现方法及系统

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
GR01 Patent grant
GR01 Patent grant