CN111563740A - 一种联盟链的交易处理方法及系统 - Google Patents
一种联盟链的交易处理方法及系统 Download PDFInfo
- Publication number
- CN111563740A CN111563740A CN202010337435.0A CN202010337435A CN111563740A CN 111563740 A CN111563740 A CN 111563740A CN 202010337435 A CN202010337435 A CN 202010337435A CN 111563740 A CN111563740 A CN 111563740A
- Authority
- CN
- China
- Prior art keywords
- node
- transaction
- transaction request
- account book
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 14
- 238000012545 processing Methods 0.000 claims abstract description 140
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000008859 change Effects 0.000 claims description 76
- 238000004590 computer program Methods 0.000 claims description 18
- 230000000977 initiatory effect Effects 0.000 claims description 17
- 238000012795 verification Methods 0.000 claims description 15
- 238000011084 recovery Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 238000012508 change request Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供一种联盟链的交易处理方法及系统,所述方法包括:接收交易请求,所述交易请求包括区间标识;根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。所述系统用于执行上述方法。本发明实施例提供的联盟链的交易处理方法及系统,提高了对交易请求的处理效率。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种联盟链的交易处理方法及系统。
背景技术
联盟链是有若干机构或组织共同参与管理的区块链,他们各自运行着一个或多个节点,联盟链中的数据只允许系统内不同的机构进行读取和发送交易,并且共同记录交易数据。
现有联盟链技术中,通过读写集等技术提高并行处理能力,交易量最高能到2万多TPS。而由于联盟链中数据存储采用链式本地存储无法平行扩展,并且联盟链中单个节点的性能存在极限,导致现有的联盟链无法满足日益增长的业务量对性能、容量、用户体验等方面的要求。
发明内容
针对现有技术中的问题,本发明实施例提供一种联盟链的交易处理方法及系统,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出一种联盟链的交易处理方法,包括:
接收交易请求,所述交易请求包括区间标识;
根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;
若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。
另一方面,本发明提供一种联盟链的交易处理系统,包括:
接收模块,用于接收交易请求,所述交易请求包括区间标识;
确定模块,用于根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;
处理模块,用于若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。
再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述联盟链的交易处理方法的步骤。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述联盟链的交易处理方法的步骤。
本发明实施例提供的联盟链的交易处理方法及系统,能够接收包括区间标识的交易请求,根据区间标识确定处理所述交易请求的节点,在判断获知交易请求对应的交易不是节点的首笔交易之后,对所述交易请求进行处理并登记处理结果,由于每个节点处理包括对应区间标识的交易请求,实现了各个节点高并发处理交易,提高了对交易请求的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例提供的联盟链的交易处理系统的结构示意图。
图2是本发明一实施例提供的联盟链的交易处理方法的流程示意图。
图3是本发明另一实施例提供的联盟链的交易处理方法的流程示意图。
图4是本发明再一实施例提供的联盟链的交易处理方法的流程示意图。
图5是本发明另一实施例提供的联盟链的交易处理系统的结构示意图。
图6是本发明再一实施例提供的联盟链的交易处理系统的结构示意图。
图7是本发明又一实施例提供的联盟链的交易处理系统的结构示意图。
图8是本发明还一实施例提供的联盟链的交易处理系统的结构示意图。
图9是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1是本发明一实施例提供的联盟链的交易处理系统的结构示意图,如图1所示,本发明实施例提供的联盟链的交易处理系统包括一个权限管理节点1和多个节点2,权限管理节点与每个节点2通信连接,各个节点2之间通信连接,权限管理节点1可以用于对用户进行合法性验证,例如根据用户名和密码验证用户的登录请求,各个节点2用于处理交易请求。每个节点2的区块数据包括本地账本数据,并同步其他节点2的账本数据。其中,权限管理节点1可以采用服务器,各个节点2可以是联盟链成员的服务器或者工作站等设备。节点2的数量至少为3f+1个,f为拜占庭节点的数量。
本发明实施例提供的联盟链的交易处理系统,不同于现有技术中联盟链每个节点要处理所有交易的处理方式,每个节点2处理部分交易,可以通过配置文件配置每个节点2处理的交易,例如将交易分为不同的类型,每个节点2处理一种类型的交易,或者根据交易的来源地区,将交易分为不同的区域,每个节点2处理一个区域的交易。由于各个节点2能够处理不同的交易,能够增加联盟链的交易处理系统的吞吐能力,提高联盟链的交易处理系统的并发交易处理量。本发明实施例提供的联盟链的交易处理系统作为执行主体执行本发明实施例提供的联盟链的交易处理方法。
图2是本发明一实施例提供的联盟链的交易处理方法的流程示意图,如图2所示,本发明实施例提供的联盟链的交易处理方法,包括:
S201、接收交易请求,所述交易请求包括区间标识;
具体地,用户可以通过客户端向联盟链的交易处理系统(以下简称交易处理系统)发送交易请求,所述交易处理系统会接收所述交易请求,所述交易请求包括区间标识,所述区间标识是预先设置的,用于确定处理所述交易请求的节点。
S202、根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;
具体地,所述交易处理系统接收到所述交易请求之后,查询与所述区间标识对应的节点,由与所述区间标识对应的节点处理所述交易请求。其中,每个节点与至少一个区间标识对应,每个节点与区间标识的对应关系是预设的。
例如,可以将所述交易处理系统包括的所有节点与区间标识的对应关系存储到配置文件中,每个节点都存储上述配置文件,当一个节点接收到所述交易请求之后,可以根据上述配置文件查询获得与所述交易请求包括的区间标识对应的节点,然后判断与所述交易请求包括的区间标识对应的节点是不是本地节点,如果是,那么进行后续的交易处理,如果不是,那么可以将所述交易请求转发给与所述交易请求包括的区间标识对应的节点。
S203、若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。
具体地,所述交易处理系统在确定处理所述交易请求的节点之后,会判断所述交易请求对应的交易是不是该节点的首笔交易,所述节点的首笔交易是指所述节点在启用之后处理的第一笔交易。如果不是该节点的首笔交易,那么该节点会对所述交易请求进行处理并在所述交易请求处理完成之后登记处理结果。其中,所述节点对交易请求的具体处理过程为现有技术,此处不进行赘述。
例如,在对所述交易请求进行处理时,可以统计待处理的交易请求的数量,如果待处理的交易请求的数量大于等于阈值,那么会调用智能合约,逐一地对待处理的交易请求进行处理。如果待处理的交易请求的数量小于阈值,那么将所述交易请求归入到待处理的交易请求中,并确定所述交易请求的在待处理的交易请求中的执行顺序,等待处理的交易请求的数量大于等于阈值之后,再进行后续处理。其中,所述交易请求的执行顺序可以根据接收交易请求的时间先后确定。所述阈值根据实际需要进行设置,本发明实施例不做限定。
本发明实施例提供的联盟链的交易处理方法,能够接收包括区间标识的交易请求,根据区间标识确定处理所述交易请求的节点,在判断获知交易请求对应的交易不是节点的首笔交易之后,对所述交易请求进行处理并登记处理结果,由于每个节点处理包括对应区间标识的交易请求,实现了各个节点高并发处理交易,提高了对交易请求的处理效率。此外,对于每个节点的非首笔交易,无需进行全网共识,节省了对交易请求处理的时间,从而进一步提高了对交易请求的处理效率。
在上述各实施例的基础上,进一步地,本发明实施例提供的联盟链的交易处理方法还包括:
若判断获知所述交易请求对应的交易是所述节点的首笔交易,则对所述节点的首笔交易发起全网共识。
具体地,所述交易处理系统在确定处理所述交易请求的节点之后,会判断所述交易请求对应的交易是不是该节点的首笔交易,如果是该节点的首笔交易,那么会由该节点发起全网共识,由其他节点判断所述交易请求对应的交易是不是该节点的首笔交易,在所述交易请求对应的交易是所述节点的首笔交易达成全网共识之后,该节点可以对所述交易请求进行后续处理。如果就所述交易请求对应的交易是所述节点的首笔交易没有达成全网共识,那么该节点会停止对所述交易请求的处理,并返回错误提示信息。对每个节点的首笔交易进行全网共识,可以保证每个节点数据的合法性。
例如,全网共识可以采用拜占庭容错(PBFT)算法,处理交易请求的节点如果在预设时间内未收集齐所述交易处理系统中至少2f+1个节点的确认信息,那么没有达成全网共识,认为所述交易请求不符合要求,可以返回错误提示信息。如果在预设时间内收集齐所述交易处理系统中至少2f+1个节点的确认信息,那么达成全网共识,处理交易请求的节点可以对所述交易请求进行后续处理。
例如,所述交易处理系统的其他节点判断所述交易请求对应的交易是不是节点y的首笔交易,其他节点可以查询本地存储的节点y的账本数据,如果节点y的账本数据中己经有交易记录,那么所述交易请求对应的交易不是节点y的首笔交易,如果节点y的账本数据中没有交易记录,那么所述交易请求对应的交易是节点y的首笔交易,可以向y节点发送确认信息。
图3是本发明另一实施例提供的联盟链的交易处理方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,本发明实施例提供的联盟链的交易处理方法还包括:
S301、定期发起账本变更并生成账本变更信息,所述账本变更信息包括每个节点变更的区间标识;
具体地,为了防止节点变成恶意节点,所述交易处理系统会定期发起账本变更,以更改每个节点对应的区间标识,在发起账本变更的同时可以生成账本变更信息,所述账本变更信息包括每个节点变更的区间标识。其中,每个节点变更后对应的区间标识是随机分配的,但需要保证所有的区间标识都有对应的节点。可理解的是,每个节点对应的区间标识,可能全部发生变更,也可能部分发生变更,还可能不发生变更。其中,所述定期根据实际需要进行设置,例如每天发起一次账本变更,本发明实施例不做限定。
例如,所述账本变更可以由所述交易处理系统的一个节点发起,可以配置所述交易处理系统的各个节点按一定顺序轮流发起账本变更,各个节点发起账本变更的先后顺序可以是随机生成的。
S302、若判断获知所述账本变更通过全网共识,则根据所述账本变更信息包括的每个节点变更的区间标识更改每个节点对应的区间标识。
具体地,所述交易处理系统在发起账本变更之后,如果有至少2f+1个节点同意进行账本变更,那么判断出所述账本变更通过全网共识,会根据所述账本变更信息包括的每个节点变更的区间标识,将每个节点对应的区间标识更改为每个节点变更的区间标识。通过定期变更各个节点对应区间标识,可以提高各个节点的数据的安全性。
例如,所述交易处理系统的节点A向其他各个节点发送账本变更请求,以发起账本变更,所述账本变更请求携带所述账本变更信息,所述交易处理系统的各个节点对所述账本变更请求进行全网共识,比如各个节点可以根据发起账本变更的节点的顺序判断当前账本变更是否应该由A节点发起,如果判断出由A节点发起,那么同意进行账本变更,如果判断出不应该由A节点发起,那么不会同意进行账本变更,如果有至少2f+1个节点同意进行账本变更,那么所述交易处理系统的每个节点会根据所述账本变更信息包括每个节点变更的区间标识将每个节点对应的区间标识更改为每个节点变更的区间标识。
图4是本发明再一实施例提供的联盟链的交易处理方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,本发明实施例提供的联盟链的交易处理方法还包括:
S401、定期对每个节点的账本数据进行校验;
具体地,所述交易处理系统会定期对每个节点的账本数据进行校验,以保证各个节点的账本数据的准确性。对所述节点的账本数据的校验,是通过所述交易处理系统的其他节点对所述节点的账本数据进行校验实现的,所述交易处理系统的其他节点获取所述节点的账本数据,并对所述节点的账本数据进行校验,在校验通过之后向所述节点返回校验通过信息,在校验不通过时向所述节点返回,校验失败信息,至少有2f+1个节点返回校验通过信息,所述节点的账本数据才能校验通过,否则所述节点的账本数据校验不通过。其中,所述节点的账本数据是节点在处理完交易请求之后记录到本地的数据,以区块的形式进行存储。所述账本数据可以包括多个区块,每个区块包括区块头(Block Header)和区块交易(Block Transaction)。第一个区块的区块头可以包括:前一个节点的第一个区块的哈希值、各节点的首笔交易组成的交易树根节点哈希值、各节点的首笔交易组成的状态树根节点哈希值以及本节点的首笔交易的执行结果。从第二个区块起,每个区块的区块头包括前一个区块数据的哈希值,即第二个区块的区块头包括第一个区块的哈希值,第三个区块的区块头包括第二个区块的哈希值,以此类推。其中,第一个区块的区块交易只包括首笔交易,其他区块的区块交易包括的交易数量根据实际需要进行设置,本发明实施例不做限定。
例如,其他节点对所述节点的账本数据进行校验时,可以获取所述节点的账本数据中在上一次校验通过之后生成的第一个区块的区块数据,如果该区块数据包括在上一次校验通过之后生成的第一个区块的上一个区块的哈希值,那么所述节点的账本数据校验通过,否则,所述节点的账本数据校验不通过。
S402、若判断获知所述节点的账本数据没有通过校验,则恢复所述节点的账本数据。
具体地,所述交易处理系统在对所述节点的账本数据进行校验之后,会获得所述节点的账本数据校验结果,如果所述节点的账本数据没有通过校验,那么所述节点会停止接收交易请求,并恢复所述节点的账本数据,可以将所述节点的账本数据恢复到上次通过校验时的账本数据,即将上次校验通过之后记录的数据全部删除。
例如,所述交易处理系统的其他各个节点从节点B获取节点B的账本数据,然后对节点B的账本数据进行校验,校验通过之后向节点B返回校验通过消息,校验不通过则向节点B返回校验失败消息,节点B在收到至少2f+1个节点发送的校验失败消息之后,说明节点B的账本数据没有通过校验,会停止接收交易请求,并恢复数据,节点B会将账本数据恢复到上次校验通过时的账本数据。其中,其他各个节点是指所述交易处理系统中除了节点B以外的节点。
下面以一个具体的实施例来说明本发明实施例提供的联盟链的交易处理方法的实现过程。
某个联盟链的交易处理系统X包括权限管理节点a、节点b、节点c、节点d和节点e,权限管理节点a分别与节点b、节点c、节点d和节点e通信连接,节点b、节点c、节点d和节点e之间相互通信连接。通过配置文件预先配置节点b处理第一类型的交易请求和第二类型的交易请求,节点c处理第二类型的交易请求和第三类型的交易请求,节点d处理第三类型的交易请求和第四类型的交易请求,节点e处理第四类型和第一类型的交易请求。设置第一类型的交易请求对应的区间标识为001,第二类型的交易请求对应的区间标识为002,第三类型的交易请求对应的区间标识为003,第四类型的交易请求对应的区间标识为004,所以节点b与区间标识001和002对应,节点c与区间标识002和003对应,节点d与区间标识003和004对应,节点e与区间标识004和001对应。
用户通过客户端向权限管理节点a发送登录请求,所述登录请求包括用户名和密码,权限管理节点a通过用户名和密码对用户进行登录验证。在登录验证通过之后,用户通过所述客户端向联盟链的交易处理系统X发送交易请求,所述交易请求携带区间标识003。联盟链的交易处理系统X包括的任何一个节点都可以接收所述交易请求,假设节点a接收到所述交易请求,节点a根据区间标识003以及上述配置文件可以判断出所述交易请求可以由节点c或者节点d处理,节点a可以将所述交易请求转发给节点c或者节点d,假设转发给节点c。
节点c接收到所述交易请求之后,会判断所述交易请求对应的交易是否是节点c的首笔交易,如果不是节点c的首笔交易,那么判断包括所述交易请求对应的交易在内,待处理的交易数量是否大于等于所述阈值,如果待处理的交易请求的数量小于阈值,那么继续接收交易请求,直到待处理的交易数量大于等于所述阈值时,调用智能合约逐一地对待处理的交易请求进行处理,并登记每笔交易的处理结果。其中,待处理的交易请求可以按照接收到的时间先后顺序依次进行处理。
如果所述交易请求对应的交易时节点c的首笔交易,那么节点c会发起全网共识,在所述交易请求对应的交易时节点c的首笔交易达成全网共识之后,对所述交易请求进行后续处理。
联盟链的交易处理系统X可以每三天发起一次账本变更,预先定义节点发起账本变更的顺序为节点b、节点c、节点d和节点e。假设当前账本变更由节点b发起,节点b在发起账本变更的同时生成账本变更信息,节点b将携带账本变更信息的账本变更请求分别发送给节点c、节点d和节点e,节点b、节点c、节点d和节点e四个节点中当至少有3个节点同意进行账本变更时,所述账本变更通过全网共识。在账本变更通过全网共识之后,可以根据账本变更信息更改节点b、节点c、节点d和节点e各自对应的区间标识。账本变更信息包括节点b变更的区间标识004、节点c变更的区间标识003、节点d变更的区间标识002和节点e变更的区间标识001,那么在更改每个节点对应的区间标识之后,节点b与区间标识004对应,节点c与区间标识003对应,节点d与区间标识002对应,节点e与区间标识001对应。
联盟链的交易处理系统X可以每隔30分钟对节点b、节点c、节点d和节点e的账本数据进行校验。下面以对节点b的账本数据校验为例进行说明,节点c、节点d和节点e会分别获取节点b的账本数据,然后每个节点分别判断节点b的账本数据包括在上一次校验通过之后的生成的第一区块是否包括所述上一次校验通过之后的生成的第一区块的上一个区块的哈希值,如果包括那么向节点b返回校验通过信息,否则向节点b返回校验失败信息。如果节点b接收到节点c、节点d和节点e分别分返回的校验通过信息,那么节点b的账本数据通过校验。如果节点b接收到节点c、节点d和节点e至少一个节点返回的校验失败信息,节点b的账本数据将不能通过校验,节点b会删除上一次校验通过之后记录的数据,实现账本数据的恢复。
联盟链的交易处理系统X的节点b、节点c、节点d和节点e,每个节点在完成交易之后都会将登记的数据同步到其他节点。节点b的区块数据包括节点b的账本数据、节点c的账本数据、节点d的账本数据和节点e的账本数据,节点b在处理完交易请求的时候会将数据记录到节点b的账本数据,节点b上的节点c的账本数据、节点d的账本数据和节点e的账本数据分别是对节点c、节点d和节点e的数据的备份。节点b的账本数据、节点c的账本数据、节点d的账本数据和节点e的账本数据通过各个账本数据的第一个区块头产生关联,例如节点b的账本数据的第一个区块的区块头包括节点e的第一个区块的哈希值,即节点e的账本数据的第一个区块的哈希值,节点c的账本数据的第一个区块的区块头包括节点b的第一个区块的哈希值,即节点b的账本数据的第一个区块的哈希值,节点d的账本数据的第一个区块的区块头包括节点c的第一个区块的哈希值,即节点c的账本数据的第一个区块的哈希值,节点e的账本数据的第一个区块的区块头包括节点d的第一个区块的哈希值,即节点d的账本数据的第一个区块的哈希值。节点c、节点d和节点e的区块数据与节点b的区块数据类似,此处不进行赘述。
图5是本发明另一实施例提供的联盟链的交易处理系统的结构示意图,如图5所示,本发明实施例提供的联盟链的交易处理系统包括接收模块501、确定模块502和处理模块503,其中:
接收模块501用于接收交易请求,所述交易请求包括区间标识;确定模块502用于根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;处理模块503用于若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。
具体地,用户可以通过客户端向接收模块501发送交易请求,所述交易处理系统会接收所述交易请求,所述交易请求包括区间标识,所述区间标识是预先设置的,用于确定处理所述交易请求的节点。
在接收到所述交易请求之后,确定模块502查询与所述区间标识对应的节点,由与所述区间标识对应的节点处理所述交易请求。其中,每个节点与至少一个区间标识对应,每个节点与区间标识的对应关系是预设的。
在确定处理所述交易请求的节点之后,处理模块503会判断所述交易请求对应的交易是不是该节点的首笔交易,所述节点的首笔交易是指所述节点在启用之后处理的第一笔交易。如果不是该节点的首笔交易,那么该节点会对所述交易请求进行处理并在所述交易请求处理完成之后登记处理结果。其中,所述节点对交易请求的具体处理过程为现有技术,此处不进行赘述。
本发明实施例提供的联盟链的交易处理系统,能够接收包括区间标识的交易请求,根据区间标识确定处理所述交易请求的节点,在判断获知交易请求对应的交易不是节点的首笔交易之后,对所述交易请求进行处理并登记处理结果,由于每个节点处理包括对应区间标识的交易请求,实现了各个节点高并发处理交易,提高了对交易请求的处理效率。此外,对于每个节点的非首笔交易,无需进行全网共识,节省了对交易请求处理的时间,从而进一步提高了对交易请求的处理效率。
图6是本发明再一实施例提供的联盟链的交易处理系统的结构示意图,如图6所示,在上述各实施例的基础上,进一步地,本发明实施例提供的联盟链的交易处理系统还包括发起模块504,其中:
发起模块504用于若判断获知所述交易请求对应的交易是所述节点的首笔交易,则对所述节点的首笔交易发起全网共识。
具体地,在确定处理所述交易请求的节点之后,发起模块504会判断所述交易请求对应的交易是不是该节点的首笔交易,如果是该节点的首笔交易,那么发起全网共识,由其他节点判断所述交易请求对应的交易是不是该节点的首笔交易,在所述交易请求对应的交易是所述节点的首笔交易达成全网共识之后,该节点可以对所述交易请求进行后续处理。如果就所述交易请求对应的交易是所述节点的首笔交易没有达成全网共识,那么该节点会停止对所述交易请求的处理,并返回错误提示信息。对每个节点的首笔交易进行全网共识,可以保证每个节点数据的合法性。
图7是本发明又一实施例提供的联盟链的交易处理系统的结构示意图,如图7所示,在上述各实施例的基础上,进一步地,本发明实施例提供的联盟链的交易处理系统还包括账本变更模块505和更改模块506,其中:
账本变更模块505用于定期发起账本变更并生成账本变更信息,所述账本变更信息包括每个节点变更的区间标识;更改模块506用于在判断获知所述账本变更通过全网共识之后,根据所述账本变更信息包括的每个节点变更的区间标识更改每个节点对应的区间标识。
具体地,为了防止节点变成恶意节点,账本变更模块505会定期发起账本变更,以更改每个节点对应的区间标识,在发起账本变更的同时可以生成账本变更信息,所述账本变更信息包括每个节点变更的区间标识。其中,每个节点变更后对应的区间标识是随机分配的,但需要保证所有的区间标识都有对应的节点。可理解的是,每个节点对应的区间标识,可能全部发生变更,也可能部分发生变更,还可能不发生变更。其中,所述定期根据实际需要进行设置,例如每天发起一次账本变更,本发明实施例不做限定。
在发起账本变更之后,如果有至少2f+1个节点同意进行账本变更,那么更改模块506判断出所述账本变更通过全网共识,会根据所述账本变更信息包括的每个节点变更的区间标识,将每个节点对应的区间标识更改为每个节点变更的区间标识。通过定期变更各个节点对应区间标识,可以提高各个节点的数据的安全性。
图8是本发明还一实施例提供的联盟链的交易处理系统的结构示意图,如图8所示,在上述各实施例的基础上,进一步地,本发明实施例提供的还包括校验模块507和恢复模块508,其中:
校验模块507用于定期对每个节点的账本数据进行校验;恢复模块508用于在判断获知所述节点的账本数据没有通过校验之后,恢复所述节点的账本数据。
具体地,校验模块507会定期对每个节点的账本数据进行校验,以保证各个节点的账本数据的准确性。对所述节点的账本数据的校验,是通过其他节点对所述节点的账本数据进行校验实现的,其他节点获取所述节点的账本数据,并对所述节点的账本数据进行校验,在校验通过之后向所述节点返回校验通过信息,在校验不通过时向所述节点返回,校验失败信息,至少有2f+1个节点返回校验通过信息,所述节点的账本数据才能校验通过,否则所述节点的账本数据校验不通过。其中,所述节点的账本数据是节点在处理完交易请求之后记录到本地的数据,以区块的形式进行存储。所述账本数据可以包括多个区块,每个区块包括区块头(Block Header)和区块交易(Block Transaction)。第一个区块的区块头可以包括:前一个节点的第一个区块的哈希值、各节点的首笔交易组成的交易树根节点哈希值、各节点的首笔交易组成的状态树根节点哈希值以及本节点的首笔交易的执行结果。从第二个区块起,每个区块的区块头包括前一个区块数据的哈希值,即第二个区块的区块头包括第一个区块的哈希值,第三个区块的区块头包括第二个区块的哈希值,以此类推。其中,第一个区块的区块交易只包括首笔交易,其他区块的区块交易包括的交易数量根据实际需要进行设置,本发明实施例不做限定。
具体地,在对所述节点的账本数据进行校验之后,会获得所述节点的账本数据校验结果,如果所述节点的账本数据没有通过校验,那么所述节点会停止接收交易请求,恢复模块508会恢复所述节点的账本数据,可以将所述节点的账本数据恢复到上次通过校验时的账本数据,即将上次校验通过之后记录的数据全部删除。
本发明实施例提供的联盟链的交易处理系统的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图9是本发明一实施例提供的电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)901、通信接口(Communications Interface)902、存储器(memory)903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。处理器901可以调用存储器903中的逻辑指令,以执行如下方法:接收交易请求,所述交易请求包括区间标识;根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。
此外,上述的存储器903中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收交易请求,所述交易请求包括区间标识;根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收交易请求,所述交易请求包括区间标识;根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种联盟链的交易处理方法,其特征在于,包括:
接收交易请求,所述交易请求包括区间标识;
根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;
若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
若判断获知所述交易请求对应的交易是所述节点的首笔交易,则对所述节点的首笔交易发起全网共识。
3.根据权利要求1所述的方法,其特征在于,还包括:
定期发起账本变更并生成账本变更信息,所述账本变更信息包括每个节点变更的区间标识;
若判断获知所述账本变更通过全网共识,则根据所述账本变更信息包括的每个节点变更的区间标识更改每个节点对应的区间标识。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
定期对每个节点的账本数据进行校验;
若判断获知所述节点的账本数据没有通过校验,则恢复所述节点的账本数据。
5.一种联盟链的交易处理系统,其特征在于,包括:
接收模块,用于接收交易请求,所述交易请求包括区间标识;
确定模块,用于根据所述区间标识确定处理所述交易请求的节点;其中,每个节点与至少一个区间标识对应;
处理模块,用于若判断获知所述交易请求对应的交易不是所述节点的首笔交易,则对所述交易请求进行处理并登记处理结果。
6.根据权利要求5所述的系统,其特征在于,还包括:
发起模块,用于若判断获知所述交易请求对应的交易是所述节点的首笔交易,则对所述节点的首笔交易发起全网共识。
7.根据权利要求5所述的系统,其特征在于,还包括:
账本变更模块,用于定期发起账本变更并生成账本变更信息,所述账本变更信息包括每个节点变更的区间标识;
更改模块,用于在判断获知所述账本变更通过全网共识之后,根据所述账本变更信息包括的每个节点变更的区间标识更改每个节点对应的区间标识。
8.根据权利要求5至7任一项所述的系统,其特征在于,还包括:
校验模块,用于定期对每个节点的账本数据进行校验;
恢复模块,用于在判断获知所述节点的账本数据没有通过校验之后,恢复所述节点的账本数据。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337435.0A CN111563740A (zh) | 2020-04-26 | 2020-04-26 | 一种联盟链的交易处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337435.0A CN111563740A (zh) | 2020-04-26 | 2020-04-26 | 一种联盟链的交易处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111563740A true CN111563740A (zh) | 2020-08-21 |
Family
ID=72074350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010337435.0A Pending CN111563740A (zh) | 2020-04-26 | 2020-04-26 | 一种联盟链的交易处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563740A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114677138A (zh) * | 2021-05-19 | 2022-06-28 | 腾讯云计算(北京)有限责任公司 | 一种数据处理方法、设备以及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180225448A1 (en) * | 2017-02-07 | 2018-08-09 | Microsoft Technology Licensing, Llc | Transaction processing for consortium blockchain network |
CN110022318A (zh) * | 2019-04-02 | 2019-07-16 | 北京众享比特科技有限公司 | 一种联盟链管理方法、装置和计算机可读存储介质 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
-
2020
- 2020-04-26 CN CN202010337435.0A patent/CN111563740A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180225448A1 (en) * | 2017-02-07 | 2018-08-09 | Microsoft Technology Licensing, Llc | Transaction processing for consortium blockchain network |
CN110022318A (zh) * | 2019-04-02 | 2019-07-16 | 北京众享比特科技有限公司 | 一种联盟链管理方法、装置和计算机可读存储介质 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
Non-Patent Citations (1)
Title |
---|
邵奇峰等: "区块链技术:架构及进展" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114677138A (zh) * | 2021-05-19 | 2022-06-28 | 腾讯云计算(北京)有限责任公司 | 一种数据处理方法、设备以及计算机可读存储介质 |
CN114677138B (zh) * | 2021-05-19 | 2024-09-24 | 腾讯云计算(北京)有限责任公司 | 一种数据处理方法、设备以及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046896B (zh) | 一种区块处理方法和节点以及系统 | |
CN110990408A (zh) | 基于区块链的业务信息协同方法、业务系统及联盟链 | |
CN111061769B (zh) | 一种区块链系统的共识方法及相关设备 | |
CN111630826A (zh) | 共识系统和方法 | |
AU2019203862B2 (en) | System and method for ending view change protocol | |
CN110730225A (zh) | 基于区块链的物联网的数据处理方法、物联网及存储介质 | |
CN108710681B (zh) | 文件获取方法、装置、设备及存储介质 | |
JP5801482B2 (ja) | キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム | |
WO2021051581A1 (zh) | 服务器集群文件同步方法及装置、电子设备及存储介质 | |
CN111400112A (zh) | 分布式集群的存储系统的写入方法、装置及可读存储介质 | |
CN109660545B (zh) | 一种联盟链共识方法及计算机存储介质 | |
CN111026767B (zh) | 区块链的数据存储方法、装置及硬件设备 | |
CN112907369A (zh) | 基于区块链的数据共识方法及装置、电子设备、存储介质 | |
CN113064764B (zh) | 在区块链系统中执行区块的方法及装置 | |
CN111339551B (zh) | 数据的验证方法及相关装置、设备 | |
CN110933022A (zh) | 区块处理方法、装置、计算机设备及存储介质 | |
CN112395113A (zh) | 实用拜占庭容错共识方法及装置、可读存储介质 | |
WO2020177601A1 (zh) | 一种基于群组的区块链系统、群组管理方法及装置 | |
CN111026711A (zh) | 基于区块链数据存储方法、装置、计算机设备及存储介质 | |
CN114936253A (zh) | 区块链的共识方法及装置、电子设备、存储介质 | |
CN111563740A (zh) | 一种联盟链的交易处理方法及系统 | |
CN113254526A (zh) | 区块链共识方法、装置及系统 | |
CN111131329A (zh) | 区块链系统的数据共识方法、装置及硬件设备 | |
Fu et al. | A multiple-blockchains based service monitoring framework in edge-cloud computing | |
CN111767168B (zh) | 基于区块链的便于数据回溯的存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200821 |