数据的处理方法、区块链节点和计算机可读存储介质与流程

文档序号:29435074发布日期:2022-03-30 08:20阅读:111来源:国知局
数据的处理方法、区块链节点和计算机可读存储介质与流程

1.本公开涉及计算机技术领域,特别涉及一种数据的处理方法、系统、区块链节点和计算机可读存储介质。


背景技术:

2.区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。区块链的特点是去中心化、不可篡改、透明开放。
3.在区块链中通证可以用于各个节点之间进行交换和流通。常见的区块链系统基本都支持通证的生成和交换等机制。


技术实现要素:

4.发明人发现:用户拥有丰富的资源,例如各种电子数据、虚拟资源等,但是有些资源处于闲置状态,使用率低、流通性差。用户希望将这些资源共享和利用起来。
5.本公开所要解决的一个技术问题是:如何提高用户资源共享和利用的安全性和准确性。
6.根据本公开的一些实施例,提供的一种数据的处理方法,该处理方法由区块链系统中的节点执行,包括:接收用户发送的资源转入请求,资源转入请求包括由用户的账户向智能合约欲转入的第一资源的资源量,以及智能合约的地址,第一资源与区块链中存储的其他类型的资源之间允许互相兑换;根据智能合约的地址调用智能合约的第一方法,按照欲转入的第一资源的资源量将用户的账户中第一资源转入智能合约中,生成与欲转入的第一资源的资源量相匹配数量的第一通证;将生成的第一通证发送至用户的账户,并生成第一交易信息存储至区块链,其中,第一交易信息包括:用户的账户向智能合约转入第一资源的资源量,以及智能合约向用户的账户转出的第一通证的数量。
7.在一些实施例中,调用智能合约的第一方法,生成与第一资源的资源量相匹配数量的第一通证包括:调用智能合约的第一方法,根据第一资源与第一通证的当前兑换率,生成与第一资源的资源量相匹配数量的第一通证。
8.在一些实施例中,该方法还包括:接收用户发送的资源借用请求,其中,资源借用请求包括欲借用的第二资源的资源量,以及智能合约的地址,区块链中存储的其他类型的资源包括第二资源;根据智能合约的地址调用智能合约的第二方法,验证欲借用的第二资源的资源量与用户未归还的第二资源的资源量之和转换为第一资源的资源量后,是否超过用户在智能合约中存储的第一资源的资源量;在未超过的情况下,按照欲借用的第二资源的资源量将第二资源发送至用户的账户,并生成第二交易信息存储至区块链,其中,第二交
易信息包括:智能合约向用户的账户转出的第二资源的资源量。
9.在一些实施例中,该方法还包括:接收用户发送的资源转出请求,其中,资源提取请求包括用于兑换的第一通证的数量,以及智能合约的地址;根据智能合约的地址调用智能合约的第三方法,按照用于兑换的第一通证的数量将第一通证由用户的账户转入智能合约,将转入智能合约的第一通证转入预设地址进行销毁,确定用于兑换的第一通证的数量转换为第一资源的资源量,作为欲提取资源量;验证将欲提取资源量提取后,智能合约中存储的用户第一资源的剩余资源量是否超过用户未归还的第二资源的资源量转换为第一资源的资源量;在超过的情况下,按照欲提取资源量将第一资源转入用户的账户,并生成第三交易信息存储至区块链,其中,第三交易信息包括:用户的账户向智能合约转入第一通证的数量,智能合约转入预设地址的第一通证的数量,以及智能合约向用户的账户转出第一资源的资源量。
10.在一些实施例中,该方法还包括:接收用户发送的资源归还请求,其中,资源归还请求包括欲归还的第二资源的资源量,以及智能合约的地址;根据智能合约的地址调用智能合约的第四方法,按照欲归还的第二资源的资源量将第二资源由用户的账户转入智能合约,并生成第四交易信息存储至区块链,其中,第四交易信息包括:用户的账户向智能合约转入第二资源的资源量。
11.在一些实施例中,确定用于兑换的第一通证的数量转换为第一资源的资源量包括:根据第一资源与第一通证的当前兑换率,确定用于兑换的第一通证的数量转换为第一资源的资源量。
12.在一些实施例中,第一资源与第一通证的当前兑换率是根据智能合约中当前存储的第一资源的资源量,当前未归还的第一资源的资源量,动态调整参数以及存入智能合约的第一资源的总资源量确定的,其中,当前存储的第一资源的资源量越大,当前未归还的第一资源的资源量越大,存入智能合约的第一资源的总资源量越小,当前兑换率越高。
13.在一些实施例中,当前兑换率确定方法为:将当前存储的第一资源的资源量和当前未归还的第一资源的资源量相加并减去动态调整参数,得到第一数值;将第一数值与存入智能合约的第一资源的总资源量的比值,确定为当前兑换率。
14.在一些实施例中,该方法还包括:接收其他节点发送的第一增值率确定请求,其中,第一增值率确定请求包括智能合约的地址,第一增值率确定请求是周期性发送的;根据智能合约的地址调用智能合约的第五方法,根据当前智能合约中第一资源的借用总量和转入总量,确定第一资源的当前使用率,其中,第一资源的借用总量越大,转入总量越小,当前使用率越大;根据当前使用率,预设增值率、第一调整参数以及第二调整参数,确定当前第一增值率;根据当前第一增值率确定智能合约中存储的各个用户的第一资源的增长量,并生成第五交易信息存储至区块链,其中,第五交易信息包括:当前第一增值率,智能合约中存储的各个用户的第一资源的增长量。
15.在一些实施例中,该方法还包括:接收其他节点发送的第二增值率确定请求,其中,第二增值率确定请求包括智能合约的地址,第二增值率确定请求周期性发送的;根据智能合约的地址调用智能合约的第六方法,根据当前智能合约中第二资源的借用总量和当前存储量,确定第二资源的当前使用率,其中,第二资源的借用总量越大,当前存储量越小,当前使用率越大;根据第二资源的当前使用率,预设增值率以及第二调整参数,确定当前第二
增值率;根据当前第二增值率确定智能合约中各个用户借用的第二资源的增长量,并生成第六交易信息存储至区块链,其中,第六交易信息包括:当前第二增值率,智能合约中各个用户借用的第二资源的增长量。
16.在一些实施例中,第二资源的当前使用率为当前智能合约中第二资源的借用总量与借用总量与当前存储量之和的比值;当前第二增值率为第二资源的当前使用率与第一调整参数的乘积与预设增值率之和。
17.在一些实施例中,该方法还包括:接收其他节点发送的清算请求,其中,清算请求包括:第一资源的价值参数,第二资源的价值参数,用户的账户的地址以及智能合约的地址,清算请求是在智能合约中用户当前存储的第一资源的价值低于用户已借用的第二资源的价值的情况下发送;根据智能合约的地址调用智能合约的第七方法,根据第一资源的价值参数、第二资源的价值参数、智能合约中用户当前存储的第一资源的资源量、当前借用的第二资源的资源量确定用户的第一资源的清算量;从智能合约中用户当前存储的第一资源的资源量中扣除用户的第一资源的清算量,并生成第七交易信息存储至区块链,其中,第七交易信息包括:从智能合约中用户当前存储的第一资源的资源量中扣除用户的第一资源的清算量。
18.在一些实施例中,第一资源的清算量采用以下方法确定:将第一资源的价值参数和第二资源的价值参数的比值作为第一资源和第二资源的价值比;利用用户当前存储的第一资源的资源量减去当前借用的第二资源的资源量与第一资源和第二资源的价值比的乘积,得到的差值与第一资源的价值参数相乘,得到第一资源的清算量。
19.根据本公开的另一些实施例,提供的一种区块链节点,包括:接收模块,用于接收用户发送的资源转入请求,资源转入请求包括由用户的账户向智能合约欲转入的第一资源的资源量,以及智能合约的地址,第一资源与区块链中存储的其他类型的资源之间允许互相兑换;调用模块,用于根据智能合约的地址调用智能合约的第一方法,按照欲转入的第一资源的资源量将用户的账户中第一资源转入智能合约中,生成与欲转入的第一资源的资源量相匹配数量的第一通证;转账模块,用于将生成的第一通证发送至用户的账户,并生成第一交易信息存储至区块链,其中,第一交易信息包括:用户的账户向智能合约转入第一资源的资源量,以及智能合约向用户的账户转出的第一通证的数量。
20.根据本公开的又一些实施例,提供的一种区块链节点,包括:处理器;以及耦接至处理器的存储器,用于存储指令,指令被处理器执行时,使处理器执行如前述任意实施例的数据的处理方法。
21.根据本公开的再一些实施例,提供的一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的数据的处理方法。
22.本公开中用户发起资源转入请求,区块链节点根据智能合约的地址调用智能合约的第一方法,按照欲转入的第一资源的资源量将用户的账户中第一资源转入智能合约中,并生成与第一资源的资源量相匹配数量的第一通证。区块链节点再将第一通证发送至用户的账户,并针对第一资源转入和第一通证转出生成第一交易信息存储至区块链。第一资源存入后可以与区块链中存储的其他类型的资源之间互相兑换,实现资源的利用和共享。针对任意用户,通过智能合约生成相应的第一通证,可以用于区块链各个节点之间的交换和流通,并且智能合约生成的第一通证可以衡量第一资源的价值,基于智能合约的安全、不可
篡改属性,保证各个用户的资源的价值衡量的准确性和公平性。第一交易信息区块链的存储,使得第一资源的存入得到全网共识,提高用户资源共享和利用的安全性和准确性。
23.通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
24.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1示出本公开的一些实施例的数据的处理方法的流程示意图。
26.图2示出本公开的另一些实施例的数据的处理方法的流程示意图。
27.图3示出本公开的又一些实施例的数据的处理方法的流程示意图。
28.图4示出本公开的再一些实施例的数据的处理方法的流程示意图。
29.图5示出本公开的一些实施例的区块链节点的结构示意图。
30.图6示出本公开的另一些实施例的区块链节点的结构示意图。
31.图7示出本公开的又一些实施例的区块链节点的结构示意图。
具体实施方式
32.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
33.本公开提供一种数据的处理方法,下面结合图1进行描述。
34.图1为本公开数据的处理方法一些实施例的流程图。如图1所示,该实施例的方法可以由区块链节点执行,包括:步骤s102~s106。
35.在步骤s102中,接收用户发送的资源转入请求。
36.用户可以调用区块链节点的第一接口,发送资源转入请求。区块链节点接收到资源转入请求后可以广播至其他区块链节点。因此区块链节点也可以接收其他区块链节点广播的资源转入请求。各个区块链节点接收到资源转入请求都可以执行后续步骤s104~s106。
37.资源转入请求例如包括由用户的账户向智能合约欲转入的第一资源的资源量,以及智能合约的地址。第一资源与区块链中存储的其他类型的资源之间允许互相兑换,后续将描述兑换的过程。
38.在步骤s104中,根据智能合约的地址调用智能合约的第一方法,按照欲转入的第一资源的资源量将用户的账户中第一资源转入智能合约中,生成与欲转入的第一资源的资源量相匹配数量的第一通证。
39.如果智能合约中有多个方法,资源转入请求可以包括第一方法的标识。智能合约
包括一个或多个方法以及智能合约的账户。按照欲转入的第一资源的资源量可以将用户的账户中第一资源转入智能合约的账户中。
40.在一些实施例中,调用智能合约的第一方法,根据第一资源与第一通证的当前兑换率,生成与第一资源的资源量相匹配数量的第一通证。
41.在一些实施例中,第一资源与第一通证的当前兑换率是根据智能合约中当前存储的第一资源的资源量,当前未归还的第一资源的资源量,动态调整参数以及存入智能合约的第一资源的总资源量确定的,其中,当前存储的第一资源的资源量越大,当前未归还的第一资源的资源量越大,存入智能合约的第一资源的总资源量越小,当前兑换率越高。
42.当前兑换率可以周期性进行更新和确定,可以由特定区块链节点在每个周期发起当前兑换率确定请求。例如,区块链节点接收其他节点发送的当前兑换率确定请求,其中,当前兑换率确定请求包括智能合约的地址;根据当前兑换率确定请求调用智能合约中的第八方法,根据智能合约中当前存储的第一资源的资源量,当前未归还的第一资源的资源量,动态调整参数以及存入智能合约的第一资源的总资源量确定当前兑换率;将当前兑换率存入智能合约并同步至其他区块链节点。
43.进一步,例如将当前存储的第一资源的资源量和当前未归还的第一资源的资源量相加并减去动态调整参数,得到第一数值;将第一数值与存入智能合约的第一资源的总资源量的比值,确定为当前兑换率。
44.例如,可以采用以下公式计算当前兑换率。
[0045][0046]
公式(1)中totalcash表示智能合约当前存储的第一资源的资源量,totalborrow表示当前未归还的第一资源的资源量,包括被借用的第一资源的资源量和被借用的第一资源的资源量的增长量。后续将描述增长量的计算方法。reserve表示动态调整参数,totalsuply表示存入智能合约的第一资源的总资源量。当前未归还的第一资源的资源量越大,存入智能合约的第一资源的总资源量越小,当前兑换率越高,表示第一资源的利用价值越高,当前兑换率则越高。
[0047]
在步骤s106中,将生成的第一通证发送至用户的账户,并生成第一交易信息存储至区块链。
[0048]
第一交易信息例如包括:用户的账户向智能合约转入第一资源的资源量,以及智能合约向用户的账户转出的第一通证的数量。区块链节点可以对第一交易信息进行签名后进行广播,其他区块链节点接收到第一交易信息后进行验签,验签通过则将第一交易信息进行缓存,在缓存的交易信息达到预设数量后生成区块(可以由任意节点或指定节点生成区块),并将区块进行广播。在执行共识机制的节点完成共识之后,将区块存储至区块链。上述生成交易信息、广播、生成区块、共识和存储的过程可以参考现有技术,在此不再赘述。后续其他交易信息的存储过程类似,也不再赘述。
[0049]
可以通过以太坊的erc20规范或其他现有区块链技术实现上述实施例的方法。下面描述一些应用例。例如,用户的第一资源、第二资源等可以表示为source1、source2等,智能合约生成的第一通证、第二通证等表示为token1,token2等,各个用户的地址为addrusera,addruserb等。智能合约在链上的部署地址为contractct。用户a将账户中的
source1取出,存储到智能合约中,同时智能合约生成符合erc20标准的token1。这个过程对应到区块链上,是用户a将source1转账到智能合约地址contractct中,与此同时contractct会生成token1并转账给用户a地址addrusera。例如,100个单位的source1可以兑换100token1,第一交易信息如下:
[0050][0051]
上述实施例中用户发起资源转入请求,区块链节点根据智能合约的地址调用智能合约的第一方法,按照欲转入的第一资源的资源量将用户的账户中第一资源转入智能合约中,并生成与第一资源的资源量相匹配数量的第一通证。区块链节点再将第一通证发送至用户的账户,并针对第一资源转入和第一通证转出生成第一交易信息存储至区块链。第一资源存入后可以与区块链中存储的其他类型的资源之间互相兑换,实现资源的利用和共享。针对任意用户,通过智能合约生成相应的第一通证,可以用于区块链各个节点之间的交换和流通,并且智能合约生成的第一通证可以衡量第一资源的价值,基于智能合约的安全、不可篡改属性,保证各个用户的资源的价值衡量的准确性和公平性。第一交易信息区块链的存储,使得第一资源的存入得到全网共识,提高用户资源共享和利用的安全性和准确性。
[0052]
下面结合图2描述本公开数据的处理方法的另一些实施例。
[0053]
图2为本公开数据的处理方法另一些实施例的流程图。如图2所示,该实施例的方法可以由区块链节点执行,包括:步骤s202~s206。
[0054]
在步骤s202中,接收用户发送的资源借用请求。
[0055]
区块链节点可以通过第二接口接收资源借用请求,或接收其他区块链节点广播的资源借用请求。资源借用请求例如包括欲借用的第二资源的资源量,以及智能合约的地址。用户存入的是第一资源,区块链中存储的其他类型的资源包括第二资源,用户可以借用第二资源,实现不同用户间资源的流通和共享。
[0056]
在步骤s204中,根据智能合约的地址调用智能合约的第二方法,验证欲借用的第二资源的资源量与用户未归还的第二资源的资源量之和转换为第一资源的资源量后,是否超过用户在智能合约中存储的第一资源的资源量。
[0057]
第一资源和第二资源的转换率可以根据两者的实际价值,周期性进行调整和确定。未归还的第二资源的资源量,包括被借用的第二资源的资源量和被借用的第二资源的资源量的增长量,后续将对增长量的计算方法进行描述。
[0058]
在步骤s206中,在未超过的情况下,按照欲借用的第二资源的资源量将第二资源发送至用户的账户,并生成第二交易信息存储至区块链。
[0059]
第二交易信息例如包括:智能合约向用户的账户转出的第二资源的资源量。下面描述一些应用例。用户将第一资源存入智能合约后,可以通过合约借用不超过存入的第一资源价值的第二资源。在用户发出借用第二资源的请求后,智能合约contractct会验证用
户当前的source1的资源量,如果欲借用的source2的资源量或者欲借用的source2的资源量和未归还的source2的资源量的总和,超过存储的source1的价值,则该调用失败。否则将对应的source2转账给用户a地址addrusera。如果用户a借用50个单位的第二资源,第二交易信息如下:
[0060][0061][0062]
下面结合图3描述本公开数据的处理方法的又一些实施例。
[0063]
图3为本公开数据的处理方法又一些实施例的流程图。如图3所示,该实施例的方法可以由区块链节点执行,包括:步骤s302~s308。
[0064]
在步骤s302中,接收用户发送的资源转出请求。
[0065]
资源提取请求包括用于兑换的第一通证的数量,以及智能合约的地址。用户可以将存入的第一资源转出。区块链节点可以通过第三接口接收资源转出请求或者接收其他区块链节点广播的资源转出请求。
[0066]
在步骤s304中,根据智能合约的地址调用智能合约的第三方法,按照用于兑换的第一通证的数量将第一通证由用户的账户转入智能合约,将转入智能合约的第一通证转入预设地址进行销毁,确定用于兑换的第一通证的数量转换为第一资源的资源量,作为欲提取资源量。
[0067]
在一些实施例中,根据第一资源与第一通证的当前兑换率,确定用于兑换的第一通证的数量转换为第一资源的资源量。第一资源与第一通证的当前兑换率根据前述实施例的方法确定。
[0068]
用户存储在智能合约中的第一资源可以进行增值。第一增值率可以周期性确定。可以由指定节点周期性发起第一增值率确定请求。在一些实施例中,接收其他节点发送的第一增值率确定请求,其中,第一增值率确定请求包括智能合约的地址,第一增值率确定请求是周期性发送的;根据智能合约的地址调用智能合约的第五方法,根据当前智能合约中第一资源的借用总量和当前存储量,确定第一资源的当前使用率,其中,第一资源的借用总量越大,当前存储量越小,当前使用率越大;根据当前使用率,预设增值率、第一调整参数以及第二调整参数,确定当前第一增值率;根据当前第一增值率确定智能合约中存储的各个用户的第一资源的增长量,并生成第五交易信息存储至区块链,其中,第五交易信息包括:当前第一增值率,智能合约中存储的各个用户的第一资源的增长量。用户存储的第一资源可以周期性的计算增长量,并增加至各个用户的账户。
[0069]
在一些实施例中,第一资源的当前使用率为当前智能合约中第一资源的借用总量与借用总量和当前存储量之和比值;当前第一增值率为当前使用率与第一调整参数的乘积与预设增值率之和,再乘以当前使用率和第二调整参数。例如,第一资源的当前使用率可以采用以下公式确定。
[0070][0071]
公式(2)中,borrows1为当前智能合约中第一资源的借用总量,cash1表示当前存储的第一资源的资源量。
[0072]
当前第一增值率可以采用以下公式确定。
[0073]
savingratio1=(baseratio+u1*multiplier)*u1*reservefactor
ꢀꢀꢀꢀ
(3)
[0074]
公式(3)中,baseratio为预设增值率,multiplier为第一调整参数,u1为当前使用率,reservefactor为第二调整参数。
[0075]
由于第一增值率是周期性变化的,可以表示年增值率、月增值率或不同时间粒度的增值率,因此,用户的账户中存储的第一资源每个周期的增长量是不同的。由于存储的第一资源是随时间不断增长的,用户欲提取资源量中实际包含了一部分用户存储的第一资源和一部分增长量。
[0076]
在步骤s306中,验证将欲提取资源量提取后,智能合约中存储的用户第一资源的剩余资源量是否超过用户未归还的第二资源的资源量转换为第一资源的资源量。
[0077]
需要保证用户剩余的第一资源足够抵还用户未归还的第二资源的资源量。
[0078]
在步骤s308中,在超过的情况下,按照欲提取资源量将第一资源转入用户的账户,并生成第三交易信息存储至区块链。
[0079]
第三交易信息例如包括:用户的账户向智能合约转入第一通证的数量,智能合约转入预设地址的第一通证的数量,以及智能合约向用户的账户转出第一资源的资源量。
[0080]
下面描述一些应用例。用户存储的第一资源在取出时,智能合约算法根据第一资源的当前兑换率,将发放的第一通证兑换回第一资源。用户发起转出第一资源请求后,智能合约contractct首先将addrusera账户中的source1按照当前兑换率以及存储时间等条件计算得到用户a可以取出的第一资源的资源量(包括了一部分用户存储的第一资源和一部分增长量),同时验证取出后剩余source1价值是否超过当前未归还的source2价值,如果符合条件则将对应的token1销毁并转账给用户source1。例如,用户用于兑换的第一通证的数量为50个token1,根据当前兑换率确定欲提取资源量为52个单位第一资源,第三交易信息如下:
[0081][0082]
下面结合图4描述本公开数据的处理方法的再一些实施例。
[0083]
图4为本公开数据的处理方法再一些实施例的流程图。如图4所示,该实施例的方法可以由区块链节点执行,包括:步骤s402~s404。
[0084]
在步骤s402中,接收用户发送的资源归还请求。
[0085]
资源归还请求例如包括欲归还的第二资源的资源量,以及智能合约的地址。
[0086]
在步骤s404中,根据智能合约的地址调用智能合约的第四方法,按照欲归还的第二资源的资源量将第二资源由用户的账户转入智能合约,并生成第四交易信息存储至区块链。
[0087]
第四交易信息例如包括:用户的账户向智能合约转入第二资源的资源量。
[0088]
用户借用第二资源也会产生增长量,如前述实施例提到的。借用的第二资源随着时间的增长产生增长量,增长量根据第二增值率确定,第二增值率可以周期性确定,可以表示年增值率、月增值率或不同时间粒度的增值率。在一些实施例中,区块链节点接收其他节点发送的第二增值率确定请求,其中,第二增值率确定请求包括智能合约的地址,第二增值率确定请求周期性发送的;根据智能合约的地址调用智能合约的第六方法,根据当前智能合约中第二资源的借用总量和当前存储量,确定第二资源的当前使用率,其中,第二资源的借用总量越大,当前存储量越小,当前使用率越大;根据第二资源的当前使用率,预设增值率以及第二调整参数,确定当前第二增值率;根据当前第二增值率确定智能合约中各个用户借用的第二资源的增长量,并生成第六交易信息存储至区块链,其中,第六交易信息包括:当前第二增值率,智能合约中各个用户借用的第二资源的增长量。
[0089]
在一些实施例中,根据第二资源的当前使用率,第一调整参数与预设增值率确定当前第二增值率。例如,第二资源的当前使用率为当前智能合约中第二资源的借用总量与借用总量与当前存储量之和的比值。当前第二增值率为第二资源的当前使用率与第一调整参数的乘积与预设增值率之和。
[0090]
当前第二增值率可以采用以下公式确定。
[0091]
borrowratio2=baseratio+u2*multiplier
ꢀꢀꢀꢀ
(4)
[0092]
公式(4)中,baseratio为预设增值率,multiplier为第一调整参数,u2为第二资源的当前使用率。第二资源的当前使用率可以参考公式(2)确定。
[0093]
欲归还的第二资源的资源量实际包含了一部分用户借用的第二资源和一部分增长量。前述实施例中提到的用户未归还的第二资源也是包括一部分用户借用的第二资源和一部分增长量。
[0094]
下面描述一些应用例。用户将借用的第二资源以及按照第二增值率计算的增长量归还给智能合约。用户向contractct发起资源归还请求,将借用的第二资源转账给contractct。例如,归还50个单位的第二资源,第四交易信息如下:
[0095]
from:addrusera
[0096]
to:contractct
[0097]
transaction action:repay 50source2 to contractct
[0098]
tokens transferred:
[0099]
from addrusera to contractct for 50 source2
[0100]
在一些实施例中,不同资源的价值可能产生波动,导致存入的第一资源的价值第一借用的第二资源的价值,此时可以由指定节点发起清算请求。在一些实施例中,区块链节点接收其他节点发送的清算请求,其中,清算请求包括:第一资源的价值参数,第二资源的价值参数,用户的账户的地址以及智能合约的地址,清算请求是在智能合约中用户当前存储的第一资源的价值低于用户已借用的第二资源的价值的情况下发送;根据智能合约的地
址调用智能合约的第七方法,根据第一资源的价值参数、第二资源的价值参数、智能合约中用户当前存储的第一资源的资源量、当前借用的第二资源的资源量确定用户的第一资源的清算量;从智能合约中用户当前存储的第一资源的资源量中扣除用户的第一资源的清算量,并生成第七交易信息存储至区块链,其中,第七交易信息包括:从智能合约中用户当前存储的第一资源的资源量中扣除用户的第一资源的清算量。
[0101]
在一些实施例中,将第一资源的价值参数和第二资源的价值参数的比值作为第一资源和第二资源的价值比;利用用户当前存储的第一资源的资源量减去当前借用的第二资源的资源量与第一资源和第二资源的价值比的乘积,得到的差值与第一资源的价值参数相乘,得到第一资源的清算量。例如,第一资源的清算量可以采用以下公式确定。
[0102]
accountliquidity=oracle1*(supplied
1-collateralratio1*borrowed2)
ꢀꢀ
(5)
[0103]
公式(5)中,oracle1是第一资源的价值参数;supplied1表示用户当前存储的第一资源的资源量;borrowed2是当前借用的第二资源的资源量;collateralratio
t
为第一资源和第二资源的价值比。
[0104]
上述实施例中,“第一”和“第二”仅用于区分不同类型的资源,而不用于限定具体的资源类型。任何类型的资源都可采用上述方法进行转入、转出、借用和归还等。上述实施例的方法,实现了用户不同资源的流通和共享,通过区块链、智能合约保障了整个过程的安全性、准确性。
[0105]
本公开还提供一种区块链节点,下面结合图5进行描述。
[0106]
图5为本公开区块链节点的一些实施例的结构图。如图5所示,该实施例的区块链节点50包括:接收模块510,调用模块520,转账模块530。
[0107]
接收模块510用于接收用户发送的资源转入请求,资源转入请求包括由用户的账户向智能合约欲转入的第一资源的资源量,以及智能合约的地址,第一资源与区块链中存储的其他类型的资源之间允许互相兑换。
[0108]
调用模块520用于根据智能合约的地址调用智能合约的第一方法,按照欲转入的第一资源的资源量将用户的账户中第一资源转入智能合约中,生成与欲转入的第一资源的资源量相匹配数量的第一通证。
[0109]
在一些实施例中,调用模块520用于调用智能合约的第一方法,根据第一资源与第一通证的当前兑换率,生成与第一资源的资源量相匹配数量的第一通证。
[0110]
转账模块530用于将生成的第一通证发送至用户的账户,并生成第一交易信息存储至区块链,其中,第一交易信息包括:用户的账户向智能合约转入第一资源的资源量,以及智能合约向用户的账户转出的第一通证的数量。
[0111]
在一些实施例中,接收模块510用于接收用户发送的资源借用请求,其中,资源借用请求包括欲借用的第二资源的资源量,以及智能合约的地址,区块链中存储的其他类型的资源包括第二资源。
[0112]
调用模块520用于根据智能合约的地址调用智能合约的第二方法,验证欲借用的第二资源的资源量与用户未归还的第二资源的资源量之和转换为第一资源的资源量后,是否超过用户在智能合约中存储的第一资源的资源量。
[0113]
转账模块530用于在未超过的情况下,按照欲借用的第二资源的资源量将第二资源发送至用户的账户,并生成第二交易信息存储至区块链,其中,第二交易信息包括:智能
合约向用户的账户转出的第二资源的资源量。
[0114]
在一些实施例中,接收模块510用于接收用户发送的资源转出请求,其中,资源提取请求包括用于兑换的第一通证的数量,以及智能合约的地址。
[0115]
调用模块520用于根据智能合约的地址调用智能合约的第三方法,按照用于兑换的第一通证的数量将第一通证由用户的账户转入智能合约,将转入智能合约的第一通证转入预设地址进行销毁,确定用于兑换的第一通证的数量转换为第一资源的资源量,作为欲提取资源量;验证将欲提取资源量提取后,智能合约中存储的用户第一资源的剩余资源量是否超过用户未归还的第二资源的资源量转换为第一资源的资源量。
[0116]
在一些实施例中,根据第一资源与第一通证的当前兑换率,确定用于兑换的第一通证的数量转换为第一资源的资源量。
[0117]
在一些实施例中,第一资源与第一通证的当前兑换率是根据智能合约中当前存储的第一资源的资源量,当前未归还的第一资源的资源量,动态调整参数以及存入智能合约的第一资源的总资源量确定的,其中,当前存储的第一资源的资源量越大,当前未归还的第一资源的资源量越大,存入智能合约的第一资源的总资源量越小,当前兑换率越高。
[0118]
在一些实施例中,将当前存储的第一资源的资源量和当前未归还的第一资源的资源量相加并减去动态调整参数,得到第一数值;将第一数值与存入智能合约的第一资源的总资源量的比值,确定为当前兑换率。
[0119]
转账模块530用于在超过的情况下,按照欲提取资源量将第一资源转入用户的账户,并生成第三交易信息存储至区块链,其中,第三交易信息包括:用户的账户向智能合约转入第一通证的数量,智能合约转入预设地址的第一通证的数量,以及智能合约向用户的账户转出第一资源的资源量。
[0120]
在一些实施例中,接收模块510用于接收用户发送的资源归还请求,其中,资源归还请求包括欲归还的第二资源的资源量,以及智能合约的地址。
[0121]
调用模块520用于根据智能合约的地址调用智能合约的第四方法。
[0122]
转账模块530用于按照欲归还的第二资源的资源量将第二资源由用户的账户转入智能合约,并生成第四交易信息存储至区块链,其中,第四交易信息包括:用户的账户向智能合约转入第二资源的资源量。
[0123]
在一些实施例中,接收模块510用于接收其他节点发送的第一增值率确定请求,其中,第一增值率确定请求包括智能合约的地址,第一增值率确定请求是周期性发送的。
[0124]
调用模块520用于根据智能合约的地址调用智能合约的第五方法,根据当前智能合约中第一资源的借用总量和转入总量,确定第一资源的当前使用率,其中,第一资源的借用总量越大,转入总量越小,当前使用率越大;根据当前使用率,预设增值率、第一调整参数以及第二调整参数,确定当前第一增值率。
[0125]
转账模块530用于根据当前第一增值率确定智能合约中存储的各个用户的第一资源的增长量,并生成第五交易信息存储至区块链,其中,第五交易信息包括:当前第一增值率,智能合约中存储的各个用户的第一资源的增长量。
[0126]
在一些实施例中,接收模块510用于接收其他节点发送的第二增值率确定请求,其中,第二增值率确定请求包括智能合约的地址,第二增值率确定请求周期性发送的。
[0127]
调用模块520用于根据智能合约的地址调用智能合约的第六方法,根据当前智能
合约中第二资源的借用总量和当前存储量,确定第二资源的当前使用率,其中,第二资源的借用总量越大,当前存储量越小,当前使用率越大;根据第二资源的当前使用率,预设增值率以及第二调整参数,确定当前第二增值率。
[0128]
转账模块530用于根据当前第二增值率确定智能合约中各个用户借用的第二资源的增长量,并生成第六交易信息存储至区块链,其中,第六交易信息包括:当前第二增值率,智能合约中各个用户借用的第二资源的增长量。
[0129]
在一些实施例中,第二资源的当前使用率为当前智能合约中第二资源的借用总量与借用总量与当前存储量之和的比值;当前第二增值率为第二资源的当前使用率与第一调整参数的乘积与预设增值率之和。
[0130]
在一些实施例中,接收模块510用于接收其他节点发送的清算请求,其中,清算请求包括:第一资源的价值参数,第二资源的价值参数,用户的账户的地址以及智能合约的地址,清算请求是在智能合约中用户当前存储的第一资源的价值低于用户已借用的第二资源的价值的情况下发送。
[0131]
调用模块520用于根据智能合约的地址调用智能合约的第七方法,根据第一资源的价值参数、第二资源的价值参数、智能合约中用户当前存储的第一资源的资源量、当前借用的第二资源的资源量确定用户的第一资源的清算量。
[0132]
转账模块530用于从智能合约中用户当前存储的第一资源的资源量中扣除用户的第一资源的清算量,并生成第七交易信息存储至区块链,其中,第七交易信息包括:从智能合约中用户当前存储的第一资源的资源量中扣除用户的第一资源的清算量。
[0133]
在一些实施例中,第一资源的清算量采用以下方法确定:将第一资源的价值参数和第二资源的价值参数的比值作为第一资源和第二资源的价值比;利用用户当前存储的第一资源的资源量减去当前借用的第二资源的资源量与第一资源和第二资源的价值比的乘积,得到的差值与第一资源的价值参数相乘,得到第一资源的清算量。
[0134]
本公开的实施例中的区块链节点可各由各种计算设备或计算机系统来实现,下面结合图6以及图7进行描述。
[0135]
图6为本公开区块链节点的一些实施例的结构图。如图6所示,该实施例的节点60包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行本公开中任意一些实施例中的数据的处理方法。
[0136]
其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(boot loader)、数据库以及其他程序等。
[0137]
图7为本公开区块链节点的另一些实施例的结构图。如图7所示,该实施例的节点70包括:存储器710以及处理器720,分别与存储器610以及处理器620类似。还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口750为sd卡、u盘等外置存储设备提供连接接口。
[0138]
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的
实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0139]
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0140]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0141]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0142]
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1