CN114328538A - 一种区块链上事务的处理方法、装置、存储介质及服务器 - Google Patents
一种区块链上事务的处理方法、装置、存储介质及服务器 Download PDFInfo
- Publication number
- CN114328538A CN114328538A CN202111661983.XA CN202111661983A CN114328538A CN 114328538 A CN114328538 A CN 114328538A CN 202111661983 A CN202111661983 A CN 202111661983A CN 114328538 A CN114328538 A CN 114328538A
- Authority
- CN
- China
- Prior art keywords
- transaction
- instruction
- server
- amount
- resource amount
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 title claims abstract description 57
- 238000012546 transfer Methods 0.000 claims abstract description 140
- 238000012795 verification Methods 0.000 claims abstract description 106
- 230000001960 triggered effect Effects 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 239000003795 chemical substances by application Substances 0.000 description 85
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 239000003999 initiator Substances 0.000 description 5
- 238000003672 processing method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请实施例公开了一种区块链上事务的处理方法、装置、存储介质及服务器,包括:服务器接收指令并判断指令类型,若是预签名事务哈希值获取指令且指令是由转移方发起,则从该指令中解析出预签名事务的事务信息,再对事务信息进行哈希运算,将获得的预签名事务哈希值下发给客户端;若是预签名事务代理指令且指令信息验证通过,则解析该指令获取预签名事务并验证合法性,若合法则通过查询智能合约信息获取事务代理条件,当预签名事务满足事务代理条件时,服务器从代理方扣减需向矿工上交的附加主资源量、再基于转移方资源扣减规则从转移方地址扣减相应的资源量并将待转移给接收方的目标副资源量增加至接收方地址,从而实现对转移方副资源量的转移。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链上事务的处理方法、装置、存储介质及服务器。
背景技术
区块链由一个个区块组成,是一种特殊的、无人管理的分布式数据库。
任何拥有者通过所持终端都可以加入区块链网络,成为其中的一个节点。区块链上的各节点平等,且信息同步。
区块链中的虚拟资源包括公有链上原生的主资源以及公有链上产生的副资源。当前,若要实现资源转移,需向矿工上交一定的附加主资源量,当区块链上某一转移方地址拥有的主资源量不足以支持矿工所需的附加主资源量时,该转移方地址拥有的副资源量将无法转移。
发明内容
本申请实施例提供了一种区块链上事务的处理方法、装置、存储介质及服务器。所述技术方案如下:
第一方面,本申请实施例提供了一种区块链上事务的处理方法,所述方法包括:
步骤S1:服务器接收指令;
步骤S2:所述服务器判断指令类型,若是预签名事务哈希值获取指令,执行步骤S3,若是预签名事务代理指令,执行步骤S6;
步骤S3:所述服务器校验所述预签名事务哈希值获取指令是否由转移方发起,若是,执行步骤S4,否则,返回错误信息并执行步骤S1;
步骤S4:所述服务器从所述预签名事务哈希值获取指令中解析出预签名事务的事务信息,所述事务信息包括待转移的目标副资源量、转移所述目标副资源量所需的附加副资源量、所述目标副资源量的转移方地址、所述目标副资源量的接收方地址、所述转移方地址可使用的目标主资源量以及转移方资源扣减方式,所述目标主资源量小于等于所述转移方地址拥有的主资源量;
步骤S5:所述服务器对所述事务信息进行哈希运算,获得预签名事务哈希值,将所述预签名事务哈希值下发给触发所述预签名事务哈希值获取指令的客户端,执行步骤S1;
步骤S6:所述服务器对所述预签名事务代理指令进行信息验证,若验证通过,执行步骤S7,否则,返回错误信息并执行步骤S1;
步骤S7:所述服务器解析所述预签名事务代理指令获取所述预签名事务,对所述预签名事务进行合法性验证,若验证通过,执行步骤S8,否则,记录日志并将所述步骤S7生成的信息同步给同一区块链上的其他服务器,执行步骤S1;
步骤S8:所述服务器根据预先存储的智能合约地址查询智能合约信息,获取事务代理条件;
步骤S9:所述服务器判断所述预签名事务是否满足所述事务代理条件,若满足,执行步骤S10,否则,记录日志并将所述步骤S7至步骤S9生成的信息同步给同一区块链上的其他服务器,执行步骤S1;
步骤S10:所述服务器按所述目标副资源量与所述附加副资源量之和以及所述转移方资源扣减方式,扣减所述转移方地址拥有的资源量;
步骤S11:所述服务器获取接收所述附加副资源量的代理方地址并计算转移所述目标副资源量所需的附加主资源量,按所述转移方地址被扣减的资源量增加所述代理方地址拥有的资源量、按所述附加主资源量扣减所述代理方地址拥有的主资源量,其中,所述转移方地址拥有的主资源量小于所述附加主资源量;
步骤S12:所述服务器按所述目标副资源量增加所述接收方地址拥有的副资源量,记录日志并将所述步骤S7至步骤S12生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
第二方面,本申请实施例提供了一种区块链上事务的处理装置,所述装置包括:
指令接收模块,用于服务器接收指令;
指令判断模块,用于判断指令类型,若是预签名事务哈希值获取指令,触发第一指令验证模块,若是预签名事务代理指令,触发第二指令验证模块;
第一指令验证模块,用于对所述预签名事务哈希值获取指令进行信息验证,若验证通过,触发信息获取模块,否则,返回错误信息并触发指令接收模块;
事务信息获取模块,用于从所述预签名事务哈希值获取指令中解析出预签名事务的事务信息,所述事务信息包括待转移的目标副资源量、转移所述目标副资源量所需的附加副资源量、所述目标副资源量的转移方地址、所述目标副资源量的接收方地址、所述转移方地址可使用的目标主资源量以及转移方资源扣减方式,所述目标主资源量小于等于所述转移方地址拥有的主资源量;
哈希值下发模块,用于对所述事务信息进行哈希运算,获得预签名事务哈希值,将所述预签名事务哈希值下发给触发所述预签名事务哈希值获取指令的客户端,触发指令接收模块;
第二指令验证模块,用于对所述预签名事务代理指令进行信息验证,若验证通过,触发签名验证模块,否则,返回错误信息并触发指令接收模块;
签名验证模块,用于解析所述预签名事务代理指令获取所述预签名事务,对所述预签名事务进行合法性验证,若验证通过,触发代理条件获取模块,否则,记录日志并将所述签名验证模块生成的信息同步给同一区块链上的其他服务器,触发指令接收模块;
代理条件获取模块,用于根据预先存储的智能合约地址查询智能合约信息,获取事务代理条件;
事务判断模块,用于判断所述预签名事务是否满足所述事务代理条件,若满足,触发转移方资源处理模块,否则,记录日志并将所述签名验证模块至事务判断模块生成的信息同步给同一区块链上的其他服务器,触发指令接收模块;
转移方资源处理模块,用于按所述目标副资源量与所述附加副资源量之和以及所述转移方资源扣减方式,扣减所述转移方地址拥有的资源量;
代理方资源处理模块,用于获取接收所述附加副资源量的代理方地址并计算转移所述目标副资源量所需的附加主资源量,按所述转移方地址被扣减的资源量增加所述代理方地址拥有的资源量、按所述附加主资源量扣减所述代理方地址拥有的主资源量,其中,所述转移方地址拥有的主资源量小于所述附加主资源量;
接收方资源处理模块,用于按所述目标副资源量增加所述接收方地址拥有的副资源量,记录日志并将所述签名验证模块至接收方资源处理模块生成的信息同步给同一区块链上的其他服务器,触发指令接收模块。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项方法的步骤。
第四方面,本申请实施例提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项方法的步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
当转移方地址拥有的主资源量不足时,通过代理方替转移方代交附加主资源量,可使转移方对其拥有的副资源量进行转移。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链上事务的处理方法的流程示意图;
图2是本申请实施例提供的一种区块链上事务的处理方法的流程示意图;
图3是本申请实施例提供的一种区块链上事务的处理装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面将结合附图1-附图2,对本申请实施例提供的区块链上事务的处理方法进行详细介绍。
请参见图1,为本申请实施例提供的一种区块链上事务的处理方法的流程示意图。
如图1所示,本申请实施例的所述方法可以包括以下步骤:
步骤S1:服务器接收指令。
智能合约运行于节点上,节点运行于服务器上。
步骤S2:服务器判断指令类型,若是预签名事务哈希值获取指令,执行步骤S3,若是预签名事务代理指令,执行步骤S6。
步骤S3:服务器校验预签名事务哈希值获取指令是否由转移方发起,若是,执行步骤S4,否则,返回错误信息并执行步骤S1。
步骤S4:服务器从预签名事务哈希值获取指令中解析出预签名事务的事务信息,事务信息包括待转移的目标副资源量、转移目标副资源量所需的附加副资源量、目标副资源量的转移方地址、目标副资源量的接收方地址、转移方地址可使用的目标主资源量以及转移方资源扣减方式,目标主资源量小于等于转移方地址拥有的主资源量。
步骤S5:服务器对事务信息进行哈希运算,获得预签名事务哈希值,将预签名事务哈希值下发给触发预签名事务哈希值获取指令的客户端,执行步骤S1。
步骤S6:服务器对预签名事务代理指令进行信息验证,若验证通过,执行步骤S7,否则,返回错误信息并执行步骤S1。
对预签名事务代理指令的信息验证包括:验证预签名事务代理指令广播至服务器时是否发生了篡改、预签名事务代理指令是否由具备资格的代理方发起。
步骤S7:服务器解析预签名事务代理指令获取预签名事务,对预签名事务进行合法性验证,若验证通过,执行步骤S8,否则,记录日志并将所述步骤S7生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
步骤S8:服务器根据预先存储的智能合约地址查询智能合约信息,获取事务代理条件。
步骤S9:服务器判断预签名事务是否满足事务代理条件,若满足,执行步骤S10,否则,记录日志并将所述步骤S7至步骤S9生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
步骤S10:服务器处理预签名事务并执行步骤S13。
步骤S10:服务器按目标副资源量与附加副资源量之和以及转移方资源扣减方式,扣减转移方地址拥有的资源量。
步骤S11:服务器获取接收附加副资源量的代理方地址并计算转移目标副资源量所需的附加主资源量,按转移方地址被扣减的资源量增加代理方地址拥有的资源量、按附加主资源量扣减代理方地址拥有的主资源量,其中,转移方地址拥有的主资源量小于附加主资源量。
步骤S12:服务器按目标副资源量增加接收方地址拥有的副资源量,记录日志并将步骤S7至步骤S12生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
同一区块链中各服务器上的信息保持同步,当其中一个服务器上的信息发生改变时,其余服务器也将同步更新。在上述处理过程中,预签名事务上链后(步骤S7开始)生成的所有信息均要同步给同一区块链上的其他服务器。
具体地,处理至步骤S7时,预签名事务上链,需要向其他服务器同步的信息包括:预签名事务合法性验证过程与验证结果、智能合约信息查询、事务代理条件的获取与判断、以及预签名事务的处理结果。
此外,在预签名事务上链后,若存在信息验证不成功的,验证过程与不成功结果也一并同步给同一区块链上的其他服务器。
更进一步地,服务器还可以将预签名事务的处理结果同步给所有相关人员。
本申请实现了,当转移方地址拥有的主资源量不足时,通过代理方替转移方代交附加主资源量,可使转移方对其拥有的副资源量进行转移。
请参见图2,为本申请实施例提供的一种区块链上事务的处理方法的流程示意图。
如图2所示,本申请实施例的所述方法可以包括以下步骤:
步骤S1:服务器接收指令。
步骤S2:服务器判断指令类型,若是智能合约创建指令,则执行步骤S3-A1,若是预签名事务哈希值获取指令,则执行步骤S3,若是已发送事务量查询指令,则执行步骤S6-A1,若是附加主资源量获取指令,则执行步骤S6-B1,若是预签名事务代理指令,则执行步骤S6。
智能合约创建指令的发起方可以是任意用户,例如可以是本申请事务处理过程中所涉及的转移方/接收方/代理方,也可以是不参与本申请事务处理过程的其他用户。
预签名事务哈希值获取指令由转移方发起,转移方通过所在客户端向服务器发送的预签名事务哈希值获取指令中包含有转移方地址、接收方地址、待转移的目标副资源量、上交给转移方的附加副资源量、转移方地址可使用的目标主资源量以及转移方资源扣减方式等信息。
已发送事务量查询指令、附加主资源量获取指令、预签名事务代理指令由代理方发起,其中,代理方通过所在客户端向服务器发送的预签名事务代理指令中包含有代理方地址、代理方拥有的主资源量、代理方已发送事务量以及转移方已签名的预签名事务哈希值等信息。
步骤S3-A1:服务器对智能合约创建指令进行信息验证,若验证通过,执行步骤S3-A2,否则,返回错误信息并执行步骤S1。
步骤S3-A2:服务器创建智能合约,生成并存储智能合约地址。
智能合约的创建者可以是任意用户,例如可能是本方案中涉及的转移方、代理方、接收方中的任意一方,还可能是这三者之外的其他用户。
步骤S3-A3:服务器将智能合约地址下发给触发智能合约创建指令的客户端,并执行步骤S1。
一种可能的实现方式中,创建智能合约的签名事务例如为:
其中:
"from":"0xE5b706064c78ac1b3263575135Ddfd8222B68059",表示事务发起者的公钥为0xE5b706064c78ac1b3263575135Ddfd8222B68059;
"gas":3796979,表示事务发起者提供的gas为3796979;
"gasPrice":"20000000000",表示事务发起者配置的gas价格为20000000000;
"hash":"0x17f15495bfeed385d8fc501378fc5bd53c156b735a9a394e702090be1e470a30",表示事务的哈希值为0x17f15495bfeed385d8fc501378fc5bd53c156b735a9a394e702090be1e470a30;
"input":"0x60806040526012600655600060075534801561001a57600080fd5b507f5654574f4e000000000000000000000000000000000000000000000000000000600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000819055505033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a2806005819055505060086006819055506136788061012d6000396000f3fe608060405234801561001057600080fd5...",表示事务附带的数据;
"nonce":0,表示事务的发起者在之前进行过的事务数量;
"to":null,表示事务接收者的地址;
"value":"0",表示事务附带的主资源值。
"r"、"s"、"v"均表示事务的签名数据。
智能合约创建成功,得合约地址:0xc6074cbd06295F78df1b44Fd0B2b2F16333CfA09。
步骤S3:服务器校验预签名事务哈希值获取指令是否由转移方发起,若是,执行步骤S4,否则,返回错误信息并执行步骤S1。
具体的,步骤S3可包括以下步骤:
步骤S31:服务器提取预签名事务哈希值获取指令中的签名信息,利用预先存储的转移方公钥对签名信息进行解密,获得第一哈希值。
其中,转移方公钥是指转移方用户公钥。
步骤S32:服务器对预签名事务哈希值获取指令中的正文信息进行哈希运算,获得第二哈希值。
步骤S33:服务器判断第一哈希值与第二哈希值是否相同,若相同,则确定预签名事务哈希值获取指令是由转移方发起,执行步骤S4,否则,返回错误信息并执行步骤S1。
要指出的是,在转移方/代理方/接收方所在客户端与服务器搭建关系后,服务器便可获知到绑定在该客户端上的用户公钥信息以及与事务有关的其他信息(例如,转移方拥有的副资源量、待转移的目标副资源量、接收方地址等等)并对所获取的信息进行存储。
步骤S4:服务器从预签名事务哈希值获取指令中解析出预签名事务的事务信息,事务信息包括待转移的目标副资源量、转移目标副资源量所需的附加副资源量、目标副资源量的转移方地址、目标副资源量的接收方地址、转移方地址可使用的目标主资源量以及转移方资源扣减方式,目标主资源量小于等于转移方地址拥有的主资源量。
待转移的目标副资源量例如为200000000、转移目标副资源量所需的附加副资源量例如为360000000、转移方地址例如为0xa3718de8818f19d93e989be6a067e750b2fade4e、接收方地址例如为0xe338c57d76af146b782a83280e1c138b4044a2f4等等。
本申请提供的事务处理方法,转移方可根据实际情况选择仅扣减转移方地址拥有的副资源量,或者选择同时扣减转移方地址拥有的主资源量与副资源量来补偿代理方代,以及,转移方还可根据实际情况选择用掉拥有的全部主资源量或者选择仅使用其中的一部分主资源量。
例如,转移方拥有的主资源量为1000000,当转移方选择用掉全部的主资源量时,事务信息中的目标主资源量即为1000000,当转移方选择仅使用700000主资源量时,事务信息中的目标主资源量即为700000。
步骤S5:服务器对事务信息进行哈希运算,获得预签名事务哈希值,将预签名事务哈希值下发给触发预签名事务哈希值获取指令的客户端,执行步骤S1。
例如,预签名事务hash=0x5d71e4ac67067e6098c82d42c582614bdc7263ccec83fada5a7c2497702a49a9=keccak256(abi.encodePacked(bytes4(0x48664c16),0xc6074cbd06295F78df1b44Fd0B2b2F16333CfA09,0xe338c57d76af146b782a83280e1c138b4044a2f4,200000000,360000000,1560761662000))。
可选实施例中,服务器接收的指令还包括预签名事务广播指令,当接收到该指令时,执行以下步骤:
步骤S5-A1:服务器对预签名事务广播指令进行信息验证,若验证通过,执行步骤S5-A2,否则,返回错误信息并执行步骤S1。
步骤S5-A2:服务器对预签名事务进行广播并执行步骤S1。
广播的内容具体包括:预签名事务哈希值以及预签名事务哈希值的签名值等等。
步骤S6-A1:服务器对已发送事务量查询指令进行信息验证,若验证通过,执行步骤S6-A2,否则,返回错误信息并执行步骤S1。
进一步地,对已发送事务量查询指令的信息验证具体可包括:
步骤S6-A11:服务器通过已发送事务量查询指令的签名数据计算触发已发送事务量查询指令的拥有者公钥,利用触发已发送事务量查询指令的拥有者公钥对已发送事务量查询指令进行签名验证,若验证通过,执行步骤S6-A12,否则,返回错误信息并执行步骤S1。
步骤S6-A12:服务器根据预先存储的智能合约地址查询智能合约信息。
智能合约信息包括但不限于:资源转移条件(例如每日允许转移的资源量上限值)、事务代理条件以及预先存储的转移方/代理方/接收方公钥等。
步骤S6-A13:服务器基于智能合约信息,对触发已发送事务量查询指令的拥有者进行身份验证,若验证通过,执行步骤S6-A2,否则,返回错误信息并执行步骤S1。
将通过签名数据计算出的拥有者公钥与预先存储的代理方公钥进行比对,若公钥一致,则验证通过。
步骤S6-A2:服务器查询代理方地址的已发送事务量。
所查询的已发送事务量是代理方地址已转移的事务次数与已代理的事务次数之和,代理方地址已发送的事务量例如为162。
步骤S6-A3:服务器将已发送事务量下发给触发已发送事务量查询指令的客户端,并执行步骤S1。
步骤S6-B1:服务器对附加主资源量获取指令进行信息验证,若验证通过,执行步骤S6-B2,否则,返回错误信息并执行步骤S1。
进一步地,对附加主资源量获取指令的信息验证具体可包括:
步骤S6-B11:服务器通过附加主资源量获取指令的签名数据计算触发附加主资源量获取指令的拥有者公钥,利用触发附加主资源量获取指令的拥有者公钥对附加主资源量获取指令进行签名验证,若验证通过,执行步骤S6-B12,否则,返回错误信息并执行步骤S1。
步骤S6-B12:服务器根据预先存储的智能合约地址查询智能合约信息。
步骤S6-B13:服务器基于智能合约信息,对触发附加主资源量获取指令的拥有者进行身份验证,若验证通过,执行步骤S6-B2,否则,返回错误信息并执行步骤S1。
步骤S6-B2:服务器计算转移目标副资源量所需的附加主资源量。
步骤S6-B3:服务器将附加主资源量下发给触发附加主资源量获取指令的客户端,并执行步骤S1。
步骤S6:服务器对预签名事务代理指令进行信息验证,若验证通过,执行步骤S7,否则,返回错误信息并执行步骤S1。
对预签名事务代理指令信息验证的具体过程可参照步骤S6-A1/步骤S6-B1,此处不再赘述。
步骤S7:服务器解析预签名事务代理指令获取预签名事务,对预签名事务进行合法性验证,若验证通过,执行步骤S8,否则,记录日志并将步骤S7生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
经解析预签名事务代理指令获得的预签名事务例如为:
上述实例中,事务给出的gas价格为6000000000,矿工收录该事务需消耗27000的主资源单位,实际总消耗是27000*6000000000的主资源,那么,该事务要上交的附加主资源量即为27000*6000000000。
服务器对代理方发起的事务进行合法性验证,包括从事务的nonce值、代理方拥有的主资源量是否足以支持矿工所需的附加主资源量等方面进行确定。
当代理方发起的事务不合法时,代理方将无法代理所发起的事务,执行步骤S13。
步骤S8:服务器根据预先存储的智能合约地址查询智能合约信息,获取事务代理条件。
具体的,事务代理条件包括预签名事务代理指令中的转移方签名合法、转移方地址拥有的副资源量足以扣减目标副资源量与附加副资源量、预签名事务未被重复代理。
事务代理条件可根据实际需求灵活设置,例如在上述代理条件的基础上,还可以额外增加“每日允许代理的资源量上限值”等代理条件。
步骤S9:服务器判断预签名事务是否满足事务代理条件,若满足,执行步骤S10,否则,记录日志并将步骤S7至步骤S9生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
进一步地,步骤S9具体可包括:
步骤S91:服务器验证预签名事务代理指令中的转移方签名是否合法,若合法,执行步骤S92,否则,记录日志并将步骤S91生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
例如预签名事务hash=0x5d71e4ac67067e6098c82d42c582614bdc7263ccec83fada5a7c2497702a49a9=keccak256(abi.encodePacked(bytes4(0x48664c16),0xc6074cbd06295F78df1b44Fd0B2b2F16333CfA09,0xe338c57d76af146b782a83280e1c138b4044a2f4,200000000,360000000,1560761662000));
转移方对该hash进行签名,得签名值signature=ce5a21b752ee7a3907eedcb46684361c35706bb0bc00cac1b79efbfa9f48e9a243e98232a15ea9d33a5f4d93f9f6bbb510d7b8cac2c5ecc779299845cc55b75d1c00000000000000000000000000000000000000000000000000000000000000;
结合上述hash数据与签名值数据,通过ECDSA.recover方法可推导出转移方的公钥,对推导出的公钥进行地址转化,得地址0xa3718de8818f19d93e989be6a067e750b2fade4e,将该地址与预签名事务中的转移方地址进行对比,若相等,则转移方签名合法。
步骤S92:服务器验证转移方地址拥有的副资源量是否大于或者等于目标副资源量与附加副资源量之和,若是,执行步骤S93,否则,记录日志并将步骤S92生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
步骤S93:服务器验证预签名事务是否被重复代理,若否,执行步骤S10,否则,记录日志并将步骤S93生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
可选实施例中,步骤S93具体可包括:
步骤S931:服务器获取事务历史列表,判断事务历史列表中是否存在预签名事务哈希值,若不存在,确定预签名事务未被重复代理,执行步骤S932,否则,确定预签名事务被重复代理,记录日志并将步骤S931生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
步骤S932:服务器将预签名事务哈希值添加至事务历史列表中并执行步骤S10。
事务历史列表例如可以采用如下形式:
预签名事务编号 | 预签名事务哈希值 |
1985648948961 | 0xf48gs89tr5wt56sg43sr845sg8913t43895rew4ew |
1894862992564 | 0xe4gr81wt556tq1g89e48r1g2s1648l1ge61yvcxv7 |
… | … |
当转移方仅使用副资源向代理方上交附加副资源量时,服务器对预签名事务的处理过程具体如下:
步骤S10:服务器按目标副资源量与附加副资源量之和扣减转移方地址拥有的副资源量。
步骤S11:服务器获取接收附加副资源量的代理方地址并计算转移目标副资源量所需的附加主资源量,按附加副资源量增加代理方地址拥有的副资源量、按附加主资源量扣减代理方地址拥有的主资源量。
在代理方所在客户端与服务器搭建关系时,服务器便可获得代理方地址。代理方的地址例如为:0xA57195A8Dfd87263f6b328f6DB21fF9F13347A9d。
步骤S12:服务器按目标副资源量增加接收方地址拥有的副资源量,记录日志并将步骤S7至步骤S12生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
预签名事务从步骤S7开始上链,上链后服务器生成的所有信息均同步给同一区块链上的其他服务器。
另外,当转移方选择同时使用主资源以及副资源向代理方上交附加副资源量时,服务器对预签名事务的处理过程具体如下:
步骤S10’:服务器按目标副资源量与附加副资源量之和扣减转移方地址拥有的副资源量、按目标主资源量扣减转移方地址拥有的主资源量。
步骤S11’:服务器获取接收附加副资源量的代理方地址并计算转移目标副资源量所需的附加主资源量,按附加副资源量增加代理方地址拥有的副资源量、按目标主资源量增加代理方地址拥有的主资源量、按附加主资源量扣减代理方地址拥有的主资源量。
步骤S12’:服务器按目标副资源量增加接收方地址拥有的副资源量,记录日志并将步骤S7至步骤S12’生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
以实例对上述步骤S10-步骤S12/步骤S10’-步骤S12’的处理过程进行说明。
例如,转移方地址拥有的副资源量是500,代理方拥有的副资源量是0,若转移方待转移的目标副资源量是400,而转移方地址拥有的主资源量10无法支持转移目标副资源量400所需的附加主资源量50时,代理方可代替转移方向矿工上交附加主资源量50以实现对目标副资源量400的转移(代理方代为上交的附加主资源量,转移方用副资源量/主资源+副资源进行补偿)。
一种实现方式为,当转移方仅使用副资源向代理方上交附加副资源量且资源转移过程中各指令的各项信息验证均通过/合法、代理条件均满足时,服务器从转移方地址扣减400目标副资源量以及100附加副资源量(服务器从预签名事务哈希值获取指令中解析出预签名事务的事务信息,可得到转移400目标副资源量所需的附加副资源量)、向代理方地址增加100附加副资源量并从代理方地址扣减50附加主资源量、向接收方地址增加400目标副资源量。
另一种实现方式为,当转移方使用主资源与副资源结合的方式来向代理方上交附加副资源量(即可将转移方地址的主资源量等价转换为一定量的副资源用于补偿代理方)且资源转移过程中各指令的各项信息验证均通过/合法、代理条件均满足时,服务器从转移方地址扣减400目标副资源量、10附加副资源量以及10主资源量(转移方用掉了其拥有的全部主资源量),并向代理方地址增加10附加副资源量以及10主资源量、从代理方地址扣减50附加主资源量、向接收方地址增加400目标副资源量。
要说明的是,转移方补偿给代理方的附加副资源量的价值大于代理方代为上交的附加主资源量的价值。其他实施例中,代理方还可能同时代理多个预签名事务。
可选实施例中,处理预签名事务之后,还包括:
服务器获取监听预签名事务的目标客户端。
服务器将预签名事务的处理结果下发给目标客户端。
可选实施例中,所述方法还可能存在以下步骤:
服务器接收信息同步指令;
服务器基于信息同步指令同步同一区块链上其他服务器生成的事务信息,执行步骤S1。
本申请提供的事务处理方法,转移方地址、代理方地址以及接收方地址不受用户与所在客户端等条件的限制,可能三者均属同一用户名下,可能三者均绑定在同一客户端上,也可能三者所属用户各不相同、所绑定的客户端也各不相同。
要指明的是,本申请中,服务器执行各指令与创建智能合约在顺序上无先后关系,服务器基于某一智能合约执行指令时,同时可参与其他智能合约的创建,即指令执行与智能合约创建互不干扰。
本申请实现了,当转移方地址拥有的主资源量不足时,通过代理方替转移方代交附加主资源量,可使转移方对其拥有的副资源量进行转移。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图3,为本申请一个示例性实施例提供的区块链上事务的处理装置的结构示意图。本申请实施例中的区块链上事务的处理装置应用于服务器,所述装置包括:
指令接收模块11,用于服务器接收指令;
指令判断模块12,用于判断指令类型,若是预签名事务哈希值获取指令,触发第一指令验证模块13,若是预签名事务代理指令,触发第二指令验证模块16;
第一指令验证模块13,用于校验所述预签名事务哈希值获取指令是否由转移方发起,若是,触发事务信息查询模块14,否则,返回错误信息并触发指令接收模块11;
事务信息获取模块14,用于从所述预签名事务哈希值获取指令中解析出预签名事务的事务信息,所述事务信息包括待转移的目标副资源量、转移所述目标副资源量所需的附加副资源量、所述目标副资源量的转移方地址、所述目标副资源量的接收方地址、所述转移方地址可使用的目标主资源量以及转移方资源扣减方式,所述目标主资源量小于等于所述转移方地址拥有的主资源量;
哈希值下发模块15,用于对所述事务信息进行哈希运算,获得预签名事务哈希值,将所述预签名事务哈希值下发给触发所述预签名事务哈希值获取指令的客户端,触发指令接收模块11;
第二指令验证模块16,用于对所述预签名事务代理指令进行信息验证,若验证通过,触发签名验证模块17,否则,返回错误信息并触发指令接收模块11;
签名验证模块17,用于解析所述预签名事务代理指令获取所述预签名事务,对所述预签名事务进行合法性验证,若验证通过,触发代理条件获取模块18,否则,记录日志并将所述签名验证模块生成的信息同步给同一区块链上的其他服务器,触发指令接收模块11;
代理条件获取模块18,用于根据预先存储的智能合约地址查询智能合约信息,获取事务代理条件;
事务判断模块19,用于判断所述预签名事务是否满足所述事务代理条件,若满足,触发事务处理模块20,否则,记录日志并将所述签名验证模块至事务判断模块生成的信息同步给同一区块链上的其他服务器,触发指令接收模块11;
转移方资源处理模块20,用于按所述目标副资源量与所述附加副资源量之和以及所述转移方资源扣减方式,扣减所述转移方地址拥有的资源量;
代理方资源处理模块21,用于获取接收所述附加副资源量的代理方地址并计算转移所述目标副资源量所需的附加主资源量,按所述转移方地址被扣减的资源量增加所述代理方地址拥有的资源量、按所述附加主资源量扣减所述代理方地址拥有的主资源量,其中,所述转移方地址拥有的主资源量小于所述附加主资源量;
接收方资源处理模块22,用于按所述目标副资源量增加所述接收方地址拥有的副资源量,记录日志并将所述签名验证模块至接收方资源处理模块生成的信息同步给同一区块链上的其他服务器,触发指令接收模块11。
可选实施例中,所述转移方资源处理模块20具体用于:
所述服务器按所述目标副资源量与所述附加副资源量之和扣减所述转移方地址拥有的副资源量;
所述代理方资源处理模块21具体用于:
所述服务器获取接收所述附加副资源量的代理方地址并计算转移所述目标副资源量所需的附加主资源量,按所述附加副资源量增加所述代理方地址拥有的副资源量、按所述附加主资源量扣减所述代理方地址拥有的主资源量。
可选实施例中,所述转移方资源处理模块20具体用于:
所述服务器按所述目标副资源量与所述附加副资源量之和扣减所述转移方地址拥有的副资源量、按所述目标主资源量扣减所述转移方地址拥有的主资源量;
所述代理方资源处理模块21具体用于:
所述服务器获取接收所述附加副资源量的代理方地址并计算转移所述目标副资源量所需的附加主资源量,按所述附加副资源量增加所述代理方地址拥有的副资源量、按所述目标主资源量增加所述代理方地址拥有的主资源量、按所述附加主资源量扣减所述代理方地址拥有的主资源量。
可选实施例中,所述事务判断模块19包括:
第一签名验证单元,用于验证所述转移方签名是否合法,若合法,触发资源量验证单元,否则,记录日志并将第一签名验证单元生成的信息同步给同一区块链上的其他服务器,触发指令接收模块11;
资源量验证单元,用于验证所述转移方地址拥有的副资源量是否大于或者等于所述目标副资源量与所述附加副资源量之和,若是,触发重复代理验证单元,否则,记录日志并将资源量验证单元生成的信息同步给同一区块链上的其他服务器,触发指令接收模块11;
重复代理验证单元,用于验证所述预签名事务是否被重复代理,若否,触发事务处理模块20,否则,记录日志并将重复代理验证单元生成的信息同步给同一区块链上的其他服务器,触发指令接收模块11。
可选实施例中,所述重复代理验证单元包括:
重复代理判断子单元,用于获取事务历史列表,判断所述事务历史列表中是否存在所述预签名事务哈希值,若不存在,确定所述预签名事务未被重复代理,触发哈希值添加子单元,否则,确定所述预签名事务被重复代理,记录日志并将重复代理判断子单元生成的信息同步给同一区块链上的其他服务器,执行步骤S1;
哈希值添加子单元,用于将所述预签名事务哈希值添加至所述事务历史列表中并触发事务处理模块20。
可选实施例中,所述第一指令验证模块13具体用于:
所述服务器提取所述预签名事务哈希值获取指令中的签名信息,利用预先存储的转移方公钥对所述签名信息进行解密,获得第一哈希值;
所述服务器对所述预签名事务哈希值获取指令中的正文信息进行哈希运算,获得第二哈希值;
所述服务器判断所述第一哈希值与所述第二哈希值是否相同,若相同,则确定所述预签名事务哈希值获取指令是由所述转移方发起,触发信息查询模块14,否则,返回错误信息并触发指令接收模块11。
可选实施例中,当所述服务器接收的是已发送事务量查询指令,所述处理装置还包括:
第三指令验证模块,用于对所述已发送事务量查询指令进行信息验证,若验证通过,触发事务量查询模块,否则,返回错误信息并触发指令接收模块11;
事务量查询模块,用于查询所述代理方地址的已发送事务量;
事务量下发模块,用于将所述已发送事务量下发给触发所述已发送事务量查询指令的客户端,并触发指令接收模块11。
可选实施例中,所述第三指令验证模块包括:
第二签名验证单元,用于通过所述已发送事务量查询指令的签名数据计算触发已发送事务量查询指令的拥有者公钥,利用所述拥有者公钥对所述已发送事务量查询指令进行签名验证,若验证通过,触发合约信息查询单元,否则,返回错误信息并触发指令接收模块11;
合约信息查询单元,用于根据预先存储的智能合约地址查询智能合约信息;
身份验证单元,用于基于所查询的智能合约信息,对触发所述已发送事务量查询指令的拥有者进行身份验证,若验证通过,触发事务量查询模块,否则,返回错误信息并触发指令接收模块11。
可选实施例中,当所述服务器接收的是附加主资源量获取指令,所述处理装置还包括:
第四指令验证模块,用于对所述附加主资源量获取指令进行信息验证,若验证通过,触发资源量计算模块,否则,返回错误信息并触发指令接收模块11;
资源量计算模块,用于计算转移所述目标副资源量所需的所述附加主资源量;
资源量下发模块,用于将所述附加主资源量下发给触发所述附加主资源量获取指令的客户端,并触发指令接收模块11。
可选实施例中,当所述服务器接收的是智能合约创建指令,所述处理装置还包括:
第五指令验证模块,用于对所述智能合约创建指令进行信息验证,若验证通过,触发地址生成模块,否则,返回错误信息并触发指令接收模块11;
地址生成模块,用于创建智能合约,生成并存储智能合约地址;
地址下发模块,用于将所述智能合约地址下发给触发所述智能合约创建指令的客户端,并触发指令接收模块11。
可选实施例中,所述处理装置还包括:
所述服务器获取监听所述预签名事务的目标客户端;
所述服务器将所述预签名事务的处理结果下发给所述目标客户端。
需要说明的是,上述实施例提供的区块链上事务的处理装置在执行区块链上事务的处理方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的区块链上事务的处理装置与区块链上事务的处理方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例提供的区块链上事务的处理装置,当转移方地址拥有的主资源量不足时,通过代理方替转移方代交附加主资源量,可使转移方对其拥有的副资源量进行转移。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例方法的步骤。
本申请实施例提供了一种服务器包括:处理器和存储器。
本申请实施例中,处理器为计算机系统的控制中心,可以是实体机的处理器,也可以是虚拟机的处理器。处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable GateArray,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在本申请的一些实施例中,存储器中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器所执行以实现本申请实施例中的方法。
一些实施例中,服务器还包括有:外围设备接口和至少一个外围设备。处理器、存储器和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。具体地,外围设备包括:显示屏、摄像头和音频电路中的至少一种。
外围设备接口可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器和存储器。在本申请的一些实施例中,处理器、存储器和外围设备接口被集成在同一芯片或电路板上;在本申请的一些其他实施例中,处理器、存储器和外围设备接口中的任意一个或两个可以在单独的芯片或电路板上实现。本申请实施例对此不作具体限定。
显示屏用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏是触摸显示屏时,显示屏还具有采集在显示屏的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器进行处理。此时,显示屏还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在本申请的一些实施例中,显示屏可以为一个,设置于服务器的前面板;在本申请的另一些实施例中,显示屏可以为至少两个,分别设置在服务器的不同表面或呈折叠设计;在本申请的再一些实施例中,显示屏可以是柔性显示屏,设置在服务器的弯曲表面上或折叠面上。甚至,显示屏还可以设置成非矩形的不规则图形,也即异形屏。显示屏可以采用LCD(Liquid CrystalDisplay,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头用于采集图像或视频。可选地,摄像头包括前置摄像头和后置摄像头。通常,前置摄像头设置在客户端的前面板,后置摄像头设置在客户端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在本申请的一些实施例中,摄像头还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器进行处理。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在服务器的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。
电源用于为服务器中的各个组件进行供电。电源可以是交流电、直流电、一次性电池或可充电电池。当电源包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本申请实施例中示出的客户端结构框图并不构成对服务器的限定,服务器可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本申请中,术语“第一”、“第二”等仅用于描述的目的,而不能理解为指示或暗示相对重要性或顺序;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
本申请的描述中,需要理解的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本申请的限制。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (14)
1.一种区块链上事务的处理方法,其特征在于,所述方法包括:
步骤S1:服务器接收指令;
步骤S2:所述服务器判断指令类型,若是预签名事务哈希值获取指令,执行步骤S3,若是预签名事务代理指令,执行步骤S6;
步骤S3:所述服务器校验所述预签名事务哈希值获取指令是否由转移方发起,若是,执行步骤S4,否则,返回错误信息并执行步骤S1;
步骤S4:所述服务器从所述预签名事务哈希值获取指令中解析出预签名事务的事务信息,所述事务信息包括待转移的目标副资源量、转移所述目标副资源量所需的附加副资源量、所述目标副资源量的转移方地址、所述目标副资源量的接收方地址、所述转移方地址可使用的目标主资源量以及转移方资源扣减方式,所述目标主资源量小于等于所述转移方地址拥有的主资源量;
步骤S5:所述服务器对所述事务信息进行哈希运算,获得预签名事务哈希值,将所述预签名事务哈希值下发给触发所述预签名事务哈希值获取指令的客户端,执行步骤S1;
步骤S6:所述服务器对所述预签名事务代理指令进行信息验证,若验证通过,执行步骤S7,否则,返回错误信息并执行步骤S1;
步骤S7:所述服务器解析所述预签名事务代理指令获取所述预签名事务,对所述预签名事务进行合法性验证,若验证通过,执行步骤S8,否则,记录日志并将所述步骤S7生成的信息同步给同一区块链上的其他服务器,执行步骤S1;
步骤S8:所述服务器根据预先存储的智能合约地址查询智能合约信息,获取事务代理条件;
步骤S9:所述服务器判断所述预签名事务是否满足所述事务代理条件,若满足,执行步骤S10,否则,记录日志并将所述步骤S7至步骤S9生成的信息同步给同一区块链上的其他服务器,执行步骤S1;
步骤S10:所述服务器按所述目标副资源量与所述附加副资源量之和以及所述转移方资源扣减方式,扣减所述转移方地址拥有的资源量;
步骤S11:所述服务器获取接收所述附加副资源量的代理方地址并计算转移所述目标副资源量所需的附加主资源量,按所述转移方地址被扣减的资源量增加所述代理方地址拥有的资源量、按所述附加主资源量扣减所述代理方地址拥有的主资源量,其中,所述转移方地址拥有的主资源量小于所述附加主资源量;
步骤S12:所述服务器按所述目标副资源量增加所述接收方地址拥有的副资源量,记录日志并将所述步骤S7至步骤S12生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
2.根据权利要求1所述的方法,其特征在于,当所述转移方资源扣减方式为:仅扣减转移方地址拥有的副资源量时,所述步骤S10包括:
所述服务器按所述目标副资源量与所述附加副资源量之和扣减所述转移方地址拥有的副资源量;
所述步骤S11包括:
所述服务器获取接收所述附加副资源量的代理方地址并计算转移所述目标副资源量所需的附加主资源量,按所述附加副资源量增加所述代理方地址拥有的副资源量、按所述附加主资源量扣减所述代理方地址拥有的主资源量,其中,所述转移方地址拥有的主资源量小于所述附加主资源量。
3.根据权利要求1所述的方法,其特征在于,当所述转移方资源扣减方式为:同时扣减转移方地址拥有的主资源量与副资源量时,所述步骤S10包括:
所述服务器按所述目标副资源量与所述附加副资源量之和扣减所述转移方地址拥有的副资源量、按所述目标主资源量扣减所述转移方地址拥有的主资源量;
所述步骤S11包括:
所述服务器获取接收所述附加副资源量的代理方地址并计算转移所述目标副资源量所需的附加主资源量,按所述附加副资源量增加所述代理方地址拥有的副资源量、按所述目标主资源量增加所述代理方地址拥有的主资源量、按所述附加主资源量扣减所述代理方地址拥有的主资源量,其中,所述转移方地址拥有的主资源量小于所述附加主资源量。
4.根据权利要求2或3所述的方法,其特征在于,所述步骤S9包括:
步骤S91:所述服务器验证所述转移方签名是否合法,若合法,执行步骤S92,否则,记录日志并将所述步骤S91生成的信息同步给同一区块链上的其他服务器,执行步骤S1;
步骤S92:所述服务器验证所述转移方地址拥有的副资源量是否大于或者等于所述目标副资源量与所述附加副资源量之和,若是,执行步骤S93,否则,记录日志并将所述步骤S92生成的信息同步给同一区块链上的其他服务器,执行步骤S1;
步骤S93:所述服务器验证所述预签名事务是否被重复代理,若否,执行步骤S10,否则,记录日志并将所述步骤S93生成的信息同步给同一区块链上的其他服务器,执行步骤S1。
5.根据权利要求4所述的方法,其特征在于,所述步骤S93包括:
步骤S931:所述服务器获取事务历史列表,判断所述事务历史列表中是否存在所述预签名事务哈希值,若不存在,确定所述预签名事务未被重复代理,执行步骤S932,否则,确定所述预签名事务被重复代理,记录日志并将所述步骤S931生成的信息同步给同一区块链上的其他服务器,执行步骤S1;
步骤S932:所述服务器将所述预签名事务哈希值添加至所述事务历史列表中并执行步骤S10。
6.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
步骤S31:所述服务器提取所述预签名事务哈希值获取指令中的签名信息,利用预先存储的转移方公钥对所述签名信息进行解密,获得第一哈希值;
步骤S32:所述服务器对所述预签名事务哈希值获取指令中的正文信息进行哈希运算,获得第二哈希值;
步骤S33:所述服务器判断所述第一哈希值与所述第二哈希值是否相同,若相同,则确定所述预签名事务哈希值获取指令是由所述转移方发起,执行步骤S4,否则,返回错误信息并执行步骤S1。
7.根据权利要求2所述的方法,其特征在于,所述步骤S2还包括:若是已发送事务量查询指令,则执行:
步骤S6-A1:所述服务器对所述已发送事务量查询指令进行信息验证,若验证通过,执行步骤S6-A2,否则,返回错误信息并执行步骤S1;
步骤S6-A2:所述服务器查询所述代理方地址的已发送事务量;
步骤S6-A3:所述服务器将所述已发送事务量下发给触发所述已发送事务量查询指令的客户端,并执行步骤S1。
8.根据权利要求7所述的方法,其特征在于,所述步骤S6-A1包括:
步骤S6-A11:所述服务器通过所述已发送事务量查询指令的签名数据计算触发已发送事务量查询指令的拥有者公钥,利用所述拥有者公钥对所述已发送事务量查询指令进行签名验证,若验证通过,执行步骤S6-A12,否则,返回错误信息并执行步骤S1;
步骤S6-A12:所述服务器根据预先存储的智能合约地址查询智能合约信息;
步骤S6-A13:所述服务器基于所查询的智能合约信息,对触发所述已发送事务量查询指令的拥有者进行身份验证,若验证通过,执行步骤S6-A2,否则,返回错误信息并执行步骤S1。
9.根据权利要求1所述的方法,其特征在于,所述步骤S2还包括:若是附加主资源量获取指令,则执行:
步骤S6-B1:所述服务器对所述附加主资源量获取指令进行信息验证,若验证通过,执行步骤S6-B2,否则,返回错误信息并执行步骤S1;
步骤S6-B2:所述服务器计算转移所述目标副资源量所需的所述附加主资源量;
步骤S6-B3:所述服务器将所述附加主资源量下发给触发所述附加主资源量获取指令的客户端,并执行步骤S1。
10.根据权利要求1所述的方法,其特征在于,所述步骤S2还包括:若是智能合约创建指令,则执行:
步骤S3-A1:所述服务器对所述智能合约创建指令进行信息验证,若验证通过,执行步骤S3-A2,否则,返回错误信息并执行步骤S1;
步骤S3-A2:所述服务器创建智能合约,生成并存储智能合约地址;
步骤S3-A3:所述服务器将所述智能合约地址下发给触发所述智能合约创建指令的客户端,并执行步骤S1。
11.根据权利要求1所述的方法,其特征在于,所述服务器处理所述预签名事务之后,还包括:
所述服务器获取监听所述预签名事务的目标客户端;
所述服务器将所述预签名事务的处理结果下发给所述目标客户端。
12.一种区块链上事务的处理装置,其特征在于,所述装置包括:
指令接收模块,用于服务器接收指令;
指令判断模块,用于判断指令类型,若是预签名事务哈希值获取指令,触发第一指令验证模块,若是预签名事务代理指令,触发第二指令验证模块;
第一指令验证模块,用于校验所述预签名事务哈希值获取指令是否由转移方发起,若是,触发信息查询模块,否则,返回错误信息并触发指令接收模块;
事务信息获取模块,用于从所述预签名事务哈希值获取指令中解析出预签名事务的事务信息,所述事务信息包括待转移的目标副资源量、转移所述目标副资源量所需的附加副资源量、所述目标副资源量的转移方地址、所述目标副资源量的接收方地址、所述转移方地址可使用的目标主资源量以及转移方资源扣减方式,所述目标主资源量小于等于所述转移方地址拥有的主资源量;
哈希值下发模块,用于对所述事务信息进行哈希运算,获得预签名事务哈希值,将所述预签名事务哈希值下发给触发所述预签名事务哈希值获取指令的客户端,触发指令接收模块;
第二指令验证模块,用于对所述预签名事务代理指令进行信息验证,若验证通过,触发签名验证模块,否则,返回错误信息并触发指令接收模块;
签名验证模块,用于解析所述预签名事务代理指令获取所述预签名事务,对所述预签名事务进行合法性验证,若验证通过,触发代理条件获取模块,否则,记录日志并将所述签名验证模块生成的信息同步给同一区块链上的其他服务器,触发指令接收模块;
代理条件获取模块,用于根据预先存储的智能合约地址查询智能合约信息,获取事务代理条件;
事务判断模块,用于判断所述预签名事务是否满足所述事务代理条件,若满足,触发转移方资源处理模块,否则,记录日志并将所述签名验证模块至事务判断模块生成的信息同步给同一区块链上的其他服务器,触发指令接收模块;
转移方资源处理模块,用于按所述目标副资源量与所述附加副资源量之和以及所述转移方资源扣减方式,扣减所述转移方地址拥有的资源量;
代理方资源处理模块,用于获取接收所述附加副资源量的代理方地址并计算转移所述目标副资源量所需的附加主资源量,按所述转移方地址被扣减的资源量增加所述代理方地址拥有的资源量、按所述附加主资源量扣减所述代理方地址拥有的主资源量,其中,所述转移方地址拥有的主资源量小于所述附加主资源量;
接收方资源处理模块,用于按所述目标副资源量增加所述接收方地址拥有的副资源量,记录日志并将所述签名验证模块至接收方资源处理模块生成的信息同步给同一区块链上的其他服务器,触发指令接收模块。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现所述权利要求1-11中任一项所述方法的步骤。
14.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现所述权利要求1-11中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111661983.XA CN114328538A (zh) | 2021-12-30 | 2021-12-30 | 一种区块链上事务的处理方法、装置、存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111661983.XA CN114328538A (zh) | 2021-12-30 | 2021-12-30 | 一种区块链上事务的处理方法、装置、存储介质及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328538A true CN114328538A (zh) | 2022-04-12 |
Family
ID=81021713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111661983.XA Pending CN114328538A (zh) | 2021-12-30 | 2021-12-30 | 一种区块链上事务的处理方法、装置、存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328538A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226938A (zh) * | 2023-05-10 | 2023-06-06 | 飞天诚信科技股份有限公司 | 一种通过智能合约管理事务的实现方法及系统 |
WO2024093274A1 (zh) * | 2022-11-02 | 2024-05-10 | 飞天诚信科技股份有限公司 | 一种nft流通数据的权限控制方法及装置 |
-
2021
- 2021-12-30 CN CN202111661983.XA patent/CN114328538A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024093274A1 (zh) * | 2022-11-02 | 2024-05-10 | 飞天诚信科技股份有限公司 | 一种nft流通数据的权限控制方法及装置 |
CN116226938A (zh) * | 2023-05-10 | 2023-06-06 | 飞天诚信科技股份有限公司 | 一种通过智能合约管理事务的实现方法及系统 |
CN116226938B (zh) * | 2023-05-10 | 2023-08-08 | 飞天诚信科技股份有限公司 | 一种通过智能合约管理事务的实现方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111008839B (zh) | 资源转移数据管理方法、装置及存储介质 | |
CN110365491B (zh) | 业务处理方法、装置、设备、存储介质以及数据共享系统 | |
CN108846657B (zh) | 一种电子转账的方法以及相关装置 | |
CN111245745B (zh) | 消息发送方法、装置、节点设备及存储介质 | |
CN111401867A (zh) | 基于区块链的资源转移方法、装置、节点设备及存储介质 | |
CN111080443B (zh) | 基于区块链的业务处理方法、装置、设备及存储介质 | |
CN114328538A (zh) | 一种区块链上事务的处理方法、装置、存储介质及服务器 | |
CN111340482B (zh) | 冲突检测方法、装置、节点设备及存储介质 | |
CN110601858B (zh) | 证书管理方法及装置 | |
CN111355732B (zh) | 链接检测方法、装置、电子设备及存储介质 | |
CN110598460B (zh) | 基于区块链的电子签字方法、装置及存储介质 | |
CN111339181B (zh) | 区块存储方法、装置、节点设备及存储介质 | |
CN110826103A (zh) | 基于区块链的文档权限处理方法、装置、设备及存储介质 | |
CN111045568A (zh) | 基于区块链的虚拟物品处理方法、装置、设备及存储介质 | |
CN111667371B (zh) | 基于区块链的资源聚合方法、系统、设备及存储介质 | |
CN110597924A (zh) | 基于区块链的用户标识处理方法、装置、设备及存储介质 | |
CN110598386A (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN111212074B (zh) | 基于区块链的资格认定方法、装置、设备及存储介质 | |
CN110855780B (zh) | 基于区块链的面试评价信息共享方法、装置、设备及介质 | |
CN111327427B (zh) | 提交备选区块的方法、装置、节点设备、系统及存储介质 | |
CN113506108A (zh) | 一种账户管理方法、装置、终端及存储介质 | |
CN114565388B (zh) | 共识轮次的更新方法、装置、电子设备及存储介质 | |
CN110570289A (zh) | 基于区块链的业务处理方法、装置、设备及存储介质 | |
US20240160505A1 (en) | Method of processing agreement task | |
CN113807848B (zh) | 数据验证方法、装置、计算机可读存储介质及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231103 Address after: 17th floor, building B, Huizhi building, No.9, Xueqing Road, Haidian District, Beijing 100085 Applicant after: Feitian Technologies Co.,Ltd. Address before: 100085 1501a, unit 2, 12 / F, Huizhi building, 9 Xueqing Road, Haidian District, Beijing Applicant before: Beijing Feitian Digital Technology Co.,Ltd. |