数据共享方法、区块链系统和计算机可读存储介质
技术领域
本公开涉及计算机技术领域,特别涉及一种数据共享方法、区块链系统和计算机可读存储介质。
背景技术
风险控制对于企业的运营有着重要的影响。企业在开展各类风险控制相关业务的过程中,需要收集风险数据,构建风险控制体系,并最终服务于相关业务场景。在开展风险控制业务的过程中,各家企业往往会产生数据共享的需求,用以提高相应的风控能力。
目前风险数据共享的主要方式是,各企业之间通过查询接口共享数据,被查询方根据查询流量进行计价收费。
发明内容
发明人发现:基于接口查询技术的风险数据共享机制,缺乏统一的数据定价机制,价格完全由数据提供方制定,在信息不对称的前提下,数据使用方无法确认其付费价格是否合理,不利于各企业间公平查询,以使数据更好的在企业间共享。在目前各大企业有需求建立一套风险数据共享体系的趋势下,如何实现各企业间透明、安全的风险数据共享成为急需解决的问题。
本公开所要解决的一个技术问题是:如何实现各企业间透明、安全的风险数据共享。
根据本公开的一些实施例,提供的一种区块链系统,包括:若干成员节点,其中,每个成员节点被配置为:接收其他成员节点发送的查询确认请求,查询确认请求包括风险数据的查询信息;根据智能合约对接收到的风险数据的查询信息进行验证并返回验证结果;接收根据风险数据的查询信息生成的区块,将区块加入区块链,区块中包括风险数据查询双方的通证的状态变化,通证的状态变化反映查询双方的查询行为以及查询命中的风险数据的条数。
在一些实施例中,成员节点还被配置为根据风险数据的查询信息在区块链状态数据库中更新查询双方的成员节点的通证的状态。
在一些实施例中,通证包括权益通证,权益通证的数量用于反映成员节点向风险数据接收方所提供的风险数据条数;成员节点之一被配置为平台节点;平台节点还被配置为在预设周期结束的情况下,查询各个成员节点的权益通证的状态,确定在该预设周期内各个成员节点提供的风险数据的价值,并将预设周期内各个成员节点提供的风险数据的价值通过权益通证的状态变化形式写入区块链。
在一些实施例中,成员节点被配置为在区块链状态数据库中更新风险数据提供方的待结算权益通证数量;平台节点被配置为根据各个成员节点的待结算权益通证的数量,确定在该预设周期内各个成员节点提供的风险数据的价值,并根据待结算权益通证的数量向各个成员节点发放权益通证,将发放权益通证的信息写入区块链。
在一些实施例中,通证还包括查询通证;区块中还包括平台节点的通证的状态变化,平台节点的通证的状态根据查询双方的查询通证的变化数量和预设比例确定;平台节点还被配置为在预设周期结束的情况下,根据各个成员节点的权益通证的数量、平台节点的查询通证数量以及智能合约,向各个成员节点发放查询通证,将发放查询通证的信息写入区块链。
在一些实施例中,通证还包括查询通证;平台节点还被配置为在预设查询周期结束的情况下,根据各个成员节点的查询通证总数量和权益通证的总数量,确定查询通证和权益通证的兑换汇率,并将兑换汇率写入智能合约。
在一些实施例中,通证包括查询通证;成员节点还被配置为在初始加入区块链系统的情况下,根据智能合约发起初始化请求,初始化请求包括发放预设数量的查询通证到本成员节点,以便各个成员节点将向该成员节点发放查询通证的信息写入区块链。
在一些实施例中,成员节点之一被配置为平台节点;平台节点被配置为发起通证发放指令,通证发放指令包括通证发放对象和发放通证的数量;成员节点被配置为根据智能合约对接收到的通证发放指令进行验证并返回验证结果,接收根据通证发放指令生成的区块,将区块加入区块链。
在一些实施例中,查询信息包括:查询ID、风险数据请求的签名、风险数据请求结果的签名、风险数据提供数量、请求类型、待清算通证数量、请求时间戳、结果返回时间戳;成员节点被配置为验证以下内容:根据风险数据请求方和提供方的公钥,验证风险数据请求的签名和风险数据请求结果的签名;验证根据智能合约、风险数据提供数量和请求类型计算得到的通证数量是否与待清算通证数量一致;验证风险数据请求方当前的通证状态是否满足待清算通证数量。
在一些实施例中,成员节点包括业务服务器和区块链服务器;业务服务器被配置为存储风险数据,向本节点对应的区块链服务器发起风险数据请求;区块链服务器被配置为存储其他成员节点的区块链服务器的IP地址,向其他成员节点的区块链服务器转发本节点的业务服务器发送的风险数据请求,并将接收到的其他成员节点的区块链服务器返回风险数据请求结果转发至本节点的业务服务器。
根据本公开的另一些实施例,提供的一种数据共享方法,其中,该数据共享方法应用于区块链系统,区块链系统包括若干成员节点,该方法包括:成员节点接收风险数据提供方发送的查询确认请求,查询确认请求包括风险数据的查询信息;成员节点根据智能合约对接收到的风险数据的查询信息进行验证并返回验证结果;成员节点接收根据风险数据的查询信息生成的区块,将区块加入区块链;其中,区块中包括风险数据查询双方的通证的状态变化,通证的状态变化反映查询双方的查询行为以及查询命中的风险数据的条数。
在一些实施例中,该方法还包括:成员节点根据风险数据的查询信息在区块链状态数据库中更新查询双方的成员节点的通证的状态。
在一些实施例中,通证包括权益通证,权益通证的数量用于反映成员节点向风险数据接收方所提供的风险数据条数;成员节点还被配置为平台节点,该方法还包括:平台节点在预设周期结束的情况下,查询各个成员节点的权益通证的状态,确定在该预设周期内各个成员节点提供的风险数据的价值,并将预设周期内各个成员节点提供的风险数据的价值通过权益通证的状态变化形式写入区块链。
在一些实施例中,成员节点在区块链状态数据库中更新风险数据提供方的待结算权益通证数量;确定在预设周期内各个成员节点提供的风险数据的价值包括:平台节点根据各个成员节点的待结算权益通证的数量,确定在该预设周期内各个成员节点提供的风险数据的价值,并根据待结算权益通证的数量向各个成员节点发放权益通证,将发放权益通证的信息写入区块链。
在一些实施例中,通证还包括查询通证;区块中还包括平台节点的通证的状态变化,平台节点的通证的状态根据查询双方的查询通证的变化数量和预设比例确定;该方法还包括:平台节点在预设周期结束的情况下,根据各个成员节点的权益通证的数量、平台节点的查询通证数量以及智能合约,向各个成员节点发放查询通证,将发放查询通证的信息写入区块链。
在一些实施例中,通证还包括查询通证;该方法还包括:平台节点在预设查询周期结束的情况下,根据各个成员节点的查询通证总数量和权益通证的总数量,确定查询通证和权益通证的兑换汇率,并将兑换汇率写入智能合约。
在一些实施例中,通证包括查询通证;该方法还包括:成员节点在初始加入区块链系统的情况下,根据智能合约发起初始化请求,初始化请求包括发放预设数量的查询通证到本成员节点,以便各个成员节点将向该成员节点发放查询通证的信息写入区块链。
在一些实施例中,成员节点之一被配置为平台节点;该方法还包括:平台节点发起通证发放指令,通证发放指令包括通证发放对象和发放通证的数量;成员节点根据智能合约对接收到的通证发放指令进行验证并返回验证结果,接收根据通证发放指令生成的区块,将区块加入区块链。
在一些实施例中,查询信息包括:查询ID、风险数据请求的签名、风险数据请求结果的签名、风险数据提供数量、请求类型、待清算通证数量、请求时间戳、结果返回时间戳;成员节点根据智能合约对接收到的风险数据的查询信息进行验证包括:成员节点根据风险数据请求方和提供方的公钥,验证风险数据请求的签名和风险数据请求结果的签名;验证根据智能合约、风险数据提供数量和请求类型计算得到的通证数量是否与待清算通证数量一致;验证风险数据请求方当前的通证状态是否满足待清算通证数量。
在一些实施例中,成员节点包括业务服务器和区块链服务器;该方法还包括:成员节点的业务服务器向本节点对应的区块链服务器发起风险数据请求;成员节点的区块链服务器根据其他成员节点的区块链服务器的IP地址,向其他成员节点的区块链服务器转发本节点的业务服务器发送的风险数据请求;成员节点的区块链服务器将接收到的其他成员节点的区块链服务器返回风险数据请求结果转发至本节点的业务服务器;其他成员节点的区块链服务器返回风险数据请求是由对应的业务服务器提供的。
根据本公开的又一些实施例,提供的一种区块链系统,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器设备中的指令,执行如前述任意实施例的数据共享方法的步骤。
根据本公开的再一些实施例,提供的一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的数据共享方法的步骤。
本公开应用区块链系统实现联盟成员之间风险数据的共享。各个成员节点之间风险数据的查询都需要在区块链系统中得到其他成员节点的验证,并将相关查询信息存储于区块链中。同时,通证作为风险数据查询的凭证,通过各个成员节点通证的状态变化可以反映风险数据的查询过程,能够更加简洁的记录查询过程,减少了存储数据量更加适合区块链的存储,并且保护了查询信息的隐私性。通过本公开的区块链系统,各个企业之间的风险数据的查询对于其他企业是公开、透明的,并且查询信息安全的被记录下来,不可篡改,便于追溯,实现了各企业间透明、安全的风险数据共享。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的区块链系统的结构示意图。
图2示出本公开的另一些实施例的区块链系统的结构示意图。
图3示出本公开的一些实施例的数据共享方法的流程示意图。
图4示出本公开的另一些实施例的数据共享方法的流程示意图。
图5示出本公开的又一些实施例的数据共享方法的流程示意图。
图6示出本公开的再一些实施例的数据共享方法的流程示意图。
图7示出本公开的又一些实施例的区块链系统的结构示意图。
图8示出本公开的再一些实施例的区块链系统的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提供一种区块链系统用于实现用户之间风险数据的共享,下面结合图1进行描述。
图1为本公开区块链系统的一些实施例的结构图。如图1所示,该实施例的装置10包括:若干成员节点100。
每个成员节点100都可以被配置为具有相同的功能。例如,每个成员节点100可以存储相同的区块链(或账本),区块链中记录着成员节点之间的查询信息。每个成员节点100可以配置有相同的智能合约(或链码),智能合约中规定了查询的验证方式、执行步骤等。节点执行各种动作都可以通过调用智能合约来执行,同时智能合约相当于规定了各个节点可以执行的动作,超出合约范围的动作是不允许的。每个成员节点100还可以设置有区块链状态数据库,记录着区块链的最新状态,还可以记录每个成员节点的状态。区块链状态数据库可以随着查询信息和区块链的更新而变化。
在一些实施例中,每个成员节点100可以被配置为执行以下步骤:接收其他成员节点发送的查询确认请求,查询确认请求包括风险数据的查询信息;根据智能合约对接收到的风险数据的查询信息进行验证并返回验证结果;接收根据风险数据的查询信息生成的区块,将区块加入区块链,区块中包括风险数据查询双方的通证的状态变化。风险数据例如包括:用户黑名单、用户白名单和用户灰名单中至少一种。
进一步,成员节点100还被配置为根据风险数据的查询信息在区块链状态数据库中更新查询双方的成员节点的通证的状态。
通证的状态变化反映查询双方的查询行为以及查询命中风险数据的条数。通证的设计是为了保护风险数据的隐私性,同时便于通过区块链记录查询信息。出于隐私性考虑,风险数据不能直接记录于区块链中,因此使用通证作为查询行为的反映,风险数据在查询双方直接进行加密传输,同时将反映风险数据查询行为的通证状态变化在区块链上进行记录,既保证查询安全性又能够将查询信息公开安全的记录下来。通证与风险数据量的表征关系可以通过智能合约进行约定。例如,1个通证的变化表示查询一条风险数据。通证的状态还可以用来衡量成员节点是否具备查询风险数据的资格。如果成员节点不具有通证,则无法查询风险数据。
上述实施例中,应用区块链系统实现联盟成员之间风险数据的共享。各个成员节点之间风险数据的查询都需要在区块链系统中得到其他成员节点的验证,并将相关查询信息存储于区块链中。同时,通证作为风险数据查询的凭证,通过各个成员节点通证的状态变化可以反映风险数据的查询过程,能够更加简洁的记录查询过程,减少了存储数据量更加适合区块链的存储,并且保护了查询信息的隐私性。通过上述实施例的区块链系统,各个企业之间的风险数据的查询对于其他企业是公开、透明的,并且查询信息安全的被记录下来,不可篡改,便于追溯,实现了各企业间透明、安全的风险数据共享。
进一步,通证可以包括用于查询风险数据的查询通证。本公开还提供一种双层通证的设计方案,以共识的方式发行两种通证。即通证可以包括用于查询风险数据的查询通证,以及用于反映成员节点提供的风险数据的价值或反映成员节点对于整个联盟贡献的权益通证。查询通证的状态变化可以直接用于反映查询双方的查询行为以及查询命中的风险数据的条数,即查询行为首先引起的是查询通证的状态变化。同时,查询通证用来反映成员节点是否具备查询的能力,以及能够查询风险数据的条数。权益通证的状态变化主要用于反映在查询过程中成员节点作为风险数据提供方所提供的风险数据的条数。权益通证相当于提供一种平等、合理、安全的反馈机制用于对各个成员提供的风险数据做出评价。
在一些实施例中,区块中包括风险数据查询双方的查询通证的状态变化。根据智能合约中查询通证与风险数据查询条数的表征关系,区块中可以包括风险数据提供方增加的通证的数量和风险数据接收方减少的通证的数量。进一步,成员节点100还被配置为在区块链状态数据库中增加风险数据提供方的成员节点的查询通证数量,并减少风险数据接收方的成员节点的查询通证数量。例如,1个查询通证的变化表示查询一条风险数据,A节点向B节点查询10条风险数据,B节点向A节点返回了相应的风险数据,区块中则可以记录表示A节点减少了10个查询通证,B节点增加了10个查询通证的信息。各个成员节点还可以在区块链状态数据库中更新A节点和B节点当前查询通证的数量。
为保证联盟中各个成员地位的平等,在区块链系统初始成立时,各个成员节点被配置为具有同等数量的查询通证,即各个成员节点具备平等的查询机会。成员节点之一可以被配置为平台节点,用于执行区块链系统中针对其他成员节点的通证发放操作这些操作也是事先写入智能合约的。
在一些实施例中,成员节点还被配置为在初始加入区块链系统的情况下,根据智能合约发起初始化请求,初始化请求包括发放预设数量的查询通证到本成员节点,以便各个成员节点将向该成员节点发放查询通证的信息写入区块链。
在一些实施例中,平台节点还被配置为在预设周期结束的情况下,查询各个成员节点的权益通证的状态,确定在该预设查期内各个成员节点提供的风险数据的价值,并将预设周期内各个成员节点提供的风险数据的价值通过权益通证的状态变化形式写入区块链。权益通证的数量用于反映成员节点向风险数据接收方所提供的风险数据条数。成员节点向风险数据接收方所提供的风险数据条数越多,表示其提供的风险数据被其他成员节点查询的次数越多,其提供的风险数据越有价值,对联盟数据共享的贡献越大。
进一步,成员节点100被配置为在区块链状态数据库中更新风险数据提供方的待结算权益通证数量;平台节点被配置为根据各个成员节点的待结算权益通证的数量,确定在该预设周期内各个成员节点提供的风险数据的价值,并根据待结算权益通证的数量向各个成员节点发放权益通证,将发放权益通证的信息写入区块链。
可以根据智能合约约定权益通证与风险数据提供方在查询过程中提供的风险数据条数之间的表征关系。例如,1个权益通证表示查询中提供一条风险数据。每个成员节点100被配置为在收到查询确认请求后,根据智能合约在区块链状态数据库中更新风险数据提供方的待结算权益通证数量。之后平台节点可以在区块链状态数据库中查询各个成员节点的待结算权益通证的数量,从而确定各个成员节点提供的风险数据的价值。
为保证平台节点查询的各个成员节点的待结算权益通证的数量的准确性,平台节点可以在区块链中根据查询通证的状态变化验证待结算权益通证的数量的准确性。由于各个成员节点都存储区块链状态数据库,平台节点也可以向其他成员节点请求验证待结算权益通证的数量的准确性。平台节点在与预设周期结束时,将各个成员节点待结算的权益通证进行结算。通过区块链系统来记录通证的状态,不可篡改,使得对于各个成员提供的风险数据的价值的评价更加准确合理。
权益通证可以与查询通证实现兑换,这样可以使提供风险数据价值更高的成员拥有更强的查询能力,促进联盟内成员共享数据的良性循环,促进各个成员提供更有价值的风险数据。可以将1个权益通证兑换查询通证的数量定义为汇率。为保证系统中查询通证的数量能够满足各个成员节点的查询需求,可以设置动态汇率。
在一些实施例中,平台节点还被配置为在预设周期结束的情况下,根据各个成员节点的查询通证总数量和权益通证的总数量,确定查询通证和权益通证的兑换汇率,并将兑换汇率写入智能合约。进一步,下一个预设周期内的汇率可以为本周期结束日各个成员节点的查询通证总量与权益通证总量的比值。
在一些实施例中,成员节点100被配置为发起通证兑换请求,其他成员节点,根据智能合约对接收到的通证兑换请求进行验证并返回验证结果;接收根据通证兑换请求生成的区块,将区块加入区块链,区块中包括通证兑换请求发起方的查询通证和权益通证的状态变化。同时,各个成员节点还可以被配置为根据通证兑换请求在区块链状态数据库中更新通证兑换请求发起方的通证的状态。
在另一些实施例中,为促进各个成员提供更有价值的风险数据,可以向各个成员节点发放查询通证。各个成员节点在查询风险数据的过程中,可以由风险数据接收方向平台节点提供预设比例的查询通证,即向平台节点提供的查询通证的数量根据查询双方的查询通证的变化数量和预设比例确定。平台节点的通证的状态变化也会被记录在区块链中。在预设结束时,平台节点还被配置为在预设周期结束的情况下,根据各个成员节点的权益通证的数量、平台节点的查询通证数量以及智能合约,向各个成员节点发放查询通证,将发放查询通证的信息写入区块链。
例如,智能合约中约定根据各个成员节点的权益通证的数量之间比例,将平台节点的全部查询通证发放给各个成员节点。例如,平台节点持有5个查询通证,A节点和B节点持有的权益通证的数量之比为2:3,则平台节点向A节点发放2个查询通证,向B节点发放3个查询通证。可以首先执行前述实施例中对各个成员节点的待结算权益通证的结算之后,再执行本实施例中查询通证的发放过程。
上述各实施例中,平台节点可以向成员节点发放查询通证、权益通证等。具体的,平台节点被配置为发起通证发放指令,通证发放指令包括通证发放对象和发放通证的数量;成员节点被配置为根据智能合约对接收到的通证发放指令进行验证并返回验证结果,接收根据通证发放指令生成的区块,将区块加入区块链。
进一步,通证发放指令包括:查询ID、通证发放查询的签名、指令类型、请求时间戳;成员节点被配置为根据指令类型和平台节点的公钥验证通证发放查询的签名是否为平台节点的签名。成员节点可以获取平台节点的公钥对通证发放查询的签名解密,从而验证是否为平台节点的签名。
在风险数据查询过程中,成员节点发起查询确认请求中查询信息包括:查询ID、风险数据请求的签名、风险数据请求结果的签名、风险数据提供数量、请求类型、待清算通证数量、请求时间戳、结果返回时间戳。还可以包括:查询确认请求时间戳、风险数据请求数量等。相应的,成员节点被配置为验证以下内容:根据风险数据请求方和提供方的公钥,验证风险数据请求的签名和风险数据请求结果的签名;验证根据智能合约、风险数据提供数量和请求类型计算得到的通证数量是否与待清算通证数量一致;验证风险数据请求方当前的通证状态是否满足待清算通证数量。例如,不同的请求类型可以对应于不同的风险数据提供数量和通证数量的兑换比例。
上述各实施例形成一套完整的基于区块链技术实现各个成员风险数据共享的方案。所有风险数据的查询、通证的发放都被记录于区块链中,公开透明,并且具有不可篡改的性质。此外,双层通证的设计不仅能够保证风险数据的隐私性,便于记录查询信息,还能够促进数据共享的良性循环,促进成员提供更有价值的风险数据。
在一些实施例中,区块链系统10还可以包括排序节点,排序节点被配置为接收各个成员节点对于风险数据的查询信息的验证结果,根据预设规则确认查询信息是否有效,并根据时间戳对多个风险数据的查询信息进行排序并生成区块,将区块发送至各个成员节点.
在一些实施例中,成员节点100可以包括:业务服务器110和区块链服务器120。
业务服务器110被配置为存储风险数据,向本节点对应的区块链服务器发起风险数据请求或返回风险数据请求结果。
区块链服务器120被配置为存储其他成员节点的区块链服务器的IP地址,向其他成员节点的区块链服务器转发本节点的业务服务器发送的风险数据请求或返回风险数据请求结果,并将接收到的其他成员节点的区块链服务器发送的风险数据请求或返回风险数据请求结果转发至本节点的业务服务器。
区块链服务器120例如在区块链状态数据库中存储其他成员节点的区块链服务器的IP地址,并实时更新。
通过上述设计,成员节点100的业务服务器的接口对其他成员节点是不可见的,避免业务服务器之间直接调用对方的接口,绕过区块链系统,形成无偿使用。上述实施例能够进一步促进联盟成员之间公平、透明、安全的查询风险数据。
下面结合图1~图6描述本公开的数据共享方法一些实施例。
(第一实施例)
下面参考图1和图3描述第一实施例。
图3为本公开数据共享方法一些实施例的流程图。如图3所示,该实施例的方法包括:步骤S302~S306。
步骤S302,成员节点100接收风险数据提供方发送的查询确认请求,查询确认请求包括风险数据的查询信息。
风险数据提供方是指完成风险数据查询的风险数据提供方。
步骤S304,成员节点100根据智能合约对接收到的风险数据的查询信息进行验证并返回验证结果。
查询信息包括:查询ID、风险数据请求的签名、风险数据请求结果的签名、风险数据提供数量、请求类型、待清算通证数量、请求时间戳、结果返回时间戳。成员节点执行以下验证内容:根据风险数据请求方和提供方的公钥,验证风险数据请求的签名和风险数据请求结果的签名;验证根据智能合约、风险数据提供数量和请求类型计算得到的通证数量是否与待清算通证数量一致;验证风险数据请求方当前的通证状态是否满足待清算通证数量。
步骤S306,成员节点100接收根据风险数据的查询信息生成的区块,将区块加入区块链。
区块中包括风险数据查询双方的通证的状态变化,通证的状态变化反映查询双方的查询行为以及查询命中的风险数据的条数。
在一些实施例中,该实施例还可以包括:步骤S305,成员节点100根据风险数据的查询信息在区块链状态数据库中更新查询双方的成员节点的通证的状态。
(第二实施例)
下面参考图1和图4描述第二实施例。
图4为本公开数据共享方法另一些实施例的流程图。如图4所示,该实施例的方法包括:步骤S402~S418。
步骤S402,第一成员节点加入区块链系统,向区块链系统中其他成员节点发起初始化请求。
初始化请求包括发放预设数量的查询通证到第一成员节点。
步骤S404,其他成员节点根据智能合约对接收到的初始化请求进行验证并返回验证结果。
在一些实施例中,初始化请求包括:查询ID、初始化请求信息的签名、请求类型、待清算通证数量、请求时间戳等;其他成员节点验证初始化请求方的签名、根据请求类型验证待清算通证数量等。
步骤S406,各个成员节点根据初始化信息在区块链状态数据库中更新第一成员节点的查询通证的状态。
步骤S408,各个成员节点接收排序节点返回的区块,将区块加入区块链。区块包含初始化相关信息。
在一些实施例中,第一成员节点收集其他成员节点的验证结果和初始化信息一起发送至排序节点。排序节点根据智能合约和验证结果判断初始化信息是否有效(例如,超过50%的成员节点验证通过,则认为信息有效)进行标记,将预设时间段内信息按顺序划分为多组,每组生成区块发送至各个成员节点。各个接收到区块后可以根据信息是否有效重新更新区块链状态数据库中各个成员节点的通证的状态。
步骤S410,第一成员节点向第二成员节点的发送风险数据查询请求,接收第二节点返回的风险数据查询结果。
步骤S412,第二成员节点发起查询确认请求。查询确认请求包括风险数据的查询信息。
步骤S414,其他成员节点根据智能合约对接收到的风险数据的查询信息进行验证并返回验证结果。
查询信息包括:查询ID、风险数据请求的签名、风险数据请求结果的签名、风险数据提供数量、请求类型、待清算通证数量、请求时间戳、结果返回时间戳。成员节点执行以下验证内容:根据风险数据请求方和提供方的公钥,验证风险数据请求的签名和风险数据请求结果的签名;验证根据智能合约、风险数据提供数量和请求类型计算得到的通证数量是否与待清算通证数量一致;验证风险数据请求方当前的通证状态是否满足待清算通证数量。待清算通证数量中还可以包括:按照智能合约向平台节点查询的查询通证数量,即成员节点在进行查询的同时向平台节点提交预设比例的查询通证。
步骤S416,各个成员节点根据风险数据的查询信息在区块链状态数据库中更新查询双方的成员节点和平台节点的通证的状态。
例如,按照智能合约增加第二成员节点的查询通证的数量,减少第一成员节点查询通证的数量,增加平台成员节点的查询通证的数量。根据风险数据的条数增加第二成员节点的待结算权益通证的数量。
步骤S418,各个成员节点接收根据风险数据的查询信息生成的区块,将区块加入区块链。
区块中例如包括增加第二成员节点的查询通证的数量,减少第一成员节点查询通证的数量,增加平台成员节点的查询通证的数量等相关信息。
(第三实施例)
下面参考图1和图3描述第三实施例。
图5为本公开数据共享方法又一些实施例的流程图。如图5所示,该实施例的方法包括:步骤S502~S520。
步骤S502,平台节点响应于预设周期结束,查询各个成员节点的权益通证的状态。
平台节点可以在区块链状态数据库中查询各个成员节点待结算的权益通证的数量。
步骤S504,平台节点发起权益通证结算指令。权益通证结算指令包括各个成员节点的权益通证的状态变化信息。
步骤S506,各个成员节点根据智能合约对接收到的权益通证结算指令进行验证并返回验证结果。
权益通证结算指令包括:查询ID、通证发放查询的签名、指令类型、请求时间戳;成员节点被配置为根据指令类型和平台节点的公钥验证权益通证结算指令的签名是否为平台节点的签名。成员节点可以获取平台节点的公钥对权益通证结算指令的签名解密,从而验证是否为平台节点的签名。
步骤S508,各个成员节点在区块链状态数据库中更新各个成员节点的权益通证的状态。
步骤S510,各个成员节点接收根据权益通证结算指令生成的区块,将区块加入区块链。
具体过程可参考前述实施例。
步骤S512,平台节点发起查询通证发放指令。查询通证发放指令包括查询通证发放对象和查询发放通证的数量。
平台节点根据各个成员节点的权益通证的数量、平台节点的查询通证数量以及智能合约,向各个成员节点发放查询通证。
步骤S514,各个成员节点根据智能合约对接收到的查询通证发放指令进行验证并返回验证结果。
验证过程类似权益通证解算指令,在此不再赘述。
步骤S516,各个成员节点在区块链状态数据库中更新各个成员节点的查询通证的状态。
步骤S518,各个成员节点接收根据查询通证发放指令生成的区块,将区块加入区块链。
步骤S520,平台节点根据各个成员节点的查询通证总数量和权益通证的总数量,确定查询通证和权益通证的兑换汇率,并将兑换汇率写入智能合约。
例如,下一个预设周期内的汇率可以为本查询周期结束日各个成员节点的查询通证总量与权益通证总量的比值。
(第四实施例)
下面参考图2和图6描述第四实施例。
图6为本公开数据共享方法又一些实施例的流程图。如图6所示,该实施例的方法包括:步骤S602~S610。
步骤S602,第一成员节点的业务服务器发送地址查询请求到第一成员节点的区块链服务器。
步骤S604,第一成员节点的区块链服务器向第一成员节点的业务服务器返回最新版本的各个成员节点的区块链服务器的地址。
步骤S606,第一成员节点的业务服务器通过第一成员节点的区块链服务器向第二成员节点的区块链服务器发起风险数据请求。
步骤S608,第二成员节点的区块链服务器将风险数据请求转发至第二成员节点的业务服务器。
步骤S610,第二成员节点的业务服务器通过第二成员节点的区块链服务器进和第一成员节点的区块链服务器向第一成员节点的业务服务器返回风险数据。
上述各个实施例中,平台节点发放各种通证的过程类似,对应于图1相关实施例中平台节点发起通证发放指令的功能。
本公开的实施例中的区块链系统可各由各种计算设备或计算机系统来实现,下面结合图7以及图8进行描述。
图7为本公开区块链系统的一些实施例的结构图。如图7所示,该实施例的系统70包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行本公开中任意一些实施例中的数据共享方法。区块链系统中可以包括多个存储器和处理器,每个成员节点都可以配置存储器和处理器。
其中,存储器710例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图8为本公开区块链系统的另一些实施例的结构图。如图8所示,该实施例的区块链系统80包括:存储器810以及处理器820,分别与存储器710以及处理器720类似。还可以包括输入输出接口830、网络接口840、存储接口850等。这些接口830,840,850以及存储器810和处理器820之间例如可以通过总线860连接。其中,输入输出接口830为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口840为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口850为SD卡、U盘等外置存储设备提供连接接口。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的数据共享方法的步骤。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。