【发明授权】数据发布方法、数据调用方法、设备和存储介质_杭州复杂美科技有限公司_201910077671.0 

申请/专利权人:杭州复杂美科技有限公司

申请日:2019-01-28

发明/设计人:张振华;黄刚;吴思进;王志文

公开(公告)日:2020-09-15

代理机构:

公开(公告)号:CN109727040B

代理人:

主分类号:G06Q20/40(20120101)

地址:310000 浙江省杭州市西湖区文三路90号东部软件园6号楼6层

分类号:G06Q20/40(20120101)

优先权:

专利状态码:有效-授权

法律状态:2020.09.15#授权;2019.05.31#实质审查的生效;2019.05.07#公开

摘要:本发明提供一种数据发布方法、数据调用方法、设备和存储介质,该方法包括:接收并执行第一数据发布终端发送的发布未产生结果的第一事件的第一交易,将第一事件记录到区块链上;接收并执行若干数据发布终端发送的发布第一事件的待审核结果的若干第二交易,将若干待审核结果记录到区块链上,以供审核终端获取并审核,并在审核通过时生成发布第一事件的结果的第三交易;接收并执行第三交易,将第一事件的结果记录到区块链上;实现将链外的数据真实准确的输入到链内。

主权项:1.一种数据发布方法,其特征在于,包括:接收并执行第一数据发布终端发送的第一交易;其中,所述第一交易包括所述第一数据发布终端发布的未产生结果的第一事件,所述未产生结果的第一事件为获取在当前区块高度后的区块的区块数据;将所述第一事件记录到区块链上;接收并执行若干数据发布终端发送的第二交易;其中,所述第二交易包括若干数据发布终端发布的所述第一事件的待审核结果;将若干所述待审核结果记录到所述区块链上,以供审核终端获取并审核,并在审核通过时生成第三交易;其中,所述第三交易包括所述审核终端发布的第一事件的结果;接收并执行所述第三交易,将所述第一事件的结果记录到所述区块链上。

全文数据:数据发布方法、数据调用方法、设备和存储介质技术领域本申请涉及区块链技术领域,具体涉及一种数据发布方法、数据调用方法、设备和存储介质。背景技术区块链在与现实世界中的数据对接上存在隔阂,预言机用于将链外的数据真实准确的输入到链内,从而保障链上数据的真实性,实现智能合约可信的与外部世界进行交互。预言机的设计思路目前有中心化的实现方式和完全基于区块链的去中心化的实现方式,中心化的方式稳定高效,但难以取得区块链用户的信任;去中心化的实现方式,既要考虑使用的便利,又要考虑对数据提供者的完善的奖惩机制以确保数据准确、系统运行稳定,实现起来非常复杂。区块链上有许多合约都依赖于链外的数据,现有的区块链技术无法满足将链外的数据真实准确的输入到链内。发明内容鉴于现有技术中的上述缺陷或不足,期望提供一种将链外的数据真实准确的输入到链内的数据发布方法、数据调用方法、设备和存储介质。第一方面,本发明提供一种数据发布方法方法,包括:接收并执行第一数据发布终端发送的发布未产生结果的第一事件的第一交易,将第一事件记录到区块链上;接收并执行若干数据发布终端发送的发布第一事件的待审核结果的若干第二交易,将若干待审核结果记录到区块链上,以供审核终端获取并审核,并在审核通过时生成发布第一事件的结果的第三交易;接收并执行第三交易,将第一事件的结果记录到区块链上。第二方面,本发明提供一种数据发布方法,包括:向第一合约发送发布第一事件的待审核结果的第二交易,以触发第一合约执行第二交易,将待审核结果记录到区块链上,以供审核终端获取并审核区块链上记录的待审核结果,并在审核通过时生成发布第一事件的结果的第三交易,以触发第一合约执行第三交易,将第一事件的结果记录到区块链上;其中,第一事件由第一数据发布终端向第一合约发送发布未产生结果的第一事件的第一交易,触发第一合约执行第一交易后记录到区块链上。第三方面,本发明提供一种数据发布方法,包括:获取区块链上所记录的第一事件的待审核结果以生成或获取审核结果:若审核通过,则向第一合约发送发布第一事件的结果的第三交易,以触发第一合约执行第三交易,将第一事件的结果记录到区块链上;其中,第一事件由第一数据发布终端向第一合约发送发布未产生结果的第一事件的第一交易,触发第一合约执行第一交易后记录到区块链上,待审核结果由若干数据发布终端向第一合约发送发布第一事件的待审核结果的若干第二交易,触发第一合约执行若干第二交易后记录到区块链上。第四方面,本发明提供一种数据调用方法,包括:接收第一数据调用终端发送的发布第一合约事件的第六交易,执行第六交易,将第一合约事件记录到区块链上;其中,第一合约事件的结果基于数据发布方法所发布的第一事件的结果生成;执行第六交易包括:验证第一事件的结果是否待发布:否,则第六交易执行失败;接收第一数据调用终端在监控到区块链上发布第一事件的结果后生成并发送的发布第一合约事件结果的第七交易,根据从第一合约中调用第一事件的结果及第一合约事件的规则生成第一结果,将第一结果记录到区块链上。第五方面,本发明提供一种数据调用方法,包括:向第二合约发送发布基于第一合约事件的第六交易,以触发第二合约执行第六交易,将第一合约事件记录到区块链上;其中,第一合约事件的结果基于数据发布方法所发布的第一事件的结果生成;执行第六交易包括:验证第一事件的结果是否待发布:否,则第六交易执行失败;在监控到区块链上发布第一事件的结果后,生成发布第一合约事件结果的第七交易并向第二合约发送第七交易,以触发第二合约根据从第一合约中调用第一事件的结果及第一合约事件的规则生成第一结果,将第一结果记录到区块链上。第六方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的数据发布方法及数据调用方法。第七方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的数据发布方法及数据调用方法。本发明诸多实施例提供的数据发布方法、数据调用方法、设备和存储介质通过接收并执行第一数据发布终端发送的发布未产生结果的第一事件的第一交易,将第一事件记录到区块链上;接收并执行若干数据发布终端发送的发布第一事件的待审核结果的若干第二交易,将若干待审核结果记录到区块链上,以供审核终端获取并审核,并在审核通过时生成发布第一事件的结果的第三交易;接收并执行第三交易,将第一事件的结果记录到区块链上的方法,将链外的数据真实准确的输入到链内。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本发明一实施例提供的一种数据发布方法的流程图。图2为图1所示方法的一种优选实施方式中步骤S12的流程图。图3为图1所示方法的一种优选实施方式的流程图。图4为图1所示方法的一种优选实施方式的流程图。图5为图4所示方法的一种优选实施方式的流程图。图6为图5所示方法的一种优选实施方式的流程图。图7为图1所示方法的一种优选实施方式中步骤S12的流程图。图8为图1所示方法的一种优选实施方式中步骤S15的流程图。图9为图1所示方法的一种优选实施方式中步骤S18的流程图。图10为本发明一实施例提供的一种数据发布方法的流程图。图11为本发明一实施例提供的一种数据发布方法的流程图。图12为本发明一实施例提供的一种数据调用方法的流程图。图13为本发明一实施例提供的一种数据调用方法的流程图。图14为本发明一实施例提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1为本发明一实施例提供的一种数据发布方法的流程图。如图1所示,在本实施例中,本发明提供一种数据发布方法,包括:S12:接收并执行第一数据发布终端发送的发布未产生结果的第一事件的第一交易,将第一事件记录到区块链上;S15:接收并执行若干数据发布终端发送的发布第一事件的待审核结果的若干第二交易,将若干待审核结果记录到区块链上,以供审核终端获取并审核,并在审核通过时生成发布第一事件的结果的第三交易;S18:接收并执行第三交易,将第一事件的结果记录到区块链上。具体地,以当前区块链的区块高度为100,区块链中只有一个数据发布终端为数据发布方A,一个审核终端为审核方M;未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200,第一事件的待审核结果为高度为200的区块的区块哈希值为hash200',第一事件的结果为审核通过即审核hash200与hash200'一致为例,其中,说明书中所描述的所有高度为200的区块的区块哈希值都为第二区块链上高度为200的区块的区块哈希值,包括hash200及hash200',第二区块链与本区块链为两条不同的区块链;在步骤S12中,预言机合约接收并执行数据发布方A发送的发布需要获取高度为200的区块的区块哈希值hash200的第一交易,将需要获取高度为200的区块的区块哈希值hash200记录到区块链上;在步骤S15中,预言机合约接收并执行数据发布方A发送的发布高度为200的区块的区块哈希值为hash200'的第二交易,将高度为200的区块的区块哈希值为hash200'记录到区块链上,以供审核方M获取并审核,并在审核通过时生成发布审核通过的第三交易;在步骤S18中,预言机合约接收并执行第三交易,将审核通过记录到区块链上。上述实施例以当前区块链的区块高度为100,区块链中只有一个数据发布终端为数据发布方A,一个审核终端为审核方M,未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200,第一事件的待审核结果为高度为200的区块的区块哈希值为hash200',第一事件的结果为审核通过即审核hash200与hash200'一致为例对本发明提供的数据发布方法进行了详细阐述,在更多实施例中,本发明提供的数据发布方法不以上述举例为限,还可以根据实际需求将数据发布终端的数量配置为任意正整数,将审核终端的数量配置为任意正整数,下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。将第一事件的结果配置为结果的具体数值,例如在上述实施例中配置为hash200,均可实现相同的技术效果。上述实施例将链外的数据真实准确的输入到链内。图2为图1所示方法的一种优选实施方式中步骤S12的流程图。如图2所示,在一优选实施例中,步骤S12包括:S122:接收第一交易;S124:为第一事件分配第一事件ID,并将第一事件及第一事件ID记录到区块链上。具体地,在步骤S122中,预言机合约接收数据发布方A发送的发布需要获取高度为200的区块的区块哈希值hash200的第一交易;在步骤S124中,预言机合约为第一事件分配第一事件ID,ID为0123,将需要获取高度为200的区块的区块哈希值hash200及0123记录到区块链上。在更多实施例中,由于第一事件ID用于标识第一事件,还可以根据实际需求为第一事件分配其它形式的第一事件ID,例如0x0123,可实现相同的技术效果。上述实施例为第一事件分配第一事件ID,需要获取第一事件的数据的用户可通过第一事件ID查询到区块链上第一事件的所有状态,为用户提供良好的用户体验。图3为图1所示方法的一种优选实施方式的流程图。如图3所示,在一优选实施例中,上述方法还包括:S14:接收并执行第四交易,在区块链上将第一事件标记为已撤销;其中,第四交易由第一数据发布终端在需要撤销第一事件时生成并发送。具体地,以未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200;数据发布方A在得知第二区块链废止,高度为200的区块不会生成时,生成将第一事件标记为已撤销的第四交易,并发送给预言机合约为例。数据发布方A在得知第二区块链废止,高度为200的区块不会生成时,生成将第一事件标记为已撤销的第四交易,并发送给预言机合约;在步骤S14中,预言机合约接收并执行第四交易,在区块链上将上述第一事件标记为已撤销。在更多实施例中,第一数据发布终端还可以根据实际需求在需要撤销第一事件时生成并发送第四交易。图4为图1所示方法的一种优选实施方式的流程图。如图4所示,在一优选实施例中,上述方法还包括:S17:接收并执行第五交易,在区块链上将第一事件标记为已撤销;其中,第五交易由审核终端在审核未通过时生成并发送。具体地,以未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200,第一事件的待审核结果为高度为200的区块的区块哈希值为hash200',第一事件的结果为审核不通过即审核hash200与hash200'不一致;审核方M在审核结果为不通过生成将第一事件标记为已撤销的第五交易,并发送给预言机合约为例。在步骤S17中,预言机合约接收并执行第五交易,在区块链上将将上述第一事件标记为已撤销。图5为图4所示方法的一种优选实施方式的流程图。如图5所示,在一优选实施例中,接收并执行第五交易,在区块链上将第一事件标记为已撤销后,上述方法还包括:S172:扣除发布审核未通过的待审核结果的账户所抵押的押金。具体地,在步骤S172中,预言机合约扣除数据发布方A的账户所抵押的押金。在更多实施例中,还可以将扣除发布审核未通过的待审核结果的账户所抵押的押金的惩罚策略配置为其它的惩罚策略来约束数据发布方发布正确的待审核结果,可实现相同的技术效果。图6为图5所示方法的一种优选实施方式的流程图。如图6所示,在一优选实施例中,扣除发布审核未通过的待审核结果的账户所抵押的押金后,上述方法还包括:S1722:将账户的不诚实行为的第一总量加一以更新第一总量;S1724:判断第一总量是否不小于预配置的不诚实行为的阈值:是,则取消账户发布待审核结果的权限;其中,执行第二交易还包括:判断第二交易的发送地址是否具有发布待审核结果的权限:否,则第二交易执行失败。具体地,以数据发布方A的账户的不诚实行为的第一总量为2,预配置的不诚实行为的阈值为3,第二交易的发送地址即数据发布方A的地址具有发布待审核结果的权限为例。在步骤S1722中,预言机合约将账户的不诚实行为的第一总量加一以更新第一总量,数据发布方A的账户的不诚实行为的第一总量为2,加一以更新第一总量,得到更新后的第一总量为3;在步骤S1724中,预言机合约判断第一总量是否不小于预配置的不诚实行为的阈值,由于第一总量为3,预配置的不诚实行为的阈值为3,第一总量不小于预配置的不诚实行为的阈值:取消数据发布方A的账户发布待审核结果的权限;其中,执行第二交易还包括:判断第二交易的发送地址是否具有发布待审核结果的权限:否,则第二交易执行失败。在更多实施例中,可以将不诚实行为的第一总量的计数方法配置为其它策略,例如,将不诚实行为的第一总量乘以二以更新第一总量;可以将预配置的不诚实行为的阈值配置为任意大于0的数值;还可以在取消数据发布方A的账户发布待审核结果的权限后加上其它策略,例如,加上超时时长,在超时时长后,重新为数据发布方A的账户分配发布待审核结果的权限,或者,接收数据发布方A的若干抵押金后,重新为数据发布方A的账户分配发布待审核结果的权限,可实现相同的技术效果。图7为图1所示方法的一种优选实施方式中步骤S12的流程图。如图7所示,在一优选实施例中,接收并执行第一数据发布终端发送的发布未产生结果的第一事件的第一交易,将第一事件记录到区块链上包括:S122:接收第一交易;S123:判断第一交易的发送地址是否具有发布未产生结果的第一事件的权限:否,则第一交易执行失败。具体地,以预言机合约接收到数据发布方B生成并发送的第一交易,且数据发布方B不具有发布上述第一事件的权限为例;在步骤S122中,预言机合约接收第一交易;在步骤S123中,预言机合约判断数据发布方B不具有发布上述第一交易的权限,第一交易执行失败。上述实施例进一步对第一交易的发送地址进行权限判定,使得只有具有发布上述第一事件权限的地址发送的第一交易才能被执行,进一步保证数据的真实性。图8为图1所示方法的一种优选实施方式中步骤S15的流程图。如图8所示,在一优选实施例中,接收并执行若干数据发布终端发送的发布第一事件的待审核结果的若干第二交易,将待审核结果记录到区块链上包括:S152:接收第二交易;S153:判断第二交易的发送地址是否具有发布待审核结果的权限:否,则第二交易执行失败。具体地,以预言机合约接收到数据发布方C生成并发送的第二交易,且数据发布方C不具有发布上述待审核结果的权限为例;在步骤S152中,预言机合约接收第二交易;在步骤S153中,预言机合约判断数据发布方C不具有发布上述待审核结果的权限,第二交易执行失败。上述实施例进一步对第二交易的发送地址进行权限判定,使得只有具有发布上述待审核结果权限的地址发送的第二交易才能被执行,进一步保证数据的真实性。图9为图1所示方法的一种优选实施方式中步骤S18的流程图。如图9所示,在一优选实施例中,接收并执行第三交易,将第一事件的结果记录到区块链上包括:S182:接收第三交易;S183:判断第三交易的发送地址是否具有发布结果的权限:否,则第三交易执行失败。具体地,以预言机合约接收到数据发布方D生成并发送的第三交易,且数据发布方D不具有发布上述结果的权限为例;在步骤S182中,预言机合约接收第三交易;在步骤S183中,预言机合约判断数据发布方D不具有发布上述结果的权限,第三交易执行失败。上述实施例进一步对第三交易的发送地址进行权限判定,使得只有具有发布上述结果权限的地址发送的第三交易才能被执行,进一步保证数据的真实性。图10为本发明一实施例提供的一种数据发布方法的流程图。如图10所示,在本实施例中,本发明提供一种数据发布方法,包括:S22:向第一合约发送发布第一事件的待审核结果的第二交易,以触发第一合约执行第二交易,将待审核结果记录到区块链上,以供审核终端获取并审核区块链上记录的待审核结果,并在审核通过时生成发布第一事件的结果的第三交易,以触发第一合约执行第三交易,将第一事件的结果记录到区块链上;其中,第一事件由第一数据发布终端向第一合约发送发布未产生结果的第一事件的第一交易,触发第一合约执行第一交易后记录到区块链上。具体地,以当前区块链的区块高度为100,第一合约为预言机合约,区块链中只有一个数据发布终端为数据发布方A,一个审核终端为审核方M;第一事件由数据发布方A向预言机合约发送发布未产生结果的第一事件的第一交易,触发预言机合约执行第一交易后记录到区块链上;未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200,第一事件的待审核结果为高度为200的区块的区块哈希值为hash200',第一事件的结果为审核通过即审核hash200与hash200'一致为例;在步骤S22中,数据发布方A向预言机合约发送发布发布高度为200的区块的区块哈希值为hash200'的第二交易,以触发预言机合约执行第二交易,将高度为200的区块的区块哈希值为hash200'记录到区块链上,以供审核方M获取并审核区块链上记录的待审核结果,并在审核通过时生成发布审核通过的第三交易,以触发第一合约执行第三交易,将审核通过记录到区块链上;上述实施例以当前区块链的区块高度为100,第一合约为预言机合约,区块链中只有一个数据发布终端为数据发布方A,一个审核终端为审核方M;第一事件由数据发布方A向预言机合约发送发布未产生结果的第一事件的第一交易,触发第一合约执行第一交易后记录到区块链上;未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200,第一事件的待审核结果为高度为200的区块的区块哈希值为hash200',第一事件的结果为审核通过即审核hash200与hash200'一致为例对本发明提供的数据发布方法进行了详细阐述,在更多实施例中,本发明提供的数据发布方法不以上述举例为限,还可以根据实际需求将审核终端的数量配置为任意正整数,将第一事件的结果配置为结果的具体数值,例如在上述实施例中配置为hash200,均可实现相同的技术效果。上述实施例将链外的数据真实准确的输入到链内。在一优选实施例中,向第一合约发送发布第一事件的待审核结果的第二交易,以触发第一合约执行第二交易,将待审核结果记录到区块链上前,还包括:向第一合约发送发布未产生结果的第一事件的第一交易,以触发第一合约执行第一交易,将第一事件记录到区块链上。具体地,以区块链中有数据发布方A、数据发布方E,数据发布方A有发布上述待审核结果的权限,但是不具有发布上述第一事件的权限,数据发布方E有发布上述第一事件的权限为例。数据发布方A向预言机合约发送发布发布高度为200的区块的区块哈希值为hash200'的第二交易,以触发预言机合约执行第二交易,将高度为200的区块的区块哈希值为hash200'记录到区块链上前,还包括:数据发布方E向预言机合约发送发布需要获取高度为200的区块的区块哈希值hash200的第一交易,以触发预言机合约执行第一交易,将需要获取高度为200的区块的区块哈希值hash200记录到区块链上。在一优选实施例中,上述方法还包括:向第一合约发送第四交易,以触发第一合约执行第四交易,在区块链上将第一事件标记为已撤销;其中,第四交易在需要撤销第一事件时生成。具体地,以未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200;数据发布方A在得知第二区块链废止,高度为200的区块不会生成时,生成将第一事件标记为已撤销的第四交易,并发送给预言机合约为例。数据发布方A向预言机合约发送第四交易,以触发预言机合约执行第四交易,在区块链上将第一事件标记为已撤销。在更多实施例中,第一数据发布终端还可以根据实际需求在需要撤销第一事件时生成并发送第四交易。图11为本发明一实施例提供的一种数据发布方法的流程图。如图11所示,在本实施例中,本发明提供一种数据发布方法,包括:S32:获取区块链上所记录的第一事件的待审核结果以生成或获取审核结果:若审核通过,则向第一合约发送发布第一事件的结果的第三交易,以触发第一合约执行第三交易,将第一事件的结果记录到区块链上;其中,第一事件由第一数据发布终端向第一合约发送发布未产生结果的第一事件的第一交易,触发第一合约执行第一交易后记录到区块链上,待审核结果由若干数据发布终端向第一合约发送发布第一事件的待审核结果的若干第二交易,触发第一合约执行若干第二交易后记录到区块链上。具体地,以当前区块链的区块高度为100,第一合约为预言机合约,区块链中只有一个数据发布终端为数据发布方A,一个审核终端为审核方M;第一事件由数据发布方A向预言机合约发送发布未产生结果的第一事件的第一交易,触发预言机合约执行第一交易后记录到区块链上;待审核结果由数据发布方A向预言机合约发送发布第一事件的待审核结果的第二交易,触发预言机合约执行第二交易后记录到区块链上;未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200,第一事件的待审核结果为高度为200的区块的区块哈希值为hash200',第一事件的结果为审核通过即审核hash200与hash200'一致为例;在步骤S32中,审核方M获取区块链上所记录的高度为200的区块的区块哈希值为hash200'以生成或获取审核结果:若审核通过,则向预言机合约发送发布审核通过的第三交易,以触发预言机合约执行第三交易,将审核通过记录到区块链上。上述实施例以当前区块链的区块高度为100,第一合约为预言机合约,区块链中只有一个数据发布终端为数据发布方A,一个审核终端为审核方M;第一事件由数据发布方A向预言机合约发送发布未产生结果的第一事件的第一交易,触发预言机合约执行第一交易后记录到区块链上;待审核结果由数据发布方A向预言机合约发送发布第一事件的待审核结果的第二交易,触发预言机合约执行第二交易后记录到区块链上;未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200,第一事件的待审核结果为高度为200的区块的区块哈希值为hash200',第一事件的结果为审核通过即审核hash200与hash200'一致为例对本发明提供的数据发布方法进行了详细阐述,在更多实施例中,本发明提供的数据发布方法不以上述举例为限,还可以根据实际需求将数据发布终端的数量配置为任意正整数,将第一事件的结果配置为结果的具体数值,例如在上述实施例中配置为hash200,均可实现相同的技术效果。上述实施例将链外的数据真实准确的输入到链内。在一优选实施例中,上述方法还包括:向第一合约发送第五交易,以触发第一合约执行第五交易,在区块链上将第一事件标记为已撤销;其中,第五交易在审核未通过时生成。具体地,以未产生结果的第一事件为需要获取高度为200的区块的区块哈希值hash200,第一事件的待审核结果为高度为200的区块的区块哈希值为hash200',第一事件的结果为审核不通过即审核hash200与hash200'不一致;审核方M在审核结果为不通过生成将第一事件标记为已撤销的第五交易,并发送给预言机合约为例。审核方M向预言机合约发送第五交易,以触发预言机合约执行上述第五交易,在区块链上将第一事件标记为已撤销。图12为本发明一实施例提供的一种数据调用方法的流程图。如图12所示,在本实施例中,本发明提供一种数据调用方法,包括:S42:接收第一数据调用终端发送的发布第一合约事件的第六交易,执行第六交易,将第一合约事件记录到区块链上;其中,第一合约事件的结果基于数据发布方法所发布的第一事件的结果生成;执行第六交易包括:验证第一事件的结果是否待发布:否,则第六交易执行失败;S45:接收第一数据调用终端在监控到区块链上发布第一事件的结果后生成并发送的发布第一合约事件结果的第七交易,根据从第一合约中调用第一事件的结果及第一合约事件的规则生成第一结果,将第一结果记录到区块链上。具体地,以区块链中的数据调用终端为数据调用方O,第一合约事件的结果基于数据发布方法所发布的第一事件的结果生成;第一合约事件为调用第一事件的结果高度为200的区块的区块哈希值hash200为本轮游戏发牌的随机数,第一结果为根据上述随机数及第一合约事件的规则生成的发牌序列;执行第六交易包括:验证上述第一事件的结果是否待发布:是待发布为例;在步骤S42中,游戏合约接收数据调用方O发送的调用第一事件的结果为本轮游戏发牌的随机数的第六交易,执行第六交易,将调用第一事件的结果为本轮游戏发牌的随机数记录到区块链上;在步骤S45中:游戏合约接收数据调用方O在监控到区块链上发布第一事件的结果审核通过,即hash200'与hash200一致,是正确的高度为200的区块的区块哈希值后生成并发送的第七交易,根据从预言机合约中调用的hash200'及第一合约事件的规则生成发牌序列,将发牌序列记录到区块链上。上述实施例以区块链中的数据调用终端为数据调用方O,第一合约事件的结果基于数据发布方法所发布的第一事件的结果生成;第一合约事件为调用第一事件的结果高度为200的区块的区块哈希值hash200为本轮游戏发牌的随机数,第一结果为根据上述随机数及第一合约事件的规则生成的发牌序列为例对本发明提供的数据调用方法进行了详细阐述。上述实施例将链外的数据真实准确的进行调用,实现不同合约之间对链外数据的感知和需要。在一优选实施例中,上述方法还包括:接收并执行第八交易,在区块链上将第一合约事件标记为已撤销;其中,第八交易由第一调用终端在需要撤销第一合约事件时生成并发送。具体地,以第一合约事件为调用第一事件的结果高度为200的区块的区块哈希值hash200为本轮游戏发牌的随机数,数据调用方O在区块链上获取到第一事件标记为已撤销时,生成将第一合约事件标记为已撤销的第八交易,并发送给游戏合约为例;游戏合约接收并执行第八交易,在区块链上将上述第一合约事件标记为已撤销。上述实施例以生成将第一合约事件标记为已撤销的第八交易为例对撤销第一合约事件进行阐述,撤销第一合约事件的情况包括但不限于:数据发布方A在得知区块链将终止运行,高度为200的区块不会生成时,生成将第一事件标记为已撤销的第四交易,并发送给预言机合约,预言机合约接收并执行第四交易,在区块链上将将上述第一事件标记为已撤销,数据调用方O在区块链上获取到第一事件标记为已撤销时,生成将第一合约事件标记为已撤销的第八交易,并发送给游戏合约,及,审核方M在审核结果为不通过生成将第一事件标记为已撤销的第五交易,并发送给预言机合约,预言机合约接收并执行第五交易,在区块链上将上述第一事件标记为已撤销,数据调用方O在区块链上获取到第一事件标记为已撤销时,生成将第一合约事件标记为已撤销的第八交易,并发送给游戏合约。在一优选实施例中,接收第一数据调用终端发送的发布第一合约事件的第六交易,执行第六交易,将第一合约事件记录到区块链上包括:接收第六交易;判断第六交易的发送地址是否具有发布第一合约事件的权限:否,则第六交易执行失败。具体地,以游戏合约接收到数据调用方P生成并发送的第六交易,且数据调用方P不具有发布上述第一合约事件的权限为例;游戏合约接收第六交易;游戏合约判断数据调用方P不具有发布上述第一合约事件的权限,第六交易执行失败。上述实施例进一步对第六交易的发送地址进行权限判定,使得只有具有发布上述第一合约事件权限的地址发送的第六交易才能被执行,进一步保证数据调用的正确性。在一优选实施例中,接收第一数据调用终端在监控到区块链上发布第一事件的结果后生成并发送的第七交易,根据从第一合约中调用第一事件的结果及第一合约事件的规则生成第一结果,将第一结果记录到区块链上包括:接收第七交易;判断数据调用方Q不具有发布所述第一合约事件的权限:否,则第七交易执行失败。具体地,以游戏合约接收到数据调用方Q生成并发送的第七交易,且数据调用方Q不具有发布上述第一合约事件的权限为例;游戏合约接收第七交易;游戏合约判断第七交易的发送地址不具有发布所述第一合约事件的权限,第七交易执行失败。图13为本发明一实施例提供的一种数据调用方法的流程图。如图13所示,在本实施例中,本发明提供一种数据调用方法,包括:S52:向第二合约发送发布基于第一合约事件的第六交易,以触发第二合约执行第六交易,将第一合约事件记录到区块链上;其中,第一合约事件的结果基于数据发布方法所发布的第一事件的结果生成;执行第六交易包括:验证第一事件的结果是否待发布:否,则第六交易执行失败;S55:在监控到区块链上发布第一事件的结果后,生成发布第一合约事件结果的第七交易并向第二合约发送第七交易,以触发第二合约根据从第一合约中调用第一事件的结果及第一合约事件的规则生成第一结果,将第一结果记录到区块链上。具体地,以区块链中的数据调用终端为数据调用方O,第二合约为游戏合约,第一合约事件的结果基于数据发布方法所发布的第一事件的结果生成;第一合约事件为调用第一事件的结果高度为200的区块的区块哈希值hash200为本轮游戏发牌的随机数,第一结果为根据上述随机数及第一合约事件的规则生成的发牌序列;执行第六交易包括:验证第一事件的结果是否待发布:是待发布为例;在步骤S52中,数据调用方O向游戏合约发送调用第一事件的结果为本轮游戏发牌的随机数的第六交易,以触发游戏合约执行第六交易,将调用第一事件的结果为本轮游戏发牌的随机数记录到区块链上;在步骤S55中,数据调用方O在监控到区块链上发布第一事件的结果后,生成发布上述第一合约事件结果的第七交易并向游戏合约发送第七交易,以触发游戏合约根据从预言机合约中调用的hash200'及第一合约事件的规则生成发牌序列,将发牌序列记录到区块链上。上述实施例以区块链中的数据调用终端为数据调用方O,第二合约为游戏合约,第一合约事件的结果基于数据发布方法所发布的第一事件的结果生成;第一合约事件为调用第一事件的结果高度为200的区块的区块哈希值hash200为本轮游戏发牌的随机数,第一结果为根据上述随机数及第一合约事件的规则生成的发牌序列为例对本发明提供的数据调用方法进行了详细阐述。上述实施例将链外的数据真实准确的进行调用,实现不同合约之间对链外数据的感知和需要。在一优选实施例中,方法还包括:向第二合约发送第八交易,以触发第二合约执行第八交易,在区块链上将第一合约事件标记为已撤销;其中,第八交易在需要撤销第一合约事件时生成。具体地,以第一合约事件为调用第一事件的结果高度为200的区块的区块哈希值hash200为本轮游戏发牌的随机数,数据调用方O在区块链上获取到第一事件标记为已撤销时,生成将第一合约事件标记为已撤销的第八交易,并发送给游戏合约为例;数据调用方O向游戏合约发送第八交易,以触发游戏合约执行第八交易,在区块链上将上述第一合约事件标记为已撤销。撤销第一合约事件的情况包括但不限于:数据发布方A在得知区块链将终止运行,高度为200的区块不会生成时,生成将第一事件标记为已撤销的第四交易,并发送给预言机合约,预言机合约接收并执行第四交易,在区块链上将将上述第一事件标记为已撤销,数据调用方O在区块链上获取到第一事件标记为已撤销时,生成将第一合约事件标记为已撤销的第八交易,并发送给游戏合约,及,审核方M在审核结果为不通过生成将第一事件标记为已撤销的第五交易,并发送给预言机合约,预言机合约接收并执行第五交易,在区块链上将上述第一事件标记为已撤销,数据调用方O在区块链上获取到第一事件标记为已撤销时,生成将第一合约事件标记为已撤销的第八交易,并发送给游戏合约。图14为本发明一实施例提供的一种设备的结构示意图。如图14所示,作为另一方面,本申请还提供了一种设备1400,包括一个或多个中央处理单元CPU1401,其可以根据存储在只读存储器ROM1402中的程序或者从存储部分1408加载到随机访问存储器RAM1403中的程序而执行各种适当的动作和处理。在RAM1403中,还存储有设备1400操作所需的各种程序和数据。CPU1401、ROM1402以及RAM1403通过总线1404彼此相连。输入输出IO接口1405也连接至总线1404。以下部件连接至IO接口1405:包括键盘、鼠标等的输入部分1406;包括诸如阴极射线管CRT、液晶显示器LCD等以及扬声器等的输出部分1407;包括硬盘等的存储部分1408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1409。通信部分1409经由诸如因特网的网络执行通信处理。驱动器1410也根据需要连接至IO接口1405。可拆卸介质1411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1410上,以便于从其上读出的计算机程序根据需要被安装入存储部分1408。特别地,根据本公开的实施例,上述任一实施例描述的数据发布方法及数据调用方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行数据发布方法及数据调用方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1409从网络上被下载和安装,和或从可拆卸介质1411被安装。作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的数据发布方法及数据调用方法。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和或流程图中的每个方框、以及框图和或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的但不限于具有类似功能的技术特征进行互相替换而形成的技术方案。

权利要求:1.一种数据发布方法,其特征在于,包括:接收并执行第一数据发布终端发送的发布未产生结果的第一事件的第一交易,将所述第一事件记录到区块链上;接收并执行若干数据发布终端发送的发布所述第一事件的待审核结果的若干第二交易,将若干所述待审核结果记录到所述区块链上,以供审核终端获取并审核,并在审核通过时生成发布所述第一事件的结果的第三交易;接收并执行所述第三交易,将所述第一事件的结果记录到所述区块链上。2.根据权利要求1所述的方法,其特征在于,所述接收并执行第一数据发布终端发送的发布未产生结果的第一事件的第一交易,将所述第一事件记录到区块链上包括:接收所述第一交易;为所述第一事件分配第一事件ID,并将所述第一事件及所述第一事件ID记录到区块链上。3.根据权利要求1所述的方法,其特征在于,还包括:接收并执行第四交易,在所述区块链上将所述第一事件标记为已撤销;其中,所述第四交易由所述第一数据发布终端在需要撤销所述第一事件时生成并发送。4.根据权利要求1所述的方法,其特征在于,还包括:接收并执行第五交易,在所述区块链上将所述第一事件标记为已撤销;其中,所述第五交易由所述审核终端在审核未通过时生成并发送。5.根据权利要求4所述的方法,其特征在于,所述接收并执行第五交易,在所述区块链上将所述第一事件标记为已撤销后,还包括:扣除发布审核未通过的待审核结果的账户所抵押的押金。6.根据权利要求5所述的方法,其特征在于,所述扣除发布审核未通过的待审核结果的账户所抵押的押金后,还包括:将所述账户的不诚实行为的第一总量加一以更新第一总量;判断所述第一总量是否不小于预配置的不诚实行为的阈值:是,则取消所述账户发布待审核结果的权限;其中,执行第二交易还包括:判断所述第二交易的发送地址是否具有发布待审核结果的权限:否,则所述第二交易执行失败。7.根据权利要求1-6任一项所述的方法,其特征在于,所述接收并执行第一数据发布终端发送的发布未产生结果的第一事件的第一交易,将所述第一事件记录到区块链上包括:接收所述第一交易;判断所述第一交易的发送地址是否具有发布未产生结果的第一事件的权限:否,则所述第一交易执行失败。8.根据权利要求1-5任一项所述的方法,其特征在于,所述接收并执行若干数据发布终端发送的发布所述第一事件的待审核结果的若干第二交易,将所述待审核结果记录到所述区块链上包括:接收所述第二交易;判断所述第二交易的发送地址是否具有发布待审核结果的权限:否,则所述第二交易执行失败。9.根据权利要求1-6任一项所述的方法,其特征在于,所述接收并执行所述第三交易,将所述第一事件的结果记录到所述区块链上包括:接收所述第三交易;判断所述第三交易的发送地址是否具有发布结果的权限:否,则所述第三交易执行失败。10.一种数据发布方法,其特征在于,包括:向第一合约发送发布第一事件的待审核结果的第二交易,以触发所述第一合约执行所述第二交易,将所述待审核结果记录到所述区块链上,以供审核终端获取并审核所述区块链上记录的待审核结果,并在审核通过时生成发布所述第一事件的结果的第三交易,以触发第一合约执行所述第三交易,将所述第一事件的结果记录到所述区块链上;其中,所述第一事件由第一数据发布终端向第一合约发送发布未产生结果的第一事件的第一交易,触发第一合约执行所述第一交易后记录到所述区块链上。11.根据权利要求10所述的方法,其特征在于,所述向所述第一合约发送发布所述第一事件的待审核结果的第二交易,以触发所述第一合约执行所述第二交易,将所述待审核结果记录到所述区块链上前,还包括:向第一合约发送发布未产生结果的第一事件的第一交易,以触发所述第一合约执行所述第一交易,将所述第一事件记录到区块链上。12.根据权利要求10所述的方法,其特征在于,还包括:向所述第一合约发送第四交易,以触发所述第一合约执行所述第四交易,在所述区块链上将所述第一事件标记为已撤销;其中,所述第四交易在需要撤销所述第一事件时生成。13.一种数据发布方法,其特征在于,包括:获取区块链上所记录的第一事件的待审核结果以生成或获取审核结果:若审核通过,则向第一合约发送发布所述第一事件的结果的第三交易,以触发所述第一合约执行所述第三交易,将所述第一事件的结果记录到所述区块链上;其中,所述第一事件由第一数据发布终端向所述第一合约发送发布未产生结果的第一事件的第一交易,触发第一合约执行所述第一交易后记录到所述区块链上,所述待审核结果由若干数据发布终端向所述第一合约发送发布所述第一事件的待审核结果的若干第二交易,触发第一合约执行若干所述第二交易后记录到所述区块链上。14.根据权利要求13所述的方法,其特征在于,还包括:向第一合约发送第五交易,以触发所述第一合约执行所述第五交易,在所述区块链上将所述第一事件标记为已撤销;其中,所述第五交易在审核未通过时生成。15.一种数据调用方法,其特征在于,包括:接收第一数据调用终端发送的发布第一合约事件的第六交易,执行所述第六交易,将所述第一合约事件记录到区块链上;其中,所述第一合约事件的结果基于如权利要求1-14任一项所述的数据发布方法所发布的第一事件的结果生成;所述执行所述第六交易包括:验证所述第一事件的结果是否待发布:否,则所述第六交易执行失败;接收第一数据调用终端在监控到所述区块链上发布所述第一事件的结果后生成并发送的发布第一合约事件结果的第七交易,根据从第一合约中调用所述第一事件的结果及所述第一合约事件的规则生成第一结果,将所述第一结果记录到区块链上。16.根据权利要求15所述的方法,其特征在于,还包括:接收并执行第八交易,在所述区块链上将所述第一合约事件标记为已撤销;其中,所述第八交易由所述第一调用终端在需要撤销所述第一合约事件时生成并发送。17.根据权利要求15或16所述的方法,其特征在于,所述接收第一数据调用终端发送的发布第一合约事件的第六交易,执行所述第六交易,将所述第一合约事件记录到区块链上包括:接收所述第六交易;判断所述第六交易的发送地址是否具有发布所述第一合约事件的权限:否,则所述第六交易执行失败。18.根据权利要求15或16所述的方法,其特征在于,所述接收第一数据调用终端在监控到所述区块链上发布所述第一事件的结果后生成并发送的第七交易,根据从第一合约中调用所述第一事件的结果及所述第一合约事件的规则生成第一结果,将所述第一结果记录到区块链上包括:接收所述第七交易;判断所述第七交易的发送地址是否具有发布所述第一合约事件结果的权限:否,则所述第七交易执行失败。19.一种数据调用方法,其特征在于,包括:向第二合约发送发布基于第一合约事件的第六交易,以触发所述第二合约执行所述第六交易,将所述第一合约事件记录到区块链上;其中,所述第一合约事件的结果基于如权利要求1-14任一项所述的数据发布方法所发布的第一事件的结果生成;所述执行所述第六交易包括:验证所述第一事件的结果是否待发布:否,则所述第六交易执行失败;在监控到所述区块链上发布所述第一事件的结果后,生成发布第一合约事件结果的第七交易并向第二合约发送所述第七交易,以触发所述第二合约根据从第一合约中调用所述第一事件的结果及所述第一合约事件的规则生成第一结果,将所述第一结果记录到区块链上。20.根据权利要求19所述的方法,其特征在于,还包括:向第二合约发送所述第八交易,以触发所述第二合约执行所述第八交易,在所述区块链上将所述第一合约事件标记为已撤销;其中,所述第八交易在需要撤销所述第一合约事件时生成。21.一种设备,其特征在于,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-20中任一项所述的方法。22.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-20中任一项所述的方法。

百度查询: 杭州复杂美科技有限公司 数据发布方法、数据调用方法、设备和存储介质