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中任一项所述的方法。