CN116226938A - 一种通过智能合约管理事务的实现方法及系统 - Google Patents
一种通过智能合约管理事务的实现方法及系统 Download PDFInfo
- Publication number
- CN116226938A CN116226938A CN202310517993.9A CN202310517993A CN116226938A CN 116226938 A CN116226938 A CN 116226938A CN 202310517993 A CN202310517993 A CN 202310517993A CN 116226938 A CN116226938 A CN 116226938A
- Authority
- CN
- China
- Prior art keywords
- transaction
- intelligent contract
- white list
- verification
- transfer
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开一种通过智能合约管理事务的实现方法及系统,主设备将包含第一转移信息、第一转移事务签名结果和帐户智能合约地址的第一转移事务发送给服务器;服务器判断转移接收地址是否在与帐户智能合约地址对应的帐户智能合约内的白名单地址中,否则对第一转移事务进行验证,将验证结果上传到区块链,是则将第一转移事务发送至事务暂存池;区块链节点从事务暂存池中提取第一转移事务,通过与帐户智能合约地址对应的帐户智能合约对第一转移事务签名结果进行验证,验证成功则处理第一转移事务,将处理结果上传到区块链;服务器实时获取区块链上的处理结果并返回给主设备去更新保存的总消耗数。保证了用户信息和数据的安全。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种通过智能合约管理事务的实现方法及系统。
背景技术
区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有不少于一半数量的服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。由于区块链技术的已上链记录事务不可逆特性,导致已处理完的事务无法以任何方式撤销或修改,因此如果出现私钥被盗后非法处理事务的情况,用户无法在非法事务被区块链记录之前得知消息并将其拦截和追回损失,存在用户信息和数据安全的隐患,故亟需提供一种安全可靠的管理事务的实现方法。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种通过智能合约管理事务的实现方法及系统。
第一方面,本发明实施例提供了一种通过智能合约管理事务的实现方法,包括:
步骤S1:当主设备接收到用户输入的第一转移信息时,根据所述第一转移信息生成第一待签名数据,对所述用户的身份进行验证,如合法则使用用户私钥对所述第一待签名数据进行签名得到第一转移事务签名结果,执行步骤S2,如不合法则报错;
步骤S2:所述主设备根据第一转移信息中的转移接收地址和转移事务数字生成第一转移事务的数据域,根据所述第一转移事务的数据域、所述第一转移事务签名结果和帐户智能合约地址生成第一转移事务,将包含所述第一转移事务的指令发送给服务器;
步骤S3:所述服务器对接收到的指令进行解析得到所述第一转移事务,根据所述第一转移事务中的帐户智能合约地址从对应的帐户智能合约中获取白名单智能合约地址,根据所述白名单智能合约地址从对应的白名单智能合约中获取所有白名单地址,判断所述第一转移事务中的转移接收地址是否在所述获取的白名单地址中,是则执行步骤S4,否则通过验证设备对所述第一转移事务进行验证,并将验证结果上传到区块链;
步骤S4:所述服务器将所述第一转移事务发送至事务暂存池,并接收所述事务暂存池返回的信息;
步骤S5:区块链节点实时地从所述事务暂存池中提取事务,当判断提取的所述事务为第一转移事务时执行步骤S6;
步骤S6:所述区块链节点从所述第一转移事务中提取转移接收地址、转移事务数字、第一转移事务签名结果和帐户智能合约地址,通过与所述帐户智能合约地址对应的帐户智能合约对所述第一转移事务签名结果进行验证,如验证成功则根据所述转移接收地址和转移事务数字处理第一转移事务,将事务执行成功写入到第一转移事务的事务日志中,执行步骤S7,如验证失败则将事务执行失败写入到第一转移事务的事务日志中,执行步骤S7;
步骤S7:当所述区块链节点轮询成为提议节点时,所述提议节点将所述第一转移事务和所述事务日志上传到区块链;
步骤S8:所述服务器实时获取所述区块链上的数据,从获取的所述数据中获取第一转移事务和事务日志,并将所述第一转移事务和所述事务日志返回给所述主设备,如所述事务日志中包含事务执行成功则所述主设备根据所述第一转移事务和所述事务日志更新保存的总消耗数。
第二方面,本发明实施例又提供一种通过智能合约管理事务的实现系统,包括主设备、验证设备、服务器和区块链节点,用于实现前述的通过智能合约管理事务的实现方法。
第三方面,本发明实施例又提供一种电子设备,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现前述的通过智能合约管理事务的实现方法。
第四方面,本发明实施例又提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行前述的通过智能合约管理事务的实现方法。
第五方面,本发明实施例又提供一种芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行前述的通过智能合约管理事务的实现方法。
本发明与现有技术相比,具有以下优点:本发明实施例中,根据白名单智能合约对转移事务进行检查,对于满足白名单智能合约的转移事务进行处理,对于不满足白名单智能合约的转移事务认定为非法事务,需要对该转移事务进行验证。在处理转移事务或验证转移事务时,将事务执行成功或失败上传到区块链上,明确事务执行结果。通过本发明的技术方案可防止盗窃私钥者非法处理事务,保证用户信息和数据的安全。
附图说明
图1为本发明实施例一提供的一种通过智能合约管理事务的实现方法的流程图;
图2至图4为本发明实施例二提供的一种通过智能合约管理事务的实现方法的流程图。
具体实施方式
本申请提出了一种通过智能合约管理事务的实现方法及系统,下面结合附图,对本申请具体实施方式进行详细说明。所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
本实施例中的智能合约均设置在区块链节点上,智能合约地址设置在主设备中或服务器中。
实施例一
本发明实施例一提供了一种通过智能合约管理事务的实现方法,如图1所示,包括:
步骤S1:当主设备接收到用户输入的第一转移信息时,根据第一转移信息生成第一待签名数据,对用户的身份进行验证,如合法则使用用户私钥对第一待签名数据进行签名得到第一转移事务签名结果,执行步骤S2,如不合法则报错;
步骤S2:主设备根据第一转移信息中的转移接收地址和转移事务数字生成第一转移事务的数据域,根据第一转移事务的数据域、第一转移事务签名结果和帐户智能合约地址生成第一转移事务,将包含第一转移事务的指令发送给服务器;
步骤S3:服务器对接收到的指令进行解析得到第一转移事务,根据第一转移事务中的帐户智能合约地址从对应的帐户智能合约中获取白名单智能合约地址,根据白名单智能合约地址从对应的白名单智能合约中获取所有白名单地址,判断第一转移事务中的转移接收地址是否在获取的白名单地址中,是则执行步骤S4,否则通过验证设备对第一转移事务进行验证,并将验证结果上传到区块链;
具体的,在本实施例中,通过验证设备对第一转移事务进行验证,并将验证结果上传到区块链,包括:
步骤P:服务器给主设备返回第一转移事务需验证信息,主设备通过验证设备对第一转移信息进行签名得到第一转移事务验证签名结果,主设备使用用户私钥对用户输入的第二转移信息进行签名得到第二转移事务签名结果,根据验证设备ID、第一转移事务验证签名结果、第二转移事务签名结果、帐户智能合约地址生成第二转移事务,通过服务器将第二转移事务发送至事务暂存池;
区块链节点从事务暂存池中提取到第二转移事务,通过与帐户智能合约地址对应的帐户智能合约对第二转移事务中的第二转移事务签名结果进行验证,如验证成功则使用与验证设备ID对应的验证设备智能合约对第二转移事务中的第一转移事务验证签名结果进行验证,并将验证结果上传到区块链。
进一步地,步骤P包括:
步骤P0:服务器暂存第一转移事务,并给主设备返回第一转移事务需验证信息;
步骤P1:主设备接收到服务器发送的信息后判断是否满足执行第一转移事务验证操作的条件,是则通过验证设备对第一转移信息进行签名得到第一转移事务验证签名结果,通过服务器判断能否继续执行转移事务验证操作,是则执行步骤P2;
步骤P2:主设备将第一转移信息中的转移接收地址和转移事务数字、验证设备ID、对应的第一转移事务验证签名结果、帐户智能合约地址写入到第二转移事务的数据域;当接收到用户输入的第二转移信息时,根据第二转移事务信息生成第二转移事务待签名数据,并对用户身份进行验证,如验证通过则使用用户私钥对第二转移事务待签名数据进行签名得到第二转移事务签名结果,将第二转移事务待签名数据和第二转移事务签名结果写入到第二转移事务的签名数据位置,将包含第二转移事务的指令发送给服务器;第二转移信息不包括转移接收地址和转移事务数字;
步骤P3:服务器对接收到的指令进行解析,并将解析得到的第二转移事务发送至事务暂存池,并接收暂存池返回的信息;
步骤P4:区块链节点从事务暂存池中提取事务,当判断提取的事务为第二转移事务时执行步骤P5;
步骤P5:区块链节点从第二转移事务中提取转移接收地址、转移事务数字、第二转移事务待签名数据、第二转移事务签名结果、验证设备ID、对应的第一转移事务验证签名结果和帐户智能合约地址,通过与帐户智能合约地址对应的帐户智能合约使用第二转移事务待签名数据对第二转移事务签名结果进行验证,如验证成功则通过验证设备ID和验证设备智能合约对对应的第一转移事务验证签名结果进行验证,如验证成功则根据转移接收地址和转移事务数字处理第二转移事务,将事务执行成功写入到第二转移事务的事务日志中,执行步骤P6,否则将事务执行失败写入到第二转移事务的事务日志中,执行步骤P6;
步骤P6:当区块链节点轮询成为提议节点时,提议节点将第二转移事务和事务日志上传到区块链;
步骤P7:服务器实时获取区块链上的数据,从获取的数据中获取第二转移事务和事务日志,将第二转移事务和事务日志返回给主设备,如事务日志中有事务执行执行则主设备根据第二转移事务和事务日志中更新保存的总消耗数。
步骤S4:服务器将第一转移事务发送至事务暂存池,并接收事务暂存池返回的信息;
步骤S5:区块链节点实时地从事务暂存池中提取事务,当判断提取的事务为第一转移事务时执行步骤S6;
步骤S6:区块链节点从第一转移事务中提取转移接收地址、转移事务数字、第一转移事务签名结果和帐户智能合约地址,通过与帐户智能合约地址对应的帐户智能合约对第一转移事务签名结果进行验证,如验证成功则根据转移接收地址和转移事务数字处理第一转移事务,将事务执行成功写入到第一转移事务的事务日志中,执行步骤S7,如验证失败则将事务执行失败写入到第一转移事务的事务日志中,执行步骤S7;
步骤S7:当区块链节点轮询成为提议节点时,提议节点将第一转移事务和事务日志上传到区块链;
步骤S8:服务器实时获取区块链上的数据,从获取的数据中获取第一转移事务和事务日志,并将第一转移事务和事务日志返回给主设备,如事务日志中包含事务执行成功则主设备根据第一转移事务和事务日志更新保存的总消耗数。
可选的,本实施例的方法还包括:
步骤M1:当主设备接收到用户触发的添加白名单信息时,判断是否满足执行添加白名单操作的条件,是则通过验证设备对待添加白名单地址进行签名得到添加白名单事务签名结果,执行步骤M2,否则报错,结束;
步骤M2:主设备根据待添加白名单地址、添加白名单事务签名结果和获取的验证设备ID生成添加白名单事务,将包含添加白名单事务的指令发送至服务器;
步骤M3:服务器对接收到的指令进行解析得到添加白名单事务,将添加白名单事务发送至事务暂存池,并接收暂存池返回的信息;
步骤M4:区块链节点从事务暂存池中提取事务,当判断提取的事务为添加白名单事务时执行步骤M5;
步骤M5:区块链节点从添加白名单事务中提取待添加白名单地址、添加白名单事务签名结果和验证设备ID,通过验证设备智能合约使用与验证设备ID对应的验证设备公钥对添加白名单事务签名结果进行验证,如验证成功则将待添加白名单地址保存在白名单智能合约中,将事务执行成功写入到添加白名单事务的事务日志中,执行步骤M6,如验证失败则将事务执行失败写入到添加白名单事务的事务日志中,执行步骤M6;
步骤M6:当区块链节点轮询成为提议节点时,提议节点将添加白名单事务和事务日志上传到区块链;
步骤M7:服务器实时获取区块链上的数据,并从获取的数据中获取事务日志,将事务日志返回给主设备。
具体的,在本实施例中,如步骤M1中执行判断是否满足执行添加白名单操作的条件过程中,如在帐户智能合约中未找到白名单智能合约地址则执行步骤N0;
步骤N0:服务器向主设备返回白名单智能合约不存在响应;
步骤N1:主设备判断是否满足执行添加白名单智能合约操作的条件,是则通过验证设备对待添加白名单地址进行签名得到创建白名单智能合约事务签名结果,执行步骤N2,否则报错,结束;
步骤N2:主设备根据待添加白名单地址、创建白名单智能合约事务签名结果和获取的验证设备ID生成创建白名单智能合约事务,将包含创建白名单智能合约事务的指令发送至服务器;
步骤N3:服务器对接收到的指令进行解析得到创建白名单智能合约事务,将创建白名单智能合约事务发送至事务暂存池,并接收暂存池返回的信息;
步骤N4:区块链节点从事务暂存池中提取事务,当判断提取的事务为创建白名单智能合约事务时执行步骤N5;
步骤N5:区块链节点从创建白名单智能合约事务中提取待添加白名单地址、创建白名单智能合约事务签名结果和验证设备ID,通过验证设备智能合约使用与验证设备ID对应的验证设备公钥对创建白名单智能合约事务签名结果进行验证,如验证成功则创建白名单智能合约,将待添加白名单地址保存在白名单智能合约中,从新创建的白名单智能合约中获取对应的白名单智能合约地址并写入到帐户智能合约中,将事务执行成功和白名单智能合约地址写入到创建白名单智能合约事务的事务日志中,执行步骤N6,如验证失败则将事务执行失败写入到创建白名单智能合约事务的事务日志中,执行步骤N6;
步骤N6:当区块链节点轮询成为提议节点时,提议节点将创建白名单智能合约事务和事务日志上传到区块链;
步骤N7:服务器实时获取区块链上的数据,并从获取的数据中获取事务日志,如事务日志中包含事务执行成功则提取事务日志中的白名单智能合约地址并与主设备ID对应保存,将白名单智能合约地址返回给主设备进行保存。
本发明实施例中,根据白名单智能合约对转移事务进行检查,对于满足白名单智能合约的转移事务进行处理,对于不满足白名单智能合约的转移事务认定为非法事务,需要对该转移事务进行验证。在处理转移事务或验证转移事务时,将事务执行成功或失败上传到区块链上,明确事务执行结果。通过本发明的技术方案可防止盗窃私钥者非法处理事务,保证用户信息和数据的安全。
实施例二
本发明实施例二提供一种通过智能合约管理事务的实现方法,如图2-图4所示,包括:
步骤201:当主设备接收到用户的触发信息时,判断是否存在对应帐户,是则执行步骤205,否则执行步骤202;
步骤202:主设备显示选择界面并判断用户的选择信息,如为创建帐户则执行步骤203,如为恢复帐户则执行步骤204;
步骤203:主设备执行创建帐户操作;
步骤204:主设备执行恢复帐户操作;
步骤205:主设备判断帐户下是否有验证设备,是则执行步骤207,否则执行步骤206;
具体的,在本实施例中,步骤205包括:判断帐户信息中的验证设备的数量是否为0,是则执行步骤206,否则执行步骤207;
在本实施例中,验证设备可以是本设备或其他设备;
步骤206:主设备执行添加验证设备操作;
具体的,在本实施例中,步骤206的具体实现过程包括:
步骤C1:主设备显示添加验证设备页面,提示用户进行操作,当接收到用户触发的添加验证设备信息时向服务器发送包含帐户智能合约地址的查询验证设备智能合约请求;
步骤C2:服务器从接收到的查询验证设备智能合约请求中提取帐户智能合约地址,根据帐户智能合约地址向对应的帐户智能合约发送查询验证设备智能合约请求;
步骤C3:帐户智能合约接收到查询验证设备智能合约请求后,判断是否存在验证设备智能合约,是则给服务器返回验证设备智能合约地址,执行步骤C43,否则执行步骤C4;
步骤C4:帐户智能合约向服务器返回验证设备智能合约不存在响应;
步骤C5:服务器将验证设备智能合约不存在响应转发给主设备;
步骤C6:主设备提示用户不存在验证设备智能合约,需创建验证设备智能合约并添加一个验证设备,等待用户进行确认;
步骤C7:主设备接收到用户确认信息,根据主设备ID和验证设备数量最大值生成添加验证设备请求,将添加验证设备请求发送至服务器;
在本实施例中,添加验证设备请求用于创建一个验证设备智能合约,添加验证设备请求中包括事务处理消耗数;如果添加验证设备请求中的事务处理消耗数不足以支持智能合约的运行,则会创建失败;
步骤C8:服务器从接收到的添加验证设备请求中提取主设备ID和验证设备数量最大值,根据主设备ID和验证设备数量最大值生成添加验证设备的响应收集表,添加验证设备计时开始,并向主设备返回服务器地址;
在本实施例中,验证设备数量的初始值为0;
步骤C9:主设备将包括服务器地址、主设备ID和用户公钥的连接信息显示在主设备屏幕上;
可选的,在本实施例中,连接信息可以以二维码或链接等方式显示在主设备屏幕上,提醒用户将连接信息以二维码方式或链接方式展示或分享给要添加的验证设备;
步骤C10:验证设备获取主设备显示的连接信息并对连接信息进行解析,并将解析结果中的主设备ID和用户公钥显示在屏幕上,等待持有验证设备的用户进行确认是否成为主设备的验证设备,是则执行步骤C12,否则执行步骤C11;
可选的,在本实施例中,验证设备通过扫描主设备显示的二维码或验证设备通过线下方式获取主设备显示的链接,用户触发验证设备上的连接获取包含主设备ID和用户公钥的连接信息,例如,线下方式可以为复制粘贴主设备上的链接通过短信发送给验证设备或由用户将主设备显示的链接输入到验证设备上;
本实施例中的验证设备和主设备是有同样软件或硬件的设备;
步骤C11:验证设备根据解析结果中的服务器地址连接对应服务器,向该服务器发送包括主设备ID和取消成为验证设备信息的添加验证设备响应,执行步骤C13;
步骤C12:验证设备根据解析得到的服务器地址连接对应服务器,向服务器订阅发送给自身的所有消息,订阅成功后根据主设备ID、用户公钥、验证设备ID、验证设备公钥生成添加验证设备待签名数据,使用验证设备私钥对添加验证设备待签名数据进行签名得到第三签名结果,根据添加验证设备待签名数据和第三签名结果生成添加验证设备响应发送至服务器,执行步骤C13;
步骤C13:服务器接收添加验证设备响应,从添加验证设备响应中提取主设备ID,判断主设备ID是否在添加验证设备的响应收集表中,是则执行步骤C14,否则删除接收到的添加验证设备响应,通知验证设备删除添加验证设备响应和连接信息,结束;
步骤C14:服务器根据主设备ID判断接收添加验证设备响应是否超时,是则执行步骤C15,否则执行步骤C16;
步骤C15:服务器向主设备返回添加验证设备的响应收集表,删除添加验证设备请求、响应收集表和添加验证设备响应,执行步骤C21;
步骤C16:服务器判断添加验证设备响应的类型,如为添加则执行步骤C17,如为取消则执行步骤C18;
步骤C17:服务器按照接收时间顺序将包含添加验证设备待签名数据和第三签名结果的添加验证设备响应填入与主设备ID对应的添加验证设备的响应收集表中,执行步骤C19;
步骤C18:服务器按照接收时间顺序将包含取消成为验证设备信息的添加验证设备响应填入与主设备ID对应的添加验证设备的响应收集表,执行步骤C19;
步骤C19:服务器判断添加验证设备的响应收集表是否已填满,是则执行步骤C20,否则服务器等待接收添加验证设备响应,返回步骤C13;
步骤C20:服务器将添加验证设备计时设置为超时,将包含添加验证设备的响应收集表的响应发送给与主设备ID对应的主设备,服务器删除该添加验证设备的响应收集表、添加验证设备请求和添加验证设备响应,执行步骤C21;
步骤C21:主设备从接收到的响应中提取响应收集表,删除响应收集表中的包含取消成为验证设备信息的添加验证设备响应,依次从响应收集表中提取添加验证设备待签名数据和第三签名结果,使用添加验证设备待签名数据对第三签名数据进行验证,如验证成功则执行步骤C22,如验证失败则报错,结束;
具体的,在本实施例中,使用添加验证设备待签名数据对第三签名数据进行验证,包括:使用添加验证设备待签名数据中的验证设备公钥对第三签名数据进行解密,对添加验证设备待签名数据计算哈希,判断解密结果与哈希结果是否匹配,是则验证成功,否则验证失败;
步骤C22:主设备显示添加验证设备待签名数据中的验证设备ID和验证设备公钥,提示用户输入提供事务处理消耗数的地址、总事务处理消耗数和单位事务处理消耗数,根据提供事务处理消耗数的地址查询该地址的总消耗数,判断用户输入的总事务处理消耗数是否小于该总消耗数,是则执行步骤C23,否则报错,提示用户重新输信息;
步骤C23:主设备使用帐户智能合约地址、验证设备ID、验证设备公钥、预设的创建验证设备智能合约的智能合约地址、总事务处理消耗数、单位事务处理消耗数、预置的创建验证设备智能合约函数名称、提供事务处理消耗数的地址生成添加验证设备事务,使用提供事务处理消耗数的地址对应的私钥对添加验证设备事务进行签名,得到添加验证设备事务签名结果,将添加验证设备事务签名结果写入到添加验证设备事务的签名数据位置,将包含主设备ID和添加验证设备事务的指令发送至服务器;
步骤C24:服务器对接收到的指令进行解析得到主设备ID和添加验证设备事务,暂存主设备ID,将添加验证设备事务发送至事务暂存池,并接收事务暂存池返回的接收到事务的成功信息;
步骤C25:区块链节点从事务暂存池中提取事务并打包成区块;
在本实施例中,每个区块链节点将事务按单位事务处理消耗数由高到低排列,每次选取单位事务处理消耗数最高的事务,提取事务的数量在区块最大可容纳数据量内,通常为10-15个事务;例如步骤C25中,每个区块链节点都从事务暂存池中提取15个事务;
步骤C26:区块链节点判断提取的事务是否为添加验证设备事务,是则执行步骤C27,否则报错,结束;
在本实施例中,步骤C26包括:区块链节点判断提取的事务的数据格式是否符合添加验证设备事务的要求,是则执行步骤C27,否则报错,结束;
步骤C27:区块链节点提取添加验证设备事务中的创建验证设备智能合约的智能合约地址,根据创建验证设备智能合约的智能合约地址找到对应的创建验证设备智能合约的智能合约,根据创建验证设备智能合约函数名称判断找到的创建验证设备智能合约的智能合约中是否存在创建验证设备智能合约函数,是则根据添加验证设备事务调用创建验证设备智能合约的智能合约中的创建验证设备智能合约函数,执行步骤C29,否则报错,结束;
步骤C28:创建验证设备智能合约的智能合约检测到创建验证设备智能合约函数被调用时,从创建验证设备智能合约函数中提取添加验证设备事务;
步骤C29:创建验证设备智能合约的智能合约对提取的添加验证设备事务进行解析得到帐户智能合约地址、验证设备ID、验证设备公钥、预设的创建验证设备智能合约的智能合约地址、总事务处理消耗数、单位事务处理消耗数、预置的创建验证设备智能合约函数名称、提供事务处理消耗数的地址和添加验证设备事务签名结果;
步骤C30:创建验证设备智能合约的智能合约根据提供事务处理消耗数的地址计算对应的公钥,使用该公钥对添加验证设备事务签名结果进行验证,如验证成功则执行步骤C34,如验证失败则执行步骤C31;
步骤C31:创建验证设备智能合约的智能合约根据验证操作实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤C32,否则执行步骤C33;
步骤C32:创建验证设备智能合约的智能合约根据验证操作实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作实际事务处理消耗数和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C37;
步骤C33:创建验证设备智能合约的智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C37;
步骤C34:创建验证设备智能合约的智能合约根据验证操作实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤C35,否则执行步骤C33;
步骤C35:创建验证设备智能合约的智能合约根据验证操作实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,根据创建验证设备智能合约操作的实际事务处理消耗数和两次写入操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤C36,否则将当前事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C37;
步骤C36:创建验证设备智能合约的智能合约创建验证设备智能合约,将验证设备ID和对应验证设备公钥写入到新创建的验证设备智能合约中,根据帐户智能合约地址查找帐户智能合约,将验证设备智能合约地址写入到找到的帐户智能合约的存储区中,根据创建智能合约操作的实际事务处理消耗数和两次写入操作的实际事务处理消耗数更新当前总事务处理消耗数,从新创建的验证设备智能合约中获取对应的验证设备智能合约地址,将验证设备智能合约地址、所有操作实际事务处理消耗数和事务执行成功写入到添加验证设备事务的事务日志中,将添加验证设备事务和事务日志返回给区块链节点,执行步骤C37;
步骤C37:区块链节点接收创建验证设备智能合约的智能合约返回的添加验证设备事务和事务日志并保存,当区块链节点轮询成为提议节点时,提议节点将添加验证设备事务和事务日志上传到区块链;
具体的,提议节点将添加验证设备事务和事务日志上传到区块链,包括:
步骤C37-1:提议节点根据添加验证设备事务和事务日志计算出符合区块链网络要求的区块并进行广播;
步骤C37-2:其他节点接收到区块时,判断该区块的数据结构是否符合区块链网络要求,是则执行步骤C37-3,否则广播包含上链失败信息的区块,抛弃接收到的区块,执行步骤C37-5;
步骤C37-3:其他节点判断该区块中的每个事务结构是否符合区块链网络要求且判断是否包含有事务执行结果,如判断均为是则将该区块保存在自己的区块链最后,广播包含上链成功信息的区块,执行步骤C37-4,否则广播包含上链失败信息的区块,抛弃接收到的区块,执行步骤C37-5;
在本实施例中,事务执行结果包括事务执行成功或事务执行失败;
步骤C37-4:当提议节点接收到第一预设数量的包含上链成功信息的区块时将计算得到的区块保存在自己节点区块链的最后并广播包含上链成功信息的区块;
步骤C37-5:当提议节点收到第二预设数量的包含上链失败信息的区块时,抛弃计算得到的区块;
当全网所有节点都将该区块保存时,添加验证设备事务和事务日志被成功上传到区块链中;
步骤C38:服务器实时获取区块链上的数据,从获取到的数据中提取事务日志和添加验证设备事务,判断事务日志中是否包含有事务执行成功,是则执行步骤C39,否则执行步骤C41;
在本实施例中,如未获取到数据或获取到的数据不是添加验证设备事务,均执行步骤C41;
步骤C39:服务器提取事务日志中的验证设备智能合约地址并与主设备ID对应保存,将包含验证设备智能合约地址的创建成功响应返回主设备;
步骤C40:主设备从接收到的创建成功响应中提取验证设备智能合约地址并保存,提示用户验证设备添加成功,结束;
步骤C41:服务器将创建失败响应返回给主设备;
步骤C42:主设备接收到创建失败响应时报错,结束;
步骤C43:服务器接收验证设备智能合约地址,根据验证设备智能合约地址从对应的验证设备智能合约中读取验证设备的数量和验证设备最大值;
步骤C44:服务器判断读取的验证设备的数量是否已达验证设备最大值,是则将验证设备数量已达最大值的响应发送给主设备,结束,否则执行步骤C45;
步骤C45:服务器向主设备返回包括验证设备智能合约地址和验证设备最大值的响应;
步骤C46:主设备接收响应,提取响应中的验证设备数量和验证设备最大值,计算剩余可添加的验证设备数量,将剩余可添加的验证设备数量显示给用户并提示用户进行确认;
步骤C47:当主设备接收到用户的确认信息时,根据主设备ID和剩余可添加的验证设备数量生成添加验证设备请求,将添加验证设备请求发送至服务器;
步骤C48:服务器从接收到的添加验证设备请求中提取主设备ID和剩余可添加的验证设备数量,根据主设备ID和剩余可添加的验证设备数量生成添加验证设备响应收集表,添加验证设备计时开始,并向主设备返回服务器地址;
步骤C49:主设备将包括服务器地址、主设备ID和用户公钥的连接信息显示在主设备屏幕上;
可选的,在本实施例中,连接信息可以以二维码或链接等方式显示在主设备屏幕上,提醒用户将该二维码或链接以任意方式展示或分享给待添加的验证设备;
步骤C50:待添加的验证设备获取主设备显示的连接信息,对连接信息进行解析得到服务器地址、主设备ID和用户公钥,并将主设备ID和用户公钥显示在屏幕上,等待持有验证设备的用户进行确认是否成为显示的主设备的验证设备,是则执行步骤C52,否则执行步骤C51;
步骤C51:待添加的验证设备根据服务器地址连接对应的服务器,向服务器发送包括主设备ID和取消成为验证设备信息的添加验证设备响应,执行步骤C53;
步骤C52:待添加的验证设备根据服务器地址连接对应的服务器,向服务器订阅发送给自身的所有消息,订阅成功后根据主设备ID、用户公钥、待添加的验证设备ID、待添加的验证设备公钥生成第五待签名数据,使用待添加的验证设备的私钥对第五待签名数据进行签名得到第五签名结果,根据第五待签名数据和第五签名结果生成添加验证设备响应发送至服务器,执行步骤C53;
步骤C53:服务器接收添加验证设备响应,从添加验证设备响应中提取主设备ID,判断主设备ID是否在添加验证设备响应收集表中,是则执行步骤C54,否则删除添加验证设备请求、响应收集表和接收到的添加验证设备响应,结束;
在本实施例中,如准备成为验证设备的设备有多个,则服务器会收到多个添加验证设备响应;
步骤C54:服务器根据主设备ID判断接收添加验证设备响应是否超时,是则执行步骤C55,否则执行步骤C56;
步骤C55:服务器向主设备返回添加验证设备响应收集表,删除添加验证设备请求、添加验证设备响应收集表和添加验证设备响应,执行步骤C61;
步骤C56:服务器判断添加验证设备响应的类型,如为添加则执行步骤C57,如为取消则执行步骤C58;
步骤C57:服务器将添加验证设备响应按照接收时间顺序填入到主设备ID对应的添加验证设备响应收集表中,执行步骤C59;
步骤C58:服务器从添加验证设备响应中提取取消成为验证设备信息,将取消成为验证设备信息按照接收时间顺序填入到主设备ID的添加验证设备响应收集表中,执行步骤C59;
步骤C59:服务器判断添加验证设备响应收集表是否已填满,是则执行步骤C60,否则服务器等待接收添加验证设备响应,返回步骤C53;
步骤C60:服务器将添加验证设备操作计时设置为超时,将包含添加验证设备响应收集表的响应发送给主设备ID对应的主设备,服务器添加验证设备请求、删除该添加验证设备响应收集表和添加验证设备响应,执行步骤C61;
步骤C61:主设备从接收到的响应中提取添加验证设备响应收集表,删除添加验证设备响应收集表中的取消成为验证设备信息,依次从添加验证设备响应收集表中提取第五待签名数据和第五签名结果,使用第五待签名数据对第五签名结果进行验证,如验证成功则执行步骤C62,如验证失败则报错,结束;
步骤C62:主设备向用户显示响应收集表中的待添加验证设备ID,提示用户进行确认,收到确认后主设备生成随机数作为请求ID,根据主设备ID、待添加的验证设备ID和待添加的验证设备公钥、请求ID生成确认待添加验证设备请求,将确认待添加验证设备请求发送至服务器;
步骤C63:服务器对接收到的确认待添加验证设备请求进行解析得到主设备ID、待添加的验证设备ID、待添加的验证设备公钥、请求ID,根据主设备ID查询对应的验证设备列表,判断验证设备列表中是否存在待添加的验证设备ID,是则给主设备返回该待添加设备已在验证设备列表中的信息,结束,否则按验证设备列表中的验证设备序号顺序获取对应的验证设备ID,依次根据验证设备ID将确认待添加验证设备请求发送给对应的验证设备,服务器使用请求ID、主设备ID、验证设备序号和对应的验证设备ID生成确认待添加验证设备请求的响应收集表,将验证设备签名数量设置为0,添加验证设备操作计时开始,执行步骤C64;
可选的,主设备接收到待添加设备已在验证设备列表中的信息后可继续提示用户添加其他验证设备,执行步骤C49;
步骤C64:每个验证设备接收确认待添加验证设备请求,从确认待添加验证设备请求中提取主设备ID、请求ID、待添加的验证设备ID和待添加的验证设备公钥并显示,提醒用户进行确认,当接收到用户的触发信息时判断触发信息的类型,如为确认信息则执行步骤C66,如为取消信息则执行步骤C65;
步骤C65:每个验证设备根据取消信息、验证设备ID、主设备ID、请求ID生成添加验证设备响应并返回给服务器,执行步骤C67;
步骤C66:每个验证设备使用自身保存的验证设备私钥对包含主设备ID、验证设备ID和验证设备公钥的第六待签名数据进行签名,得到第六签名结果,根据请求ID、确认信息、第六签名结果和第六待签名数据生成添加验证设备响应并返回给服务器,执行步骤C67;
步骤C67:服务器接收添加验证设备响应,从添加验证设备响应中提取请求ID和主设备ID,判断该请求ID是否存在添加验证设备响应收集表中,是则执行步骤C68,否则报错,删除接收到的添加验证设备响应;
步骤C68:服务器根据主设备ID判断接收添加验证设备响应是否超时,是则向主设备返回确认待添加验证设备请求已超时的响应,删除添加验证设备响应收集表和接收到的添加验证设备响应,否则执行步骤C69;
步骤C69:服务器判断添加验证设备响应的类型,如为确认则执行步骤C70,如为取消则执行步骤C71;
步骤C70:服务器从添加验证设备响应中提取待添加的验证设备ID和第六签名结果,根据验证设备ID将第六签名结果保存在响应收集表中,验证设备签名数量自加1,执行步骤C72;
步骤C71:服务器从添加验证设备响应中提取验证设备ID和取消信息,根据验证设备ID将取消信息保存在添加验证设备响应收集表中,执行步骤C72;
步骤C72:服务器根据验证设备ID计算验证设备总数,判断验证设备签名数量是否小于验证设备总数的一半,是则服务器等待接收确认验证设备响应,返回步骤C67,否则执行步骤C73;
步骤C73:服务器将添加验证设备操作计时设置为超时,将包含添加验证设备响应收集表、验证设备总数、验证设备签名数量和添加验证设备响应的响应发送给主设备,删除该响应收集表;
步骤C74:主设备从接收到的响应中提取添加验证设备响应收集表,从添加验证设备响应收集表提取验证设备ID和验证设备ID对应的第六签名结果,根据验证设备ID和验证设备ID对应的第六签名结果、验证设备智能合约地址、预置的添加验证设备函数名称、待添加的验证设备ID和待添加的验证设备公钥、验证设备总数和验证设备签名数量生成添加验证设备数据域;
步骤C75:主设备提示用户输入提供事务处理消耗数地址、总事务处理消耗数和单位事务处理消耗数,根据用户输入的提供事务处理消耗数地址查询该地址的总消耗数,判断用户输入的总事务处理消耗数是否小于总消耗数,是则执行步骤C76,否则报错,提示用户重新输入信息;
步骤C76:主设备根据提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、添加验证设备数据域生成添加验证设备事务,使用提供事务处理消耗数地址所对应的私钥对添加验证设备事务进行签名得到第七签名结果,将第七签名结果写入到添加验证设备事务的签名数据位置,将添加验证设备事务发送至服务器;
步骤C77:服务器接收添加验证设备事务,将添加验证设备事务发送至事务暂存池,并接收事务暂存池返回的接收到事务的成功信息;
在本实施例中,暂存池实时接收全网所有服务器上传的事务;
步骤C78:每个区块链节点从事务暂存池中提取事务并打包成区块;
在本实施例中,每个区块链节点将事务按单位事务处理消耗数由高到低排列,每次选取单位事务处理消耗数最高的事务,提取事务的数量在区块最大可容纳数据量内,通常为10-15个事务;例如步骤C25中,每个区块链节点都从事务暂存池中提取15个事务;
步骤C79:区块链节点判断提取的事务是否为添加验证设备事务,是则执行步骤C79,否则报错,结束;
在本实施例中,步骤C79包括:区块链节点判断提取的事务的数据格式是否符合添加验证设备事务的要求,是则执行步骤C80,否则报错,结束;
步骤C80:区块链节点提取添加验证设备事务中的验证设备智能合约地址,根据验证设备智能合约地址找到对应的验证设备智能合约,根据添加验证设备函数名称判断验证设备智能合约中是否存在对应的添加验证设备函数,是则根据添加验证设备事务调用验证设备智能合约中的添加验证设备函数,执行步骤C81,否则报错,结束;
步骤C81:验证设备智能合约检测到添加验证设备函数被调用时, 从添加验证设备函数中提取添加验证设备事务;
步骤C82:验证设备智能合约对提取的添加验证设备事务进行解析得到提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、添加验证设备数据域、第七签名结果;对添加验证设备数据域进行解析得到验证设备ID和验证设备ID对应的第六签名结果、验证设备智能合约地址、预置的添加验证设备函数名称、待添加的验证设备ID和待添加的验证设备公钥、验证设备总数、验证设备签名数量;
步骤C83:验证设备智能合约根据提供事务处理消耗数地址计算对应的公钥,使用该公钥对第七签名结果进行验证,如验证成功则执行步骤C87,如验证失败则执行步骤C84;
步骤C84:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤C85,否则执行步骤C86;
步骤C85:验证设备智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C86:验证设备智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C87:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤C88,否则执行步骤C86;
步骤C88:验证设备智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,判断解析得到的验证设备签名数量是否大于验证设备总数的一半,是则执行步骤C89,否则将所有操作的实际事务处理消耗数和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C89:验证设备智能合约依次根据验证设备ID提取保存的对应验证设备公钥,使用验证设备公钥对该验证设备ID对应的第六签名结果进行验证,如验证成功则执行步骤C93,如验证失败则执行步骤C90;
步骤C90:验证设备智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤C91,否则执行步骤C92;
步骤C91:验证设备智能合约根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,并将验证操作的实际事务处理消耗数和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C92:验证设备智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C93:验证设备智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤C94,否则执行步骤C92;
步骤C94:验证设备智能合约根据验证操作的实际事务处理消耗数更新当前事务处理消耗数,根据添加验证设备操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则将解析得到的待添加的验证设备ID和待添加的验证设备公钥存入自身的存储区中,将所有操作的实际事务处理消耗数和事务执行成功写入到添加验证设备事务的事务日志中,给区块链节点返回添加验证设备事务和事务日志,执行步骤C95,否则执行步骤C92;
步骤C95:区块链节点接收到验证设备智能合约返回的添加验证设备事务和事务日志并保存;当区块链节点轮询成为提议节点时,提议节点将添加验证设备事务和事务日志上传到区块链;
在本实施例中,事务日志中包括事务执行结果,事务执行结果为事务执行成功或事务执行失败;
具体的,该步骤中的提议节点将添加验证设备事务和事务日志上传到区块链的实现过程与步骤C37相同,在此不再赘述;
步骤C96:服务器实时获取区块链上的数据,并从获取的数据中获取添加验证设备事务和事务日志,判断事务日志中是否包含有事务执行成功,是则执行步骤C97,否则执行步骤C99;
步骤C97:服务器从添加验证设备事务中获取待添加验证设备ID,将待添加验证设备ID保存在与主设备ID对应的验证设备列表中,并将包含待添加验证设备ID的成功响应返回给主设备;
步骤C98:主设备从接收到的成功响应中提取待添加验证设备ID并保存,提示用户验证设备添加成功,结束;
在本实施例中,步骤C98还包括:显示待添加验证设备ID;
步骤C99:服务器将添加验证设备失败响应返回给主设备;
步骤C100:主设备接收到失败响应时报错,结束;
207:主设备显示操作页面,并判断接收到的用户操作信息的类型,如为添加白名单信息则执行步骤208,如为管理验证设备信息则执行步骤209,如为第一转移信息则执行步骤212;
步骤208:主设备执行添加白名单操作;
具体的,在本实施例中,步骤208的具体实现过程包括:
步骤D1:主设备显示白名单管理页面,提示用户进行操作,当接收到用户触发的添加白名单信息时执行步骤D2;
在本实施例中,该步骤的添加白名单信息中包括主设备ID;
步骤D2:主设备向服务器发送包含主设备ID和帐户智能合约地址的查询白名单请求;
步骤D3:服务器从接收到的查询白名单请求中提取帐户智能合约地址和主设备ID,根据帐户智能合约地址找到对应帐户智能合约,在该帐户智能合约中查找白名单智能合约地址,如找到则执行步骤D4,否则执行步骤D51;
步骤D4:服务器根据白名单智能合约地址读取对应白名单智能合约中保存的白名单地址数量和白名单最大数量;
步骤D5:服务器判断读取的白名单地址数量是否等于白名单最大数量,是则执行步骤D6,否则执行步骤D8;
例如,本实施例中的白名单最大数量为6;
步骤D6:服务器将白名单已达最大值的消息返回给主设备;
步骤D7:主设备接收到白名单已达最大值的消息后报错,结束;
步骤D8:服务器向主设备返回包含白名单地址数量的响应;
步骤D9:主设备对接收到的响应进行解析得到白名单地址数量,向用户提示白名单地址数量,等待用户操作;
步骤D10:当主设备接收到用户输入的待添加白名单地址时,生成请求ID,并向服务器发送包含主设备ID、待添加白名单地址和请求ID的添加白名单请求;
在本实施例中,生成请求ID包括:生成随机数作为请求ID或按照预定规则生成请求ID;例如,预定规则为将当前最大请求ID自加1作为新的请求ID,请求ID初始值为0;
步骤D11:服务器对接收到的添加白名单请求进行解析得到主设备ID、待添加白名单地址和请求ID,根据主设备ID查找保存的验证设备列表,按照验证设备列表中验证设备序号的顺序,依次根据验证设备ID将确认添加白名单请求发送给对应的验证设备;使用请求ID、主设备ID、待添加白名单地址、验证设备序号和验证设备ID生成确认添加白名单响应收集表,将验证设备签名数量设置为0,添加白名单操作计时开始;
步骤D12:每个验证设备对接收到的确认添加白名单请求进行解析得到请求ID、主设备ID、待添加白名单地址、验证设备序号和验证设备ID,显示主设备ID和待添加白名单地址,当接收到持有验证设备用户触发的操作信息时判断操作信息的类型,如为取消信息则执行步骤D13,如为确认信息则执行步骤D14;
步骤D13:验证设备将取消信息、验证设备ID和请求ID生成确认添加白名单响应并返回服务器,执行步骤D15;
步骤D14:验证设备使用自身的验证设备私钥对主设备ID和待添加白名单地址进行签名得到添加白名单事务签名结果,根据确认信息、添加白名单事务签名结果、验证设备ID和请求ID生成确认添加白名单响应并返回给服务器,执行步骤D15;
步骤D15:服务器从接收到的确认添加白名单响应中提取请求ID,判断该请求ID是否存在于确认添加白名单响应收集表中,是则执行步骤D16,否则删除接收到的确认添加白名单响应,结束;
步骤D16:服务器根据请求ID判断接收确认添加白名单响应是否超时,是则向主设备返回接收确认添加白名单响应已超时的响应,删除确认添加白名单响应收集表,结束,否则执行步骤D17;
步骤D17:服务器判断确认添加白名单响应的类型,如为确认则执行步骤D19,如为取消则执行步骤D18;
步骤D18:服务器从确认添加白名单响应中提取验证设备ID和取消信息,将取消信息填入与请求ID对应的确认添加白名单响应收集表中的验证设备ID之后,执行步骤D20;
步骤D19:服务器从确认添加白名单响应中提取验证设备ID和添加白名单事务签名结果,将添加白名单事务签名结果填入与请求ID对应的确认添加白名单响应收集表中的验证设备ID之后,将验证设备签名数量自加1,执行步骤D20;
步骤D20:服务器根据验证设备ID计算验证设备总数,判断验证设备签名数量是否小于验证设备总数的一半,是则等待接收响应,返回步骤D15,否则执行步骤D21;
步骤D21:服务器将添加白名单操作计时设置为超时,根据与请求ID对应的确认添加白名单响应收集表、验证设备总数、验证设备签名数量和确认添加白名单响应生成响应数据并发送给主设备,删除与请求ID对应的确认添加白名单响应收集表;
步骤D22:主设备对接收到的响应数据进行解析得到确认添加白名单响应收集表、验证设备总数、验证设备签名数量和确认添加白名单响应,删除确认添加白名单响应收集表中的取消信息,提示用户输入提供事务处理消耗数地址、总事务处理消耗数和单位事务处理消耗数,根据提供事务处理消耗数地址查询总消耗数,判断用户输入的总事务处理消耗数是否小于该总消耗数,是则执行步骤D23,否则报错,提示用户重新输入信息;
在本实施例中,确认添加白名单响应收集表包括请求ID、主设备ID、待添加白名单地址、验证设备序号和验证设备ID,还包括添加白名单事务签名结果或取消信息;确认添加白名单响应包括验证设备ID和请求ID,还包括确认信息或添加白名单事务签名结果或还包括取消信息;
步骤D23:主设备根据待添加白名单地址、白名单智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、预置的添加白名单地址的函数名称、验证设备ID和对应的添加白名单事务签名结果、验证设备智能合约地址、验证设备总数和验证设备签名数量生成添加白名单事务,使用提供事务处理消耗数地址所对应的私钥对添加白名单事务进行签名得到事务处理消耗数签名结果,将事务处理消耗数签名结果写入到添加白名单事务的签名数据位置,将包含主设备ID和添加白名单事务的指令发送至服务器;
步骤D24:服务器对接收到的指令进行解析得到添加白名单事务和主设备ID,将添加白名单事务发送至事务暂存池,并接收事务暂存池返回的接收到事务的成功信息;
步骤D25:区块链节点从事务暂存池中提取事务并打包成区块;
在本实施例中,每个节点将事务按照单位事务处理消耗数由高到低是顺序进行排列,每次选取单位事务处理消耗数最高的事务,提取事务的数量在区块链最大可容纳数据量内,通常为10-15个事务;
步骤D26:区块链节点判断提取的事务是否为添加白名单事务,是则执行步骤D27,否则报错,结束;
在本实施例中,步骤D26包括:区块链节点判断提取的事务的数据格式是否符合添加白名单事务的要求,是则执行步骤D27,否则报错,结束;
步骤D27:区块链节点提取添加白名单事务中的白名单智能合约地址和添加白名单地址函数名称,根据白名单智能合约地址找到对应的白名单智能合约,根据添加白名单地址函数名称判断找到的白名单智能合约中是否存在添加白名单地址函数,是则根据添加白名单事务调用该白名单智能合约中的添加白名单地址函数,执行步骤D28,否则报错,结束;
步骤D28:白名单智能合约检测到添加白名单地址函数被调用时,从添加白名单地址函数中提取添加白名单事务;
步骤D29:白名单智能合约对添加白名单事务进行解析;
在本实施例中,该步骤中对添加白名单事务进行解析得到的数据包括:待添加白名单地址、白名单智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、预置的添加白名单地址的函数名称、验证设备ID和对应的添加白名单事务签名结果、验证设备智能合约地址、验证设备总数和验证设备签名数量、事务处理消耗数签名结果;
步骤D30:白名单智能合约根据解析得到的提供事务处理消耗数地址计算出对应的公钥,使用计算得到的公钥对解析得到的事务处理消耗数签名结果进行验证,如验证成功则执行步骤D34,如验证失败则执行步骤D31;
步骤D31:白名单智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤D32,否则执行步骤D33;
步骤D32:白名单智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到添加白名单事务的事务日志中,向区块链节点返回添加白名单事务和事务日志,执行步骤D48;
步骤D33:白名单智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加白名单事务的事务日志中,向区块链节点返回添加白名单事务和事务日志,执行步骤D48;
步骤D34:白名单智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤D35,否则执行步骤D33;
步骤D35:白名单智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,根据当前总事务处理消耗数、解析得到的所有的验证设备ID和对应的添加白名单事务签名结果、验证设备总数、验证设备签名数量生成第一验证设备验证请求,根据解析得到的验证设备智能合约地址向对应的验证设备智能合约发送第一验证设备验证请求;
步骤D36:验证设备智能合约接收第一验证设备验证请求,从第一验证设备验证请求中提取验证设备总数、验证设备签名数量、验证设备ID和对应的添加白名单事务签名结果、总事务处理消耗数,判断验证设备签名数量是否大于验证设备总数的一半,是则执行步骤D39,否则执行步骤D37;
步骤D37:验证设备智能合约给白名单智能合约返回失败响应;
步骤D38:白名单智能合约接收验证设备智能合约返回的失败响应,将所有操作的实际事务处理消耗数和事务执行失败写入到添加白名单事务的事务日志中,向区块链节点返回添加白名单事务和事务日志,执行步骤D48;
步骤D39:验证设备智能合约依次根据验证设备ID提取自身保存的验证设备公钥,使用验证设备公钥对该验证设备ID对应的添加白名单事务签名结果进行验证,如验证成功则执行步骤D45,如验证失败则执行步骤D40;
步骤D40:验证设备智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤D41,否则执行步骤D43;
步骤D41:验证设备智能合约给白名单智能合约返回事务验证失败响应;
步骤D42:白名单智能合约接收验证设备智能合约返回的事务验证失败响应,根据验证操作实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到添加白名单事务的事务日志中,向区块链节点返回添加白名单事务和事务日志,执行步骤D48;
步骤D43:验证设备智能合约给白名单智能合约返回消耗数不足响应;
步骤D44:白名单智能合约接收验证设备智能合约返回的消耗数不足响应,将当前事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加白名单事务的事务日志中,向区块链节点返回添加白名单事务和事务日志,执行步骤D48;
步骤D45:验证设备智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤D46,否则执行步骤D43;
步骤D46:验证设备智能合约给白名单智能合约返回事务验证成功响应;
步骤D47:白名单智能合约接收验证设备智能合约返回的事务验证成功响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据添加白名单地址操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则根据添加白名单地址操作的实际事务处理消耗数更新当前总事务处理消耗数,将待添加白名单地址写入到自己的存储区,将所有操作的实际事务处理消耗数和事务执行成功写入到添加白名单事务的事务日志中,将添加白名单事务和事务日志返回给区块链节点,执行步骤D48,否则将当前事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加白名单事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤D48;
步骤D48:区块链节点接收白名单智能合约返回的添加白名单事务和事务日志并保存,当节点轮询成为提议节点时,提议节点将添加白名单事务和事务日志上传到区块链;
在本实施例中,事务日志中包括事务执行成功或事务执行失败;提议节点将添加白名单事务和事务日志上传到区块链的实现过程与步骤C37相同,再次不再赘述;
步骤D49:服务器从区块链上实时获取数据,从获取的数据中提取添加白名单事务和事务日志,将添加白名单事务和事务日志返回给主设备;
步骤D50:主设备将添加白名单事务和事务日志保存在用户的操作历史记录中,结束;
在本实施例中,主设备还可以显示添加白名单事务和事务日志;
步骤D51:服务器向主设备返回白名单智能合约不存在响应;
步骤D52:主设备提示用户不存在白名单智能合约,需创建白名单智能合约且添加一个白名单地址,等待用户确认触发操作;
步骤D53:当主设备接收到用户输入的待添加白名单地址时,生成请求ID,根据主设备ID、待添加白名单地址和请求ID生成确认创建白名单智能合约请求,并向服务器发送确认创建白名单智能合约请求;
步骤D54:服务器对接收到的确认创建白名单智能合约请求进行解析得到主设备ID、待添加白名单地址和请求ID,根据主设备ID查找保存的对应验证设备列表,按照验证设备列表中的验证设备序号的顺序,依次根据验证设备ID将确认创建白名单智能合约请求发送给对应的验证设备,根据请求ID、主设备ID、验证设备列表中的验证设备序号和验证设备ID生成确认创建白名单智能合约响应收集表,将验证设备签名数量设置为0,创建白名单智能合约操作计时开始;
步骤D55:每个验证设备对接收到的确认创建白名单智能合约请求进行解析得到主设备ID、待添加白名单地址和请求ID,显示主设备ID和待添加白名单地址,当接收到用户触发操作信息时判断操作消息的类型,如为取消信息则执行步骤D56,如为确认信息则执行步骤D57;
步骤D56:验证设备将取消信息、验证设备ID和请求ID生成确认创建白名单智能合约响应并返回服务器,执行步骤D58;
步骤D57:验证设备使用自身的验证设备私钥对主设备ID和待添加白名单地址进行签名得到创建白名单智能合约事务签名结果,根据确认信息、创建白名单智能合约事务签名结果、验证设备ID和请求ID生成确认创建白名单智能合约响应并返回给服务器,执行步骤D58;
步骤D58:服务器从接收到的确认创建白名单智能合约响应中提取请求ID,根据请求ID判断是否存在对应的确认创建白名单智能合约响应收集表,是则执行步骤D59,否则删除接收到的确认创建白名单智能合约响应,结束;
步骤D59:服务器根据请求ID判断接收确认创建白名单智能合约响应是否超时,是则执行步骤D60,否则执行步骤D61;
步骤D60:服务器向主设备返回确认创建白名单智能合约请求已超时的响应,删除确认创建白名单智能合约响应收集表,结束;
步骤D61:服务器判断确认创建白名单智能合约响应的操作类型,如为确认则执行步骤D62,如为取消则执行步骤D63;
步骤D62:服务器从确认创建白名单智能合约响应中提取验证设备ID和创建白名单智能合约事务签名结果,将创建白名单智能合约事务签名结果填入请求ID对应的确认创建白名单智能合约响应收集表中的验证设备ID之后,验证设备签名数量自加1,执行步骤D64;
步骤D63:服务器从确认创建白名单智能合约响应中提取验证设备ID,将取消信息填入请求ID对应的确认创建白名单智能合约响应收集表中的验证设备ID之后,执行步骤D64;
步骤D64:服务器根据验证设备ID计算验证设备总数,判断验证设备签名数量是否小于验证设备总数的一半,是则等待接收响应,返回步骤D58,否则执行步骤D65;
步骤D65:服务器将创建白名单智能合约操作计时设置为超时,将确认创建白名单智能合约响应收集表、验证设备总数、验证设备签名数量和确认创建白名单智能合约响应生成第一响应发送给主设备,删除确认创建白名单智能合约响应收集表;
步骤D66:主设备从接收到的第一响应中提取确认创建白名单智能合约响应收集表,删除确认创建白名单智能合约响应收集表中的取消信息,提示并接收用户输入的提供事务处理消耗数地址、总事务处理消耗数和单位事务处理消耗数,根据提供事务处理消耗数地址查询对应的总消耗数,判断用户输入的总事务处理消耗数是否小于该总消耗数,是则执行步骤D67,否则报错,提示用户重新输入信息;
步骤D67:主设备根据待添加白名单地址、创建白名单智能合约的智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、预设的创建白名单智能合约函数名称、帐户智能合约地址、验证设备智能合约地址、验证设备ID和对应的创建白名单智能合约事务签名结果、验证设备总数、验证设备签名数量生成创建白名单智能合约事务,使用提供事务处理消耗数地址所对应的私钥对创建白名单智能合约事务进行签名得到事务处理消耗数签名结果,将事务处理消耗数签名结果写入到创建白名单智能合约事务的签名数据位置,将包含主设备ID和创建白名单智能合约事务的指令发送至服务器;
步骤D68:服务器对接收到的指令进行解析得到创建白名单智能合约事务和主设备ID,将创建白名单智能合约事务发送至事务暂存池,并接收事务暂存池返回的接收到事务的成功信息;
步骤D69:区块链节点从事务暂存池中提取事务并打包成区块;
在本实施例中,区块链节点将事务按单位事务处理消耗数由高到低排列,每次选取单位事务处理消耗数最高的事务,所提取事务的数量在区块最大可容纳数据量内,通常为10-15个事务;
步骤D70:区块链节点判断提取的事务是否为创建白名单智能合约事务,是则执行步骤D71,否则报错,结束;
具体的,在本实施例中,步骤D70包括:区块链节点判断提取的事务的数据格式是否符合创建白名单智能合约事务的要求,是则执行步骤D71,否则报错,结束;
步骤D71:区块链节点提取创建白名单智能合约事务中的创建白名单智能合约的智能合约地址和创建白名单智能合约函数名称,根据创建白名单智能合约的智能合约地址找到对应的创建白名单智能合约的智能合约,根据创建白名单智能合约函数名称判断找到的创建白名单智能合约的智能合约中是否存在对应的创建白名单智能合约函数,是则根据创建白名单智能合约事务调用该创建白名单智能合约的智能合约中的创建白名单智能合约函数,执行步骤D72,否则报错,结束;
步骤D72:创建白名单智能合约的智能合约检测到创建白名单智能合约函数被调用时,从创建白名单智能合约函数中提取创建白名单智能合约事务;
步骤D73:创建白名单智能合约的智能合约对创建白名单智能合约事务进行解析;
在本实施例中,该步骤中的对创建白名单智能合约事务进行解析得到的数据包括:待添加白名单地址、验证设备智能合约地址、验证设备ID和对应的创建白名单智能合约事务签名结果、待添加白名单地址、创建白名单智能合约的智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、预设的创建白名单智能合约函数名称、帐户智能合约地址、验证设备总数、验证设备签名数量、事务处理消耗数签名结果;
步骤D74:创建白名单智能合约的智能合约从解析结果中提取事务处理消耗数签名结果和提供事务处理消耗数地址,根据提供事务处理消耗数地址计算对应的公钥,使用该公钥对事务处理消耗数签名结果进行验证,如验证成功则执行步骤D78,如验证失败则执行步骤D75;
步骤D75:创建白名单智能合约的智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤D76,否则执行步骤D77;
步骤D76:创建白名单智能合约的智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作实际事务处理消耗数和事务执行失败写入到创建白名单智能合约事务的事务日志中,向区块链节点返回创建白名单智能合约事务和事务日志,执行步骤D94;
步骤D77:创建白名单智能合约的智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到创建白名单智能合约事务的事务日志中,向区块链节点返回创建白名单智能合约事务和事务日志,执行步骤D94;
步骤D78:创建白名单智能合约的智能合约根据验证操作的实际事务处理消耗数判断解析结果中的总事务处理消耗数是否充足,是则执行步骤D79,否则执行步骤D77;
步骤D79:创建白名单智能合约的智能合约根据验证操作的实际事务处理消耗数更新解析结果中的总事务处理消耗数并作为当前总事务处理消耗数,根据当前总事务处理消耗数、解析结果中的所有验证设备ID和对应的创建白名单智能合约事务签名结果、验证设备总数、验证设备签名数量生成第二验证设备验证请求,根据解析结果中的验证设备智能合约地址向对应的验证设备智能合约发送第二验证设备验证请求;
步骤D80:验证设备智能合约接收第二验证设备验证请求,从第二验证设备验证请求中提取验证设备总数、验证设备签名数量、验证设备ID和对应的创建白名单智能合约事务签名结果、总事务处理消耗数,判断验证设备签名数量是否大于验证设备总数的一半,是则执行步骤D83,否则执行步骤D81;
步骤D81:验证设备智能合约给创建白名单智能合约的智能合约返回失败响应;
步骤D82:创建白名单智能合约的智能合约接收验证设备智能合约返回的失败响应,将所有操作的实际事务处理消耗数和事务执行失败写入到创建白名单智能合约事务的事务日志中,向区块链节点返回创建白名单智能合约事务和事务日志,执行步骤D94;
步骤D83:验证设备智能合约依次根据每个验证设备ID提取保存的对应验证设备公钥,依次使用验证设备公钥对该验证设备ID对应的创建白名单智能合约事务签名结果进行验证,如验证成功则执行步骤D89,如验证失败则执行步骤D84;
步骤D84:验证设备智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤D85,否则执行步骤D87;
步骤D85:验证设备智能合约给创建白名单智能合约的智能合约返回事务验证失败响应;
步骤D86:创建白名单智能合约的智能合约接收验证设备智能合约返回的事务验证失败响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到创建白名单智能合约事务的事务日志中,向区块链节点返回创建白名单智能合约事务和事务日志,执行步骤D94;
步骤D87:验证设备智能合约向创建白名单智能合约的智能合约返回消耗数不足响应;
步骤D88:创建白名单智能合约的智能合约接收验证设备智能合约返回的消耗数不足响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到创建白名单智能合约事务的事务日志中,向区块链节点返回创建白名单智能合约事务和事务日志,执行步骤D94;
步骤D89:验证设备智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤D90,否则执行步骤D87;
步骤D90:验证设备智能合约给创建白名单智能合约的智能合约返回事务验证成功响应;
步骤D91:创建白名单智能合约的智能合约接收验证设备智能合约返回的事务验证成功响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据创建白名单智能合约操作的实际事务处理消耗数和两次写入操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤D93,否则执行步骤D92;
步骤D92:创建白名单智能合约的智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到创建白名单智能合约事务的事务日志中,向区块链节点返回创建白名单智能合约事务和事务日志,执行步骤D94;
步骤D93:创建白名单智能合约的智能合约创建白名单智能合约,将解析结果中的待添加白名单地址写入到新创建的白名单智能合约中,从新创建的白名单智能合约中获取白名单智能合约地址,根据解析结果中的帐户智能合约地址查找对应的帐户智能合约,将新创建的白名单智能合约地址写入到找到的帐户智能合约的存储区中,根据创建白名单智能合约操作的实际事务处理消耗数和两次写入操作的实际事务处理消耗数更新当前总事务处理消耗数,将该新创建的白名单智能合约地址、所有操作的实际事务处理消耗数和事务执行成功写入到创建白名单智能合约事务的事务日志中,将创建白名单智能合约事务和事务日志返回给区块链节点,执行步骤D94;
步骤D94:区块链节点接收创建白名单智能合约的智能合约返回的创建白名单智能合约事务和事务日志并保存,当区块链节点轮询成为提议节点时,提议节点将创建白名单智能合约事务和事务日志上传到区块链;
在本实施例中,事务日志中包含事务执行成功或事务执行失败;
具体的,提议节点将创建白名单智能合约事务和事务日志上传到区块链的实现过程与步骤C37相同,在此不再赘述;
步骤D95:服务器实时获取区块链上的数据,从获取的数据中提取创建白名单智能合约事务和事务日志,判断事务日志中是否包含有事务执行成功,是则执行步骤D96,如为失败则执行步骤D98;
步骤D96:服务器提取事务日志中的白名单智能合约地址并与主设备ID对应保存,将包括白名单智能合约地址的创建成功响应返回主设备;
步骤D97:主设备从接收到的创建成功响应中提取白名单智能合约地址并保存,提示用户白名单创建和添加成功,结束;
步骤D98:服务器将创建失败响应返回给主设备;
步骤D99:主设备接收到创建失败响应时报错,结束。
步骤209:主设备显示管理验证设备页面,判断接收到的用户操作信息,如为添加设备则执行步骤210,如为删除设备则执行步骤211;
步骤210:主设备执行添加验证设备操作;
在本实施例中,步骤210的实现过程与步骤206相同,在此不再赘述;
步骤211:主设备执行删除验证设备操作;
具体的,在本实施例中,步骤211的具体实现过程包括:
步骤E1:主设备显示验证设备管理页面,并提示用户选择要删除的验证设备,当接收到用户触发的删除验证设备信息时生成请求ID,根据请求ID、待删除的验证设备ID、验证设备智能合约地址和主设备ID生成删除验证设备请求,将删除验证设备请求和发送给服务器;
步骤E2:服务器对接收到的删除验证设备请求进行解析得到请求ID、待删除的验证设备ID、验证设备智能合约地址和主设备ID,根据验证设备智能合约地址从对应的验证设备智能合约中获取保存的验证设备数量,判断验证设备数量是否为1,是则向主设备报错,结束,否则执行步骤E3;
在本实施例中,只有一个验证设备时不允许执行删除验证设备操作;
步骤E3:服务器查询该验证设备智能合约中是否存在与待删除的验证设备ID对应的验证设备公钥,是则执行步骤E4,否则向主设备报错,结束;
步骤E4:服务器根据主设备ID获取验证设备列表,按照验证设备列表中的验证设备序号的顺序,依次根据待删除的验证设备ID将删除验证设备请求发送给对应的验证设备,根据请求ID、主设备ID和验证设备ID、验证设备序号生成删除验证设备响应收集表,将验证设备签名数量设置为0,删除验证设备操作计时开始;
步骤E5:每个验证设备从接收到的删除验证设备请求中提取主设备ID和待删除的验证设备ID并显示,当接收到持有验证设备用户触发的操作信息时判断操作信息的类型,如为确认信息则执行步骤E7,如为取消信息则执行步骤E6;
步骤E6:验证设备将取消信息、验证设备ID、请求ID生成删除设备响应并返回给服务器,执行步骤E8;
步骤E7:验证设备使用验证设备私钥对主设备ID和待删除的验证设备ID进行签名得到第十签名结果,根据确认信息、第十签名结果、验证设备ID和请求ID生成删除设备响应并返回给服务器,执行步骤E8;
步骤E8:服务器从接收到的删除设备响应中提取请求ID,判断是否存在该请求ID对应的响应收集表,是则执行步骤E9,否则删除接收到的删除设备响应,结束;
步骤E9:服务器根据请求 ID判断接收删除设备响应是否超时,是则给主设备返回删除验证设备已超时响应,删除接收到的删除设备响应,结束,否则执行步骤E10;
步骤E10:服务器判断删除设备响应的类型,如为确认则执行步骤E11,如为取消则执行步骤E12;
步骤E11:服务器从删除设备响应中提取验证设备ID和第十签名结果,将第十签名结果填入删除验证设备响应收集表中的验证设备ID之后,验证设备签名数量自加1,执行步骤E13;
步骤E12:服务器从删除设备响应中提取验证设备ID,将取消信息填入删除验证设备响应收集表中的验证设备ID之后,执行步骤E13;
步骤E13:服务器根据验证设备ID计算验证设备总数,判断验证设备签名数量是否小于验证设备总数的一半,是则等待接收删除设备响应,返回步骤E8,否则执行步骤E14;
步骤E14:服务器将删除验证设备操作计时设置为超时,根据删除验证设备响应收集表、验证设备总数、验证设备签名数量和接收到的删除设备响应生成处理响应发送给主设备,将删除验证设备响应收集表删除;
步骤E15:主设备从接收到的处理响应中提取响应收集表,根据待删除的验证设备ID、验证设备智能合约地址、预置的删除验证设备函数名称、响应收集表中的验证设备ID和对应的第十签名结果、验证设备总数和验证设备签名数量生成删除验证设备事务的数据域;
步骤E16:主设备接收用户输入的提供事务处理消耗数地址、总事务处理消耗数和单位事务处理消耗数,根据提供事务处理消耗数地址查询该地址的总消耗数,判断用户输入的总事务处理消耗数是否小于该总消耗数,是则执行步骤E17,否则报错,提示用户重新输入信息;
步骤E17:主设备根据帐户智能合约地址、验证设备智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、删除验证设备事务的数据域生成删除验证设备事务待签名信息,使用提供事务处理消耗数地址所对应的私钥对删除验证设备事务待签名信息进行签名得到事务处理消耗数签名结果,将事务处理消耗数签名结果和删除事务待签名信息生成删除验证设备事务,将包含删除验证设备事务的指令发送至服务器;
在本实施例中,删除验证设备事务的数据域包括:待删除的验证设备ID、验证设备智能合约地址、预置的删除验证设备函数名称、响应收集表中的验证设备ID和对应的第十签名结果、验证设备总数和验证设备签名数量;
步骤E18:服务器接收删除验证设备事务,将删除验证设备事务发送至事务暂存池,并接收事务暂存池返回的接收到事务的成功信息;
步骤E19:区块链节点从事务暂存池中提取事务并打包成区块;
在本实施例中,区块链节点将事务按单位事务处理消耗数由高到低排列,每次选取单位事务处理消耗数最高的事务,所提取事务的数量在区块最大可容纳数据量内,通常为10-15个事务;事务暂存池检测到有超过一定时间内(例如24小时)未被节点选取的事务,则会删除该事物;
步骤E20:区块链节点判断提取的事务是否为删除验证设备事务,是则执行步骤E21,否则报错,结束;
具体的,在本实施例中,步骤E20包括:节点判断提取的事务的数据格式是否符合删除验证设备事务的格式,是则执行步骤E21,否则报错,结束;
步骤E21:区块链节点提取删除验证设备事务中的验证设备智能合约地址,根据验证设备智能合约地址找到对应的验证设备智能合约,根据删除验证设备函数名称判断找到的验证设备智能合约中是否存在对应的删除验证设备函数,是则根据删除验证设备事务调用验证设备智能合约中的删除验证设备函数,执行步骤E22,否则报错,结束;
步骤E22:验证设备智能合约检测到删除验证设备函数被调用时,从删除验证设备函数中提取删除验证设备事务;
步骤E23:验证设备智能合约对删除验证设备事务进行解析得到帐户智能合约地址、验证设备智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、待删除的验证设备ID、验证设备智能合约地址、预置的删除验证设备函数名称、响应收集表中的验证设备ID和对应的第十签名结果、验证设备总数和验证设备签名数量、事务处理消耗数签名结果;
步骤E24:验证设备智能合约根据提供事务处理消耗数地址计算对应的公钥,使用该公钥对事务处理消耗数签名结果进行验证,如验证成功则执行步骤E28,如验证失败则执行步骤E25;
步骤E25:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤E26,否则执行步骤E27;
步骤E26:验证设备智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E27:验证设备智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E28:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤E29,否则执行步骤E27;
步骤E29:验证设备智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,判断验证设备签名数量是否大于验证设备总数的一半,是则执行步骤E30,否则将所有操作的实际事务处理消耗数和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E30:验证设备智能合约依次根据验证设备ID提取保存的对应验证设备公钥,使用提取的验证设备公钥对该验证设备ID对应的第十签名结果进行验证,如验证成功则执行步骤E34,如验证失败则执行步骤E31;
步骤E31:验证设备智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤E32,否则执行步骤E33;
步骤E32:验证设备智能合约根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E33:验证设备智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E34:验证设备智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤E35,否则执行步骤E33;
步骤E35:验证设备智能合约根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据删除操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤E36,否则执行步骤E33;
步骤E36:验证设备智能合约从存储区中将待删除的验证设备ID和对应的验证设备公钥删除,根据删除操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行成功写入到删除验证设备事务的事务日志中,给区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E37:区块链节点接收验证设备智能合约返回的事务日志和删除验证设备事务并保存,当节点轮询成为提议节点时,提议节点将删除验证设备事务和事务日志上传到区块链;
在本实施例中,事务日志中包含事务执行成功或事务执行失败;
本实施例中的提议节点将删除验证设备事务上传到区块链与步骤C37的实现过程相同,在此不再赘述;
步骤E38:服务器实时获取区块链上的数据,从获取的数据中提取删除验证设备事务和事务日志,判断事务日志中是否包含有事务执行成功,是则根据删除验证设备事务中的主设备ID和待删除的验证设备ID将与主设备ID对应的验证设备列表中保存的对应验证设备ID删除,执行步骤E39,否则直接执行步骤E39;
步骤E39:服务器将删除验证设备事务和事务日志返回主设备;
步骤E40:主设备接收服务器返回的删除验证设备事务和事务日志,将事务日志保存在用户的操作历史记录中,判断事务日志中是否包含有事务执行成功,是则将保存的验证设备ID删除;
在本实施例中,步骤E40还可包括主设备显示删除验证设备事务和事务日志。
步骤212:主设备接收用户输入的第一转移信息,根据第一转移信息判断是否能继续操作,是则执行步骤213,否则报错,并提示用户重新输入信息;
在本实施例中,根据第一转换信息判断是否能继续操作,包括:根据保存的总消耗数,判断用户输入的转移事务数字和总事务处理消耗数的总和是否小于总消耗数,是则能继续操作,否则不能继续操作;
步骤213:主设备根据第一转移信息生成第一待签名数据,当接收到用户触发的继续操作信息时判断帐户类型,如为硬件设备则执行步骤214,如为软件应用则执行步骤218;
在本实施例中,该步骤中的第一待签名数据包含用户的帐户智能合约地址、转移函数名称以及第一转移信息;第一转移信息包括:转移接收地址、转移事务数字、总事务处理消耗数、提供事务处理消耗数地址、单位事务处理消耗数;
步骤214:主设备对用户身份进行验证,如验证成功则执行步骤215,如验证失败则报错,结束;
在本实施例中,对用户身份进行验证包括:
(1)提示用户在硬件设备上输入密码,当硬件设备接收到用户输入的密码时,判断接收到的密码是否与保存的密码匹配,是则验证成功,硬件设备给主设备返回验证成功信息,否则验证失败,硬件设备给主设备返回验证失败信息;
(2)主设备提示用户输入密码,当接收到用户输入的密码时将该密码发送给硬件设备,硬件设备判断接收到的密码是否与保存的密码匹配,是则验证成功,给主设备返回验证成功信息,否则验证失败,给主设备返回验证失败信息;
(3)主设备提示用户输入指纹,当采集到用户的指纹信息时将该指纹信息发送给硬件设备,硬件设备判断接收到的指纹信息是否与保存的指纹模板匹配,是则验证成功,给主设备返回成功信息,否则验证失败,给主设备返回验证失败信息;
步骤215:主设备将第一待签名数据发送给硬件设备;
步骤216:硬件设备接收第一待签名数据并显示,判断是否收到用户的确认信息,是则步骤217,否则报错,结束;
优选的,在本实施例中,步骤216包括:硬件设备接收第一待签名数据,从第一待签名数据中提取关键信息并显示,等待用户确认;
步骤217:当接收到用户的确认信息时,硬件设备使用保存的用户私钥对第一待签名数据进行签名得到第一转移事务签名结果,并将第一转移事务签名结果返回给主设备,执行步骤220;
步骤218:主设备提示用户输入转移密码,当收到用户输入的转移密码时判断该转移密码是否正确,是则执行步骤219,否则报错,结束;
步骤219:主设备使用内部保存的用户私钥对第一待签名数据进行签名得到第一转移事务签名结果,执行步骤220;
步骤220:主设备根据主设备ID、转移函数名称、第一转移信息中的转移接收地址和转移事务数字生成第一转移事务的数据域,根据第一转移信息中的总事务处理消耗数和单位事务处理消耗数、第一转移事务的数据域、第一转移事务签名结果和帐户智能合约地址生成第一转移事务,并将包含第一转移事务的指令发送至服务器;
步骤221:服务器接收包含第一转移事务的指令并解析得到第一转移事务,对第一转移事务进行解析得到总事务处理消耗数、单位事务处理消耗数、转移事务数字、转移函数名称、第一转移事务签名结果、转移接收地址和帐户智能合约地址,根据帐户智能合约地址从对应的帐户智能合约中获取白名单智能合约地址;
步骤222:服务器根据白名单智能合约地址从对应的白名单智能合约中获取所有白名单地址,并判断转移接收地址是否在获取的白名单地址中,是则执行步骤223,否则通过验证设备对第一转移事务进行验证,并将验证结果上传到区块链;
具体的,在本实施例中,通过验证设备对第一转移事务进行验证,并将验证结果上传到区块链的具体实现过程包括:
步骤901:服务器暂存第一转移事务请求,将第一转移事务的转移接收地址不在白名单中和第一转移事务暂停等待确认的信息返回给主设备;
步骤902:主设备接收到服务器发送的信息后提示用户继续进行操作,如在默认预设时间内未收到触发信息则删除第一转移事务,并通知服务器操作超时,执行步骤903,如接收到用户的取消信息则执行步骤904,如收到用户触发的要求验证设备对第一转移事务进行验证的信息则执行步骤906;
例如,在本实施例中,该步骤中的默认预设时间为3天;
步骤903:服务器删除暂存的第一转移事务,向主设备返回非法事务已删除响应,结束;
步骤904:主设备删除第一转移事务,并给服务器发送取消第一转移事务指令;
步骤905:服务器接收到取消第一转移事务指令后,删除暂存的第一转移事务,向主设备返回非法事务已删除响应,结束;
步骤906:主设备将包括生成的第二事务ID、第一转移信息中的转移接收地址和转移事务数字、主设备ID、预置的转移事务验证函数名称的第二转移事务确认请求发送至服务器;
步骤907:服务器接收第二转移事务确认请求,提取第二转移事务确认请求中的主设备ID,根据主设备ID查找对应保存的验证设备列表,如找到则执行步骤908,如未找到则删除接收到的第二转移事务确认请求,向主设备返回错误信息,结束;
步骤908:服务器获取验证设备列表中的验证设备序号和验证设备ID,按照验证设备序号的顺序依次根据验证设备ID将第二转移事务确认请求发送给对应的验证设备,根据第二事务ID、主设备ID、验证设备序号和验证设备ID生成第二转移事务响应收集表,将验证设备签名数量设为0,第二转移事务操作计时开始;
步骤909:每个验证设备从接收到的第二转移事务确认请求中提取第二事务ID、转移接收地址、转移事务数字并显示,当接收到持有验证设备用户触发的操作信息时判断操作信息的类型,如为确认信息则执行步骤911,如为取消信息则执行步骤910;
步骤910:验证设备根据取消信息、验证设备ID和第二事务ID生成事务响应并返回服务器,执行步骤912;
步骤911:验证设备使用设备私钥对第二事务ID、转移接收地址、转移事务数字进行签名得到第一转移事务验证签名结果,根据确认信息、第一转移事务验证签名结果、验证设备ID和第二事务ID生成事务响应并返回给服务器,执行步骤912;
步骤912:服务器接收事务响应,从事务响应中提取第二事务ID,根据事务ID判断是否存在对应的第二转移事务响应收集表,是则执行步骤913,否则删除接收到的事务响应,并通知验证设备删除事务确认请求和事务响应,结束;
步骤913:服务器根据第二事务ID判断接收事务响应是否超时,是则给主设备返回事务确认已超时响应,删除对应的响应收集表、事务确认请求和对应的事务响应,主设备接收到事务确认已超时响应后删除事务确认请求和事务响应,结束,否则执行步骤914;
步骤914:服务器判断事务响应的类型,如为取消响应则执行步骤915,如为确认响应则执行步骤916;
具体的,在本实施例中,步骤914包括:服务器判断事务响应中的信息类型,如为确认信息则为事务响应的类型为确认响应,如为取消信息则为事务响应的类型为取消响应;
步骤915:服务器从事务响应中提取验证设备ID,根据验证设备ID将事务响应中的取消信息填入第二转移事务响应收集表中,执行步骤917;
在本实施例中,将事务响应中的取消信息填入第二转移事务响应收集表中具体为:将事务响应中的取消信息填入第二转移事务响应收集表中的验证设备ID之后;
步骤916:服务器从事务响应中提取验证设备ID和将第一转移事务验证签名结果,根据验证设备ID将第一转移事务验证签名结果填入第二转移事务响应收集表中,验证设备签名数量自加1,执行步骤917;
在本实施例中,将将第一转移事务验证签名结果填入第二转移事务确认的响应收集表中具体为:将将第一转移事务验证签名结果填入第二转移事务响应收集表中的验证设备ID之后;
步骤917:服务器根据验证设备ID计算验证设备总数,判断验证设备签名数量是否小于验证设备总数的一半,是则继续等待接收事务响应,返回步骤912,否则执行步骤918;
步骤918:服务器将第二转移事务操作计时设置为超时,根据事务确认请求中的转移事务验证函数名称、转移接收地址和转移事务数字、第二转移事务响应收集表、验证设备总数、验证设备签名数量和事务响应生成响应数据发送给主设备,删除第二转移事务响应收集表和第二转移事务确认请求;
步骤919:主设备对接收到的响应数据进行解析,从解析结果中的响应收集表中提取转移接收地址、所有的验证设备ID和验证设备ID对应的第一转移事务验证签名结果,将转移事务数字、转移接收地址、验证设备ID、验证设备ID对应的第一转移事务验证签名结果、帐户智能合约地址、转移事务验证函数名称、验证设备总数和验证设备签名数量生成第二转移事务的数据域;
步骤920:主设备提示用户收到的响应数据符合要求,需输入总事务处理消耗数和单位事务处理消耗数,执行步骤921;
可选的,在本实施例中,步骤920还包括:主设备向用户显示第二转移事务取消响应;
步骤921:当主设备接收到用户输入的总事务处理消耗数和单位事务处理消耗数时,判断转移事务数字和总事务处理消耗数之和是否小于主设备ID对应的账户智能合约内保存的总消耗数,是则执行步骤922,否则报错,并提示用户重新输入转移事务信息,返回步骤921;
可选的,在步骤921中如用户输入转移事务信息的错误次数超过预设次数,则主设备报错,结束;
步骤922:主设备根据第二转移事务的数据域、总事务处理消耗数和单位事务处理消耗数生成第二转移事务待签名数据,当接收到用户触发的继续操作信息时判断帐户类型,如为硬件设备帐户则执行步骤923,如为软件应用帐户则执行步骤927;
其中,该步骤中的第二转移事务待签名数据包含总事务处理消耗数和单位事务处理消耗数、转移事务数字、转移接收地址、验证设备ID、验证设备ID对应的第一转移事务验证签名结果、帐户智能合约地址、转移事务验证函数名称、验证设备总数和验证设备签名数量;
步骤923:主设备对用户身份进行验证,如验证成功则执行步骤924,如验证失败则报错,结束;
在本实施例中,对用户身份进行验证包括:
(1)主设备提示用户在硬件设备上输入密码,当硬件设备接收到用户输入的密码时,判断接收到的密码是否与保存的密码匹配,是则验证成功,硬件设备给主设备返回验证成功信息,否则验证失败,硬件设备给主设备返回验证失败信息;
(2)主设备提示用户输入密码,当接收到用户输入的密码时将该密码发送给硬件设备,硬件设备判断接收到的密码是否与保存的密码匹配,是则验证成功,硬件设备给主设备返回验证成功信息,否则验证失败,硬件设备给主设备返回验证失败信息;
(3)主设备提示用户输入指纹,当采集到用户的指纹信息时将该指纹信息发送给硬件设备,硬件设备判断接收到的指纹信息是否与保存的匹指纹模板,是则验证成功,硬件设备给主设备返回成功信息,否则验证失败,硬件设备给主设备返回验证失败信息;
步骤924:主设备将第二转移事务待签名数据发送给连接的硬件设备;
步骤925:硬件设备接收第二转移事务待签名数据并显示,判断是否收到用户的确认信息,是则步骤926,否则报错,结束;
优选的,在本实施例中,步骤925包括:硬件设备接收第二转移事务待签名数据,从第二转移事务待签名数据中提取关键信息并显示,等待用户确认;
步骤926:硬件设备使用保存的用户私钥对第二转移事务待签名数据进行签名得到第二转移事务签名结果,并将第二转移事务签名结果返回给主设备,执行步骤929;
步骤927:主设备提示用户输入转移密码,当收到用户输入的转移密码时判断该转移密码是否正确,是则执行步骤928,否则报错,结束;
步骤928:主设备使用保存的用户私钥对第二转移事务待签名数据进行签名得到第二转移事务签名结果,执行步骤929;
步骤929:主设备根据第二转移事务签名结果、第二转移事务待签名数据写入到第二转移事务中,将包含第二转移事务的指令发送至服务器;
步骤930:服务器对接收到的指令进行解析得到第二转移事务,将第二转移事务发送至事务暂存池,并接收事务暂存池返回的接收到事务的成功信息;
在本实施例中,事务暂存池实时接收全网所有服务器上传的事务;
步骤931:区块链节点从事务暂存池中提取事务并打包成块;
步骤932:区块链节点判断提取的事务是否为第二转移事务,是则执行步骤933,否则报错;
具体的,在本实施例中,步骤932包括:节点判断提取的事务的数据格式是否符合第二转移事务的要求,是则执行步骤933,否则报错;
步骤933:区块链节点提取第二转移事务中的帐户智能合约地址和转移事务验证函数名称,根据帐户智能合约地址找到对应的帐户智能合约,根据转移事务验证函数名称判断该帐户智能合约中是否存在转移事务验证函数,是则将第二转移事务作为参数调用转移事务验证函数,否则报错,结束;
步骤934:帐户智能合约检测到转移事务验证函数被区块链节点调用时,从转移事务验证函数中获取第二转移事务;
步骤935:帐户智能合约对第二转移事务进行解析得到总事务处理消耗数、单位事务处理消耗数、第二转移事务签名结果、转移事务数字、转移接收地址、转移事务数字、验证设备ID和验证设备ID对应的第一转移事务验证签名结果、帐户智能合约地址、转移事务验证函数名称、验证设备总数、验证设备签名数量;
步骤936:帐户智能合约使用保存的用户公钥对第二转移事务签名结果进行验证,如验证成功则执行步骤940,如验证失败则执行步骤937;
步骤937:帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤938,否则执行步骤939;
步骤938:帐户智能合约根据验证操作的实际事务处理消耗数更新总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到第二转移事务的事务日志中,向区块链节点返回第二转移事务和事务日志,执行步骤958;
步骤939:帐户智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第二转移事务的事务日志中,向区块链节点返回第二转移事务和事务日志,执行步骤958;
步骤940:帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤941,否则执行步骤939;
步骤941:帐户智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,根据转移接收地址、转移事务数字、当前总事务处理消耗数、所有验证设备ID和对应的第一转移事务验证签名结果、验证设备总数、验证设备签名数量生成第二转移事务验证请求,根据保存的验证设备智能合约地址向对应的验证设备智能合约发送第二转移事务验证请求,执行步骤942;
步骤942:验证设备智能合约对接收到的第二转移事务验证请求进行解析得到转移接收地址、转移事务数字、总事务处理消耗数、所有验证设备ID和对应的第一转移事务验证签名结果、验证设备总数、验证设备签名数量,判断验证设备签名数量是否大于验证设备总数的一半,是则执行步骤944,否则给帐户智能合约返回失败响应,执行步骤943;
可选的,在本实施例中,步骤942中的判断是非必须的,则步骤941中的第二转移事务验证请求没有验证设备签名数量和验证设备总数;
步骤943:帐户智能合约接收验证设备智能合约返回的失败响应,将所有操作的实际事务处理消耗数和事务执行失败写入到第二转移事务的事务日志中,向区块链节点返回第二转移事务和事务日志,执行步骤958;
步骤944:验证设备智能合约依次根据验证设备ID提取对应保存的验证设备公钥,使用验证设备公钥对验证设备ID对应的第一转移事务验证签名结果进行验证,如验证成功则执行步骤950,如验证失败则执行步骤945;
在本实施例中,如有多个验证设备ID,则进行多次验证操作;验证方法为:使用验证设备ID对应的公钥对第一转移事务验证签名结果进行解密,对第二转移事务的数据域中的转移接收地址和转移事务数字进行哈希计算,判断解密结果与哈希计算结果是否一致,是则验证成功,否则验证失败;
步骤945:验证设备帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤946,否则执行步骤948;
步骤946:验证设备智能合约给帐户智能合约返回事务验证失败响应,执行步骤947;
步骤947:帐户智能合约接收验证设备智能合约返回的事务验证失败响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到第二转移事务的事务日志中,向区块链节点返回第二转移事务和事务日志,执行步骤958;
步骤948:验证设备智能合约向帐户智能合约返回消耗数不足响应,执行步骤949;
步骤949:帐户智能合约接收验证设备智能合约返回的消耗数不足响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第二转移事务的事务日志中,向区块链节点返回第二转移事务和事务日志,执行步骤958;
步骤950:验证设备帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤951,否则执行步骤948;
步骤951:验证设备智能合约给帐户智能合约返回事务验证成功响应,执行步骤952;
步骤952:帐户智能合约接收验证设备智能合约返回的事务验证成功响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,执行步骤953;
步骤953:帐户智能合约判断解析得到的转移事务数字是否小于保存的可转移事务数字,是则执行步骤955,否则执行步骤954;
步骤954:帐户智能合约提示转移数字不足和转移操作失败,将所有操作的实际事务处理消耗数和事务执行失败写入到第二转移事务的事务日志中,向区块链节点返回第二转移事务和事务日志,返回步骤958;
步骤955:帐户智能合约根据转移操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤957,否则执行步骤956;
步骤956:帐户智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第二转移事务的事务日志中,向区块链节点返回第二转移事务和事务日志,执行步骤958;
步骤957:帐户智能合约根据解析得到的转移事务数字更新保存的可转移事务数字,根据解析得到的转移事务数字更新转移接收地址中的事务数字,根据转移操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行成功写入到第二转移事务的事务日志中,向区块链节点返回第二转移事务和事务日志,执行步骤958;
步骤958:每个区块链节点接收帐户智能合约返回的第二转移事务和事务日志并保存,当该区块链节点轮询成为提议节点时,提议节点将第二转移事务和事务日志上传到区块链;
在本实施例中,事务日志中包含有事务执行成功或事务执行失败;
具体的,在本实施例中,提议节点将第二转移事务和事务日志上传到区块链与步骤C37相同,在此不再赘述;
例如,该步骤中的第二转移事务为:0xf902ab2985035458af00830186a094dac17f958d2ee523a2206206994597c13d831ec780b802440x3d3edb4a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000a0ae483f90d16035c623cba51c5bebd0c7c92f5788cb0492ea5fc7ba0024ac985600000000000000000000000000000000000000000000000000000000000000a06a0f98dbd1b90584be645d17c6c9f8508d958701f957b918bb37ffb210b7145000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000a0d693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c04200000000000000000000000000000000000000000000000000000000000000a024e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b35400000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dc25ef3f5b8a186998338a2ada83795fba2d695e000000000000000000000000000000000000000000000000016345785d8a000026a0a5a04faf1d907b129fed7201986182ff08ec98dbcbf2efec35b21fad55c06d07a00dda15ee4b330867a71cbef12ce6e19a7fc3e2869bbc43149dcc76fa8a039f1e
其中0x为16进制字符串,f9为指令头,02ab为后面数据的长度为683字节,29为事务序号为41,85 为下面是单位事务处理消耗数数据长度(占5字节),035458af00 为单位事务处理消耗数14,300,000,000;83最高事务处理消耗数的数据长度(占3字节),0186a0为最高事务处理消耗数数量(100000份),94为第二转移事务的目的地址(即转移接收地址,占20字节),dac17f958d2ee523a2206206994597c13d831ec7为帐户智能合约地址,80为转移事务数字(本事务为0),b80244为第二转移事务的数据域的数据长度(580字节),0x3d3edb4a为转移事务验证函数ID/函数名称;
下面是每个验证设备的ID、响应和签名(以实际收到的签名数量会有不同,但结构是一样的,该数据为主设备有3个验证设备,收到2个验证设备的签名,且其中1号验证设备给出的响应是取消),
1号验证设备的验证设备ID为0000000000000000000000000000000000000000000000000000000000000001,验证设备响应为0000000000000000000000000000000000000000000000000000000000000000(0表示取消),签名(V、R、S字段)为000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000a0ae483f90d16035c623cba51c5bebd0c7c92f5788cb0492ea5fc7ba0024ac985600000000000000000000000000000000000000000000000000000000000000a06a0f98dbd1b90584be645d17c6c9f8508d958701f957b918bb37ffb210b71450;
2号验证设备的验证设备ID为0000000000000000000000000000000000000000000000000000000000000002,验证设备响应为0000000000000000000000000000000000000000000000000000000000000001(1表示确认),签名 (V、R、S字段)为:000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000a0d693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c04200000000000000000000000000000000000000000000000000000000000000a024e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b354,
3号验证设备的验证设备ID为0000000000000000000000000000000000000000000000000000000000000003,签名结果数量为:(2个)0000000000000000000000000000000000000000000000000000000000000002,
实际转移的接收地址为000000000000000000000000dc25ef3f5b8a186998338a2ada83795fba2d695e,实际转移事务数字为000000000000000000000000000000000000000000000000016345785d8a0000(十六进制的16345785d8a0000等于100,000,000,000,000,000,即本次转账为1个ETH,1个ETH可以拆分到小数点后18位,即1个ETH=100,000,000,000,000,000 wei,wei是这些事务的数额所使用的最小单位,前面的事务处理消耗数也是使用Wei作为单位),26 为事务签名的v字段(1字节),a0 表示后面32字节数据是事务签名的R字段,a5a04faf1d907b129fed7201986182ff08ec98dbcbf2efec35b21fad55c06d07为签名数据的R字段,a0表示后面的32字节是签名数据的S字段,0dda15ee4b330867a71cbef12ce6e19a7fc3e2869bbc43149dcc76fa8a039f1e为签名数据S字段;
步骤959:服务器实时获取区块链上的数据,从获取的数据中提取第二转移事务和事务日志,将第二转移事务和事务日志返回给主设备;
步骤960:主设备接收服务器返回的第二转移事务和事务日志,将事务日志保存在用户的操作历史记录中,显示事务日志,判断事务日志中是否包含有事务执行成功,是则用事务日志中的所有操作的实际事务处理消耗数和第二转移事务中的转移事务数字更新保存的总消耗数;
步骤223:服务器将第一转移事务发送至事务暂存池中,服务器接收事务暂存池返回的接收到事务的成功信息;
步骤224:区块链节点从事务暂存池中提取事务,判断提取的事务是否为第一转移事务,是则执行步骤225,否则报错;
在本实施例中,判断提取的事务是否为转移事务,具体为:判断提取的事务的数据格式是否符合第一转移事务的要求,是则为第一转移事务,否则不是第一转移事务;
可选的,在本实施例中,区块链节点提取事务的规则是将事务按单位事务处理消耗数由高到低排列,每次选取单位事务处理消耗数最高的多个事务,提取事务的数量在区块最大可容纳数据量内,通常为10-15个事务;
可选的,本实施例中的事务暂存池实时监视保存的事务,删除在设定时间内未被提取的事务,设定时间通常为24小时;
步骤225:区块链节点提取第一转移事务中的帐户智能合约地址和转移函数的名称,根据帐户智能合约地址找到对应的帐户智能合约;
步骤226:区块链节点根据转移函数的名称判断帐户智能合约中是否存在转移函数,是则将第一转移事务作为参数调用该转移函数,执行步骤227,否则报错;
步骤227:帐户智能合约检测到转移函数被区块链节点调用时,从转移函数中获取第一转移事务;
在本实施例中,该步骤中获取的第一转移事务包括主设备ID、转移函数名称、转移接收地址、转移事务数字、总事务处理消耗数、单位事务处理消耗数、帐户智能合约地址和第一转移事务签名结果;
步骤228:帐户智能合约从第一转移事务中提取第一转移事务签名结果、总事务处理消耗数和转移接收地址,使用保存的用户公钥对第一转移事务签名结果进行验证,如验证成功则执行步骤232,如验证失败则执行步骤229;
步骤229:帐户智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤230,否则执行步骤231;
步骤230:帐户智能合约根据验证操作的实际事务处理消耗数更新提取的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到第一转移事务的事务日志中,向区块链节点返回第一转移事务和事务日志,执行步骤247;
步骤231:帐户智能合约将提取的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第一转移事务的事务日志中,向区块链节点返回第一转移事务和事务日志,执行步骤247;
步骤232:帐户智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤233,否则执行步骤231;
步骤233:帐户智能合约根据验证操作的实际事务处理消耗数更新提取的总事务处理消耗数并作为当前总事务处理消耗数,根据转移接收地址和当前总事务处理消耗数生成查询地址请求,根据保存的白名单智能合约地址向对应的白名单智能合约发送查询地址请求,执行步骤234;
步骤234:白名单智能合约接收查询地址请求并解析,从解析结果中提取转移接收地址和总事务处理消耗数,判断转移接收地址是否在保存的白名单列表中,是则执行步骤240,否则执行步骤235;
步骤235:白名单智能合约根据白名单查询操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤236,否则执行步骤238;
步骤236:白名单智能合约给帐户智能合约返回转移接收地址不在白名单中响应;
步骤237:帐户智能合约接收白名单智能合约返回的转移接收地址不在白名单中响应,根据白名单查询操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到第一转移事务的事务日志中,并向区块链节点返回第一转移事务和事务日志,执行步骤247;
在本实施例中,帐户智能合约接收到地址不在白名单中的响应后不能执行转移操作,达到拦截非法事务的目的,提高管理事务的效率;
步骤238:白名单智能合约给帐户智能合约返回消耗数不足响应;
步骤239:帐户智能合约接收白名单智能合约返回的消耗数不足响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第一转移事务的事务日志中,向区块链节点返回第一转移事务和事务日志,执行步骤247;
步骤240:白名单智能合约根据白名单查询操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤241,否则执行步骤238;
步骤241:白名单智能合约给帐户智能合约返回转移接收地址在白名单中的响应;
步骤242:帐户智能合约接收白名单智能合约返回的转移接收地址在白名单中的响应,根据白名单查询操作的实际事务处理消耗数更新当前总事务处理消耗数,判断提取的转移事务数字是否小于保存的可转移事务数字,是则执行步骤244,否则执行步骤243;
步骤243:帐户智能合约提示转移数字不足和转移操作失败,将所有操作的实际事务处理消耗数和事务执行失败写入到第一转移事务的事务日志中,向区块链节点返回第一转移事务和事务日志,返回步骤247;
步骤244:帐户智能合约根据转移操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤246,否则执行步骤245;
步骤245:帐户智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第一转移事务的事务日志中,向区块链节点返回第一转移事务和事务日志,执行步骤247;
步骤246:帐户智能合约根据第一转移事务中的转移事务数字更新保存的可转移事务数字,根据第一转移事务中的转移事务数字更新转移接收地址中的事务数字,根据转移操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行成功写入到第一转移事务的事务日志中,向区块链节点返回第一转移事务和事务日志,执行步骤247;
步骤247:区块链节点接收到帐户智能合约返回第一转移事务和事务日志并保存,当节点轮询成为提议节点时,提议节点将第一转移事务和事务日志上传到区块链;
在本实施例中,事务日志中包含有事务执行成功或事务执行失败;
本实施例中的提议节点将第一转移事务上传到区块链的实现过程与步骤C37相同,在此不再赘述;
步骤248:服务器实时获取区块链上的数据,从获取的数据中提取到第一转移事务和事务日志,并将第一转移事务和事务日志返回主设备;
步骤249:主设备接收服务器返回的第一转移事务和事务日志,保存事务日志并显示,判断事务日志中是否包含有事务执行成功,是则用事务日志中的所有操作的实际事务处理消耗数和第一转移事务中的转移事务数字更新保存的总消耗数;
具体的,在本实施例中,步骤249中主设备将事务日志中的事务执行成功或事务执行失败显示在用户操作历史记录中。
本发明实施例还提供一种通过智能合约管理事务的实现系统,包括:主设备、服务器和区块链节点,用于实现实施例一和实施例二公开的一种通过智能合约管理事务的实现方法。
本实施例中的主设备可以为手机、硬件设备、电脑终端等,在主设备中保存有用户私钥,区块链节点上运行多个智能合约(帐户智能合约、验证设备智能合约、创建验证设备智能合约的智能合约、白名单智能合约、创建白名单智能合约的智能合约),验证设备可以是手机、硬件设备、电脑终端等。
可选的,本申请的实施例还提供了一种电子设备,电子设备包括至少一个处理器、存储器及存储在该存储器上并可被至少一个处理器执行的指令,至少一个处理器执行该指令以实现上述实施例中的通过智能合约管理事务的实现方法。该电子设备是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中公开的通过智能合约管理事务的实现方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。在电子设备上加载和执行计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个基站、电子设备、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个基站、电子设备、服务器或数据中心进行传输。所述计算机可读存储介质可以是电子设备能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、 或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他生成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不为这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (19)
1.一种通过智能合约管理事务的实现方法,其特征在于,包括:
步骤S1:当主设备接收到用户输入的第一转移信息时,根据所述第一转移信息生成第一待签名数据,对所述用户的身份进行验证,如合法则使用用户私钥对所述第一待签名数据进行签名得到第一转移事务签名结果,执行步骤S2,如不合法则报错;
步骤S2:所述主设备根据第一转移信息中的转移接收地址和转移事务数字生成第一转移事务的数据域,根据所述第一转移事务的数据域、所述第一转移事务签名结果和帐户智能合约地址生成第一转移事务,将包含所述第一转移事务的指令发送给服务器;
步骤S3:所述服务器对接收到的指令进行解析得到所述第一转移事务,根据所述第一转移事务中的帐户智能合约地址从对应的帐户智能合约中获取白名单智能合约地址,根据所述白名单智能合约地址从对应的白名单智能合约中获取所有白名单地址,判断所述第一转移事务中的转移接收地址是否在所述获取的白名单地址中,是则执行步骤S4,否则通过验证设备对所述第一转移事务进行验证,并将验证结果上传到区块链;
步骤S4:所述服务器将所述第一转移事务发送至事务暂存池,并接收所述事务暂存池返回的信息;
步骤S5:区块链节点实时地从所述事务暂存池中提取事务,当判断提取的所述事务为第一转移事务时执行步骤S6;
步骤S6:所述区块链节点从所述第一转移事务中提取转移接收地址、转移事务数字、第一转移事务签名结果和帐户智能合约地址,通过与所述帐户智能合约地址对应的帐户智能合约对所述第一转移事务签名结果进行验证,如验证成功则根据所述转移接收地址和转移事务数字处理第一转移事务,将事务执行成功写入到第一转移事务的事务日志中,执行步骤S7,如验证失败则将事务执行失败写入到第一转移事务的事务日志中,执行步骤S7;
步骤S7:当所述区块链节点轮询成为提议节点时,所述提议节点将所述第一转移事务和所述事务日志上传到区块链;
步骤S8:所述服务器实时获取所述区块链上的数据,从获取的所述数据中获取第一转移事务和事务日志,并将所述第一转移事务和所述事务日志返回给所述主设备,如所述事务日志中包含事务执行成功则所述主设备根据所述第一转移事务和所述事务日志更新保存的总消耗数。
2.如权利要求1所述的方法,其特征在于,所述步骤S1包括:
步骤S1-1:当所述主设备接收到用户输入的第一转移信息时,根据所述第一转移信息判断是否能继续操作,是则执行步骤S1-2,否则报错,并提示用户重新输入第一转移信息;
步骤S1-2:所述主设备根据所述第一转移信息生成第一待签名数据,接收用户触发的继续操作信息;
当帐户类型为硬件设备时执行步骤S1-3,和/或当帐户类型为软件应用时执行步骤S1-7;
步骤S1-3:所述主设备对所述用户的身份进行验证,如验证成功则执行步骤S1-4,如验证失败则报错,结束;
步骤S1-4:所述主设备将所述第一待签名数据发送给硬件设备,执行步骤S1-5;
步骤S1-5:所述硬件设备接收所述第一待签名数据并显示,判断是否收到用户的确认信息,是则执行步骤S1-6,否则报错,结束;
步骤S1-6:所述硬件设备使用保存的用户私钥对所述第一待签名数据进行签名得到第一转移事务签名结果,并将所述第一转移事务签名结果返回给所述主设备,执行步骤S2;
步骤S1-7:所述主设备提示用户输入转移密码,当收到用户输入的转移密码时判断所述转移密码是否正确,是则执行步骤S1-8,否则报错,结束;
步骤S1-8:所述主设备使用内部保存的用户私钥对所述第一待签名数据进行签名得到第一转移事务签名结果,执行步骤S2。
3.如权利要求1所述的方法,其特征在于,所述步骤S2包括:所述主设备根据预置的转移函数名称、所述第一转移信息中的转移接收地址和转移事务数字生成第一转移事务的数据域,根据所述第一转移信息中的总事务处理消耗数和单位事务处理消耗数、所述第一转移事务的数据域、所述第一转移事务签名结果和预置的帐户智能合约地址生成第一转移事务,将包含所述第一转移事务的指令发送至服务器。
4.如权利要求1所述的方法,其特征在于,所述步骤S6包括:
步骤S6-1:所述区块链节点提取所述第一转移事务中的帐户智能合约地址和转移函数名称,根据所述帐户智能合约地址找到对应的帐户智能合约,所述帐户智能合约设置在所述区块链节点上;
步骤S6-2:所述区块链节点根据所述转移函数名称判断找到的所述帐户智能合约中是否存在转移函数,是则将第一转移事务作为参数调用所述转移函数,执行步骤S6-3,否则报错;
步骤S6-3:所述帐户智能合约检测到所述转移函数被所述区块链节点调用时,从所述转移函数中获取所述第一转移事务;
步骤S6-4:所述帐户智能合约从所述第一转移事务中提取第一转移事务签名结果、总事务处理消耗数、转移事务数字和转移接收地址,使用保存的用户公钥对所述第一转移事务签名结果进行验证,如验证通过则执行步骤S6-8,如验证未通过则执行步骤S6-5;
步骤S6-5:所述帐户智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤S6-6,否则执行步骤S6-7;
步骤S6-6:所述帐户智能合约根据验证操作的实际事务处理消耗数更新提取的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到第一转移事务的事务日志中,向所述区块链节点返回所述第一转移事务和所述事务日志,执行步骤S7;
步骤S6-7:所述帐户智能合约将提取的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第一转移事务的事务日志中,向所述区块链节点返回所述第一转移事务和所述事务日志,执行步骤S7;
步骤S6-8:所述帐户智能合约根据验证操作的实际事务处理消耗数判断提取的所述总事务处理消耗数是否充足,是则执行步骤S6-9,否则执行步骤S6-7;
步骤S6-9:所述帐户智能合约根据所述验证操作的实际事务处理消耗数更新提取的总事务处理消耗数并作为当前总事务处理消耗数,根据所述转移接收地址和当前总事务处理消耗数生成查询地址请求,根据保存的白名单智能合约地址向对应的白名单智能合约发送所述查询地址请求,执行步骤S6-10,所述白名单智能合约设置在所述区块链节点上;
步骤S6-10:所述白名单智能合约对接收到的查询地址请求进行解析,从解析结果中提取转移接收地址和总事务处理消耗数,判断所述转移接收地址是否在保存的白名单列表中,是则执行步骤S6-16,否则执行步骤S6-11;
步骤S6-11:所述白名单智能合约根据白名单查询操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤S6-12,否则执行步骤S6-14;
步骤S6-12:所述白名单智能合约给所述帐户智能合约返回转移接收地址不在白名单中响应;
步骤S6-13:所述帐户智能合约接收所述白名单智能合约返回的转移接收地址不在白名单中响应,根据所述白名单查询操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到第一转移事务的事务日志中,向所述区块链节点返回所述第一转移事务和所述事务日志,执行步骤S7;
步骤S6-14:所述白名单智能合约给所述帐户智能合约返回消耗数不足响应;
步骤S6-15:所述帐户智能合约接收所述白名单智能合约返回的消耗数不足响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第一转移事务的事务日志中,向所述区块链节点返回所述第一转移事务和所述事务日志,执行步骤S7;
步骤S6-16:所述白名单智能合约根据白名单查询操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤S6-17,否则执行步骤S6-14;
步骤S6-17:所述白名单智能合约给所述帐户智能合约返回转移接收地址在白名单中的响应;
步骤S6-18:所述帐户智能合约接收所述白名单智能合约返回的转移接收地址在白名单中的响应,根据所述白名单查询操作的实际事务处理消耗数更新当前总事务处理消耗数,判断提取的所述转移事务数字是否小于保存的可转移事务数字,是则执行步骤S6-20,否则执行步骤S6-19;
步骤S6-19:所述帐户智能合约提示转移数字不足和转移操作失败,将事务执行失败写入到第一转移事务的事务日志中,向所述区块链节点返回所述第一转移事务和所述事务日志,返回步骤S7;
步骤S6-20:所述帐户智能合约根据转移操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤S6-22,否则执行步骤S6-21;
步骤S6-21:所述帐户智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第一转移事务的事务日志中,向所述区块链节点返回所述第一转移事务和所述事务日志,执行步骤S7;
步骤S6-22:所述帐户智能合约根据提取的所述转移事务数字更新保存的可转移事务数字,根据所述第一转移事务中的转移事务数字更新所述转移接收地址中的事务数字,根据转移操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行成功写入到所述第一转移事务的事务日志中,向所述区块链节点返回所述第一转移事务和所述事务日志,执行步骤S7;
所述步骤S7具体为:所述区块链节点接收所述帐户智能合约返回的所述第一转移事务和所述事务日志并保存,当所述区块链节点轮询成为提议节点时,将所述第一转移事务和所述事务日志上传到区块链。
5.如权利要求1所述的方法,其特征在于,还包括:
步骤M1:当所述主设备接收到用户触发的添加白名单信息时,判断是否满足执行添加白名单操作的条件,是则通过所述验证设备对待添加白名单地址进行签名得到添加白名单事务签名结果,执行步骤M2,否则报错,结束;
步骤M2:所述主设备根据所述待添加白名单地址、所述添加白名单事务签名结果和获取的验证设备ID生成添加白名单事务,将包含所述添加白名单事务的指令发送至所述服务器;
步骤M3:所述服务器对接收到的指令进行解析得到添加白名单事务,将所述添加白名单事务发送至事务暂存池,并接收所述暂存池返回的信息;
步骤M4:所述区块链节点从所述事务暂存池中提取事务,当判断提取的事务为添加白名单事务时执行步骤M5;
步骤M5:所述区块链节点从所述添加白名单事务中提取待添加白名单地址、添加白名单事务签名结果和验证设备ID,通过验证设备智能合约使用与所述验证设备ID对应的验证设备公钥对所述添加白名单事务签名结果进行验证,如验证成功则将所述待添加白名单地址保存在白名单智能合约中,将事务执行成功写入到添加白名单事务的事务日志中,执行步骤M6,如验证失败则将事务执行失败写入到添加白名单事务的事务日志中,执行步骤M6;
步骤M6:当所述区块链节点轮询成为提议节点时,所述提议节点将添加白名单事务和所述事务日志上传到区块链;
步骤M7:所述服务器实时获取所述区块链上的数据,并从获取的数据中提取添加白名单事务和事务日志,将所述添加白名单事务和事务日志返回给所述主设备。
6.如权利要求5所述的方法,其特征在于,所述步骤M1包括:
步骤M1-1:所述主设备显示白名单管理页面,提示用户进行操作,当接收到用户触发的添加白名单信息时执行步骤M1-2,所述添加白名单信息中包括主设备ID;
步骤M1-2:所述主设备向所述服务器发送包含主设备ID和帐户智能合约地址的查询白名单请求;
步骤M1-3:所述服务器从接收到的所述查询白名单请求中提取帐户智能合约地址和主设备ID,根据所述帐户智能合约地址找到对应帐户智能合约,在所述帐户智能合约中查找白名单智能合约地址,如找到则执行步骤M1-4;
步骤M1-4:所述服务器根据所述白名单智能合约地址读取对应白名单智能合约中保存的白名单地址数量和白名单最大数量;
步骤M1-5:所述服务器判断所述白名单地址数量是否等于所述白名单最大数量,是则执行步骤M1-6,否则执行步骤M1-8;
步骤M1-6:所述服务器将白名单已达最大值的消息返回给所述主设备;
步骤M1-7:所述主设备接收到白名单已达最大值的消息后报错,结束;
步骤M1-8:所述服务器向所述主设备返回包含白名单地址数量的响应;
步骤M1-9:所述主设备对接收到的响应进行解析得到白名单地址数量,向用户提示所述白名单地址数量,等待用户操作;
步骤M1-10:当所述主设备接收到用户输入的待添加白名单地址时,生成请求ID,向所述服务器发送包含所述主设备ID、所述待添加白名单地址和所述请求ID的添加白名单请求;
步骤M1-11:所述服务器对接收到的添加白名单请求进行解析得到主设备ID、待添加白名单地址和请求ID,根据所述主设备ID查找保存的验证设备列表,按照所述验证设备列表中验证设备序号的顺序,依次根据验证设备ID将所述确认添加白名单请求发送给对应的验证设备,使用所述请求ID、主设备ID、待添加白名单地址、验证设备序号和验证设备ID生成确认添加白名单响应收集表,将验证设备签名数量设置为0,添加白名单操作计时开始;
步骤M1-12:每个验证设备对接收到的所述确认添加白名单请求进行解析得到请求ID、主设备ID、待添加白名单地址,显示所述主设备ID和所述待添加白名单地址,当接收到持有验证设备用户触发的操作信息时判断操作信息的类型,如为取消信息则执行步骤M1-13,如为确认信息则执行步骤M1-14;
步骤M1-13:所述验证设备将取消信息、验证设备ID和所述请求ID生成确认添加白名单响应并返回所述服务器,执行步骤M1-15;
步骤M1-14:所述验证设备使用自身的验证设备私钥对所述主设备ID和所述待添加白名单地址进行签名得到添加白名单事务签名结果,根据确认信息、所述添加白名单事务签名结果、所述验证设备ID和所述请求ID生成确认添加白名单响应并返回给所述服务器,执行步骤M1-15;
步骤M1-15:所述服务器从接收到的所述确认添加白名单响应中提取请求ID,判断所述请求ID是否存在于所述确认添加白名单响应收集表中,是则执行步骤M1-16,否则删除接收到的确认添加白名单响应,结束;
步骤M1-16:所述服务器根据所述请求ID判断接收确认添加白名单响应是否超时,是则向所述主设备返回接收确认添加白名单响应已超时的响应,删除所述确认添加白名单响应收集表,结束,否则执行步骤M1-17;
步骤M1-17:所述服务器判断确认添加白名单响应的类型,如为确认则执行步骤M1-19,如为取消则执行步骤M1-18;
步骤M1-18:所述服务器从确认添加白名单响应中提取验证设备ID和取消信息,将所述取消信息填入与所述请求ID对应的确认添加白名单响应收集表中的所述验证设备ID之后,执行步骤M1-20;
步骤M1-19:所述服务器从确认添加白名单响应中提取验证设备ID和添加白名单事务签名结果,将所述添加白名单事务签名结果填入与所述请求ID对应的确认添加白名单响应收集表中的验证设备ID之后,将验证设备签名数量自加1,执行步骤M1-20;
步骤M1-20:所述服务器根据验证设备ID计算验证设备总数,判断所述验证设备签名数量是否小于所述验证设备总数的一半,是则等待接收响应,返回步骤M1-15,否则执行步骤M1-21;
步骤M1-21:所述服务器将添加白名单操作计时设置为超时,根据与所述请求ID对应的确认添加白名单响应收集表、所述验证设备总数、所述验证设备签名数量和所述确认添加白名单响应生成响应数据并发送给所述主设备,删除与所述请求ID对应的确认添加白名单响应收集表;
步骤M1-22:所述主设备从接收到的响应数据中提取确认添加白名单响应收集表,删除所述确认添加白名单响应收集表中的取消信息,提示用户输入提供事务处理消耗数地址、总事务处理消耗数和单位事务处理消耗数,根据提供事务处理消耗数地址查询总消耗数,判断所述总事务处理消耗数是否小于所述总消耗数,是则执行步骤M2,否则报错,提示用户重新输入信息;
所述步骤M2包括:所述主设备根据所述待添加白名单地址、所述白名单智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、预置的添加白名单地址函数名称、验证设备ID和对应的添加白名单事务签名结果、验证设备智能合约地址、验证设备总数和验证设备签名数量生成添加白名单事务,使用所述提供事务处理消耗数地址所对应的私钥对添加白名单事务进行签名得到事务处理消耗数签名结果,将所述事务处理消耗数签名结果写入到添加白名单事务的签名数据位置,将所述主设备ID和所述添加白名单事务发送至所述服务器。
7.如权利要求5所述的方法,其特征在于,所述步骤M5包括:
步骤M5-1:所述区块链节点提取添加白名单事务中的白名单智能合约地址和添加白名单地址函数名称,根据所述白名单智能合约地址找到对应的白名单智能合约,根据所述添加白名单地址函数名称判断找到的白名单智能合约中是否存在添加白名单地址函数,是则根据所述添加白名单事务调用所述白名单智能合约中的添加白名单地址函数,执行步骤M5-2,否则报错,结束;
步骤M5-2:所述白名单智能合约检测到添加白名单地址函数被调用时,从所述添加白名单地址函数中提取添加白名单事务;
步骤M5-3:所述白名单智能合约对提取到的添加白名单事务进行解析;
步骤M5-4:所述白名单智能合约根据解析得到的提供事务处理消耗数地址计算出对应的公钥,使用所述公钥对解析得到的事务处理消耗数签名结果进行验证,如验证成功则执行步骤M5-8,如验证失败则执行步骤M5-5;
步骤M5-5:所述白名单智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤M5-6,否则执行步骤M5-7;
步骤M5-6:所述白名单智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到添加白名单事务的事务日志中,向所述区块链节点返回所述添加白名单事务和所述事务日志,执行步骤M6;
步骤M5-7:所述白名单智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加白名单事务的事务日志中,向所述区块链节点返回所述添加白名单事务和所述事务日志,执行步骤M6;
步骤M5-8:所述白名单智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤M5-9,否则执行步骤M5-7;
步骤M5-9:所述白名单智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,根据当前总事务处理消耗数、解析得到的所有验证设备ID和对应的添加白名单事务签名结果、验证设备总数、验证设备签名数量生成第一验证设备验证请求,根据解析得到的验证设备智能合约地址向对应的验证设备智能合约发送所述第一验证设备验证请求;
步骤M5-10:所述验证设备智能合约从接收到的所述第一验证设备验证请求中提取验证设备总数、验证设备签名数量、验证设备ID和对应的添加白名单事务签名结果、总事务处理消耗数,判断所述验证设备签名数量是否大于所述验证设备总数的一半,是则执行步骤M5-13,否则执行步骤M5-11;
步骤M5-11:所述验证设备智能合约给所述白名单智能合约返回失败响应;
步骤M5-12:所述白名单智能合约接收所述验证设备智能合约返回的失败响应,将所有操作的实际事务处理消耗数和事务执行失败写入到添加白名单事务的事务日志中,向所述区块链节点返回所述添加白名单事务和所述事务日志,执行步骤M6;
步骤M5-13:所述验证设备智能合约依次根据验证设备ID提取自身保存的对应验证设备公钥,使用所述验证设备公钥对与所述验证设备ID对应的添加白名单事务签名结果进行验证,如验证成功则执行步骤M5-19,如验证失败则执行步骤M5-14;
步骤M5-14:所述验证设备智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤M5-15,否则执行步骤M5-17;
步骤M5-15:所述验证设备智能合约给所述白名单智能合约返回事务验证失败响应;
步骤M5-16:所述白名单智能合约接收所述验证设备智能合约返回的事务验证失败响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到添加白名单事务的事务日志中,向所述区块链节点返回所述添加白名单事务和所述事务日志,执行步骤M6;
步骤M5-17:所述验证设备智能合约给所述白名单智能合约返回消耗数不足响应;
步骤M5-18:所述白名单智能合约接收所述验证设备智能合约返回的消耗数不足响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加白名单事务的事务日志中,向所述区块链节点返回所述添加白名单事务和所述事务日志,执行步骤M6;
步骤M5-19:所述验证设备智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤M5-20,否则执行步骤M5-17;
步骤M5-20:所述验证设备智能合约给所述白名单智能合约返回事务验证成功响应;
步骤M5-21:所述白名单智能合约接收所述验证设备智能合约返回的事务验证成功响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据添加白名单地址操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤M5-23,否则执行步骤M5-22;
步骤M5-22:所述白名单智能合约将当前事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加白名单事务的事务日志中,向所述区块链节点返回所述添加验证设备事务和所述事务日志,执行步骤M6;
步骤M5-23:所述白名单智能合约根据添加白名单地址操作的实际事务处理消耗数更新当前总事务处理消耗数,将所述待添加白名单地址写入到自己的存储区,将所有操作的实际事务处理消耗数和事务执行成功写入到添加白名单事务的事务日志中,将所述添加白名单事务和所述事务日志返回给所述区块链节点,执行步骤M6;
所述步骤M6具体为:所述区块链节点接收所述白名单智能合约返回的所述添加白名单事务和所述事务日志并保存,当所述区块链节点轮询成为提议节点时,将所述添加白名单事务和所述事务日志上传到区块链。
8.如权利要求6所述的方法,其特征在于,还包括:所述步骤M1-3还包括:如在所述帐户智能合约中未找到白名单智能合约地址则执行步骤N0;
步骤N0:所述服务器向所述主设备返回白名单智能合约不存在响应;
步骤N1:所述主设备判断是否满足执行添加白名单智能合约操作的条件,是则通过验证设备对待添加白名单地址进行签名得到创建白名单智能合约事务签名结果,执行步骤N2,否则报错,结束;
步骤N2:所述主设备根据所述待添加白名单地址、所述创建白名单智能合约事务签名结果和获取的验证设备ID生成创建白名单智能合约事务,将包含所述创建白名单智能合约事务的指令发送至所述服务器;
步骤N3:所述服务器对接收到的指令进行解析得到创建白名单智能合约事务,将所述创建白名单智能合约事务发送至事务暂存池,并接收所述暂存池返回的信息;
步骤N4:所述区块链节点从所述事务暂存池中提取事务,当判断提取的事务为创建白名单智能合约事务时执行步骤N5;
步骤N5:所述区块链节点从所述创建白名单智能合约事务中提取待添加白名单地址、创建白名单智能合约事务签名结果和验证设备ID,通过验证设备智能合约使用与所述验证设备ID对应的验证设备公钥对所述创建白名单智能合约事务签名结果进行验证,如验证成功则创建白名单智能合约,将所述待添加白名单地址保存在所述白名单智能合约中,从新创建的所述白名单智能合约中对应的获取白名单智能合约地址并写入到帐户智能合约中,将事务执行成功和所述白名单智能合约地址写入到创建白名单智能合约事务的事务日志中,执行步骤N6,如验证失败则将事务执行失败写入到创建白名单智能合约事务的事务日志中,执行步骤N6;
步骤N6:当所述区块链节点轮询成为提议节点时,所述提议节点将所述创建白名单智能合约事务和所述事务日志上传到区块链;
步骤N7:所述服务器实时获取所述区块链上的数据,并从获取的数据中获取事务日志,如所述事务日志中包含事务执行成功则提取所述事务日志中的白名单智能合约地址并与所述主设备ID对应保存,将所述白名单智能合约地址返回给所述主设备进行保存。
9.如权利要求8所述的方法,其特征在于,所述步骤N1包括:
步骤N1-1:所述主设备提示用户不存在白名单智能合约,需创建白名单智能合约且添加一个白名单地址,等待用户确认触发操作;
步骤N1-2:当所述主设备接收到用户输入的待添加白名单地址时,根据主设备ID、所述待添加白名单地址和请求ID生成确认创建白名单智能合约请求,并向所述服务器发送所述确认创建白名单智能合约请求;
步骤N1-3:所述服务器对接收到的确认创建白名单智能合约请求进行解析得到主设备ID、待添加白名单地址和请求ID,根据所述主设备ID查找保存的对应验证设备列表,按照验证设备列表中的验证设备序号的顺序,依次根据所述验证设备ID将所述确认创建白名单智能合约请求发送给对应的验证设备,根据所述请求ID、所述主设备ID、所述验证设备列表中的验证设备序号和所述验证设备ID生成确认创建白名单智能合约响应收集表,将验证设备签名数量设置为0,创建白名单智能合约操作计时开始;
步骤N1-4:每个验证设备对接收到的所述确认创建白名单智能合约请求进行解析得到主设备ID、待添加白名单地址和请求ID,显示所述主设备ID和所述待添加白名单地址,当接收到用户触发的操作信息时判断所述操作消息的类型,如为取消信息则执行步骤N1-5,如为确认信息则执行步骤N1-6;
步骤N1-5:所述验证设备将取消信息、验证设备ID和所述请求ID生成确认创建白名单智能合约响应并返回所述服务器,执行步骤N1-7;
步骤N1-6:所述验证设备使用自身的验证设备私钥对所述主设备ID和所述待添加白名单地址进行签名得到创建白名单智能合约事务签名结果,根据确认信息、所述创建白名单智能合约事务签名结果、验证设备ID和所述请求ID生成确认创建白名单智能合约响应并返回给所述服务器,执行步骤N1-7;
步骤N1-7:所述服务器从接收到的确认创建白名单智能合约响应中提取请求ID,根据所述请求ID判断是否存在对应的确认创建白名单智能合约响应收集表,是则执行步骤N1-8,否则删除接收到的确认创建白名单智能合约响应,结束;
步骤N1-8:所述服务器根据所述请求ID判断接收确认创建白名单智能合约响应是否超时,是则执行步骤N1-9,否则执行步骤N1-10;
步骤N1-9:所述服务器向所述主设备返回确认创建白名单智能合约请求已超时的响应,删除所述确认创建白名单智能合约响应收集表,结束;
步骤N1-10:所述服务器判断所述确认创建白名单智能合约响应的操作类型,如为确认则执行步骤N1-11,如为取消则执行步骤N1-12;
步骤N1-11:所述服务器从所述确认创建白名单智能合约响应中提取验证设备ID和创建白名单智能合约事务签名结果,将所述创建白名单智能合约事务签名结果填入所述请求ID对应的确认创建白名单智能合约响应收集表中的所述验证设备ID之后,所述验证设备签名数量自加1,执行步骤N1-13;
步骤N1-12:所述服务器从确认创建白名单智能合约响应中提取验证设备ID,将取消信息填入所述请求ID对应的确认创建白名单智能合约响应收集表中的验证设备ID之后,执行步骤N1-13;
步骤N1-13:所述服务器根据所述验证设备ID计算验证设备总数,判断所述验证设备签名数量是否小于所述验证设备总数的一半,是则等待接收响应,返回步骤N1-7,否则执行步骤N1-14;
步骤N1-14:所述服务器将创建白名单智能合约操作计时设置为超时,根据所述确认创建白名单智能合约响应收集表、所述验证设备总数、所述验证设备签名数量、所述创建事务签名结果数量和所述确认创建白名单智能合约响应生成第一响应发送给所述主设备,删除确认创建白名单智能合约响应收集表;
步骤N1-15:所述主设备从接收到的第一响应中提取确认创建白名单智能合约响应收集表,删除所述确认创建白名单智能合约响应收集表中的取消信息,提示并接收用户输入的事务处理消耗数地址、总事务处理消耗数和单位事务处理消耗数,根据所述事务处理消耗数地址查询对应的总消耗数,判断所述总事务处理消耗数是否小于所述总消耗数,是则执行步骤N2,否则报错,提示用户重新输入信息;
所述步骤N2包括:所述主设备根据所述待添加白名单地址、创建白名单智能合约的智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、预设的创建白名单智能合约函数名称、帐户智能合约地址、验证设备总数、验证设备签名数量生成创建白名单智能合约事务,使用所述提供事务处理消耗数地址所对应的私钥对所述创建白名单智能合约事务进行签名得到事务处理消耗数签名结果,将所述事务处理消耗数签名结果写入到所述创建白名单智能合约事务的签名数据位置,将包含所述主设备ID和所述创建白名单智能合约事务的指令发送至所述服务器。
10.如权利要求8所述的方法,其特征在于,所述步骤N5包括:
步骤N5-1:所述区块链节点提取创建白名单智能合约事务中的创建白名单智能合约的智能合约地址和创建白名单智能合约函数名称,根据所述创建白名单智能合约的智能合约地址找到对应的创建白名单智能合约的智能合约,根据所述创建白名单智能合约函数名称判断找到的创建白名单智能合约的智能合约中是否存在创建白名单智能合约函数,是则根据所述创建白名单智能合约事务调用所述创建白名单智能合约函数,执行步骤N5-2,否则报错,结束;
步骤N5-2:所述创建白名单智能合约的智能合约检测到创建白名单智能合约函数被调用时,从所述创建白名单智能合约函数中提取创建白名单智能合约事务;
步骤N5-3:所述创建白名单智能合约的智能合约对所述创建白名单智能合约事务进行解析;
步骤N5-4:所述创建白名单智能合约的智能合约从解析结果中提取事务处理消耗数签名结果和提供事务处理消耗数地址,根据所述提供事务处理消耗数地址计算对应的公钥,使用所述公钥对所述事务处理消耗数签名结果进行验证,如验证成功则执行步骤N5-8,如验证失败则执行步骤N5-5;
步骤N5-5:所述创建白名单智能合约的智能合约根据验证操作的实际事务处理消耗数判断解析结果中的总事务处理消耗数是否充足,是则执行步骤N5-6,否则执行步骤N5-7;
步骤N5-6:所述创建白名单智能合约的智能合约根据验证操作的实际事务处理消耗数更新解析结果中的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到创建白名单智能合约事务的事务日志中,向所述区块链节点返回所述创建白名单智能合约事务和所述事务日志,执行步骤N6;
步骤N5-7:所述创建白名单智能合约的智能合约将解析结果中的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到创建白名单智能合约事务的事务日志中,向所述区块链节点返回所述创建白名单智能合约事务和所述事务日志,执行步骤N6;
步骤N5-8:所述创建白名单智能合约的智能合约根据验证操作的实际事务处理消耗数判断解析结果中的总事务处理消耗数是否充足,是则执行步骤N5-9,否则执行步骤N5-7;
步骤N5-9:所述创建白名单智能合约的智能合约根据验证操作的实际事务处理消耗数更新解析结果中的总事务处理消耗数并作为当前总事务处理消耗数,根据当前总事务处理消耗数、解析结果中的所有验证设备ID和对应的创建白名单智能合约事务签名结果、验证设备总数、验证设备签名数量生成第二验证设备验证请求,根据解析结果中的验证设备智能合约地址向对应的验证设备智能合约发送所述第二验证设备验证请求;
步骤N5-10:所述验证设备智能合约从接收到的所述第二验证设备验证请求中提取验证设备总数、验证设备签名数量、所有验证设备ID和对应的创建白名单智能合约事务签名结果、总事务处理消耗数,判断所述验证设备签名数量是否大于所述验证设备总数的一半,是则执行步骤N5-13,否则执行步骤N5-11;
步骤N5-11:所述验证设备智能合约给所述创建白名单智能合约的智能合约返回失败响应;
步骤N5-12:所述创建白名单智能合约的智能合约接收所述验证设备智能合约返回的失败响应,将所有操作的实际事务处理消耗数和事务执行失败写入到创建白名单智能合约事务的事务日志中,向所述区块链节点返回所述创建白名单智能合约事务和所述事务日志,执行步骤N6;
步骤N5-13:所述验证设备智能合约依次根据每个验证设备ID提取保存的对应验证设备公钥,依次使用所述验证设备公钥对所述验证设备ID对应的创建白名单智能合约事务签名结果进行验证,如验证成功则执行步骤N5-19,如验证失败则执行步骤N5-14;
步骤N5-14:所述验证设备智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤N5-15,否则执行步骤N5-17;
步骤N5-15:所述验证设备智能合约给所述创建白名单智能合约的智能合约返回事务验证失败响应;
步骤N5-16:所述创建白名单智能合约的智能合约接收所述验证设备智能合约返回的事务验证失败响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到创建白名单智能合约事务的事务日志中,向所述区块链节点返回所述创建白名单智能合约事务和所述事务日志,执行步骤N6;
步骤N5-17:所述验证设备智能合约向所述创建白名单智能合约的智能合约返回消耗数不足响应;
步骤N5-18:所述创建白名单智能合约的智能合约接收所述验证设备智能合约返回的消耗数不足响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到创建白名单智能合约事务的事务日志中,向所述区块链节点返回所述创建白名单智能合约事务和所述事务日志,执行步骤N6;
步骤N5-19:所述验证设备智能合约根据验证操作的实际事务处理消耗数判断提取的总事务处理消耗数是否充足,是则执行步骤N5-20,否则执行步骤N5-17;
步骤N5-20:所述验证设备智能合约给所述创建白名单智能合约的智能合约返回事务验证成功响应;
步骤N5-21:所述创建白名单智能合约的智能合约接收所述验证设备智能合约返回的事务验证成功响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据创建白名单智能合约操作的实际事务处理消耗数和两次写入操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤N5-23,否则执行步骤N5-22;
步骤N5-22:所述创建白名单智能合约的智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到创建白名单智能合约事务的事务日志中,向所述区块链节点返回所述创建白名单智能合约事务和所述事务日志,执行步骤N6;
步骤N5-23:所述创建白名单智能合约的智能合约创建白名单智能合约,将解析结果中的待添加白名单地址写入到新创建的所述白名单智能合约中,从新创建的白名单智能合约中获取白名单智能合约地址,根据解析结果中的所述帐户智能合约地址查找对应的帐户智能合约,将所述新创建的白名单智能合约地址写入到找到的所述帐户智能合约中,根据创建白名单智能合约操作的实际事务处理消耗数和两次写入操作的实际事务处理消耗数更新当前总事务处理消耗数,将所述新创建的白名单智能合约地址、所有操作的实际事务处理消耗数和事务执行成功写入到创建白名单智能合约事务的事务日志中,将所述创建白名单智能合约事务和所述事务日志返回给所述区块链节点,执行步骤N6;
所述步骤N6具体为:所述区块链节点接收所述创建白名单智能合约的智能合约返回的所述创建白名单智能合约事务和所述事务日志并保存,当所述区块链节点轮询成为提议节点时,将所述创建白名单智能合约事务和所述事务日志上传到区块链。
11.如权利要求1所述的方法,其特征在于,所述通过验证设备对所述第一转移事务进行验证,并将验证结果上传到区块链,包括:
步骤P:所述服务器给所述主设备返回第一转移事务需验证信息,所述主设备通过验证设备对所述第一转移信息进行签名得到第一转移事务验证签名结果,所述主设备使用用户私钥对用户输入的第二转移信息进行签名得到第二转移事务签名结果,根据验证设备ID、所述第一转移事务验证签名结果、第二转移事务签名结果、帐户智能合约地址生成第二转移事务,通过所述服务器将所述第二转移事务发送至所述事务暂存池;
所述区块链节点从所述事务暂存池中提取到第二转移事务,通过与帐户智能合约地址对应的帐户智能合约对所述第二转移事务中的第二转移事务签名结果进行验证,如验证成功则使用与验证设备ID对应的验证设备智能合约对所述第二转移事务中的第一转移事务验证签名结果进行验证,并将验证结果上传到区块链。
12.如权利要求11所述的方法,其特征在于,所述步骤P包括:
步骤P0:所述服务器暂存所述第一转移事务,并给所述主设备返回第一转移事务需验证信息;
步骤P1:所述主设备接收到服务器发送的信息后判断是否满足执行第一转移事务验证操作的条件,是则通过验证设备对所述第一转移信息进行签名得到第一转移事务验证签名结果,通过所述服务器判断能否继续执行转移事务验证操作,是则执行步骤P2;
步骤P2:所述主设备将所述第一转移信息中的转移接收地址和转移事务数字、验证设备ID、对应的第一转移事务验证签名结果、帐户智能合约地址写入到第二转移事务的数据域;当接收到用户输入的第二转移信息时,根据所述第二转移事务信息生成第二转移事务待签名数据,并对用户身份进行验证,如验证通过则使用用户私钥对所述第二转移事务待签名数据进行签名得到第二转移事务签名结果,将所述第二转移事务待签名数据和第二转移事务签名结果写入到第二转移事务的签名数据位置,将包含第二转移事务的指令发送给所述服务器;所述第二转移信息不包括所述转移接收地址和所述转移事务数字;
步骤P3:所述服务器对接收到的指令进行解析,并将解析得到的第二转移事务发送至事务暂存池,并接收所述暂存池返回的信息;
步骤P4:所述区块链节点从所述事务暂存池中提取事务,当判断提取的事务为第二转移事务时执行步骤P5;
步骤P5:所述区块链节点从所述第二转移事务中提取转移接收地址、转移事务数字、第二转移事务待签名数据、第二转移事务签名结果、验证设备ID、对应的第一转移事务验证签名结果和帐户智能合约地址,通过与所述帐户智能合约地址对应的帐户智能合约使用所述第二转移事务待签名数据对所述第二转移事务签名结果进行验证,如验证成功则通过验证设备ID和验证设备智能合约对所述对应的第一转移事务验证签名结果进行验证,如验证成功则根据所述转移接收地址和所述转移事务数字处理所述第二转移事务,将事务执行成功写入到第二转移事务的事务日志中,执行步骤P6,否则将事务执行失败写入到第二转移事务的事务日志中,执行步骤P6;
步骤P6:当所述区块链节点轮询成为提议节点时,所述提议节点将所述第二转移事务和所述事务日志上传到区块链;
步骤P7:所述服务器实时获取所述区块链上的数据,从获取的数据中获取第二转移事务和事务日志,将所述第二转移事务和所述事务日志返回给所述主设备,如所述事务日志中有事务执行执行则所述主设备根据所述第二转移事务和所述事务日志中更新保存的总消耗数。
13.如权利要求12所述的方法,其特征在于,所述步骤P0包括:所述服务器暂存第一转移事务请求,将第一转移事务的转移接收地址不在白名单中和第一转移事务暂停等待确认的信息返回给所述主设备;
所述步骤P1包括:
步骤P1-1:所述主设备接收到服务器发送的信息后提示用户继续进行操作,如收到用户触发的要求验证设备对第一转移事务进行验证的信息则执行步骤P1-2;
步骤P1-2:所述主设备将包括生成的第二事务ID、所述第一转移信息中的转移接收地址和转移事务数字、主设备ID、转移事务验证函数名称的第二转移事务确认请求发送至所述服务器;
步骤P1-3:所述服务器从接收到的所述第二转移事务确认请求中提取主设备ID,根据所述主设备ID查找对应保存的验证设备列表,如找到则执行步骤P1-4,如未找到则删除接收到的第二转移事务确认请求,向所述主设备返回错误信息,结束;
步骤P1-4:所述服务器获取所述验证设备列表中的验证设备序号和验证设备ID,按照所述验证设备序号的顺序依次根据所述验证设备ID将所述第二转移事务确认请求发送给对应的验证设备,根据所述第二事务ID、所述主设备ID、所述验证设备序号和所述验证设备ID生成第二转移事务响应收集表,将验证设备签名数量设为0,第二转移事务操作计时开始;
步骤P1-5:每个验证设备从接收到的所述第二转移事务确认请求中提取第二事务ID、转移接收地址、转移事务数字并显示,当接收到持有验证设备用户触发的操作信息时判断所述操作信息的类型,如为确认信息则执行步骤P1-7,如为取消信息则执行步骤P1-6;
步骤P1-6:所述验证设备根据取消信息、验证设备ID和所述第二事务ID生成事务响应并返回所述服务器,执行步骤P1-8;
步骤P1-7:所述验证设备使用设备私钥对所述第二事务ID、转移接收地址、转移事务数字进行签名得到第一转移事务验证签名结果,根据确认信息、所述第一转移事务验证签名结果、验证设备ID和所述第二事务ID生成事务响应并返回给所述服务器,执行步骤P1-8;
步骤P1-8:所述服务器从接收到的所述事务响应中提取事务ID,根据所述事务ID判断是否存在对应的第二转移事务响应收集表,是则执行步骤P1-9,否则删除接收到的所述事务响应,通知所述验证设备删除所述事务确认请求和所述事务响应,结束;
步骤P1-9:所述服务器根据所述第二事务ID判断接收事务响应是否超时,是则给所述主设备返回事务确认已超时响应,删除对应的所述响应收集表、所述事务确认请求和所述事务响应,所述主设备接收到事务确认已超时响应后删除所述事务确认请求和所述事务响应,结束,否则执行步骤P1-10;
步骤P1-10:所述服务器判断所述事务响应的类型,如为取消响应则执行步骤P1-11,如为确认响应则执行步骤P1-12;
步骤P1-11:所述服务器从所述事务响应中提取验证设备ID,根据所述验证设备ID将所述事务响应中的取消信息填入所述第二转移事务响应收集表中,执行步骤P1-13;
步骤P1-12:所述服务器从所述事务响应中提取验证设备ID和第一转移事务验证签名结果,根据所述验证设备ID将所述第一转移事务验证签名结果填入到所述第二转移事务响应收集表中,所述验证设备签名数量自加1,执行步骤P1-13;
步骤P1-13:所述服务器根据所述验证设备ID计算验证设备总数,判断所述验证设备签名数量是否小于所述验证设备总数的一半,是则继续等待接收事务响应,返回步骤P1-8,否则执行步骤P1-14;
步骤P1-14:所述服务器将所述第二转移事务操作计时设置为超时,根据所述事务确认请求中的转移事务验证函数名称、转移接收地址和转移事务数字、所述第二转移事务响应收集表、所述验证设备总数、所述验证设备签名数量和所述事务响应生成响应数据发送给所述主设备,删除所述第二转移事务的响应收集表和所述第二转移事务确认请求。
14.如权利要求13所述的方法,其特征在于,所述步骤P2包括:
步骤P21:所述主设备对接收到的响应数据进行解析,将解析结果中的所述转移接收地址、转移事务数字、所述验证设备ID、所述验证设备ID对应的第一转移事务验证签名结果、帐户智能合约地址、所述转移事务验证函数名称、验证设备总数和验证设备签名数量生成第二转移事务的数据域;
步骤P22:所述主设备提示用户收到的响应数据符合要求,需输入总事务处理消耗数和单位事务处理消耗数,执行步骤P23;
步骤P24:当所述主设备接收到用户输入的总事务处理消耗数和单位事务处理消耗数时,判断所述第一转移信息中的转移事务数字和所述总事务处理消耗数之和是否小于所述主设备ID对应的账户智能合约内保存的总消耗数,是则执行步骤P25,否则报错;
步骤P25:所述主设备根据第二转移事务的数据域、所述总事务处理消耗数和所述单位事务处理消耗数生成第二转移事务待签名数据,使用用户私钥对所述第二转移事务待签名数据进行签名得到第二转移事务签名结果;
步骤P26:所述主设备将所述第二转移事务签名结果和所述第二转移事务待签名数据写入到所述第二转移事务中,将包含所述第二转移事务的指令发送至服务器。
15.如权利要求12所述的方法,其特征在于,所述步骤P5包括:
步骤P5-1:所述区块链节点提取第二转移事务中的帐户智能合约地址和转移事务验证函数名称,根据帐户智能合约地址找到对应的帐户智能合约,根据所述转移事务验证函数名称判断找到的所述帐户智能合约中是否存在对应的转移事务验证函数,是则将第二转移事务作为参数调用所述转移事务验证函数,否则报错,结束;
步骤P5-2:所述帐户智能合约检测到所述转移事务验证函数被所述区块链节点调用时,从所述转移事务验证函数中获取第二转移事务;
步骤P5-3:所述帐户智能合约对第二转移事务中进行解析得到总事务处理消耗数、单位事务处理消耗数、第二转移事务签名结果、转移事务数字、转移接收地址、转移事务数字、验证设备ID和验证设备ID对应的第一转移事务验证签名结果、帐户智能合约地址、转移事务验证函数名称、验证设备总数、验证设备签名数量;
步骤P5-4:所述帐户智能合约使用保存的用户公钥对所述第二转移事务签名结果进行验证,如验证成功则执行步骤P5-8,如验证失败则执行步骤P5-5;
步骤P5-5:所述帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤P5-6,否则执行步骤P5-7;
步骤P5-6:所述帐户智能合约根据验证操作的实际事务处理消耗数更新所述总事务处理消耗数,将所述验证操作的实际事务处理消耗数和事务执行失败写入到第二转移事务的事务日志中,向所述区块链节点返回所述第二转移事务和所述事务日志,执行步骤P6;
步骤P5-7:所述帐户智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第二转移事务的事务日志中,向所述区块链节点返回所述第二转移事务和所述事务日志,执行步骤P6;
步骤P5-8:所述帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤P5-9,否则执行步骤P5-7;
步骤P5-9:所述帐户智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,根据所述转移接收地址、转移事务数字、当前总事务处理消耗数、所有验证设备ID和对应的第一转移事务验证签名结果、验证设备总数、验证设备签名数量生成第二转移事务验证请求,根据保存的验证设备智能合约地址向对应的验证设备智能合约发送所述第二转移事务验证请求,执行步骤P5-10;
步骤P5-10:所述验证设备智能合约对接收到的所述第二转移事务验证请求进行解析得到转移接收地址、转移事务数字、总事务处理消耗数、所有验证设备ID和对应的第一转移事务验证签名结果、验证设备总数、验证设备签名数量,判断所述验证设备签名数量是否大于所述验证设备总数的一半,是则执行步骤否则P5-13,否则执行步骤P5-11;
步骤P5-11:所述验证设备智能合约给所述帐户智能合约返回失败响应;
步骤P5-12:所述帐户智能合约接收验证设备智能合约返回的失败响应,将所有操作的实际事务处理消耗数和事务执行失败写入到第二转移事务的事务日志中,向所述区块链节点返回所述第二转移事务和所述事务日志,执行步骤P6;
步骤P5-13:所述验证设备智能合约依次根据所述验证设备ID提取对应保存的验证设备公钥,使用所述验证设备公钥对所述验证设备ID对应的第一转移事务验证签名结果进行验证,如验证成功则执行步骤P5-19,如验证失败则执行步骤P5-14;
步骤P5-14:所述验证设备帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤P5-15,否则执行步骤P5-17;
步骤P5-15:所述验证设备智能合约给所述帐户智能合约返回事务验证失败响应,执行步骤P5-16;
步骤P5-16:所述帐户智能合约接收所述验证设备智能合约返回的事务验证失败响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到第二转移事务的事务日志中,向所述区块链节点返回所述第二转移事务和所述事务日志,执行步骤P6;
步骤P5-17:所述验证设备智能合约向所述帐户智能合约返回消耗数不足响应,执行步骤P5-18;
步骤P5-18:所述帐户智能合约接收所述验证设备智能合约返回的消耗数不足响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第二转移事务的事务日志中,向所述区块链节点返回所述第二转移事务和所述事务日志,执行步骤P6;
步骤P5-19:所述验证设备帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤P5-20,否则执行步骤P5-17;
步骤P5-20:所述验证设备智能合约给所述帐户智能合约返回事务验证成功响应,执行步骤P5-21;
步骤P5-21:所述帐户智能合约接收所述验证设备智能合约返回的事务验证成功响应,根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,执行步骤P5-22;
步骤P5-22:所述帐户智能合约判断解析得到的所述转移事务数字是否小于保存的可转移事务数字,是则执行步骤P5-24,否则执行步骤P5-23;
步骤P5-23:所述帐户智能合约提示转移数字不足和转移操作失败,将事务执行失败写入到第二转移事务的事务日志中,向所述区块链节点返回所述第二转移事务和所述事务日志,返回步骤P6;
步骤P5-24:所述帐户智能合约根据转移操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤P5-26,否则执行步骤P5-25;
步骤P5-25:所述帐户智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到第二转移事务的事务日志中,向所述区块链节点返回所述第二转移事务和所述事务日志,执行步骤P6;
步骤P5-26:所述帐户智能合约根据解析得到的转移事务数字更新保存的可转移事务数字,根据解析得到的转移事务数字更新所述转移接收地址中的事务数字,根据转移操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行成功写入到第二转移事务的事务日志中,向所述区块链节点返回所述第二转移事务和所述事务日志,执行步骤P6;
步骤P6具体为:所述区块链节点接收所述帐户智能合约返回的所述第二转移事务和所述事务日志并保存,当所述区块链节点轮询成为提议节点时,所述提议节点将所述第二转移事务和所述事务日志上传到区块链。
16.一种通过智能合约管理事务的实现系统,其特征在于,包括主设备、验证设备、服务器和区块链节点,用于实现如权利要求1-15中任一项所述的方法。
17.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现权利要求1至15任一项所述的通过智能合约管理事务的实现方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至15任一项所述的通过智能合约管理事务的实现方法。
19.一种芯片,其特征在于,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行权利要求1-15任一项所述的通过智能合约管理事务的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310517993.9A CN116226938B (zh) | 2023-05-10 | 2023-05-10 | 一种通过智能合约管理事务的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310517993.9A CN116226938B (zh) | 2023-05-10 | 2023-05-10 | 一种通过智能合约管理事务的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116226938A true CN116226938A (zh) | 2023-06-06 |
CN116226938B CN116226938B (zh) | 2023-08-08 |
Family
ID=86570010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310517993.9A Active CN116226938B (zh) | 2023-05-10 | 2023-05-10 | 一种通过智能合约管理事务的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226938B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110366729A (zh) * | 2018-12-28 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 智能合约白名单 |
US20200074470A1 (en) * | 2018-09-05 | 2020-03-05 | International Business Machines Corporation | Database configuration for asset transfers |
CN111241557A (zh) * | 2019-12-31 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 基于区块链的服务请求方法及装置 |
CN114328538A (zh) * | 2021-12-30 | 2022-04-12 | 北京飞天数科科技有限公司 | 一种区块链上事务的处理方法、装置、存储介质及服务器 |
CN114528582A (zh) * | 2020-11-23 | 2022-05-24 | 中移动信息技术有限公司 | 一种基于区块链的数据处理方法、装置、设备及计算机存储介质 |
CN114969714A (zh) * | 2021-02-25 | 2022-08-30 | 山东浪潮质量链科技有限公司 | 一种基于区块链的用户登录认证方法、装置及设备 |
CN115495785A (zh) * | 2022-09-21 | 2022-12-20 | 中国建设银行股份有限公司 | 一种基于区块链策略管理的访问控制方法及系统 |
CN115525930A (zh) * | 2022-09-22 | 2022-12-27 | 网易(杭州)网络有限公司 | 信息转移方法、装置及相关设备 |
-
2023
- 2023-05-10 CN CN202310517993.9A patent/CN116226938B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200074470A1 (en) * | 2018-09-05 | 2020-03-05 | International Business Machines Corporation | Database configuration for asset transfers |
CN110366729A (zh) * | 2018-12-28 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 智能合约白名单 |
CN111241557A (zh) * | 2019-12-31 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 基于区块链的服务请求方法及装置 |
CN114528582A (zh) * | 2020-11-23 | 2022-05-24 | 中移动信息技术有限公司 | 一种基于区块链的数据处理方法、装置、设备及计算机存储介质 |
CN114969714A (zh) * | 2021-02-25 | 2022-08-30 | 山东浪潮质量链科技有限公司 | 一种基于区块链的用户登录认证方法、装置及设备 |
CN114328538A (zh) * | 2021-12-30 | 2022-04-12 | 北京飞天数科科技有限公司 | 一种区块链上事务的处理方法、装置、存储介质及服务器 |
CN115495785A (zh) * | 2022-09-21 | 2022-12-20 | 中国建设银行股份有限公司 | 一种基于区块链策略管理的访问控制方法及系统 |
CN115525930A (zh) * | 2022-09-22 | 2022-12-27 | 网易(杭州)网络有限公司 | 信息转移方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116226938B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1284099C (zh) | 电子钥匙系统以及电子钥匙使用方法 | |
US8630200B2 (en) | Method and apparatus for embedding information in a short URL | |
CN102884528B (zh) | 减少活动记录中的重复和循环 | |
CN1926493A (zh) | 用于将证书链接到签名文件的方法和系统 | |
AU2016382908A1 (en) | Short link processing method, device and server | |
EP2264634A1 (en) | Method, system and apparatus for content identification | |
WO2017084290A1 (zh) | 公众账号二维码生成方法和服务器、公众账号关注方法、服务器和终端 | |
US20150304849A1 (en) | System and method for authentication | |
CN1512707A (zh) | 代理服务器、访问控制方法和访问控制程序 | |
US20080071824A1 (en) | Record relationship processing | |
US20090292762A1 (en) | Method, Apparatus, and Computer Program Product for Publishing Content | |
EP2472417A1 (en) | Method and device for accessing file resources | |
CN1534514A (zh) | 适用于位置感知的架构和系统 | |
WO2006123101A1 (en) | Searching data | |
CN105741121B (zh) | 一种基于条目引用的产品溯源信息的编写与存储方法 | |
KR101404596B1 (ko) | 이미지에 기반하여 동영상 서비스를 제공하는 시스템 및 방법 | |
CN1941692A (zh) | 用于获取时间戳的系统、装置、程序和方法 | |
CN1886976A (zh) | 用于使用动作列表及版本控制对一无线装置执行动作的方法、软件及设备 | |
CN116226938B (zh) | 一种通过智能合约管理事务的实现方法及系统 | |
CN1881963A (zh) | 一种实现即时通信的系统及方法 | |
CN113301203A (zh) | 基于通讯录对历史信息数据进行更新的方法及装置 | |
CN1663307A (zh) | 通过数据处理终端向移动电话设备供应服务配置数据的方法 | |
CN114185952A (zh) | 一种数据找回方法、装置、电子设备及存储介质 | |
CN114915500B (zh) | 基于pc桌面客户端的自媒体账号管理方法及装置 | |
US10448124B2 (en) | Method and system for issuing media information |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |