去中心化应用的启动方法、装置、设备以及存储介质与流程

文档序号:21269990发布日期:2020-06-26 22:52阅读:172来源:国知局
去中心化应用的启动方法、装置、设备以及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种去中心化应用的启动方法、装置、设备以及存储介质。



背景技术:

随着区块链技术的发展,网络上出现了许多应用在区块链网络上的dapp(decentralizedapplication,去中心化应用)。例如,游戏类dapp、购物类dapp等等。

虽然去中心化应用运行于区块链网络上,但是对于访问去中心化应用的设备来说往往会将去中心化应用的应用配置数据存储于本地存储中,在启动去中心化应用时根据本地存储中的应用配置数据启动并访问去中心化应用。但是对于本地存储所存储的应用配置数据来说,容易遭到篡改导致去中心化应用启动异常,适应性差。因此,如何安全地启动去中心化应用成为亟需解决的问题。



技术实现要素:

本申请实施例提供一种去中心化应用的启动方法、装置、设备以及存储介质,可快速、安全启动去中心化应用,适用性高。

本申请实施例提供一种去中心化应用的启动方法,该方法包括:

当检测到用户端触发的启动指令时,获取上述启动指令携带的上述启动指令的数字签名和上述用户端所要启动的去中心化应用的应用标识;

获取上述用户端的公钥,并在根据上述公钥和上述数字签名确定上述启动指令为有效指令的情况下,根据上述应用标识从本地存储空间中获取上述去中心化应用的目标应用配置数据;

根据上述应用标识从区块链中确定上述目标应用配置数据对应的第一智能合约,并执行上述第一智能合约以从上述区块链中获取上述目标应用配置数据的第一数据哈希;

确定上述目标应用配置数据的第二数据哈希,并将上述第一数据哈希与上述第二数据哈希进行匹配,当上述第一数据哈希与上述第二数据哈希一致时,根据上述目标应用配置数据生成上述去中心化应用的目标应用窗口;

根据上述目标应用配置数据建立上述目标应用窗口与上述区块链的通信机制以展示上述目标应用窗口。

本申请实施例提供了一种去中心化应用的启动装置,该装置包括:

第一获取模块,用于当检测到用户端触发的启动指令时,获取上述启动指令携带的上述启动指令的数字签名和上述用户端所要启动的去中心化应用的应用标识;

第二获取模块,用于获取上述用户端的公钥,并在根据上述公钥和上述数字签名确定上述启动指令为有效指令的情况下,根据上述应用标识从本地存储空间中获取上述去中心化应用的目标应用配置数据;

第三获取模块,用于根据上述应用标识从区块链中确定上述目标应用配置数据对应的第一智能合约,并执行上述第一智能合约以从上述区块链中获取上述目标应用配置数据的第一数据哈希;

第一处理模块,用于确定上述目标应用配置数据的第二数据哈希,并将上述第一数据哈希与上述第二数据哈希进行匹配,当上述第一数据哈希与上述第二数据哈希一致时,根据上述目标应用配置数据生成上述去中心化应用的目标应用窗口;

第二处理模块,用于根据上述目标应用配置数据建立上述目标应用窗口与上述区块链的通信机制以展示上述目标应用窗口。

在一种可能的实施方式中,上述第二获取模块包括:

第一获取单元,用于从本地存储空间中获取上述应用标识标记的第一应用配置数据;

第一确定单元,用于确定上述第一应用配置数据对应的第一版本信息,并将上述第一版本信息发送至区块链中的共识节点,以使上述共识节点验证上述第一版本信息是否低于上述区块链中上述去中心化应用的预设版本信息;

第二确定单元,用于若上述第一版本信息不低于上述预设版本信息,则将上述第一应用配置数据确定为目标应用配置数据,并从上述本地存储空间中获取上述目标应用配置数据。

在一种可能的实施方式中,上述第二获取模块还包括:

第一发送单元,还用于若上述第一版本信息低于上述预设版本信息,则向上述区块链发送数据获取请求以从上述区块链中确定出上述目标应用配置数据对应的第二智能合约;

第二获取单元,还用于执行上述第二智能合约以从上述区块链中获取上述去中心化应用的第一应用更新数据,并根据上述第一应用更新数据更新上述第一应用配置数据以得到上述目标应用配置数据。

在一种可能的实施方式中,上述第一处理模块包括:

第三确定单元,用于确定上述去中心化应用是否存在第一应用进程;

第一生成单元,用于当上述去中心化应用存在上述第一应用进程时,根据上述第一应用进程和上述目标应用配置数据生成目标应用窗口;

第二发送单元,用于当上述去中心化应用不存在上述第一应用进程时,向上述区块链共识节点发送启动请求以使上述共识节点验证上述启动请求是否为有效请求;

第二生成单元,用于当上述启动请求为有效请求时,为上述去中心化应用创建第二应用进程,并根据上述第二应用进程和上述目标应用配置数据生成上述目标应用窗口。

在一种可能的实施方式中,上述装置还包括:

第四获取模块,还用于获取上述用户端在访问上述去中心化应用时产生的用户数据,并根据上述用户数据确定出上述用户端访问上述去中心化应用的每个应用窗口的时间;

确定模块,还用于将访问时间最长的应用窗口确定为默认应用窗口,并确定出上述默认应用窗口对应的第二应用配置数据的第三数据哈希;

第一存储模块,还用于将上述第二应用配置数据存储至上述本地存储空间,并将上述第三数据哈希存储至上述区块链,以当上述用户端再次启动上述去中心化应用时根据上述第二应用配置数据和上述第三数据哈希向上述用户展示上述默认应用窗口。

在一种可能的实施方式中,上述装置还包括:

发送模块,还用于当检测到上述用户端触发的应用更新请求时,向上述区块链的应用更新节点发送上述应用更新请求,以使上述应用更新节点根据上述应用更新请求携带的用户节点信息和上述应用标识确定上述用户端是否具有上述去中心化应用的更新权限;

更新模块,还用于当上述用户端具有上述更新权限时,确定第二应用更新数据,并根据上述第二应用更新数据更新上述目标应用配置数据得到更新后的目标应用配置数据;

第二存储模块,还用于确定上述更新后的目标应用配置数据的第四数据哈希,并将上述第四数据哈希存储至上述区块链以使上述应用更新节点向上述用户端发送转移数据量。

在一种可能的实施方式中,上述装置还包括:

第三存储模块,还用于将上述更新后的目标应用配置数据存储至上述本地存储空间;

第四存储模块,还用于根据上述第二应用更新数据更新上述第一智能合约得到第三智能合约并将上述第三智能合约存储至上述区块链中,以当再次检测到上述用户端启动上述去中心化应用时,从上述区块链中确定出上述第三智能合约并根据上述第三智能合约获取上述第四数据哈希。

本申请实施例提供了一种设备,该设备包括处理器和存储器,该处理器和存储器相互连接。该存储器用于存储支持该终端设备执行本申请实施例提供的去中心化应用的启动方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用上述程序指令,执行本申请实施例提供的去中心化应用的启动方法。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现本申请实施例提供的去中心化应用的启动方法。

在本申请实施例中,当检测到用户端触发的启动指令时,可根据用户端的公钥和数字签名验证启动指令的有效性,从而可在一定程度上避免去中心化应用的误启动。其次,可从区块链中获取目标应用配置数据的数据哈希,并根据数据哈希验证本地存储空间中所存储的目标应用配置数据的完整性,从而实现在启动去中心化应用前对本地应用配置数据的校验,提升去中心化应用的安全性,适用性高。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的去中心化应用的启动方法的场景示意图;

图2是本申请实施例提供的去中心化应用的启动方法的一流程示意图;

图3是本申请实施例提供的确定启动指令的数字签名的场景示意图;

图4是本申请实施例提供的验证启动指令的场景示意图;

图5是本申请实施例提供的确定目标应用配置数据的原理示意图;

图6是本申请实施例提供的去中心化应用的启动方法的另一流程示意图;

图7是本申请实施例提供的去中心化应用的启动方法的又一流程示意图;

图8是本申请实施例提供的去中心化应用的启动装置的结构示意图;

图9是本申请实施例提供的设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参见图1,图1是本申请实施例提供的去中心化应用的启动方法的场景示意图。在图1中,节点10a、节点10b、节点10c以及节点10d为区块链10中的部分节点,并且节点10a、节点10b、节点10c可以是任何接入区块链10且可以访问去中心化应用的设备,包括但不限于笔记本电脑、移动终端、服务器以及可穿戴便携设备等等,具体可根据实际应用场景确定,在此不做限制。此外,节点10a、节点10b、节点10c以及节点10d也可以是区块链10中的共识节点或者具有其他功能的节点,具体也可根据实际应用场景确定,在此不做限制。在图1中,节点10a为可运行(启动)去中心化应用的用户节点,当节点10a检测到用户端20触发的启动指令30时,节点10a可获取启动指令30携带的启动指令的数字签名301和用户端20所要启动的去中心化应用的应用标识302。此时节点10a可获取用户端20的公钥并在根据用户端20的公钥和数字签名确定启动指令30为有效指令的情况下,根据应用标识302从节点10a的本地存储中获取去中心化应用的目标应用配置数据。另一方面,节点10a可根据应用标识302从区块链中确定目标应用配置数据对应的第一智能合约,并执行第一智能合约以从区块链中获取目标应用配置数据的第一数据哈希。进一步地,节点10a可确定目标应用配置数据的第二数据哈希,并将第一数据哈希和第二数据哈希进行匹配,当第一数据哈希与第二数据哈希一致时,节点10a可根据目标应用配置数据生成去中心化应用的目标应用窗口40。进一步地,节点10a还可根据目标应用配置数据建立上述目标应用窗口40与区块链的通信机制以向用户端展示目标应用窗口40,实现去中心化应用的启动。

参见图2,图2是本申请实施例提供的去中心化应用的启动方法的一流程示意图。图2所示的去中心化应用的启动方法包括如下步骤s201至s205。

s201、当检测到用户端触发的启动指令时,获取启动指令携带的启动指令的数字签名和用户端所要启动的去中心化应用的应用标识。

在一些可行的实施方式中,用户端可通过用户节点启动区中心化应用,其中,用户节点可以是任何接入区块链且可以访问去中心化应用的设备,包括但不限于笔记本电脑、移动终端、服务器以及可穿戴便携设备等等,具体可根据实际应用场景确定,在此不做限制。其中,用户端可以通过触控指令、语音指令以及手势指令等触发去中心化应用的启动指令,具体触发方式以及启动指令的具体表现形式可根据实际应用场景确定,在此不做限制。

可选的,用户端在触发去中心化应用的启动指令时,需要使该启动指令携带有该启动指令的数字签名以及用户端所要启动的去中心化应用的应用标识。其中,上述启动指令的数字签名用于使用户节点验证用户端触发的启动指令是否为有效指令以避免去中心化应用启动不成功。上述应用标识用于对去中心化应用进行标记,以告知用户节点启动该应用标识所对应的去中心化应用,避免错误启动。其中,用户端在触发启动指令后,可对启动指令进行哈希计算以得到启动指令对应的摘要,并进一步采用用户端的私钥对启动指令对应的摘要进行签名得到启动指令的数字签名。其中,在对启动指令进行哈希计算时可采用信息摘要算法进行。上述信息摘要算法包括但不限于循环冗余校验-8(cyclicredundancycheck-8,crc8)、循环冗余校验-16(cyclicredundancycheck-16,crc16)、循环冗余校验-32(cyclicredundancycheck-32,crc32)、信息摘要算法版本2(message-digestalgorithm2,md2)、信息摘要算法版本4(message-digestalgorithm4,md4)、信息摘要算法版本5(message-digestalgorithm5,md5)、安全哈希算法1(securehashalgorithm1,sha1)、安全哈希算法256(securehashalgorithm256,sha256)、安全哈希算法384(securehashalgorithm384,sha384)、安全哈希算法512(securehashalgorithm512,sha512)、race原始完整性校验消息摘要算法(raceintegrityprimitivesevaluationmessagedigest,ripemd)、panama、tiger以及adler-3算法等,具体可基于实际应用场景确定,在此不做限制。其中,不同的信息摘要算法得到的摘要的长度以及表现形式等各不相同。例如,基于crc32可得到一个以8位十六进制数表示的摘要,基于md5可得到以32位十六进制数表示的摘要,基于sha256可得到长度为32字节(256位)的摘要。参见图3,图3是本申请实施例提供的确定启动指令的数字签名的场景示意图。如图3所示,假设对启动指令进行哈希计算后得到启动指令的摘要为1000100,进一步采用用户端的私钥对摘要1000100进行签名之后得到0010101,此时0010101即为启动指令的数字签名。

s202、获取用户端的公钥,并在根据公钥和数字签名确定启动指令为有效指令的情况下,根据应用标识从本地存储空间中获取去中心化应用的目标应用配置数据。

在一些可行的实施方式中,由于用户节点在检测启动指令的过程中,启动指令可能遭到数据丢失或者遭到篡改,因此用户节点在获取启动指令携带的数字签名和应用标识之后,可获取用户端的公钥以根据用户端的公钥和数字签名确定检测到的启动指令是否为有效指令。其中,用户节点可向区块链中的数据管理节点发送携带有上述用户端的用户标识的获取请求,以使数据管理节点根据用户标识从区块链中确定出用户端的公钥,并将用户端的公钥发送至用户节点。可选的,用户节点确定出用户端的用户标识,并执行与该用户标识相对应的智能合约以直接从区块链中获取用户端的公钥。可选的,用户节点可向用户端方获取请求以从用户端获取用户端的私钥。需要特别说明的是,上述获取用户端的公钥仅为示例,具体可根据实际应用场景确定,在此不做限制。具体的,用户节点可根据用户端的公钥对数字签名进行解密得到启动指令的第一摘要,另一方面可对检测到的启动指令进行哈希计算得到启动指令的第二摘要。用户节点从而可将第一摘要和第二摘要进行比较,如果第一摘要和第二摘要一致,说明用户触发的启动指令并未发生数据丢失,也并未遭到篡改,因此用户节点可确定检测到的启动指令为有效指令。参见图4,图4是本申请实施例提供的验证启动指令的场景示意图。在图4中,假设用户节点获取到的启动指令携带的数字签名为0010101,用户节点根据用户端的公钥对数字签名进行解密后得到的第一摘要为1000100。此时若用户节点对启动指令进行哈希计算之后得到的第二摘要信息同样为1000100,用户节点可确定用户端触发的启动指令为有效指令。

在一些可行的实施方式中,当用户端触发的启动指令为有效指令时,用户节点可根据启动指令携带的应用标识从本地存储空间中获取去中心化应用的目标应用配置数据。其中,上述去中心化应用为上述应用标识所标记的应用,上述本地存储空间可以是用户节点对应的设备内存,硬盘、移动硬盘,也可以是与用户节点相连接的云存储空间等,具体可根据实际应用场景确定,在此不做限制。具体的,用户节点可先从本地存储空间中获取上述应用标识所标记的第一应用配置数据,上述第一应用配置数据为可启动去中心化应用的配置数据,如安装去中心化应用的安装包后所产生的所有应用配置数据,包括但不限于ui数据,执行文件数据等等,具体可根据实际应用场景确定,在此不做限制。进一步地,用户节点可从第一应用配置数据对应的第一版本信息,即通过第一应用配置数据所得到的去中心化应用的应用版本信息,并将第一版本信息发送至区块链中的共识节点以使共识节点验证第一版本信息是否低于运行于区块链的区中心化应用的预设版本信息,其中上述预设版本信息为去中心化应用在当前时间的最新版本信息。如果共识节点确定第一版本信息不低于预设版本信息,说明根据第一应用配置数据所得到的区中心化应用为最新版本的去中心化应用,此时用户节点则可从本地存储空间中获取第一应用配置数据(此时为目标应用配置数据)。其中,对于区块链中的每一个共识节点来说,每个共识节点可分别确定第一版本信息是否低于去中心化应用的预设版本信息,当区块链中超过一半数量的共识节点认为第一版本信息不低于去中心化应用的预设版本信息时即可说明经过区块链的共识节点验证,第一版本信息不低于去中心化应用的预设版本信息。反之,则说明用户节点将第一版本信息发送至共识节点之后,共识节点确定第一版本信息低于预设版本信息,在此不再赘述。

在一些可行的实施方式中,当区块链的共识节点确定第一应用配置数据的第一版本信息低于去中心化应用的预设版本信息时,用户节点可根据去中心化应用的第一应用更新数据得到目标应用配置数据。具体可参见图5,图5是本申请实施例提供的确定目标应用配置数据的原理示意图。如图5所示,用户节点可向区块链发送数据获取请求以从区块链中确定出目标应用数据对应的第二智能合约,从而通过执行第二智能合约从区块链中获取去中心化应用的第一应用更新数据。进一步地,用户节点可根据第一应用更新数据对第一应用配置数据进行更新得到更新后的应用配置数据,此时更新后的应用配置数据对应的版本信息不低于去中心化应用的预设版本信息,进而用户节点可将更新后的应用配置数据确定为目标应用配置数据。

s203、根据应用标识从区块链中确定目标应用配置数据对应的第一智能合约,并执行第一智能合约以从区块链中获取目标应用配置数据的第一数据哈希。

在一些可行的实施方式中,由于用户节点获取的目标应用配置数据可能在存储过程中发生数据丢失、人为篡改等问题,导致用户节点并不能根据目标应用配置数据启动去中心化应用,因此用户节点在根据应用标识获取到目标应用配置数据之后,需要从区块链中获取目标应用配置数据的第一数据哈希以对目标应用配置数据进行验证。其中,用户节点在从区块链获取第一数据哈希时,可从区块链中确定出目标应用配置数据对应的第一智能合约,进而执行第一智能合约以从区块链中确定出应用标识对应的目标区块,并从目标区块中获取目标应用配置数据的第一数据哈希。或者,用户节点可执行第一智能合约以从第一智能合约的合约代码中获取目标应用配置数据的第一数据哈希,具体获取方式可根据实际应用场景确定,在此不做限制。

s204、确定目标应用配置数据的第二数据哈希,并将第一数据哈希与第二数据哈希进行匹配,当第一数据哈希与第二数据哈希一致时,根据目标应用配置数据生成去中心化应用的目标应用窗口。

在一些可行的实施方式中,用户节点在从获取到目标应用配置数据以及目标应用配置数据的第一数据哈希之后,用户节点可确定目标应用配置数据的第二数据哈希,并将第一数据哈希与第二数据哈希进行比较,如果目标应用配置数据的第一数据哈希和第二数据哈希一致,说明在本地存储空间存储的目标应用配置数据未发生数据丢失、数据篡改等现象,此时用户节点可根据目标应用配置数据生成去中心化应用的目标应用窗口。其中,用户节点通过生成去中心化应用的目标窗口以完成对去中心化应用的启动,其中去中心化应用的目标应用窗口可以为去中心化应用的默认首页、用户设置页等等,具体可根据实际应用场景确定,在此不做限制。

在一些可行的实施方式中,由于去中心化应用的应用后台可能运行有去中心化应用的应用进程,即去中心化应用并未实际关闭。因此,在启动去中心化应用时,需要先确定去中心化应用是否存在相关的应用进程(为方便描述,以下简称第一应用进程),进而用户节点可根据去中心化应用是否存在第一应用进程以确定采用热启动还是冷启动的方式生成目标应用窗口。当去中心化应用存在第一应用进程时,说明去中心化应用并未被用户节点完全关闭(例如按back键、home键,去中心化应用虽然会退出,但是去中心化应用的进程是依然会保留在后台,可进入任务列表查看),此时用户节点可采用热启动的启动方式,通过根据目标应用配置数据创建和初始化mainactivity并进一步执行mainactivity得到目标应用窗口。其中,执行mainactivity可实现目标应用窗口的布局、大小测量、绘制等等,以及完善目标应用窗口的功能等等,具体可根据实际应用场景确定,在此不做限制。当去中心化应用不存在第一应用进程时,说明去中心化应用已完全被关闭,用户节点会向区块链共识节点发送启动请求并在共识节点确定启动请求为有效请求的情况下,用户节点为去中心化应用创建第二应用进程,进而根据第二应用进程生成目标应用窗口。其中,共识节点在验证用户节点发送的启动请求时,可验证该启动请求的请求参数是否符合去中心化应用的预设参数要求,若区块链中超过一半数量的共识节点认为启动请求的请求参数符合去中心化应用的预设参数要求时,可确定用户节点发送的启动请求为有效请求。可选的,当用户节点发送的启动请求携带有启动请求的数字签名时,每个共识节点也可获取用户节点的公钥并根据公钥验证数字签名和启动请求是否匹配,若相匹配,则可确定启动请求为有效请求。

s205、根据目标应用配置数据建立目标应用窗口与区块链的通信机制以展示所述目标应用窗口。

在一些可行的实施方式中,由于去中心化应用运行于区块链上,因此用户节点在根据目标应用配置数据生成目标应用窗口的同时或之后,用户节点需要建立目标应用窗口与区块链的通信机制以使目标应用窗口能够正常运行,进而向用户端展示目标应用窗口。具体的,在生成目标应用窗口之后,用户节点可根据目标应用配置数据确定去中心化应用所支持的通信协议,并在另一方面确定区块链所满足的通信协议。进一步地,用户节点可根据去中心化应用所支持的通信协议与区块链所满足的通信协议中的共同通信协议建立目标应用窗口与区块链之间的通信机制,从而使用户端通过用户节点生成的目标应用窗口与区块链进行通信。

可选的,在一些可行的实施方式中,用户节点采用冷启动方式启动去中心化应用时可通过进程间通信机制实现。举例来说,用户节点的桌面启动器可通过binder进程间通信机制以通知activitymanagerservice(android提供的管理activity运行状态的系统进程)此时用户节点需要启动一个activity,此时activitymanagerservice可通过binder进程间通信机制通知桌面启动器进入暂停状态,桌面启动器通过binder进程间通信机制通知activitymanagerservice,它已经准备就绪进入paused状态,于是activitymanagerservicey利用zygote.fork()创建一个新的进程,用来启动一个activitythread实例,即将要启动的activity就是在这个activitythread实例中运行。activitythread通过binder进程间通信机制将一个applicationthread类型的binder对象传递给activitymanagerservice,以便以后activitymanagerservice能够通过这个binder对象和它进行通信。activitymanagerservice通过binder进程间通信机制通知activitythread,以执行activity的启动操作了进而生成目标应用窗口。

参见图6,图6是本申请实施例提供的去中心化应用的启动方法的另一流程示意图。图6所示的去中心化应用的启动方法可包括如下步骤s601至s608。

s601、当检测到用户端触发的启动指令时,获取启动指令携带的启动指令的数字签名和用户端所要启动的去中心化应用的应用标识。

s602、获取用户端的公钥,并在根据公钥和数字签名确定启动指令为有效指令的情况下,根据应用标识从本地存储空间中获取去中心化应用的目标应用配置数据。

s603、根据应用标识从区块链中确定目标应用配置数据对应的第一智能合约,并执行第一智能合约以从区块链中获取目标应用配置数据的第一数据哈希。

s604、确定目标应用配置数据的第二数据哈希,并将第一数据哈希与第二数据哈希进行匹配,当第一数据哈希与第二数据哈希一致时,根据目标应用配置数据生成去中心化应用的目标应用窗口。

s605、根据目标应用配置数据建立目标应用窗口与区块链的通信机制以展示目标应用窗口。

在一些可行的实施方式中,上述步骤s601至s605的具体实现方式可参见图2中步骤s201至s205所示的实施方式,在此不再赘述。

s606、获取用户在访问去中心化应用时产生的用户数据,并根据用户数据确定出用户端访问去中心化应用的每个应用窗口的时间。

在一些可行的实施方式中,当用户节点向用户d端展示目标应用窗口之后,用户节点可获取用户端在访问去中心化应用时产生的用户数据。具体的,用户节点可获取每个去中心化应用的每个应用窗口的用户数据,从每个窗口的用户数据中确定出该窗口的日志数据。进一步地,可从每个应用窗口的日志数据中确定出日志产生时间,将日志产生时间最早至日志产生时间最晚的时间间隔确定为该用户端访问该应用窗口的时间。可选的,用户节点可根据用户在访问去中心化应用的每个应用窗口的用户数据确定出每个应用窗口的窗口标识,并将每个应用窗口的窗口标识和该用户端的用户信息发送至区块链的应用管理节点,以使区块链的应用管理节点确定出用户端访问每个应用窗口的时间,并将用户端访问每个应用窗口的时间发送至用户节点。

s607、将访问时间最长的应用窗口确定为默认应用窗口,并确定出默认应用窗口对应的第二应用配置数据的第三数据哈希。

在一些可行的实施方式中,当用户端访问某一应用窗口的时间较长时,说明该用户端对该应用窗口感兴趣或者该应用窗口为用户端经常访问的应用窗口,因此用户节点可将用户端访问时间最长的应用窗口确定为该用户端在去中心化应用的默认应用窗口,并确定出该默认应用窗口对应的第二应用配置数据的第三数据哈希。此时用户节点可根据上述第二应用配置数据以及上述第三数据哈希,在用户端再次启动去中心化应用时向用户端展示上述默认应用窗口。可选的,用户节点还可根据用户端在访问去中心化应用时产生的用户数据,确定出用户端停止访问每个应用窗口的停止时间,并将距离当前时刻最近的停止时间所对应的应用窗口确定为默认应用窗口。即用户节点可将用户端最后一次访问的去中心化应用的应用窗口确定为默认窗口,从而在用户端再次启动去中心化应用时根据默认窗口的第二应用配置数据时,向用户端展示其最后一次访问的应用窗口。

s608、将第二应用配置数据存储至本地存储空间,并将第三数据哈希存储至区块链,以当用户端再次启动去中心化应用时用户节点根据第二应用配置数据和第三数据哈希展示默认应用窗口。

在一些可行的实施方式中,用户节点为了在用户端再次启动去中心化应用时向用户展示默认应用窗口,用户节点可将默认应用窗口的第二应用配置数据存储至用户节点的本地存储空间中,同时需要将第二应用配置数据的第三数据哈希存储至区块链中。从而当用户端再次启动去中心化应用时,用户节点可从区块链中获取上述第三数据哈希并根据第三数据哈希对本地存储空间中的第二应用配置数据进行验证。当第三数据哈希与第二应用配置数据的数据哈希一致时,用户节点可根据第二应用配置数据生成默认应用窗口以完成对去中心化应用的启动。

参见图7,图7是本申请实施例提供的去中心化应用的启动方法的又一流程示意图。图7所示的去中心化应用的启动方法包括如下步骤s701至s708。

s701、当检测到用户端触发的启动指令时,获取启动指令携带的启动指令的数字签名和用户端所要启动的去中心化应用的应用标识。

s702、获取用户的公钥,并在根据公钥和数字签名确定启动指令为有效指令的情况下,根据应用标识从本地存储空间中获取去中心化应用的目标应用配置数据。

s703、根据应用标识从区块链中确定目标应用配置数据对应的第一智能合约,并执行第一智能合约以从区块链中获取目标应用配置数据的第一数据哈希。

s704、确定目标应用配置数据的第二数据哈希,并将第一数据哈希与第二数据哈希进行匹配,当第一数据哈希与第二数据哈希一致时,根据目标应用配置数据生成去中心化应用的目标应用窗口。

s705、根据目标应用配置数据建立目标应用窗口与区块链的通信机制以展示目标应用窗口。

在一些可行的实施方式中,上述步骤s701至s705的具体实施方式可参见图2中步骤s201至s205所示的实现方式,在此不再赘述。

s706、当检测到用户端触发的应用更新请求时,向区块链的应用更新节点发送应用更新请求,以使应用更新节点根据应用更新请求携带的用户信息和应用标识确定用户端是否具有去中心化应用的更新权限。

在一些可行的实施方式中,用户端还可通过用户节点对去中心化应用进行更新,因此当检测到用户端触发的应用更新请求时,用户节点可向区块链中的应用更新节点发送上述应用更新请求以对去中心化应用进行更新。具体的,用户节点发送应用更新请求之后,应用更新节点可根据更新请求携带的用户信息和应用标识确定用户端是否具有去中心化应用的更新权限。其中,应用更新节点可确定出应用标识所标记的去中心化应用的更新权限名单,当更新权限名单中具有用户信息对应的用户端时可确定用户端具有去中心化应用的更新权限。可选的,应用更新节点可将应用标识以及用户信息发送至区块链的共识节点以使共识节点验证用户端是否具有应用标识所标记的去中心化应用的更新权限。当共识节点验证用户端具有去中心化应用的更新权限时,应用更新节点可确定用户端具有去中心化应用的更新权限。其中,共识节点可通过调用上述应用更新节点实现对用户端是否具有更新权限的验证,也可通过从区块链中获取用户端的用户行为数据并根据用户端的历史用户行为进行验证。需要特别说明的是,上述确定用户端具有去中心化应用的更新权限的具体实现方式可根据实际应用场景确定,在此不做限制。

s707、当用户端具有更新权限时,确定第二应用更新数据,并根据第二应用更新数据更新目标应用配置数据得到更新后的目标应用配置数据。

在一些可行的实施方式中,用户节点可获取用户在目标应用窗口配置的第二应用更新数据,或者,用户节点可根据用户端触发的应用更新指令从区块链中获取第二应用更新数据,具体实现方式可根据实际应用场景确定,在此不做限制。另一方面,用户节点可根据第二应用更新数据更新本地存储空间中的目标应用配置数据得到更新后的目标应用配置数据。其中,在对目标应用配置数据进行更新时,可更新其中ui数据、功能数据等等,具体可根据实际应用场景确定在此不做限制。可选的,还可对目标应用配置数据中的指定部分数据进行替换以得到更新后的目标应用配置数据。

s708、确定更新后的目标应用配置数据的第四数据哈希,并将第四数据哈希存储至区块链以使更新节点向用户端发送转移数据量。

在一些可行的实施方式中,用户节点在对目标应用配置数据进行更新得到更新后的目标应用配置数据之后,用户节点可确定出更新后的目标应用配置数据的第四数据哈希。进一步地,用户节点可将第四数据哈希存储至区块链。从而应用更新节点可根据用户节点信息确定出用户节点的数据量接收地址,并向用户端的数据量接收地址发送转移数据量。即去中心化应用在用户节点对目标应用数据更新之后,可对用户节点发送一定转移数据量作为奖励。

可选的,在一些可行的实施方式中,用户节点还可将更新后的目标应用配置数据存储至本地存储空间。进一步地,由于用户节点从区块链中获取目标应用配置数据的第一数据哈希时需要执行第一智能合约,因此用户节点从区块链中获取更新后的目标应用配置数据的第四数据哈希时,同样需要执行相应的智能合约以获取第四数据哈希。基于上述原因,用户节点可根据第二应用更新数据更新第一智能合约得到第三智能合约,从而当再次检测到用户端启动去中心化应用时,用户节点可根据第三智能合约从区块链中获取第四数据哈希,以对本地存储空间中存储的更新后的目标应用配置数据进行验证,并在验证通过后根据更新后的应用配置数据启动去中心化应用。

在本申请实施例中,当检测到用户端触发的启动指令时,可根据用户端的公钥和数字签名验证启动指令的有效性,从而可在一定程度上避免去中心化应用的误启动。其次,可从区块链中获取目标应用配置数据的数据哈希,并根据数据哈希验证本地存储空间中所存储的目标应用配置数据的完整性,从而实现在启动去中心化应用前对本地应用配置数据的校验,提升去中心化应用的安全性,适用性高。

参见图8,图8是本申请实施例提供的去中心化应用的启动装置的结构示意图。本申请实施例提供的装置1包括:

第一获取模块11,用于当检测到用户端触发的启动指令时,获取上述启动指令携带的上述启动指令的数字签名和上述用户端所要启动的去中心化应用的应用标识;

第二获取模块12,用于获取上述用户端的公钥,并在根据上述公钥和上述数字签名确定上述启动指令为有效指令的情况下,根据上述应用标识从本地存储空间中获取上述去中心化应用的目标应用配置数据;

第三获取模块13,用于根据上述应用标识从区块链中确定上述目标应用配置数据对应的第一智能合约,并执行上述第一智能合约以从上述区块链中获取上述目标应用配置数据的第一数据哈希;

第一处理模块14,用于确定上述目标应用配置数据的第二数据哈希,并将上述第一数据哈希与上述第二数据哈希进行匹配,当上述第一数据哈希与上述第二数据哈希一致时,根据上述目标应用配置数据生成上述去中心化应用的目标应用窗口;

第二处理模块15,用于根据上述目标应用配置数据建立上述目标应用窗口与上述区块链的通信机制以展示上述目标应用窗口。

在一些可行的实施方式中,上述第二获取模块12包括:

第一获取单元121,用于从本地存储空间中获取上述应用标识标记的第一应用配置数据;

第一确定单元122,用于确定上述第一应用配置数据对应的第一版本信息,并将上述第一版本信息发送至区块链中的共识节点,以使上述共识节点验证上述第一版本信息是否低于上述区块链中上述去中心化应用的预设版本信息;

第二确定单元123,用于若上述第一版本信息不低于上述预设版本信息,则将上述第一应用配置数据确定为目标应用配置数据,并从上述本地存储空间中获取上述目标应用配置数据。

在一些可行的实施方式中,上述第二获取模块12还包括:

第一发送单元124,还用于若上述第一版本信息低于上述预设版本信息,则向上述区块链发送数据获取请求以从上述区块链中确定出上述目标应用配置数据对应的第二智能合约;

第二获取单元125,还用于执行上述第二智能合约以从上述区块链中获取上述去中心化应用的第一应用更新数据,并根据上述第一应用更新数据更新上述第一应用配置数据以得到上述目标应用配置数据。

在一些可行的实施方式中,上述第一处理模块14包括:

第三确定单元141,用于确定上述去中心化应用是否存在第一应用进程;

第一生成单元142,用于当上述去中心化应用存在上述第一应用进程时,根据上述第一应用进程和上述目标应用配置数据生成目标应用窗口;

第二发送单元143,用于当上述去中心化应用不存在上述第一应用进程时,向上述区块链共识节点发送启动请求以使上述共识节点验证上述启动请求是否为有效请求;

第二生成单元144,用于当上述启动请求为有效请求时,为上述去中心化应用创建第二应用进程,并根据上述第二应用进程和上述目标应用配置数据生成上述目标应用窗口。

在一些可行的实施方式中,上述装置1还包括:

第四获取模块16,还用于获取上述用户端在访问上述去中心化应用时产生的用户数据,并根据上述用户数据确定出上述用户端访问上述去中心化应用的每个应用窗口的时间;

确定模块17,还用于将访问时间最长的应用窗口确定为默认应用窗口,并确定出上述默认应用窗口对应的第二应用配置数据的第三数据哈希;

第一存储模块18,还用于将上述第二应用配置数据存储至上述本地存储空间,并将上述第三数据哈希存储至上述区块链,以当上述用户端再次启动上述去中心化应用时根据上述第二应用配置数据和上述第三数据哈希展示上述默认应用窗口。

在一些可行的实施方式中,上述装置1还包括:

发送模块19,还用于当检测到上述用户端触发的应用更新请求时,向上述区块链的应用更新节点发送上述应用更新请求,以使上述应用更新节点根据上述应用更新请求携带的用户信息和上述应用标识确定上述用户端是否具有上述去中心化应用的更新权限;

更新模块20,还用于当上述用户端具有上述更新权限时,确定第二应用更新数据,并根据上述第二应用更新数据更新上述目标应用配置数据得到更新后的目标应用配置数据;

第二存储模块21,还用于确定上述更新后的目标应用配置数据的第四数据哈希,并将上述第四数据哈希存储至上述区块链以使上述应用更新节点向上述用户端发送转移数据量。

在一些可行的实施方式中,上述装置1还包括:

第三存储模块22,还用于将上述更新后的目标应用配置数据存储至上述本地存储空间;

第四存储模块23,还用于根据上述第二应用更新数据更新上述第一智能合约得到第三智能合约并将上述第三智能合约存储至上述区块链中,以当再次检测到上述用户端启动上述去中心化应用时,从上述区块链中确定出上述第三智能合约并根据上述第三智能合约获取上述第四数据哈希。

具体实现中,上述装置1可通过其内置的各个功能模块执行如上述图2、图6和/或图7中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

在本申请实施例中,当检测到用户端触发的启动指令时,可根据用户端的公钥和数字签名验证启动指令的有效性,从而可在一定程度上避免去中心化应用的误启动。其次,可从区块链中获取目标应用配置数据的数据哈希,并根据数据哈希验证本地存储空间中所存储的目标应用配置数据的完整性,从而实现在启动去中心化应用前对本地应用配置数据的校验,提升去中心化应用的安全性,适用性高。

参见图9,图9是本申请实施例提供的设备的结构示意图。如图9所示,本实施例中的设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1004可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图9所示的设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:

当检测到用户端触发的启动指令时,获取上述启动指令携带的上述启动指令的数字签名和上述用户端所要启动的去中心化应用的应用标识;

获取上述用户端的公钥,并在根据上述公钥和上述数字签名确定上述启动指令为有效指令的情况下,根据上述应用标识从本地存储空间中获取上述去中心化应用的目标应用配置数据;

根据上述应用标识从区块链中确定上述目标应用配置数据对应的第一智能合约,并执行上述第一智能合约以从上述区块链中获取上述目标应用配置数据的第一数据哈希;

确定上述目标应用配置数据的第二数据哈希,并将上述第一数据哈希与上述第二数据哈希进行匹配,当上述第一数据哈希与上述第二数据哈希一致时,根据上述目标应用配置数据生成上述去中心化应用的目标应用窗口;

根据上述目标应用配置数据建立上述目标应用窗口与上述区块链的通信机制以展示上述目标应用窗口。

在一些可行的实施方式中,上述处理器1001用于:

从本地存储空间中获取上述应用标识标记的第一应用配置数据;

确定上述第一应用配置数据对应的第一版本信息,并将上述第一版本信息发送至区块链中的共识节点,以使上述共识节点验证上述第一版本信息是否低于上述区块链中上述去中心化应用的预设版本信息;

若上述第一版本信息不低于上述预设版本信息,则将上述第一应用配置数据确定为目标应用配置数据,并从上述本地存储空间中获取上述目标应用配置数据。

在一些可行的实施方式中,上述处理器1001还用于:

若上述第一版本信息低于上述预设版本信息,则向上述区块链发送数据获取请求以从上述区块链中确定出上述目标应用配置数据对应的第二智能合约;

执行上述第二智能合约以从上述区块链中获取上述去中心化应用的第一应用更新数据,并根据上述第一应用更新数据更新上述第一应用配置数据以得到上述目标应用配置数据。

在一些可行的实施方式中,上述处理器1001用于:

确定上述去中心化应用是否存在第一应用进程;

当上述去中心化应用存在上述第一应用进程时,根据上述第一应用进程和上述目标应用配置数据生成目标应用窗口;

当上述去中心化应用不存在上述第一应用进程时,向上述区块链共识节点发送启动请求以使上述共识节点验证上述启动请求是否为有效请求;

当上述启动请求为有效请求时,为上述去中心化应用创建第二应用进程,并根据上述第二应用进程和上述目标应用配置数据生成上述目标应用窗口。

在一些可行的实施方式中,上述处理器1001还用于:

获取上述用户端在访问上述去中心化应用时产生的用户数据,并根据上述用户数据确定出上述用户端访问上述去中心化应用的每个应用窗口的时间;

将访问时间最长的应用窗口确定为默认应用窗口,并确定出上述默认应用窗口对应的第二应用配置数据的第三数据哈希;

将上述第二应用配置数据存储至上述本地存储空间,并将上述第三数据哈希存储至上述区块链,以当上述用户端再次启动上述去中心化应用时根据上述第二应用配置数据和上述第三数据哈希展示上述默认应用窗口。

在一些可行的实施方式中,上述处理器1001还用于:

当检测到上述用户端触发的应用更新请求时,向上述区块链的应用更新节点发送上述应用更新请求,以使上述应用更新节点根据上述应用更新请求携带的用户信息和上述应用标识确定上述用户端是否具有上述去中心化应用的更新权限;

当上述用户端具有上述更新权限时,确定第二应用更新数据,并根据上述第二应用更新数据更新上述目标应用配置数据得到更新后的目标应用配置数据;

确定上述更新后的目标应用配置数据的第四数据哈希,并将上述第四数据哈希存储至上述区块链以使上述应用更新节点向上述用户端发送转移数据量。

在一些可行的实施方式中,上述处理器1001还用于:

将上述更新后的目标应用配置数据存储至上述本地存储空间;

根据上述第二应用更新数据更新上述第一智能合约得到第三智能合约并将上述第三智能合约存储至上述区块链中,以当再次检测到上述用户端启动上述去中心化应用时,从上述区块链中确定出上述第三智能合约并根据上述第三智能合约获取上述第四数据哈希。

应当理解,在一些可行的实施方式中,上述处理器1001可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。

具体实现中,上述设备1000可通过其内置的各个功能模块执行如上述图2、图6和/或图7中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

在本申请实施例中,当检测到用户端触发的启动指令时,可根据用户端的公钥和数字签名验证启动指令的有效性,从而可在一定程度上避免去中心化应用的误启动。其次,可从区块链中获取目标应用配置数据的数据哈希,并根据数据哈希验证本地存储空间中所存储的目标应用配置数据的完整性,从而实现在启动去中心化应用前对本地应用配置数据的校验,提升去中心化应用的安全性,适用性高。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图2、图6和/或图7中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

上述计算机可读存储介质可以是前述任一实施例提供的任务处理装置的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

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