基于区块链的多用户多批次权重分配计算及存储处理系统转让专利

申请号 : CN202210682917.9

文献号 : CN114785526B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘伟杰谢嘉林

申请人 : 德德市界(深圳)科技有限公司

摘要 :

本发明提供一种基于区块链的多用户多批次权重分配计算及存储处理系统,其包括区块链模块、智能合约模块、业务模块、客户端模块,客户端模块提供一可视化界面,与业务模块进行数据交互,业务模块执行业务相关程序,将活跃用户id、搜索的批次信息及其批次下的数据项作为数据输入,智能合约模块用于执行:根据业务模块的数据输入生成用户批次数据项计算表;调用权重分配计算程序,根据权重分配计算公式,按照用户批次数据项计算表最新活跃用户的批次依次进行计算,直至计算完所有批次;将计算后的分配结果存储到区块链模块中。应用本发明可以提升链上算力资源运行效率与利用效率,以及执行结果更新速度与用户体验,降低了链上TPS负荷与存储压力。

权利要求 :

1.基于区块链的多用户多批次权重分配计算及存储处理系统,其特征在于,包括:

区块链模块、智能合约模块、业务模块、客户端模块,所述客户端模块用于提供一用户前端的可视化界面,并通过api接口与所述业务模块进行数据交互,所述业务模块执行业务相关程序,以及调用智能合约模块并与区块链节点连接,将活跃用户id、搜索的批次信息及其批次下的数据项作为智能合约模块的数据输入,其中,所述业务模块执行业务相关程序,包括:根据注册的用户信息生成账户表,该账户表用于存储用户id、用户计算批次id;其中,用户计算批次id为一个用户已被计算的最新批次id;

根据业务产生的批次信息与批次下的数据项生成批次表,该批次表用于存储批次id、批次‑用户id与批次下的数据项;其中,批次id作为不同批次的标识,批次‑用户id作为批次下不同用户的标识;

所述智能合约模块内置有权重分配计算程序,用于执行:

根据业务模块的数据输入生成用户批次数据项计算表;其中,所述用户批次数据项计算表包括账户表和批次表;

调用权重分配计算程序,根据权重分配计算公式,按照用户批次数据项计算表最新活跃用户的批次依次进行计算,直至计算完所有批次;其中,当通过客户端模块访问系统或进行分配结果查询操作,根据用户行为获取最新活跃用户id,判断该用户的用户计算批次id是否为批次表存储的系统最新批次id;如不是,根据该用户计算批次id与系统最新批次id,在批次表搜索批次‑用户id下所有未被计算的批次id,并基于搜索的批次id数据列表通过遍历获取所有批次下的数据项;将活跃用户id、搜索的批次id及其批次下的数据项作为智能合约模块的数据输入;更新该用户计算批次id为系统最新批次id;

将计算后的分配结果存储到区块链模块中;

所述区块链模块对所述分配结果数据进行存储和加密,并将数据更新后进行节点广播,以实现分配结果数据的分布式共识,并通过客户端模块查询分配结果。

2.根据权利要求1所述的系统,其特征在于:

所述区块链模块包括去中心化服务器以及去中心数据后台,采用所述去中心化服务器在数据层对所述分配结果数据进行存储和加密,所述去中心数据后台将上述分配结果数据挂载到区块链网络层中并且返回客户端模块,通过区块链网络层实现多个区块链节点之间的交互,各区块链节点之间通过发送消息进行交互,并在区块链网络层建立节点与节点之间的共识机制,为数据交互提供去中心化,对数据点对点传输进行验证提供保障。

3.根据权利要求1或2所述的系统,其特征在于:

所述区块链模块的每个区块包括区块头和区块体,所述区块体包括了所有用户信息,区块头包括哈希值、时间戳和默克尔树根哈希值,所述时间戳记录区块生成时间,所述默克尔树对交易进行校验;通过非对称加密算法的公钥和私钥对数据加密和解密,每一个用户信息包含一个私钥,所述私钥是查看用户信息的密码;通过智能合约模块将数据记录上传到区块链模块中进行储存,在数据记录上传到区块链后,根据其数据类型将数据存储到区块链的不同区块中,经过共识机制共识后出块上链存储,并且将区块链模块返回的存储内容的哈希值也存储到相应区块中作为唯一标识符;用户通过智能合约模块从区块链模块中获取所需的分配结果数据。

4.根据权利要求1或2所述的系统,其特征在于:

所述系统还包括区块链安全网关模块,用于对客户端模块进行身份认证识别,拦截非法设备和虚假设备接入;为客户端模块提供密钥托管;对于各个类型物联网对接实现协议转换,使不同类型不同通信方式的客户端模块进行接入,同时在区块链侧实现通信对接协议转换,将物联网侧数据结构切换到区块链侧数据结构。

5.根据权利要求1或2所述的系统,其特征在于:

在进行多用户多批次计算及存储时,根据活跃用户的触发次序依次进行调用权重分配计算程序进行权重分配计算。

6.根据权利要求1或2所述的系统,其特征在于:

利用所述可视化界面获取系统用户上传的用户数据,所述可视化界面是指基于区块链的数据上传界面,用户通过数据上传界面上传用户数据以及申请访问或查询请求。

7.根据权利要求1或2所述的系统,其特征在于:

在用户进行注册时,所述客户端模块使用账户向所述智能合约模块申请注册;所述智能合约模块向所述客户端模块发送一个要求证明其为一个客观存在的用户的需求信息;所述客户端模块根据需返回数据需求,经用户填报后,发送给智能合约模块;所述智能合约模块验证所述客户端模块的返回数据,验证无误后,将所述客户端模块的账号及当前加注时间登记在智能合约;用户在注册成功后,即可访问相关智能合约;

其中,所述智能合约模块是指信息传播、验证、执行合同的电子协议;将所述智能合约模块预先部署到区块链网络中,按照预设的约定逻辑运行,允许在没有第三方的情况下进行交易。

8.根据权利要求7所述的系统,其特征在于:

在接收到客户端的访问请求或查询请求时,将通过访问智能合约模块检查该用户的账户是否为当前有效活跃用户,活跃用户代指用户行为触发活跃条件的用户,表示为当前访问系统或当前进行分配结果查询操作的用户。

说明书 :

基于区块链的多用户多批次权重分配计算及存储处理系统

技术领域

[0001] 本发明涉及区块链技术领域,具体涉及一种基于区块链的多用户多批次权重分配计算及存储处理系统。

背景技术

[0002] 随着大数据的发展与区块链技术的应用,诸如在按劳分配计算、股权分红计算、奖池奖金计算、质押空投计算等涉及权重分配算式的多用户多批次计算场景,其对计算规模、计算频次、计算执行时效性、计算结果准确性以及计算过程的安全可信提出了更高的需求。其中,所述权重分配算式可统一简化为“分配结果=(分子/分母)*乘数”。
[0003] 传统的中心化权重分配计算系统在多用户多批次计算场景中,通常是通过消息队列解耦之后以“定时任务+遍历计算及存储”的方法进行计算及存储处理。通常,定时任务是在一批次权重分配计算中,获取该批次的用户集合,根据该批次每个用户贡献(分子)与总贡献(分母)进行权重计算后,再与该批次的分配额(乘数)进行乘积,从而获得每个用户分配结果并做数据更新存储的过程,如图1所示。多批次权重分配计算以此类推,根据系统设定的定时任务按批次依次进行。
[0004] 其中,分配模块批次下的数据项(分子、分母与乘数)可由多个用户贡献(分子)、一个总贡献(分母)以及一个分配额(乘数)组成,可统一由业务模块记录、更新与输入;其中,贡献代指用户在分配系统中统一的权重计量单位,包括但不限于工分、积分、评分、权益、份额等替代名称范畴。
[0005] 而对所述权重分配系统计算过程安全可信的需求,可基于区块链技术实现去中心化,通常的做法是将分配模块的执行流程通过智能合约功能再实现一遍,并将智能合约部署在区块链上,形成业务模块、智能合约模块、区块链模块的新的系统组合,通过业务模块的数据输入、智能合约模块的计算与区块链模块的数据存储,最终实现权重分配计算过程的去中心化。
[0006] 然而,这种基于区块链实现的计算及存储处理方法简单,容易实现,但也存在以下缺点:
[0007] 1.智能合约需要一次性对批量数据集中处理,会产生并发计算,当计算规模较大时容易在计算过程中造成链上TPS负荷以及网络拥堵,计算完成的时间不可控,影响执行时效与用户体验;
[0008] 2. 在智能合约无计算任务的大部分时间,区块链节点算力资源处于闲时状态,该闲时资源未被有效利用,导致算力资源分布不均衡、利用效率低;
[0009] 3.智能合约一次性大批量计算造成的链上存储压力也较大,容易导致链上区块拥堵,影响执行时效与用户体验;
[0010] 4.在参与权重分配计算的用户集合中,存在活跃用户与非活跃用户,即并非所有用户都会在同一时间进行系统访问或分配结果查询(链上数据访问),对于当前未进行系统访问或分配结果查询的非活跃用户的计算未能与业务需求高效匹配,会造成链上算力及存储资源的提前消耗与浪费。

发明内容

[0011] 为了克服现有技术的不足,本发明的目的在于提供一种基于区块链的多用户多批次权重分配计算及存储处理系统,该系统可以解决现有技术中执行时效差,资源利用效率低、存储访问压力大和消耗与浪费服务器算力资源等问题,可以提升链上算力资源运行效率与利用效率,降低链上TPS负荷与存储压力,提升执行结果更新速度与用户体验。
[0012] 为解决上述问题,本发明所采用的技术方案如下:
[0013] 基于区块链的多用户多批次权重分配计算及存储处理系统,包括:区块链模块、智能合约模块、业务模块、客户端模块,所述客户端模块用于提供一用户前端的可视化界面,并通过api接口与所述业务模块进行数据交互,所述业务模块执行业务相关程序,以及调用智能合约模块并与区块链节点连接,将活跃用户id、搜索的批次信息及其批次下的数据项作为智能合约模块的数据输入,所述智能合约模块内置有权重分配计算程序,用于执行:根据业务模块的数据输入生成用户批次数据项计算表;调用权重分配计算程序,根据权重分配计算公式,按照用户批次数据项计算表最新活跃用户的批次依次进行计算,直至计算完所有批次;将计算后的分配结果存储到区块链模块中;所述区块链模块对所述分配结果数据进行存储和加密,并将数据更新后进行节点广播,以实现分配结果数据的分布式共识,并通过客户端模块查询分配结果。
[0014] 进一步的方案是,所述区块链模块包括去中心化服务器以及去中心数据后台,采用所述去中心化服务器在数据层对所述分配结果数据进行存储和加密,所述去中心数据后台将上述分配结果数据挂载到区块链网络层中并且返回客户端模块,通过区块链网络层实现多个区块链节点之间的交互,各区块链节点之间通过发送消息进行交互,并在区块链网络层建立节点与节点之间的共识机制,为数据交互提供去中心化,对数据点对点传输进行验证提供保障。
[0015] 更进一步的方案是,所述业务模块执行业务相关程序,包括:根据注册的用户信息生成账户表,该账户表用于存储用户id、用户计算批次id;其中,用户计算批次id为一个用户已被计算的最新批次id;根据业务产生的批次信息与批次下的数据项生成批次表,该批次表用于存储批次id、批次‑用户id与批次下的数据项;其中,批次id作为不同批次的标识,批次‑用户id作为批次下不同用户的标识。
[0016] 更进一步的方案是,当通过客户端模块访问系统或进行分配结果查询操作,根据用户行为获取最新活跃用户id,判断该用户的用户计算批次id是否为批次表存储的系统最新批次id;如不是,根据该用户计算批次id与系统最新批次id,在批次表搜索批次‑用户id下所有未被计算的批次id,并基于搜索的批次id数据列表通过遍历获取所有批次下的数据项;将活跃用户id、搜索的批次id及其批次下的数据项作为智能合约模块的数据输入;更新该用户计算批次id为系统最新批次id。
[0017] 更进一步的方案是,所述区块链模块的每个区块包括区块头和区块体,所述区块体包括了所有用户信息,区块头包括哈希值、时间戳和默克尔树根哈希值,所述时间戳记录区块生成时间,所述默克尔树对交易进行校验;通过非对称加密算法的公钥和私钥对数据加密和解密,每一个用户信息包含一个私钥,所述私钥是查看用户信息的密码;通过智能合约模块将数据记录上传到区块链模块中进行储存,在数据记录上传到区块链后,根据其数据类型将数据存储到区块链的不同区块中,经过共识机制共识后出块上链存储,并且将区块链模块返回的存储内容的哈希值也存储到相应区块中作为唯一标识符;用户通过智能合约模块从区块链模块中获取所需的分配结果数据。
[0018] 更进一步的方案是,所述系统还包括区块链安全网关模块,用于对客户端模块进行身份认证识别,拦截非法设备和虚假设备接入;为客户端模块提供密钥托管;对于各个类型物联网对接实现协议转换,使不同类型不同通信方式的客户端模块进行接入,同时在区块链侧实现通信对接协议转换,将物联网侧数据结构切换到区块链侧数据结构。
[0019] 更进一步的方案是,在进行多用户多批次计算及存储时,根据活跃用户的触发次序依次进行调用权重分配计算程序进行权重分配计算。
[0020] 更进一步的方案是,利用所述可视化界面获取系统用户上传的用户数据,所述可视化界面是指基于区块链的数据上传界面,用户通过数据上传界面上传用户数据以及申请访问或查询请求。
[0021] 更进一步的方案是,在用户进行注册时,所述客户端模块使用账户向所述智能合约模块申请注册;所述智能合约模块向所述客户端模块发送一个要求证明其为一个客观存在的用户的需求信息;所述客户端模块根据需返回数据需求,经用户填报后,发送给智能合约模块;所述智能合约模块验证所述客户端模块的返回数据,验证无误后,将所述客户端模块的账号及当前加注时间登记在智能合约;用户在注册成功后,即可访问相关智能合约;其中,所述智能合约模块是指信息传播、验证、执行合同的电子协议;将所述智能合约模块预先部署到区块链网络中,按照预设的约定逻辑运行,允许在没有第三方的情况下进行交易。
[0022] 更进一步的方案是,在接收到客户端的访问请求或查询请求时,将通过访问智能合约模块检查该用户的账户是否为当前有效活跃用户,活跃用户代指用户行为触发活跃条件的用户,表示为当前访问系统或当前进行分配结果查询操作的用户。
[0023] 因此,相比现有技术,本发明具有以下优点:
[0024] 1、本发明通过触发计算机制替代原方案的定时计算机制,将原方案智能合约每批次计算量从同一个时间分流到多个时间,降低了单位时间内的计算并发量,缓解了链上TPS负载过高及网络拥堵的状况;同时,计算执行时效缩短,减少了用户查询等待时长,体验更好;
[0025] 2、本发明通过触发计算机制实现智能合约计算分流,使区块链节点算力资源分布更加均衡,有效提高了算力资源的利用效率;
[0026] 3、本发明在降低原方案智能合约单位时间内计算量的同时,也缓解了链上区块拥堵的状况,提高了执行时效与用户体验;
[0027] 4、本发明基于活跃用户的触发计算机制,有效实现了业务需求与链上算力资源的高效匹配,减少了链上算力及存储资源的提前消耗与浪费,提升了运行效率。
[0028] 5、本发明能够实现安全、可认证、无差别网络接入、自动协议转换、安全密钥托管的特点,为物联网和区块链交互结合过程中提供了一种安全可靠的基础设施,有效保证了物联网和区块链交互的安全可靠、便利以及操作的一致性。
[0029] 下面结合附图和具体实施方式对本发明作进一步详细说明。

附图说明

[0030] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0031] 图1是现有技术的一种基于区块链的用户批次计算及存储处理的流程原理图。
[0032] 图2是本发明基于区块链的多用户多批次权重分配计算及存储处理系统实施例的原理图。
[0033] 图3是本发明基于区块链的多用户多批次权重分配计算及存储处理系统实施例中关于智能合约模块执行流程图。
[0034] 图4是本发明基于区块链的多用户多批次权重分配计算及存储处理系统实施例中关于业务模块执行流程图。
[0035] 图5是现有技术的关于计算执行次序的原理图。
[0036] 图6是本发明基于区块链的多用户多批次权重分配计算及存储处理系统实施例中关于计算执行次序的示意图。
[0037] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0038] 参见图2,本发明提供的一种基于区块链的多用户多批次权重分配计算及存储处理系统,包括区块链模块10、智能合约模块20、业务模块30、客户端模块40,客户端模块40用于提供一用户前端的可视化界面,并通过api接口与业务模块30进行数据交互,业务模块30执行业务相关程序,以及调用智能合约模块20并与区块链节点连接,将活跃用户id、搜索的批次信息及其批次下的数据项作为智能合约模块20的数据输入。
[0039] 在本实施例中,如图3所示,智能合约模块20内置有权重分配计算程序,用于执行:
[0040] 根据业务模块30的数据输入生成用户批次数据项计算表;
[0041] 调用权重分配计算程序,根据权重分配计算公式,按照用户批次数据项计算表最新活跃用户的批次依次进行计算,直至计算完所有批次;
[0042] 将计算后的分配结果存储到区块链模块10中。
[0043] 其中,权重分配计算公式包括根据该批次每个用户贡献(分子)与总贡献(分母)进行权重计算后,再与该批次的分配额(乘数)进行乘积。
[0044] 然后,区块链模块10对分配结果数据进行存储和加密,并将数据更新后进行节点广播,以实现分配结果数据的分布式共识,并通过客户端模块40查询分配结果。
[0045] 在本实施例中,区块链模块10包括去中心化服务器以及去中心数据后台,采用去中心化服务器在数据层对分配结果数据进行存储和加密,去中心数据后台将上述分配结果数据挂载到区块链网络层中并且返回客户端模块40,通过区块链网络层实现多个区块链节点之间的交互,各区块链节点之间通过发送消息进行交互,并在区块链网络层建立节点与节点之间的共识机制,为数据交互提供去中心化,对数据点对点传输进行验证提供保障。可见,区块链模块10由多个分布式的区块链计算机节点组成,用以存储分配结果数据和智能合约模块20运行环境,作为去中心化的服务器与数据后台。
[0046] 上述区块链模块10用于利用区块链智能合约实现信息上链的追溯和认证,同时实现去中心化的数据存储。其中,区块链网络层是一种涉及P2P网络、分布式存储、加密技术、时间戳技术等融合技术,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。在具体实施过程中,区块链网络层可利用融合点对点网络、密码学、分布式存储的技术实现,可以利用智能合约模块20实现信息上链可追溯、可认证,同时可以实现去中心化的数据存储,有效保证数据的隐私性和分布性。
[0047] 进一步的,本实施例还执行确定多个区块链节点分别对应的预设时间段之内的历史权重以及多个区块链节点分别对应的当前权重,然后,将各个区块链节点的预设时间段之内的历史权重以及当前权重进行比对,以确定各个区块链节点的权重差值;若任意区块链节点的权重差值超出预设的差异阈值,则对该系统进行安全检测。
[0048] 在本实施例中,如图4所示,业务模块30执行业务相关程序,包括以下步骤:
[0049] 获取最新活跃用户ID;获取该用户当前计算批次id;查询系统最新批次id;判断当前计算批次id是否为系统最新批次Id,如是,则结束进程;否则,搜索该用户所有未被计算的批次Id;基于搜索的批次id数据列表,获取所有批次下的数据项:用户贡献(分子)、总贡献(分母)、分配额(乘数);将活跃用户ID、搜索的批次id及其下的数据项输入并调用智能合约;更新该用户的计算批次id为系统最新批次id。
[0050] 具体的,根据注册的用户信息生成账户表,该账户表用于存储用户id、用户计算批次id;其中,用户计算批次id为一个用户已被计算的最新批次id;
[0051] 根据业务产生的批次信息与批次下的数据项生成批次表,该批次表用于存储批次id、批次‑用户id与批次下的数据项(分子、分母与乘数);其中,批次id作为不同批次的标识,批次‑用户id作为批次下不同用户的标识。
[0052] 当通过客户端模块40访问系统或进行分配结果查询操作,根据用户行为获取最新活跃用户id,判断该用户的用户计算批次id是否为批次表存储的系统最新批次id;
[0053] 如不是,根据该用户计算批次id与系统最新批次id,在批次表搜索批次‑用户id(批次‑用户id=活跃用户id)下所有未被计算的批次id,并基于搜索的批次id数据列表通过遍历获取所有批次下的数据项(分子、分母与乘数);
[0054] 将活跃用户id、搜索的批次id及其批次下的数据项作为智能合约模块20的数据输入。
[0055] 更新该用户计算批次id为系统最新批次id。
[0056] 其中,客户端模块40主要提供了用户进行系统注册、访问与交互操作(如获取任务、获取贡献、查询分配结果)的用户前端可视化界面,依赖于系统业务模块30,通过api接口实现与业务模块30的通信交互,由前端语言实现,如Vue。
[0057] 其中,业务模块30执行业务相关程序,可注册用户id,可获取最新活跃用户,有独立的服务器与数据后台,可调用智能合约并与区块链节点连接,由后端语言及相应开发包实现,如Java、Javasdk和web3j。其中,活跃用户代指用户行为触发活跃条件的用户,如当前访问系统或当前进行分配结果查询操作的用户,活跃条件可根据实际业务需求进行不同的设定。
[0058] 在本实施例中,区块链模块10的每个区块包括区块头和区块体,区块体包括了所有用户信息,区块头包括哈希值、时间戳和默克尔树根哈希值,时间戳记录区块生成时间,默克尔树对交易进行校验;通过非对称加密算法的公钥和私钥对数据加密和解密,每一个用户信息包含一个私钥,私钥是查看用户信息的密码;通过智能合约模块20将数据记录上传到区块链模块10中进行储存,在数据记录上传到区块链后,根据其数据类型将数据存储到区块链的不同区块中,经过共识机制共识后出块上链存储,并且将区块链模块10返回的存储内容的哈希值也存储到相应区块中作为唯一标识符;用户通过智能合约模块20从区块链模块10中获取所需的分配结果数据。
[0059] 可见,通过共识机制(如POW、POS或POW+POS)在区块链共识层促进各节点达成共识,分别记录所有上链数据且保持全部数据状态一致,共识机制为某个节点在记录数据时,其所记录的数据需要取得区块链中大部分节点的认同,才能被记录到区块链的各节点中,接收客户端模块40发送的访问或查询请求,具有唯一性的识别认证,从而方便,快捷,准确的实现用户信息安全防护。
[0060] 在本实施例中,系统还包括区块链安全网关模块,用于对客户端模块40进行身份认证识别,拦截非法设备和虚假设备接入;为客户端模块40提供密钥托管;对于各个类型物联网对接实现协议转换,使不同类型不同通信方式的客户端模块40进行接入,同时在区块链侧实现通信对接协议转换,将物联网侧数据结构切换到区块链侧数据结构。然后,对区块链侧指令进行验证,利用具体的区块链“轻节点”功能,根据指令参数获取用户指令产生的交易以及对区块的目标Markle树进行交易验证,确认用户指令的真实性;在确认用户指令的真实性之后,对指令以及参数进行解析,将指令操作作用到对应的物联网设备。具体的,区块链安全网关模块包括:身份认证子模块、密钥托管子模块、第一物链协议转换子模块、第二物链协议转换子模块、指令交易验证子模块以及操作指令管理子模块。
[0061] 在本实施例中,在进行多用户多批次计算及存储时,根据活跃用户的触发次序依次进行调用权重分配计算程序进行权重分配计算。可见,多个活跃用户的权重分配计算以此类推,根据活跃用户的触发次序依次进行。
[0062] 在本实施例中,利用可视化界面获取系统用户上传的用户数据,可视化界面是指基于区块链的数据上传界面,用户通过数据上传界面上传用户数据以及申请访问或查询请求。
[0063] 在用户进行注册时,客户端模块40使用账户向智能合约模块20申请注册;智能合约模块20向客户端模块40发送一个要求证明其为一个客观存在的用户的需求信息;客户端模块40根据需返回数据需求,经用户填报后,发送给智能合约模块20;智能合约模块20验证客户端模块40的返回数据,验证无误后,将客户端模块40的账号及当前加注时间登记在智能合约;用户在注册成功后,即可访问相关智能合约;
[0064] 其中,智能合约模块20是指信息传播、验证、执行合同的电子协议;将智能合约模块20预先部署到区块链网络中,按照预设的约定逻辑运行,允许在没有第三方的情况下进行交易。
[0065] 在接收到客户端的访问请求或查询请求时,将通过访问智能合约模块20检查该用户的账户是否为当前有效活跃用户,活跃用户代指用户行为触发活跃条件的用户,表示为当前访问系统或当前进行分配结果查询操作的用户。
[0066] 因此,本发明基于区块链的权重分配系统的计算机制不同于技术背景中的定时计算机制,而是将智能合约的权重分配计算执行次序由“一批次多用户”改造为“一用户多批次”,实现了一种基于活跃用户的触发计算机制。
[0067] 进一步的,上述基于区块链的多用户多批次权重分配计算及存储处理系统所提供的基于活跃用户的触发计算机制的系统运行步骤为:
[0068] S1:用户通过客户端模块40访问系统或进行分配结果查询等操作;
[0069] S2:业务模块30通过用户行为获取到最新活跃用户,根据业务模块30的执行步骤执行,将权重分配计算所需的数据输入智能合约模块20;
[0070] S3:智能合约模块20调用权重分配计算程序,根据智能合约模块20的执行步骤对最新活跃用户进行权重分配计算;
[0071] S4:最终将计算后的分配结果数据存储到区块链模块10中;
[0072] S5:区块链数据更新后进行节点广播,实现分配结果数据的分布式共识,用户可通过客户端模块40查询分配结果。
[0073] 在实际应用中,如图5和图6所示,用图5和图6分别描绘现有技术与本发明方案基于多用户多批次权重分配的智能合约计算执行次序。在图5、图6的“用户‑批次”方格矩阵内,灰色方格表示用户对应的批次已被计算完,箭头表示计算执行的方向。
[0074] 通过图5和图6的观察对比可以发现,现有技术计算执行次序是以批次为单位,通过定时计算机制对单批次内所有用户进行遍历计算并按批次依次进行。本发明方案将原方案定时计算机制改造为基于活跃用户的触发计算机制,将原方案每批次多用户在同一个时间的计算分流到多个时间,即将智能合约模块20的权重分配计算执行次序由“一批次多用户”改造为“一用户多批次”,从而实现了以用户为单位的新的计算执行次序。
[0075] 因此,相比现有技术,本发明具有以下优点:
[0076] 1、本发明通过触发计算机制替代原方案的定时计算机制,将原方案智能合约每批次计算量从同一个时间分流到多个时间,降低了单位时间内的计算并发量,缓解了链上TPS负载过高及网络拥堵的状况;同时,计算执行时效缩短,减少了用户查询等待时长,体验更好;
[0077] 2、本发明通过触发计算机制实现智能合约计算分流,使区块链节点算力资源分布更加均衡,有效提高了算力资源的利用效率;
[0078] 3、本发明在降低原方案智能合约单位时间内计算量的同时,也缓解了链上区块拥堵的状况,提高了执行时效与用户体验;
[0079] 4、本发明基于活跃用户的触发计算机制,有效实现了业务需求与链上算力资源的高效匹配,减少了链上算力及存储资源的提前消耗与浪费,提升了运行效率。
[0080] 5、本发明能够实现安全、可认证、无差别网络接入、自动协议转换、安全密钥托管的特点,为物联网和区块链交互结合过程中提供了一种安全可靠的基础设施,有效保证了物联网和区块链交互的安全可靠、便利以及操作的一致性。
[0081] 可见,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0082] 本申请是参照根据本申请实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0083] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0084] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0085] 以上对本申请所提供的方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
[0086] 上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。