CN110956542B - 区块链系统及其运行方法、装置及设备 - Google Patents
区块链系统及其运行方法、装置及设备 Download PDFInfo
- Publication number
- CN110956542B CN110956542B CN201911083990.9A CN201911083990A CN110956542B CN 110956542 B CN110956542 B CN 110956542B CN 201911083990 A CN201911083990 A CN 201911083990A CN 110956542 B CN110956542 B CN 110956542B
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- candidate
- response time
- transaction
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Abstract
本说明书实施例提供了一种区块链系统及其运行方法、装置及设备,其中,区块链系统包括:至少一个创始节点和多个候选共识节点;创始节点,根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;候选共识节点,在被创始节点选取为共识节点后,作为第一交易的共识节点,对第一交易进行共识验证处理。
Description
技术领域
本文件涉及区块链技术领域,尤其涉及一种区块链系统及其运行方法、装置及设备。
背景技术
区块链是一种分布式记账系统,共识机制确保了不同节点中账本数据的一致性和正确性。当前,在公有链的共识验证过程中,通常需要大量节点参与,而这不可避免的降低了共识效率;而在联盟链的共识验证过程中,通常是预先选定数个固定节点参与共识验证,其他想要参与共识验证的节点无法参与共识验证。
发明内容
本说明书实施例提供了一种区块链系统。该区块链系统包括至少一个创始节点和多个候选共识节点。所述创始节点,根据提交至所述区块链的第一交易,基于预设的共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。所述候选共识节点,在被所述创始节点选取为共识节点后,作为所述第一交易的共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例提供了一种区块链系统的运行方法。该方法包括创始节点根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点。被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例提供了一种区块链运行装置,应用于区块链系统的创始节点。所述装置包括选取模块,根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例提供了一种区块链运行设备,包括处理器。该设备还包括被安排成存储计算机可执行指令的存储器。所述计算机可执行指令在被执行时使所述处理器根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例提供了一种存储介质,用于存储计算机可执行指令。所述计算机可执行指令在被执行时根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例提供的一种区块链系统的场景示意图;
图2为本说明书一个或多个实施例提供的一种区块链系统的组成示意图;
图3为本说明书一个或多个实施例提供的一种区块链系统的运行方法的第一种流程示意图;
图4为本说明书一个或多个实施例提供的一种添加用户的流程示意图;
图5为本说明书一个或多个实施例提供的一种创建候选共识节点的流程示意图;
图6为本说明书一个或多个实施例提供的一种创建数据节点的流程示意图;
图7为本说明书一个或多个实施例提供的一种区块链系统的运行方法的第二种流程示意图;
图8为本说明书一个或多个实施例提供的选取共识节点进行共识验证处理的流程示意图;
图9为本说明书一个或多个实施例提供的一种区块链运行装置的模块组成示意图;
图10为本说明书一个或多个实施例提供的一种区块链运行设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
本说明书一个或多个实施例提供了一种区块链系统及其运行方法、装置及设备,该系统中的多个候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。从而该系统中的创始节点能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。可见,该系统中,能够动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
图1为本说明书一个或多个实施例提供的区块链系统的应用场景示意图,如图1所示,该场景包括:至少一个创始节点(图1中仅示出一个)、多个候选共识节点、多个数据节点和用户的终端设备;其中,用户的终端设备接入前述节点中的任意一个节点,以通过接入的节点向区块链中提交第一交易,本说明书中将终端设备接入的节点称为提交节点;用户的终端设备可以为手机、平板电脑、台式计算机、便携笔记本式计算机等(图1中仅示出手机)。
具体的,当用户(用户1和/或用户2)操作其终端设备提交待处理数据,以通过接入的提交节点向区块链中提交第一交易时,创始节点根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;候选共识节点,在被创始节点选取为共识节点后,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率和共识的平衡性。
基于上述应用场景架构,本说明书一个或多个实施例提供了一种区块链系统;图2为本说明书一个或多个实施例提供的一种区块链系统的组成示意图,如图2所示,该系统包括:至少一个创始节点101和多个候选节点102;
创始节点101,根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;
候选共识节点102,在被创始节点选取为共识节点后,作为第一交易的共识节点,对第一交易进行共识验证处理。
本说明书一个或多个实施例中的区块链系统,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。从而创始节点能够动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
为了创建区块链系统,首先选定创始用户,基于预设的数字身份信息分配规则,为创始用户分配数字身份信息,并基于创始用户的数字身份信息为创始用户颁发第三可验证声明(英文全称:Verifiable Credential,简称:VC),其中,数字身份信息还可称为分布式身份标识(英文全称:Decentralized Identifiers,简称:DID),第三可验证声明用于证明创始用户被授予创建创始节点的权限。创始用户基于第三可验证声明,创建至少一个创始节点101,并基于预设的数字身份信息分配规则为创始节点101分配数字身份信息,该创始节点101组建成最初的区块链系统;创始节点101具有添加节点、删除节点、从已添加的节点中选取候选共识节点、从候选共识节点中选取对提交至区块链的第一交易进行共识验证的共识节点、参与共识、以及为添加的节点配置初始GAS等权限。其中,数字身份信息分配规则可以在实际应用中根据需要自行设定,例如随机生成由数字、字母、特殊符号等中的一种或多种类型的字符所组成的字符串。
需要指出的是,上述的第一交易,可以为区块链中的一个节点在接收到用户的交易提交请求后,提交至区块链的交易,可以为一个用户的一笔或多笔交易,或者也可以为多个用户的多笔交易。
在最初的区块链系统组建成功后,用户即可根据需要请求加入区块链系统,以在区块链系统中部署相应的节点,或者通过接入区块链系统的已有节点访问区块链。具体的,当用户需要加入区块链系统时,可以操作其终端设备,以向创始节点101发送系统加入请求,对应的:
创始节点101,接收用户的终端设备发送的系统加入请求,向添加至区块链系统的用户的终端设备发送第二可验证声明;其中,第二可验证声明用于证明用户被授予访问区块链系统的权限。
具体的,创始节点101接收用户的终端设备发送的系统加入请求,为用户分配数字身份信息,并根据创始节点101的数字身份信息、为用户分配的数字身份信息、待生成的可验证声明的有效时段、表征可验证声明所处状态的有效性字段等信息,生成第二可验证声明;向用户的终端设备发送第二可验证声明,以证明该用户被授予访问区块链系统的访问权限,即已将该用户添加至区块链系统,用户请求成功。
进一步的,创始节点101在将用户添加至区块链系统之后,还为添加至区块链系统的用户配置初始GAS,以使用户在基于区块链办理业务或享有服务时可进行GAS费用支付等操作。
为了使区块链系统中参与共识验证的共识节点动态平衡,打破常规的由具有选择权的节点选取大量共识节点或由固定的共识节点进行共识验证的方式,本说明书一个或多个实施例中,赋予了用户自主选择的权利,当用户请求加入区块链系统成功后,若用户想要参与共识验证,则可以操作其终端设备基于第二可验证声明,向创始节点101发送第一创建请求,该第一创建请求用于请求创建候选共识节点,以在被创始节点选取为共识节点时参与共识验证;对应的:
创始节点101,接收用户的终端设备发送的第一创建请求,若确定第一创建请求包括的第二可验证声明合法、且当前候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点102;
创始节点101创建的候选共识节点102,同步区块链上的区块链数据。
具体而言,创始节点101接收用户的终端设备发送的第一创建请求,从第一创建请求中获取第二可验证声明;创始节点101根据第二可验证声明包括的有效时段确定第二可验证声明是否处于有效状态,若第二可验证声明处于无效状态,则确定第二可验证声明不合法,发送请求失败结果给用户的终端设备;若第二可验证声明处于有效状态,则创始节点101采用自身的公钥对第二可验证声明包括的签名数据进行验证,若验证未通过,则确定第二可验证声明不合法,发送请求失败结果给用户的终端设备;若验证通过,则确定第二可验证声明合法,根据保存的候选共识节点信息表,确定当前候选共识节点的数量,并判断当前候选共识节点的数量是否达预设的数量阈值,若到达预设的数量阈值,则确定请求失败,发送请求失败结果给用户的终端设备;若未到达预设的数量阈值,则创建候选共识节点,对创建的候选共识节点进行背书,以及更新候选共识节点信息表。其中,创始节点101中存有候选共识节点信息表,该候选共识节点信息表中记录有每个候选共识节点的信息,如ip地址、端口号等;数量阈值可以在实际应用中根据需要自行设定,例如为36。由此,创始节点能够基于用户请求,创建候选共识节点,以满足用户的参与共识验证的需求。
当候选共识节点创建成功后,为了确保区块链系统中的每个节点拥有完整的“账本”,创建的候选共识节点需要同步当前区块链中的区块链数据;可选的,创建的候选共识节向区块链系统已有的部分节点或全部节点发送同步请求,以从区块链系统已有节点获取区块链数据;
进一步的,考虑到一些用户基于业务需要,此前可能曾加入且退出过区块链系统,因此为了确保区块链数据的安全,接收到同步请求的节点,首先确定用户持有的第二可验证声明的数量,包括处于有效状态的第二可验证声明和处于无效状态的第二可验证声明;若用户持有一个第二可验证声明,则从该第二可验证声明中读取有效时段,并以明文形式将有效时段内的区块链数据、以密文形式将有效时段以外的区块链数据发送给对应的候选共识节点,以使候选共识节点进行区块链数据的同步;若用户持有多个第二可验证声明,则依次确定每个第二可验证声明的有效时段,并以明文形式将有效时段内的区块链数据、以密文形式将有效时段以外的区块链数据发送给对应的候选共识节点,以使候选共识节点进行区块链数据的同步;由此,创始节点101所创建的候选共识节点,以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据,既确保了创始节点101创建的候选共识节点具有完整的“账本”,同时确保了区块链数据的隐私安全。
本说明书实施例中的区块链系统除包括前述创始节点101和候选共识节点102外,还包括数据节点,该数据节点能够向区块链中保存数据或者从区块链中读取数据。当用户请求加入区块链系统成功后,若想要成为拥有区块链数据的读写权限的节点,则可以操作其终端设备基于第二可验证声明,向创始节点101发送第二创建请求,该第二创建请求用于请求创建数据节点;对应的:
创始节点101,接收用户的终端设备发送的第二创建请求,若确定第二创建请求包括的第二可验证声明合法,则创建数据节点;
创始节点101创建的数据节点,同步区块链上的区块链数据。
其中,创始节点101确定第二创建请求包括的第二可验证声明合法的过程,可参见前述创始节点101确定第一创建请求包括的第二可验证声明合法的过程;创始节点101创建的数据节点同步区块链上的区块链数据的过程,可参见前述创始节点101创建的候选共识节点同步区块链上的区块链数据的过程;重复之处,这里不再赘述。
需要指出的是,本说明书实施例中的数据节点有别于候选共识节点,数据节点仅具有读写区块链数据的权限,并不具有被选取为共识节点的权限,即创始节点101在选取共识节点时,不会从数据节点中选取,数据节点也就没机会参与共识。
但如果在区块链系统的某些需求下,需要将某个数据节点升级为候选共识节点,则可以采用权限提升的方式,将该数据节点升级为候选共识节点,则升级后的节点,就会记录在创始节点101的候选共识节点信息表中,之后进行交易共识时,该节点就有可能被选取为共识节点。
其中,将数据节点升级为候选共识节点的具体方式,可以为:创始节点101向数据节点颁发第四可验证声明,该第四可验证声明用于证明该数据节点升级为候选共识节点,具有被选取为共识节点的权限。
随着用户的不断加入,区块链系统包括的节点数量不断增加,为了实现参与共识验证的共识节点的动态平衡,本说明书一个或多个实施例中,创始节点101,若确定当前的候选共识节点的数量未到达预设的数量阈值,则基于预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点102,以确保优质的具有共识能力的节点能够参与到共识验证。
其中,候选共识节点的数量、候选共识节点选取规则,可以在实际应用中根据需要自行设定;候选共识节点选取规则,如根据节点所属用户的资质、信用、持有的GAS数量等选取候选共识节点。
进一步的,创始节点101在选取候选共识节点102时,可以是按照预设频率选取,也就是定期更换候选共识节点,确保候选共识验证节点的动态更新;也可是根据待共识的交易的状态,如交易池中交易的数量,或者交易提交节点的运行情况,确定是否对当前待共识的交易更换候选共识节点。更换候选共识节点时,采用预设的候选共识节点选取规则重新选取候选共识节点。
在选取了候选共识节点之后,本说明书一个或多个实施例中,创始节点101也作为共识节点参与共识验证;即在共识过程中,由至少一个创始节点101和被选取的候选共识节点共同进行共识。具体的:
创始节点101,根据预设的第一共识节点选取规则,从创始节点101和候选共识节点102中选取N个对第一交易进行共识验证的共识节点;其中,N为大于1且不大于创始节点101和共识节点102的总数量的整数;选取的共识节点包括至少一个创始节点101和至少一个候选共识节点102;
创始节点101和候选共识节点102,在被选择为共识节点后,作为第一交易的共识节点,共同对第一交易进行共识验证处理。
进一步的,创始节点101,获取每个创始节点101和每个候选共识节点102对预设指令的响应时间;根据获取的响应时间,从创始节点101和候选共识节点102中,选取N个对第一交易进行共识验证的共识节点;其中,预设指令由提交第一交易的提交节点发送,提交节点可以为区块链系统中任意类型的节点。
本说明书实施例中,基于响应时间确定参与共识的创始节点和候选共识节点的数量,技术构思如下:第一种情况下,如果有大量的候选共识节点在响应时间上都优于创始节点,则可以选取较多数量的参与共识的候选共识节点,选取较少数量或者仅选取一个参与共识的创始节点;第二种情况下,如果响应时间上优于创始节点的候选共识节点数量很少或者没有,则可以增加参与共识的创始节点的数量,而选取较少数量或者仅选取一个参与共识的候选共识节点;其他情况下,如果响应时间上优于创始节点的候选共识节点数量,介于上述第一种情况和第二种情况之间,则可以考虑均衡选取参与共识的创始节点和候选共识节点。
基于以上的技术构思,以下提供了一种确定参与共识的创始节点和候选共识节点的数量的方案;本领域技术人员能够想到的是,基于上述技术构思,也可以设计其他类似的方案以确定参与共识的创始节点和候选共识节点的数量;在此不再赘述。
具体的,创始节点101,获取每个创始节点101的响应时间以得到第一响应时间集合,从多个候选共识节点102的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,
若第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将第一目标响应时间所对应的创始节点101、第二目标响应时间所对应的候选共识节点102,确定为对第一交易进行共识验证的共识节点;
若第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将第一目标响应时间所对应的创始节点101、第二目标响应时间所对应的候选共识节点102,确定为对第一交易进行共识验证的共识节点;
若第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将第一目标响应时间所对应的创始节点、第二目标响应时间所对应的候选共识节点,确定为对第一交易进行共识验证的共识节点;
其中,第一条件为:响应时间的数值不大于第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C均为整数。
例如,需要选取4个共识节点,即N=4,若第二响应时间集合中的响应时间,符合第一条件的响应时间为6个,即A=6,则从第一响应时间集合中选取最小的1个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取3个第二目标响应时间,即共识节点包括1个创始节点101和3个候选共识节点102。若第二响应时间集合中的响应时间,符合第一条件的响应时间为3个,即B=2,则从第一响应时间集合中选取最小的2个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取2个第二目标响应时间,即共识节点包括2个创始节点101和2个候选共识节点102。若第二响应时间集合中的响应时间,符合第一条件的响应时间为0个,即C=0,则从第一响应时间集合中选取最小的3个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取1个第二目标响应时间,即共识节点包括3个创始节点101和1个候选共识节点102。
进一步的,提交节点向区块链系统中发送预设指令后,记录每个创始节点和每个候选共识节点返回响应数据的响应时间,并将记录的响应时间发送给创始节点101,以使创始节点101根据该响应时间从创始节点101和候选共识节点102中选取对第一交易进行共识验证的共识节点;其中,预设指令例如为ping指令。
由此,基于每个创始节点101和每个候选共识节点102对预设指令的响应时间,确定对第一交易进行共识验证的共识节点,能够选取到距离提交节点相对较近的候选共识节点作为共识节点,而由于不同的第一交易的提交节点通常不同,因此每次选取的参与共识验证的候选共识节点也有所不同,使得各个候选共识节点均有参与共识验证的机会,满足了各个候选共识节点的参与共识验证的需求,实现了参与共识验证的共识节点的动态平衡;并且,参与共识验证的节点的数量大大减少,提升了共识验证的效率。
为了能够在后续的共识验证过程中快速的从各候选共识节点中选取参与共识验证的共识节点,本说明书一个或多个实施例中,创始节点101,针对被选取的参与共识验证处理的候选共识节点102,调整候选共识节点102参与共识验证的参与权重。
具体的,创始节点101记录被选取的候选共识节点102对于预设指令的响应时间;根据记录的候选共识节点的响应时间和候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。其中,记录的该候选共识节点的响应时间的个数即为候选共识节点参与共识验证的次数。可选地,根据公式W=(1+响应时间)/H,调整候选共识节点参与共识验证的参与权重,其中,W为参与权重,H为参与共识验证的次数;例如,响应时间为5秒,参与共识验证的次数为4次,计算可得参与权重W=(1+5)/4=1.5。
以上的计算参与权重W的公式为本说明书的一种实现方式,在具体实施时,可以根据区块链系统的运行情况和需求,对该公式进行调整,如可以将响应时间和次数H乘以相应的系数,以使计算结果与系统运行能够更相适应。
随着区块链系统的规模扩大,用户和候选共识节点也会不断的增加;而随着区块链系统的持续运转,候选共识节点被选取为共识节点对交易进行共识验证的次数也会不断增加。当区块链系统中的候选共识节点的数量达到一定规模,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值,此时区块链系统中的候选共识节点整体上具有了较强的稳定性和可信性;此时,创始节点101在后续的交易共识验证过程中,可以不再参与共识验证,其负责选取一定数量的候选共识节点作为交易的共识节点,对交易进行共识验证。而为了快速的从各候选共识节点中选取参与共识验证的共识节点,本说明书一个或多个实施例中,创始节点101,基于各个候选共识节点102的参与权重,根据预设的第二共识节点选取规则,从候选共识节点102中选取对第一交易进行共识验证的共识节点。
具体的,创始节点101对各个候选共识节点102的参与权重进行排序,并从排序结果中按照从大到小的顺序选取第二预设数量的目标参与权重,将目标参与权重所对应的候选共识节点确定为对第一交易进行共识验证的共识节点。由前述参与权重的计算公式可知,当候选共识节点参与共识验证的次数越少时,计算而得的参与权重的值越大,因此,被选取为共识节点的概率越大,由此,能够使参与次数较少的候选共识节点被优先选取,从而实现了参与共识验证的共识节点的动态平衡。
进一步的,在前述选取对第一交易进行共识验证的共识节点的基础上,优选的,还可以结合区块链系统的运行状态,以在区块链系统满足不同的运行条件时,采用不同的方式选取共识节点;具体的:
创始节点101确定区块链系统包括的节点的数量;
当区块链系统包括的节点的数量到达第一数量而未到达第二数量时,其中,第二数量大于第一数量,确定区块链系统满足第一运行条件;创始节点101首先根据预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点,并根据预设的第一共识节点选取规则,从创始节点101和候选共识节点102中选取N个对第一交易进行共识验证的共识节点;
当区块链系统包括的节点的数量到达第二数量,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值时,确定区块链系统满足第二运行条件;创始节点101根据预设的第二共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点。
当区块链系统包括的节点的数量未到达第一数量时,确定区块链系统满足第三运行条件,此时由创始节点作为对提交至区块链中的第一交易进行共识验证的共识节点。
其中,第一数量和第二数量均可在实际应用中根据需要自行设定。
如前所述,由于不同的第一交易,被创始节点101所选取的对第一交易进行共识验证的候选共识节点102往往不同,而为了明确被选取的候选共识节点对第一交易具有进行共识验证权限,本说明书一个或多个实施例中,创始节点101,向被选取的候选共识节点102发送第一可验证声明,其中,第一可验证声明用于证明被选取的候选共识节点102被授予对第一交易进行共识验证的权限;
被选取的候选共识节点102,基于接收到的第一可验证声明,对第一交易进行共识验证处理。
具体的,创始节点101根据自身的数字身份信息、被选取的候选共识节点102的数字身份信息、授予的权限信息、待生成的可验证声明的有效时段等信息,生成第一可验证声明,并向被选取的候选共识节点102发送第一可验证声明;被选取的候选共识节点102接收到第一可验证声明时,确定自身被授予对第一交易进行共识的权限,并对第一交易进行共识验证。
进一步的,当被选取的候选共识节点102,基于接收到的第一可验证声明,对第一交易进行共识验证处理结束后,创始节点101撤销对应的第一可验证声明,即将对应的第一可验证声明的状态设置为无效状态,以避免当前被选取的候选共识节点102基于该第一可验证声明对其他交易进行共识验证。
通过向被选取的候选共识节点102发送第一可验证声明,从而可以基于第一可验证声明灵活的控制对应候选共识节点的共识权限。
本说明书一个或多个实施例中提供的区块链系统,其中的多个候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。从而该系统中的创始节点能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
对应上述描述的区块链系统,基于相同的技术构思,本说明书一个或多个实施例还提供一种区块链系统的运行方法;图3为本说明书一个或多个实施例提供的一种区块链系统的运行方法的流程示意图,如图3所示,该方法包括以下步骤:
步骤S202,创始节点根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;
步骤S204,被选取的候选共识节点,对第一交易进行共识验证处理。
其中,第一交易可以为区块链中的一个节点在接收到用户的交易提交请求后,提交至区块链的交易,可以为一个用户的一笔或多笔交易,或者也可以为多个用户的多笔交易。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。创始节点通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
参见前述描述,由创始节点组建成最初的区块链系统,且创始节点具有添加节点、删除节点、从已添加的节点中选取候选共识节点、从候选共识节点中选取对提交至区块链的第一交易进行共识验证的共识节点、参与共识、以及为添加的节点配置初始GAS等权限。在最初的区块链系统组建成功后,用户可根据需要请求加入区块链系统,以在区块链系统中部署节点,或者通过接入区块链系统的已有节点访问区块链。具体的,当用户需要加入区块链系统时,可以操作其终端设备,以向创始节点发送系统加入请求,对应的,方法还包括:
步骤S300,创始节点接收用户的终端设备发送的系统加入请求,向添加至区块链系统的用户的终端设备发送第二可验证声明;其中,第二可验证声明用于证明用户被授予访问区块链系统的权限。
具体的,如图4所示的添加用户的流程示意图,步骤S300包括:
步骤S300-2,创始节点接收用户的终端设备发送的系统加入请求;
本说明书的一个或多个实施例中,系统加入请求包括待加入用户的用户信息;步骤S300-2之后,还可以包括:根据用户信息,对待加入用户的身份进行验证,若验证通过,则执行步骤S300-4,若验证未通过,则发送请求失败结果给对应的终端设备,以使终端设备展示请求失败信息。
步骤S300-4,创始节点为用户分配数字身份信息,根据分配的数字身份信息生成第二可验证声明,其中,第二可验证声明用于证明用户被授予访问区块链系统的访问权限;
具体的,创始节点根据自身的数字身份信息、为用户分配的数字身份信息、待生成的可验证声明的有效时段、表征可验证声明所处状态的有效性字段等信息,生成第二可验证声明。
步骤S300-6,创始节点向用户的终端设备发送第二可验证声明,以使用户基于第二可验证声明访问区块链系统;
其中,创始节点向用户的终端设备发送第二可验证声明,以证明该用户被授予访问区块链系统的访问权限,即已将该用户添加至区块链系统,用户请求成功。
进一步的,创始节点在将用户添加至区块链系统之后,还包括:为添加至区块链系统的用户配置初始GAS,以使用户在基于区块链办理业务或享有服务时可进行GAS费用支付等操作。
为了使区块链系统中参与共识验证的共识节点动态平衡,打破常规的由具有选择权的节点选取大量共识节点或由固定的共识节点进行共识验证的方式,本说明书一个或多个实施例中,赋予了用户自主选择的权利,当用户请求加入区块链系统成功后,若用户想要参与共识验证,则可以操作其终端设备基于第二可验证声明,向创始节点发送第一创建请求,以请求创建候选共识节点,并在该候选共识节点被创始节点选取为共识节点时参与共识验证;对应的,如图5所示,方法还包括:
步骤S402,创始节点接收用户的终端设备发送的第一创建请求,其中,第一创建请求用于请求创建候选共识节点,第一创建请求包括第二可验证声明;
步骤S404,创始节点若确定第一创建请求包括的第二可验证声明合法、且当前候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点;
具体的,创始节点接收用户的终端设备发送的第一创建请求,从第一创建请求中获取第二可验证声明,根据第二可验证声明包括的有效时段确定第二可验证声明是否处于有效状态,若第二可验证声明处于无效状态,则确定第二可验证声明不合法,发送请求失败结果给用户的终端设备;若第二可验证声明处于有效状态,则创始节点采用创始节点的公钥对第二可验证声明包括的签名数据进行验证,若验证未通过,则确定第二可验证声明不合法,发送请求失败结果给用户的终端设备;若验证通过,则确定第二可验证声明合法,根据保存的候选共识节点信息表,确定当前候选共识节点的数量,并判断当前候选共识节点的数量是否达预设的数量阈值,若到达预设的数量阈值,则确定请求失败,发送请求失败结果给用户的终端设备;若未到达预设的数量阈值,则创建候选共识节点,对创建的候选共识节点进行背书,以及更新候选共识节点信息表。其中,创始节点中存有候选共识节点信息表,该候选共识节点信息表中记录有每个候选共识节点的信息,如ip地址、端口号等;数量阈值可以在实际应用中根据需要自行设定,例如为36。由此,创始节点能够基于用户请求,创建候选共识节点,以满足用户的参与共识验证的需求。
步骤S406,创始节点创建的候选共识节点,同步区块链上的区块链数据。
可选的,创始节点创建的候选共识节向区块链系统已有的部分节点或全部节点发出同步请求,从而从区块链系统已有节点上获取区块链数据;
进一步的,考虑到一些用户基于业务需要,此前可能曾加入且退出过区块链系统,因此为了确保区块链数据的安全,接收到同步请求的节点,首先确定用户持有的第二可验证声明的数量,包括处于有效状态的第二可验证声明和处于无效状态的第二可验证声明;若用户持有一个第二可验证声明,则从该第二可验证声明中读取有效时段,并以明文形式将有效时段内的区块链数据、以密文形式将有效时段以外的区块链数据发送给对应的候选共识节点,以使候选共识节点进行区块链数据的同步;若用户持有多个第二可验证声明,则依次确定每个第二可验证声明的有效时段,并以明文形式将各有效时段内的区块链数据、以密文形式将各有效时段以外的区块链数据发送给对应的候选共识节点,以使候选共识节点进行区块链数据的同步;由此,创始节点所创建的候选共识节点,以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据,既确保了创始节点创建的候选共识节点具有完整的“账本”,同时确保了区块链数据的隐私安全。
本说明书实施例中的区块链系统除包括前述创始节点和候选共识节点外,还包括数据节点,该数据节点能够向区块链中保存数据或者从区块链中读取数据。当用户请求加入区块链系统成功后,若想要成为拥有区块链数据的读写权限的节点,则可以操作其终端设备基于第二可验证声明,向创始节点发送第二创建请求,以请求创建数据节点;对应的,如图6所示,方法还包括:
步骤S502,创始节点接收用户的终端设备发送的第二创建请求,其中,第二创建请求用于请求创建所述数据节点,第二创建请求包括第二可验证声明;
步骤S504,创始节点若确定第二创建请求包括的第二可验证声明合法,则创建数据节点;
其中,创始节点若确定第二创建请求包括的所述第二可验证声明合法的过程可参见前述步骤S404中的相关描述,重复之处这里不再赘述。
步骤S506,创始节点创建的数据节点,同步区块链上的区块链数据。
其中,创建的数据节点同步区块链上的区块链数据的过程,与前述创建的候选共识节点同步区块链上的区块链数据的过程相似,可参见前述相关描述,重复之处这里不再赘述。
随着用户的不断加入,区块链系统包括的节点数量不断增加,为了实现参与共识验证的共识节点的动态平衡,本说明书一个或多个实施例中,步骤S202之前,还包括:创始节点若确定当前的候选共识节点的数量未到达预设的数量阈值,则基于预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点,以确保候选共识验证节点的动态更新,使得优质的具有共识能力的节点能够参与共识验证。
其中,候选共识节点的数量、预设频率和候选共识节点选取规则,可以在实际应用中根据需要自行设定;候选共识节点选取规则,如根据节点所属用户的资质、信用、持有的GAS数量等选取候选共识节点。
进一步的,创始节点在选取候选共识节点时,可以是按照预设频率选取,也就是定期更换共识节点;也可是根据待共识的交易的状态,如交易池中交易的数量,或者交易提交节点的运行情况,确定是否对当前待共识的交易更换候选共识节点。更换候选共识节点时,采用预设的候选共识节点选取规则重新选取候选共识节点。
在选取了候选共识节点之后,本说明书一个或多个实施例中,创始节点也作为共识节点参与共识验证;即在共识过程中,由至少一个创始节点和被选取的候选共识节点共同进行共识。具体的,步骤S202中基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点,包括:
步骤F,根据预设的第一共识节点选取规则,从创始节点和候选共识节点中选取N个对第一交易进行共识验证的共识节点;其中,N为大于1且不大于创始节点和共识节点的总数量的整数;选取的共识节点包括至少一个创始节点和至少一个候选共识节点;
具体的,创始节点获取每个创始节点和每个候选共识节点对预设指令的响应时间,根据获取的响应时间,从创始节点和候选共识节点中,选取N个对第一交易进行共识验证的共识节点;其中,预设指令由提交第一交易的提交节点发送,提交节点可以为区块链系统中任意类型的节点。
本说明书实施例中,基于响应时间确定参与共识的创始节点和候选共识节点的数量,技术构思如下:第一种情况下,如果有大量的候选共识节点在响应时间上都优于创始节点,则可以选取较多数量的参与共识的候选共识节点,选取较少数量或者仅选取一个参与共识的创始节点;第二种情况下,如果响应时间上优于创始节点的候选共识节点数量很少或者没有,则可以增加参与共识的创始节点的数量,而选取较少数量或者仅选取一个参与共识的候选共识节点;其他情况下,如果响应时间上优于创始节点的候选共识节点数量,介于上述第一种情况和第二种情况之间,则可以考虑均衡选取参与共识的创始节点和候选共识节点。
基于以上的技术构思,以下提供了一种确定参与共识的创始节点和候选共识节点的数量的方案;本领域技术人员能够想到的是,基于上述技术构思,也可以设计其他类似的方案以确定参与共识的创始节点和候选共识节点的数量;在此不再赘述。
具体的,创始节点获取每个创始节点和每个候选共识节点对预设指令的响应时间,根据获取的响应时间,从创始节点和候选共识节点中,选取N个对第一交易进行共识验证的共识节点,包括:
创始节点获取每个创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,
若第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将第一目标响应时间所对应的创始节点、第二目标响应时间所对应的候选共识节点,确定为对第一交易进行共识验证的共识节点;
若第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将第一目标响应时间所对应的创始节点、第二目标响应时间所对应的候选共识节点,确定为对第一交易进行共识验证的共识节点;
若第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将第一目标响应时间所对应的创始节点、第二目标响应时间所对应的候选共识节点,确定为对第一交易进行共识验证的共识节点;
其中,第一条件为:响应时间的数值不大于第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C均为整数。
进一步的,提交节点向区块链系统中发送预设指令后,记录每个创始节点和每个候选共识节点返回响应数据的响应时间,并将记录的响应时间发送给创始节点,以使创始节点根据该响应时间从创始节点和候选共识节点中选取对第一交易进行共识验证的共识节点;其中,预设指令例如为ping指令。
与步骤F对应的,步骤S204中被选取的候选共识节点,对第一交易进行共识验证处理,包括:
被选取的创始节点和候选共识节点,共同对第一交易进行共识验证处理。
由此,基于每个创始节点和每个候选共识节点对预设指令的响应时间,确定对第一交易进行共识验证的共识节点,能够选取到距离提交节点相对较近的候选共识节点作为共识节点,而由于不同的第一交易的提交节点通常不同,因此每次选取的参与共识验证的候选共识节点也有所不同,使得各个候选共识节点均有参与共识验证的机会,满足了各个候选共识节点的参与共识验证的需求,实现了参与共识验证的共识节点的动态平衡;并且,参与共识验证的节点的数量大大减少,提升了共识验证的效率。
为了能够在后续的共识验证过程中快速的从各候选共识节点中选取参与共识验证的共识节点,本说明书一个或多个实施例中,步骤F中选取N个对第一交易进行共识验证的共识节点之后,还包括:
步骤Y,创始节点针对被选取的参与共识验证处理的候选共识节点,调整候选共识节点参与共识验证的参与权重。
具体的,创始节点记录被选取的候选共识节点对于预设指令的响应时间,根据记录的候选共识节点的响应时间和候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。其中,记录的该候选共识节点的响应时间的个数即为候选共识节点参与共识验证的次数。可选地,根据公式W=(1+响应时间)/H,调整候选共识节点参与共识验证的参与权重,其中,W为参与权重,H为参与共识验证的次数;例如,响应时间为5秒,参与共识验证的次数为4次,计算可得参与权重W=(1+5)/4=1.5。
以上的计算参与权重W的公式为本说明书的一种实现方式,在具体实施时,可以根据区块链系统的运行情况和需求,对该公式进行调整,如可以将响应时间和次数H乘以相应的系数,以使计算结果与系统运行能够更相适应。
随着区块链系统的规模扩大,用户和候选共识节点也会不断的增加;而随着区块链的持续运转,候选共识节点被选取为共识节点对交易进行共识验证的次数也会不断增加。当区块链系统中的候选共识节点的数量达到一定规模,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值,此时区块链系统中的候选共识节点整体上具有了较强的稳定性和可信性;此时,创始节点在后续的交易共识验证过程中,可以不再参与共识验证,其负责选取一定数量的候选共识节点作为交易的共识节点,对交易进行共识验证。而为了快速的从各候选共识节点中选取参与共识验证的共识节点,本说明书一个或多个实施例中,步骤S202中基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点,包括:
基于多个候选共识节点的参与权重,根据预设的第二共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点。
具体的,创始节点对各个候选共识节点当前的参与权重进行排序,并从排序结果中按照从大到小的顺序选取第二预设数量的目标参与权重,将目标参与权重所对应的候选共识节点确定为对第一交易进行共识验证的共识节点。由前述参与权重的计算公式可知,当候选共识节点参与共识验证的次数越少时,计算而得的参与权重的值越大,因此,被选取为共识节点的概率越大,由此,能够使参与次数较少的候选共识节点被优先选取,从而实现了参与共识验证的共识节点的动态平衡。
进一步的,在上述选取对第一交易进行共识验证的公式节点的基础上,优选的,还可以结合区块链系统的运行状态,以在区块链系统满足不同的运行条件时,采用不同的方式选取共识节点;具体的,方法还包括:
创始节点确定区块链系统包括的节点数量;
当区块链系统包括的节点的数量到达第一数量而未到达第二数量时,其中,第二数量大于第一数量,确定区块链系统满足第一运行条件;创始节点首先根据预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点,并根据预设的第一共识节点选取规则,从创始节点和候选共识节点中选取N个对第一交易进行共识验证的共识节点;
当区块链系统包括的节点的数量到达第二数量,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值时,确定区块链系统满足第二运行条件;创始节点根据预设的第二共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点。
当区块链系统包括的节点的数量未到达第一数量时,确定区块链系统满足第三运行条件,此时由创始节点作为对提交至区块链中的第一交易进行共识验证的共识节点。
其中,第一数量和第二数量均可在实际应用中根据需要自行设定。
如前所述,由于不同的第一交易,被创始节点所选取的对第一交易进行共识验证的候选共识节点往往不同,而为了明确被选取的候选共识节点对第一交易具有进行共识验证权限,本说明书一个或多个实施例中,如图7所示,步骤S202之后,还包括:
步骤S203,创始节点向被选取的候选共识节点发送第一可验证声明,其中,第一可验证声明用于证明被选取的候选共识节点被授予对第一交易进行共识验证的权限;
对应的,步骤S204包括:被选取的候选共识节点,基于接收到的第一可验证声明,对第一交易进行共识验证处理。
具体而言,创始节点根据自身的数字身份信息、被选取的候选共识节点的数字身份信息、授予的权限信息、待生成的可验证声明的有效时段等信息,生成可验证声明,并向被选取的候选共识节点发送第一可验证声明;被选取的候选共识节点接收到第一可验证声明时,确定自身被授予对第一交易进行共识的权限,并对第一交易进行共识验证。
进一步的,当被选取的候选共识节点基于接收到的第一可验证声明,对第一交易进行共识验证处理结束后,创始节点撤销对应的可验证声明,即将对应的第一可验证声明的状态设置为无效状态,以避免当前被选取的候选共识节点基于该第一可验证声明对其他交易进行共识验证。
通过向被选取的候选共识节点发送第一可验证声明,从而可以基于第一可验证声明灵活的控制对应候选共识节点的共识权限。
在一个具体的实施例中,随着区块链系统的不断运行,创始节点按照前述方式基于用户发送的系统加入请求将用户添加至区块链系统中,并基于已添加的用户发送的创建请求创建相应的候选共识节点或数据节点;以及,创始节点根据区块链系统的不同运行状态采用不同的方式选取共识节点,并由创始节点所选取的共识节点对提交至区块链系统的第一交易进行共识验证处理。其中,创始节点选取共识节点进行共识验证处理的过程如图8所示,包括:
步骤S602,创始节点确定区块链系统包括的节点的数量,若区块链系统包括的节点的数量未到达第一数量,则执行步骤S604,若区块链系统包括的节点的数量到达第一数量而未到达第二数量,则执行步骤S606,若区块链系统包括的节点的数量到达第二数量,和/或,一定数量的候选共识节点参与共识的总次数达到一定数值,则执行步骤S616;
步骤S604,创始节点作为共识节点,对提交至区块链中的第一交易进行共识验证处理;
步骤S606,若创始节点确定当前的候选共识节点的数量未到达预设的数量阈值,则根据预设的候选共识节点选取规则,从除创始节点外的节点中选取候选共识节点;
步骤S608,创始节点根据提交至区块链的第一交易,基于预设的第一共识节点选取规则,从创始节点和候选共识节点中选取N个对第一交易进行共识验证的共识节点;其中,N为大于1且不大于创始节点和共识节点的总数量的整数;选取的共识节点包括至少一个创始节点和至少一个候选共识节点;
步骤S610,创始节点向被选取的候选共识节点发送第一可验证声明,其中,第一可验证声明用于证明被选取的候选共识节点被授予对第一交易进行共识验证的权限;
步骤S612,创始节点针对被选取的参与共识验证处理的候选共识节点,调整候选共识节点参与共识验证的参与权重;
步骤S614,被选取的创始节点和被选取的候选共识节点,作为对第一交易进行共识验证的共识节点,共同对第一交易进行共识验证处理;
步骤S616,创始节点根据提交至区块链的第一交易,基于各个候选共识节点的参与权重,根据预设的第二共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;
步骤S618,创始节点向被选取的候选共识节点发送第一可验证声明,其中,第一可验证声明用于证明被选取的候选共识节点被授予对第一交易进行共识验证的权限;
步骤S620,被选取的候选共识节点,作为对第一交易进行共识验证的共识节点,对第一交易进行共识验证处理。
上述步骤S602至步骤S620的具体实现方式,可参见前述相关描述,重复之处,这里不再赘述。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识。从而创始节点能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
对应上述描述的区块链系统的运行方法,基于相同的技术构思,本说明书一个或多个实施例还提供一种区块链运行装置,应用于区块链系统的创始节点。图9为本说明书一个或多个实施例提供的应用于创始节点的区块链运行装置的模块组成示意图,如图9所示,该装置包括:
选取模块701,根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识;通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
可选地,所述装置还包括:发送模块;
所述发送模块,在所述选取模块701从候选共识节点中选取对所述第一交易进行共识验证的共识节点之后,向被选取的候选共识节点发送第一可验证声明;以使所述被选取的候选共识节点基于所述第一可验证声明,对所述第一交易进行共识验证;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限。
可选地,所述选取模块701,根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点,以通过被选取的创始节点和候选共识节点,对所述第一交易进行共识验证处理;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
可选地,所述选取模块701,获取每个所述创始节点和每个所述候选共识节点对预设指令的响应时间,其中,所述预设指令由提交所述第一交易的提交节点发送;以及,
根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点。
可选地,所述选取模块701,获取每个所述创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
可选地,所述装置还包括:调整模块;
所述调整模块,在所述选取模块701选取N个对所述第一交易进行共识验证的共识节点之后,针对被选取的参与共识验证处理的候选共识节点,调整所述候选共识节点参与共识验证的参与权重。
可选地,所述调整模块,记录被选取的所述候选共识节点的响应时间;以及,
根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
可选地,所述选取模块701,基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
可选地,所述装置还包括:添加模块;
所述添加模块,接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明;其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
可选地,所述装置还包括:第一创建模块;
所述第一创建模块,接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;以及,
若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点。
可选地,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;所述装置还包括:第二创建模块;
所述第二创建模块,接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明;以及,
若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点。
可选地,所述装置还包括:配置模块;
所述配置模块,为添加至所述区块链系统的用户配置初始GAS。
本说明书一个或多个实施例提供的区块链运行装置,能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从该系统包括的多个候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
需要说明的是,本说明书中关于区块链运行装置的实施例与本说明书中关于区块链系统的运行方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的区块链系统的运行方法的实施,重复之处不再赘述。
进一步地,对应上述区块链系统的运行方法,基于相同的技术构思,本说明书一个或多个实施例还提供一种区块链运行设备,该设备用于执行区块链系统的创始节点的运行方法,图10为本说明书一个或多个实施例提供的一种区块链运行设备的结构示意图。
如图10所示,区块链运行设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器801和存储器802,存储器802中可以存储有一个或一个以上存储应用程序或数据。其中,存储器802可以是短暂存储或持久存储。存储在存储器802的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括区块链运行设备中的一系列计算机可执行指令。更进一步地,处理器801可以设置为与存储器802通信,在区块链运行设备上执行存储器802中的一系列计算机可执行指令。区块链运行设备还可以包括一个或一个以上电源803,一个或一个以上有线或无线网络接口804,一个或一个以上输入输出接口805,一个或一个以上键盘806等。
在一个具体的实施例中,区块链运行设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对区块链运行设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识;通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
可选地,计算机可执行指令在被执行时,所述从候选共识节点中选取对所述第一交易进行共识验证的共识节点之后,还包括:
向被选取的候选共识节点发送第一可验证声明,以使被选取的候选共识节点,基于接收到的所述第一可验证声明,对所述第一交易进行共识验证处理;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限。
可选地,计算机可执行指令在被执行时,所述基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:
根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点;以通过被选取的所述创始节点和被选取的所述候选共识节点,共同对所述第一交易进行共识验证处理;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
可选地,计算机可执行指令在被执行时,所述根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点,包括:
获取每个所述创始节点和每个所述候选共识节点对预设指令的响应时间,其中,所述预设指令由提交所述第一交易的提交节点发送;以及,
根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点。
可选地,计算机可执行指令在被执行时,所述根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点,包括:
获取每个所述创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
可选地,计算机可执行指令在被执行时,所述选取N个对所述第一交易进行共识验证的共识节点之后,还包括:
针对被选取的参与共识验证处理的候选共识节点,调整所述候选共识节点参与共识验证的参与权重。
可选地,计算机可执行指令在被执行时,所述调整所述候选共识节点参与共识验证的参与权重,包括:
记录被选取的所述候选共识节点的响应时间;以及,
根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
可选地,计算机可执行指令在被执行时,所述基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:
基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
可选地,计算机可执行指令在被执行时,所述方法还包括:
接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明;其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
可选地,计算机可执行指令在被执行时,所述方法还包括:
接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;
若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点;以及,
所述创始节点创建的所述候选共识节点,同步所述区块链上的区块链数据。
可选地,计算机可执行指令在被执行时,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;所述方法还包括:
接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明;
若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点;以及,
所述创始节点创建的所述数据节点,同步所述区块链上的区块链数据。
可选地,计算机可执行指令在被执行时,所述第二可验证声明包括有效期限,所述同步所述区块链上的区块链数据,包括:
以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据。
可选地,计算机可执行指令在被执行时,所述方法还包括:
所述创始节点为添加至所述区块链系统的用户配置初始GAS。
本说明书一个或多个实施例提供的区块链运行设备,能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从该系统包括的多个候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
需要说明的是,本说明书中关于区块链运行设备的实施例与本说明书中关于区块链系统的运行方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的区块链系统的运行方法的实施,重复之处不再赘述。
进一步地,对应上述描述的区块链系统的运行方法,基于相同的技术构思,本说明书一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令,一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
根据提交至区块链的第一交易,基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述候选共识节点,对所述第一交易进行共识验证处理。
本说明书一个或多个实施例中,候选共识节点具有被选取为共识节点的权限,其在被选取为共识节点时,才能够参与共识,未被选取为共识节点时不参与共识;通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述从候选共识节点中选取对所述第一交易进行共识验证的共识节点之后,还包括:
向被选取的候选共识节点发送第一可验证声明,以使被选取的候选共识节点,基于接收到的所述第一可验证声明,对所述第一交易进行共识验证处理;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:
根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点;以通过被选取的所述创始节点和被选取的所述候选共识节点,共同对所述第一交易进行共识验证处理;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据预设的第一共识节点选取规则,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点,包括:
获取每个所述创始节点和每个所述候选共识节点对预设指令的响应时间,其中,所述预设指令由提交所述第一交易的提交节点发送;以及,
根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述响应时间,从所述创始节点和所述候选共识节点中,选取N个对所述第一交易进行共识验证的共识节点,包括:
获取每个所述创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二候选响应时间结合中按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述选取N个对所述第一交易进行共识验证的共识节点之后,还包括:
针对被选取的参与共识验证处理的候选共识节点,调整所述候选共识节点参与共识验证的参与权重。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述调整所述候选共识节点参与共识验证的参与权重,包括:
记录被选取的所述候选共识节点的响应时间;以及,
根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述基于预设的共识节点选取规则,从候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:
基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:
接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明;其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:
接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;
若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点;以及,
所述创始节点创建的所述候选共识节点,同步所述区块链上的区块链数据。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;所述方法还包括:
接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明;
若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点;以及,
所述创始节点创建的所述数据节点,同步所述区块链上的区块链数据。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述第二可验证声明包括有效期限,所述同步所述区块链上的区块链数据,包括:
以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:
所述创始节点为添加至所述区块链系统的用户配置初始GAS。
本说明书一个或多个实施例提供的存储介质存储的计算机可执行指令在被处理器执行时,能够根据提交至区块链的第一交易,基于预设的共识节点选取规则,从该系统包括的多个候选共识节点中选取对第一交易进行共识验证的共识节点;被创始节点选取的候选共识节点,作为第一交易的共识节点,对第一交易进行共识验证处理。由此,通过动态的从候选共识节点中选取对第一交易进行共识验证的共识节点,使得各候选共识节点均有机会参与共识验证,维持了参与共识验证的共识节点的动态平衡;并且无需大量的共识节点参与共识验证,提升了共识验证的效率。
需要说明的是,本说明书中关于存储介质的实施例与本说明书中关于区块链系统的运行方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的区块链系统的运行方法的实施,重复之处不再赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪30年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本文件的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本文件可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。
Claims (31)
1.一种区块链系统,包括:至少一个创始节点和多个候选共识节点;
所述创始节点,根据提交至所述区块链的第一交易,获取每个所述创始节点和每个所述候选共识节点对预设指令的响应时间;根据所述响应时间,从所述创始节点和所述候选共识节点中选取对所述第一交易进行共识验证的共识节点;其中,所述预设指令由提交所述第一交易的提交节点发送;
所述创始节点和所述候选共识节点,在被选取为共识节点后,作为所述第一交易的共识节点,对所述第一交易进行共识验证处理。
2.根据权利要求1所述的系统,所述创始节点,向被选取的候选共识节点发送第一可验证声明,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限;
所述被选取的候选共识节点,基于接收到的所述第一可验证声明,对所述第一交易进行共识验证处理。
3.根据权利要求1所述的系统,
所述创始节点,根据所述响应时间,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
4.根据权利要求3所述的系统,
所述创始节点,获取每个所述创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二响应时间集合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二响应时间集合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二响应时间集合中按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
5.根据权利要求3所述的系统,
所述创始节点,针对被选取的参与共识验证处理的候选共识节点,调整所述候选共识节点参与共识验证的参与权重。
6.根据权利要求5所述的系统,
所述创始节点,记录被选取的所述候选共识节点的响应时间;以及,
根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
7.根据权利要求5所述的系统,
所述创始节点,基于所述多个候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
8.根据权利要求1所述的系统,所述创始节点,接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明;其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
9.根据权利要求8所述的系统,所述创始节点,接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;
所述创始节点,若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点;
所述创始节点创建的所述候选共识节点,同步所述区块链上的区块链数据。
10.根据权利要求8所述的系统,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;
所述创始节点,接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明;
所述创始节点,若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点;
所述创始节点创建的所述数据节点,同步所述区块链上的区块链数据。
11.根据权利要求9或10所述的系统,所述第二可验证声明包括有效时段;
所述创始节点基于所述第二可验证声明所创建的节点,以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据。
12.根据权利要求8所述的系统,所述创始节点,为添加至所述区块链系统的用户配置初始GAS。
13.一种区块链系统的运行方法,包括:
创始节点根据提交至区块链的第一交易,获取每个创始节点和每个候选共识节点对预设指令的响应时间;根据所述响应时间,从所述创始节点和所述候选共识节点中选取对所述第一交易进行共识验证的共识节点;其中,所述预设指令由提交所述第一交易的提交节点发送;
被选取的所述创始节点和所述候选共识节点,对所述第一交易进行共识验证处理。
14.根据权利要求13所述的方法,所述从所述创始节点和所述候选共识节点中选取对所述第一交易进行共识验证的共识节点之后,还包括:
所述创始节点向被选取的候选共识节点发送第一可验证声明;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限;
被选取的所述候选共识节点,对所述第一交易进行共识验证处理,包括:
被选取的所述候选共识节点,基于接收到的所述第一可验证声明,对所述第一交易进行共识验证处理。
15.根据权利要求13所述的方法,所述根据所述响应时间,从所述创始节点和所述候选共识节点中选取对所述第一交易进行共识验证的共识节点,包括:
根据所述响应时间,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
16.根据权利要求15所述的方法,所述根据所述响应时间,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点,包括:
获取每个所述创始节点的响应时间以得到第一响应时间集合,从多个候选共识节点的响应时间中按照从小到大的顺序选取第一预设数量的响应时间,以得到第二响应时间集合;以及,
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为A个,则从第一响应时间集合中选取最小的1个第一目标响应时间,从所述第二响应时间集合中按照从小到大的顺序选取N-1个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为B个,则从第一响应时间集合中选取最小的2个第一目标响应时间,从所述第二响应时间集合中按照从小到大的顺序选取N-2个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
若所述第二响应时间集合中的响应时间,符合第一条件的响应时间为C个,则从第一响应时间集合中选取最小的3个第一目标响应时间,从所述第二响应时间集合中按照从小到大的顺序选取N-3个第二目标响应时间;将所述第一目标响应时间所对应的创始节点、所述第二目标响应时间所对应的候选共识节点,确定为对所述第一交易进行共识验证的共识节点;
其中,所述第一条件为:响应时间的数值不大于所述第一响应时间集合中的全部响应时间的数值;A>=N-1,N-1>B>=2,2>C>=0,且A、B、C为整数。
17.根据权利要求15所述的方法,所述选取N个对所述第一交易进行共识验证的共识节点之后,还包括:
所述创始节点针对被选取的参与共识验证处理的候选共识节点,调整所述候选共识节点参与共识验证的参与权重。
18.根据权利要求17所述的方法,所述调整所述候选共识节点参与共识验证的参与权重,包括:
记录被选取的所述候选共识节点的响应时间;以及,
根据记录的所述候选共识节点的响应时间和所述候选共识节点参与共识验证的次数,调整对应候选共识节点参与共识验证的参与权重。
19.根据权利要求17所述的方法,所述方法还包括:
基于所述候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
20.根据权利要求13所述的方法,所述方法还包括:
所述创始节点接收用户的终端设备发送的系统加入请求,向添加至所述区块链系统的用户的终端设备发送第二可验证声明;其中,所述第二可验证声明用于证明所述用户被授予访问所述区块链系统的权限。
21.根据权利要求20所述的方法,所述方法还包括:
所述创始节点接收所述用户的终端设备发送的第一创建请求,其中,所述第一创建请求用于请求创建候选共识节点,所述第一创建请求包括所述第二可验证声明;
若确定所述第一创建请求包括的所述第二可验证声明合法、且当前所述候选共识节点的数量未到达预设的数量阈值,则创建候选共识节点;以及,
所述创始节点创建的所述候选共识节点,同步所述区块链上的区块链数据。
22.根据权利要求20所述的方法,所述区块链系统还包括数据节点,所述数据节点,向所述区块链中保存数据或者从所述区块链中读取数据;所述方法还包括:
所述创始节点接收所述用户的终端设备发送的第二创建请求,其中,所述第二创建请求用于请求创建所述数据节点,所述第二创建请求包括所述第二可验证声明;
若确定所述第二创建请求包括的所述第二可验证声明合法,则创建数据节点;以及,
所述创始节点创建的所述数据节点,同步所述区块链上的区块链数据。
23.根据权利要求21或22所述的方法,所述第二可验证声明包括有效时段,所述同步所述区块链上的区块链数据,包括:
以明文形式同步所述有效时段内的区块链数据,以密文形式同步所述有效时段以外的区块链数据。
24.根据权利要求20所述的方法,所述方法还包括:
所述创始节点为添加至所述区块链系统的用户配置初始GAS。
25.一种区块链运行装置,应用于区块链系统的创始节点,所述装置包括:
选取模块,根据提交至区块链的第一交易,获取每个创始节点和每个候选共识节点对预设指令的响应时间;根据所述响应时间,从所述创始节点和所述候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述创始节点和所述候选共识节点,对所述第一交易进行共识验证处理;其中,所述预设指令由提交所述第一交易的提交节点发送。
26.根据权利要求25所述的装置,所述装置还包括:发送模块;
所述发送模块,向被选取的候选共识节点发送第一可验证声明,以使所述被选取的候选共识节点,基于所述第一可验证声明对所述第一交易进行共识验证处理;其中,所述第一可验证声明用于证明所述被选取的候选共识节点被授予对所述第一交易进行共识验证的权限。
27.根据权利要求25所述的装置,
所述选取模块,根据所述响应时间,从所述创始节点和所述候选共识节点中选取N个对所述第一交易进行共识验证的共识节点;其中,N为大于1且不大于所述创始节点和所述共识节点的总数量的整数;选取的所述共识节点包括至少一个创始节点和至少一个候选共识节点。
28.根据权利要求27所述的装置,所述装置还包括:调整模块;
所述调整模块,针对被选取的参与共识验证处理的候选共识节点,调整所述候选共识节点参与共识验证的参与权重。
29.根据权利要求28所述的装置,
所述选取模块,基于所述候选共识节点的所述参与权重,根据预设的第二共识节点选取规则,从所述候选共识节点中选取对所述第一交易进行共识验证的共识节点。
30.一种区块链运行设备,包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器:
根据提交至区块链的第一交易,获取每个创始节点和每个候选共识节点对预设指令的响应时间;其中,所述预设指令由提交所述第一交易的提交节点发送;
根据所述响应时间,从所述创始节点和所述候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述创始节点和所述候选共识节点,对所述第一交易进行共识验证处理。
31.一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现以下流程:
根据提交至区块链的第一交易,获取每个创始节点和每个候选共识节点对预设指令的响应时间;其中,所述预设指令由提交所述第一交易的提交节点发送;
根据所述响应时间,从所述创始节点和所述候选共识节点中选取对所述第一交易进行共识验证的共识节点;以通过被选取的所述创始节点和所述候选共识节点,对所述第一交易进行共识验证处理。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911083990.9A CN110956542B (zh) | 2019-11-07 | 2019-11-07 | 区块链系统及其运行方法、装置及设备 |
TW109115556A TWI748444B (zh) | 2019-11-07 | 2020-05-11 | 區塊鏈系統及其運行方法、裝置及設備 |
PCT/CN2020/103961 WO2021088421A1 (zh) | 2019-11-07 | 2020-07-24 | 区块链系统及其运行方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911083990.9A CN110956542B (zh) | 2019-11-07 | 2019-11-07 | 区块链系统及其运行方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110956542A CN110956542A (zh) | 2020-04-03 |
CN110956542B true CN110956542B (zh) | 2021-05-18 |
Family
ID=69976820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911083990.9A Active CN110956542B (zh) | 2019-11-07 | 2019-11-07 | 区块链系统及其运行方法、装置及设备 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN110956542B (zh) |
TW (1) | TWI748444B (zh) |
WO (1) | WO2021088421A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110956542B (zh) * | 2019-11-07 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 区块链系统及其运行方法、装置及设备 |
CN111556149B (zh) * | 2020-04-27 | 2022-10-21 | 中国银行股份有限公司 | 一种基于Raft共识算法的节点选择方法及装置 |
CN113256426B (zh) * | 2020-05-29 | 2023-08-04 | 支付宝(杭州)信息技术有限公司 | 一种数据处理方法、装置、设备及介质 |
CN112491845B (zh) * | 2020-11-18 | 2023-04-25 | 北京数码视讯科技股份有限公司 | 普通节点准入方法、装置、电子设备及可读存储介质 |
CN112231414B (zh) * | 2020-12-14 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 区块链系统的数据同步方法、装置、可读介质及电子设备 |
CN112954009B (zh) * | 2021-01-27 | 2023-05-02 | 咪咕音乐有限公司 | 区块链共识方法、设备及存储介质 |
CN112835854A (zh) * | 2021-02-01 | 2021-05-25 | 北京百度网讯科技有限公司 | 文件存储方法、装置、电子设备和存储介质 |
CN112995317B (zh) * | 2021-02-26 | 2023-04-07 | 中国工商银行股份有限公司 | 区块链共识方法及区块链节点 |
CN112804351B (zh) * | 2021-03-05 | 2022-12-23 | 中国工商银行股份有限公司 | 区块链系统的流量控制方法、装置、节点、介质及产品 |
CN113225191B (zh) * | 2021-03-24 | 2024-02-13 | 湖南宸瀚信息科技有限责任公司 | 共识节点的生成方法、装置、存储介质及处理器 |
CN113179286B (zh) * | 2021-06-30 | 2022-08-19 | 广州平云信息科技有限公司 | 一种区块链的数据监管方法和系统 |
CN115374216B (zh) * | 2022-08-10 | 2024-04-02 | 深圳市沃享科技有限公司 | 共识方案的构建方法、装置、终端设备及计算机介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107231239A (zh) * | 2017-06-27 | 2017-10-03 | 中国联合网络通信集团有限公司 | 创世区块防伪方法及装置 |
CN109347917A (zh) * | 2018-09-14 | 2019-02-15 | 北京沃杰知识产权有限公司 | 区块链数据共识处理方法、系统、存储介质和电子设备 |
CN109508982A (zh) * | 2018-11-21 | 2019-03-22 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的repb共识 |
CN109639413A (zh) * | 2018-12-10 | 2019-04-16 | 四川大学 | 一种基于移动自组网的区块链系统 |
CN109978516A (zh) * | 2019-03-06 | 2019-07-05 | 西安电子科技大学 | 区块链网络中区块的制造和同步方法、信息数据处理终端 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201611948D0 (en) * | 2016-07-08 | 2016-08-24 | Kalypton Int Ltd | Distributed transcation processing and authentication system |
CN111614655A (zh) * | 2017-03-24 | 2020-09-01 | 创新先进技术有限公司 | 一种共识校验的方法及装置 |
CN107451175B (zh) * | 2017-05-23 | 2020-01-31 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
TWI648679B (zh) * | 2017-08-16 | 2019-01-21 | 永豐商業銀行股份有限公司 | 使用區塊鏈之證照發行管理系統與方法 |
CN107590738A (zh) * | 2017-08-24 | 2018-01-16 | 阿里巴巴集团控股有限公司 | 选择共识节点的处理方法、装置及服务器 |
CN108769173B (zh) * | 2018-05-21 | 2021-11-09 | 阿里体育有限公司 | 运行智能合约的区块链实现方法及设备 |
TWI656496B (zh) * | 2018-08-16 | 2019-04-11 | 楊少銘 | 弱中心化基金交易系統及其方法 |
CN109961287A (zh) * | 2019-02-12 | 2019-07-02 | 众安信息技术服务有限公司 | 一种区块链的监管方法及监管系统 |
CN110956542B (zh) * | 2019-11-07 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 区块链系统及其运行方法、装置及设备 |
-
2019
- 2019-11-07 CN CN201911083990.9A patent/CN110956542B/zh active Active
-
2020
- 2020-05-11 TW TW109115556A patent/TWI748444B/zh active
- 2020-07-24 WO PCT/CN2020/103961 patent/WO2021088421A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107231239A (zh) * | 2017-06-27 | 2017-10-03 | 中国联合网络通信集团有限公司 | 创世区块防伪方法及装置 |
CN109347917A (zh) * | 2018-09-14 | 2019-02-15 | 北京沃杰知识产权有限公司 | 区块链数据共识处理方法、系统、存储介质和电子设备 |
CN109508982A (zh) * | 2018-11-21 | 2019-03-22 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的repb共识 |
CN109639413A (zh) * | 2018-12-10 | 2019-04-16 | 四川大学 | 一种基于移动自组网的区块链系统 |
CN109978516A (zh) * | 2019-03-06 | 2019-07-05 | 西安电子科技大学 | 区块链网络中区块的制造和同步方法、信息数据处理终端 |
Also Published As
Publication number | Publication date |
---|---|
TWI748444B (zh) | 2021-12-01 |
TW202119328A (zh) | 2021-05-16 |
CN110956542A (zh) | 2020-04-03 |
WO2021088421A1 (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110956542B (zh) | 区块链系统及其运行方法、装置及设备 | |
AU2019101613A4 (en) | Method and apparatus for processing transaction requests | |
US20210049608A1 (en) | Transaction method and system based on centralized clearing and blockchain record keeping | |
US20210049595A1 (en) | Transaction method and system based on centralized settlement and block chain storage | |
US11276060B2 (en) | Transferring operations based on blockchain smart contract | |
US20210152369A1 (en) | Blockchain smart contract-based signature verification methods and systems | |
CN108537525B (zh) | 一种共识验证方法、装置及设备 | |
CN109003069B (zh) | 一种资源回退方法及装置 | |
CN110781192B (zh) | 区块链数据的验证方法、装置及设备 | |
US10218707B2 (en) | Controlling access to computer accounts managed by a computer account server to provide handoff to a nominee computer terminal | |
CN107070871B (zh) | 一种身份验证的方法及装置 | |
CN108694574B (zh) | 一种资源转移渠道的处理方法、装置及设备 | |
CN108449378B (zh) | 一种信息推送方法、装置及设备 | |
CN113821817B (zh) | 基于区块链的数据处理方法、装置、设备及系统 | |
CN108536569B (zh) | 一种业务行为跟踪方法、装置及设备 | |
JP2019509567A (ja) | アプリケーション(app)のためのリソースロード方法、サービス機能実施方法及び装置 | |
CN109639747B (zh) | 数据请求处理、询问消息处理方法、装置以及设备 | |
CN114329406A (zh) | 一种资源处理方法、装置及设备 | |
CN111402058B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN112541766A (zh) | 基于utxo进行零知识证明交易验证的方法、装置及相关产品 | |
US20160182649A1 (en) | Url issuing device, url issuing method, and url issuing program | |
CN109242478B (zh) | 一种口令红包创建方法及装置 | |
CN114862380B (zh) | 额度共享处理方法及装置 | |
CN112597533B (zh) | 一种基于隐私保护的风险防控方法、装置及设备 | |
US9591553B1 (en) | Content access based on mobile device geographical location |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40026904 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |