CN113205417B - 一种面向联盟链的交易并行处理方法及系统 - Google Patents
一种面向联盟链的交易并行处理方法及系统 Download PDFInfo
- Publication number
- CN113205417B CN113205417B CN202110458354.0A CN202110458354A CN113205417B CN 113205417 B CN113205417 B CN 113205417B CN 202110458354 A CN202110458354 A CN 202110458354A CN 113205417 B CN113205417 B CN 113205417B
- Authority
- CN
- China
- Prior art keywords
- transaction
- lock
- read
- transactions
- execution
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向联盟链的交易并行处理方法,所述方法包括:对交易进行预处理,通过静态分析或模拟执行的方式获得交易的读写集,利用共识算法对交易进行排序打包并生成区块,使用单个线程对交易按区块中的顺序进行锁的分配和管理,从而使得区块链节点可以确定性地并行执行区块中的交易。本发明还公开了实现上述并行处理方法的系统。本发明实现了区块链节点上交易的并行处理,提升了交易在节点上执行的性能,在大大提高了节点的吞吐的同时保证了各节点交易执行顺序的一致。本发明还提出了一种面向联盟链的交易并行处理系统。
Description
技术领域
本发明属于区块链技术领域,涉及一种交易并行处理技术,具体是一种面向联盟链的交易并行处理方法及系统。
背景技术
区块链是一种面向互不可信环境的多方共同维护的分布式账本,具有去中心化、不可篡改、历史数据可追溯等特点。然而,作为一种去中心化的拜占庭容错的分布式系统,区块链系统在计算和存储方面的性能较低,严重制约了系统吞吐,难以满足企业级应用的高吞吐需求。
在公有链系统中,共识往往是整个系统的瓶颈所在。但在联盟链中,基于更好的网络环境和更高效的共识算法,交易执行的效率逐渐成为影响系统吞吐的关键所在。传统的区块链采用串行执行交易的方式,串行执行能够保证交易在所有节点上执行的一致性,但并没有充分利用大多数计算机多核架构的优势,性能较低,难以满足企业级应用的高吞吐需求。而以Fabric为代表的一些联盟链采用EOV架构,即预执行-共识-验证三个阶段。在验证阶段,利用乐观并发技术来验证交易,从而实现了较高的执行效率。但存在交易被中止的情况,这在某些应用场景下往往是难以接受的。
因此,为了提升交易执行性能,提高整个系统的吞吐量,从而能够较好的满足高性能需求,同时保证百分百的交易提交率,有必要提出一种面向联盟链的交易并行处理方法。
发明内容
为了解决现有技术存在的不足,本发明的目的是提供一种面向联盟链的交易并行处理方法。以提高区块链节点的交易执行性能为目标,针对现有技术的缺失,提出一种面向联盟链的交易并行处理方法。在交易的并行处理过程中,本发明首先通过静态分析或模拟执行的方法确定每笔交易的读写集,再根据交易读写集以及在区块中的顺序使用排序锁对交易进行并行执行。由于使用了锁机制保证读写集冲突的交易不会并行执行,保证了不存在交易会被中止,即使存在预执行读写集与实际读写集冲突的交易,也可以通过再次执行来提交,从而实现了百分百的交易提交率。
本发明提供了一种面向联盟链的交易并行处理方法,所述方法包括如下步骤:
步骤1:对客户端发起的交易提案进行预处理;
步骤2:通过共识算法对交易进行排序打包并生成区块,保证每笔交易在被打包的块中拥有一个全局唯一的顺序;
步骤3:区块链节点收到区块后,对区块内所有交易以确定性排序锁的方式加锁;
步骤4:按排序锁并行执行区块内的交易;
步骤5:对于依赖交易,如果正式执行期间实际访问的键与步骤1中确定的读写集相同,则执行该交易;如果正式执行期间实际访问的键与步骤1中确定的读写集不同,则中止该交易,然后使用实际执行的读写集尝试重新获得锁并执行。
步骤1中,所述预处理是指利用静态分析或者模拟执行的方法确定交易的读写集,所述读写集是指利用静态分析或模拟执行的方法获得该合约实际运行时需要访问的状态;
所述步骤3进一步可以包括以下步骤:
步骤3-1:区块链节点启动锁管理线程对所有交易进行锁管理;
步骤3-2:锁管理线程按区块中交易的顺序依次扫描每笔交易,并对该笔交易所需的读集和写集分别尝试获取读锁和写锁,从而保证交易按区块中的顺序依次获得执行所需的锁。
所述步骤4进一步可以包括以下步骤:
步骤4-1:对于已经获得所需读锁和写锁的交易,区块链节点维护一个工作线程池并行执行,执行完毕后通知锁管理线程释放相应的锁;
步骤4-2:锁管理线程将回收的锁重新分配给等待锁的交易,若有交易获得所需读锁和写锁,则通知工作线程池执行,如此反复直到区块内交易执行完毕。
步骤5中,所述交易重新执行是指将该交易的执行顺序放至当前所有交易的最后,重新等待锁管理线程分配相应的锁;所述依赖交易是指读写集依赖于某些键的值,这些交易的读写集会随着依赖键值的变化而变化,从而导致预执行的读写集与实际读写集不符的情况。
本发明还提供了一种实现上述并行处理方法的系统,所述系统包括:预执行模块、共识模块与交易并行执行模块。
所述预执行模块使用静态分析或模拟执行的方法获得交易对应的读写集,并附在交易中。
所述共识模块使用拜占庭共识协议,如PBFT,对交易进行共识从而打包出块。
所述交易并行执行模块则使用本发明提出的交易并行处理方法,利用排序锁对交易进行并行执行。
本发明的有益效果包括:本发明实现了区块链节点上交易的并行处理,从而提升了交易在节点上执行的性能,提高了整个联盟链系统的吞吐。同时,本发明利用了排序锁确定性并发的特性,保证了百分百的交易提交率,并保证交易能够以确定性的顺序提交,这对于保证区块链上各个节点的状态一致至关重要。同时,本发明方法也能够在公链或私有链上进行使用,用于提高公链或私有链的交易并行处理速度。
附图说明
图1是本发明方法执行流程图。
图2是本发明区块链节点中交易流转过程示意图。
图3是本发明交易并行处理具体的实施例中锁的分配情况示意图。
图4是本发明交易并行处理具体的实施例中各线程执行情况示意图。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
本发明的整体流程如图1所示,其中的核心逻辑为锁管理线程和工作线程部分,对应伪代码如下所示,其中锁管理线程先将共识交易中得到的交易集合transactions中的交易按序放入等待队列WaitQueue中,然后尝试给等待队列中在队首的交易分配锁,若该交易获得所有锁则将其从等待队列中放入就绪队列ReadyQueue中,否则阻塞的等待锁。
工作线程则不断尝试从就绪队列中获取已经就绪的交易,若拿到了就绪交易,则执行就绪交易并获得实际的读写集,执行完毕后释放该交易对应的锁,并判断实际读写集和原读写集是否相同,若相同则提交该交易的更改,若不相同,则更改该交易的读写集,并将该交易再次放回等待队列的队尾,等待重新分配锁和执行。实际执行中交易在两个队列与工作线程中的流转情况也可见图2。
锁管理线程伪代码
输入为共识后的交易transactions
工作线程伪代码
本发明涉及到的术语及其解释如下:
读写集:某笔交易执行过程中需要读取和写入的键值。
为了提高在区块链节点上交易的执行效率,本发明提出了一种面向联盟链的交易并行处理方法。每个区块链节点都部署了一个完整的智能合约,并且交易经过共识,已经确定全局唯一的顺序,这为区块链节点采用排序锁的方式并行执行交易奠定了基础。
本发明提出的面向联盟链的交易并行处理方法包括以下具体步骤:
步骤1:对客户端发起的交易提案进行预处理,所述预处理是指利用静态分析或者模拟执行的方法确定交易的读写集,即该合约实际运行时需要访问的状态;
步骤2:通过共识算法对交易进行排序打包并生成区块,从而保证每笔交易在被打包的块中拥有一个全局唯一的顺序;
步骤3:区块链节点收到区块后,对区块内所有交易以确定性排序锁的方式加锁,具体步骤如下:
步骤3-1:区块链节点启动锁管理线程对所有交易进行锁管理;
步骤3-2:锁管理线程按区块中交易的顺序依次扫描每笔交易,并对该笔交易所需的读集和写集分别尝试获取读锁和写锁,从而保证交易按区块中的顺序依次获得执行所需的锁;
步骤4:按排序锁并行执行区块内的交易,具体步骤如下:
步骤4-1:对于已经获得所需读锁和写锁的交易,区块链节点维护一个工作线程池并行执行,执行完毕后通知锁管理线程释放相应的锁;
步骤4-2:锁管理线程将回收的锁重新分配给等待锁的交易,若有交易获得所需读锁和写锁,则通知工作线程池执行,如此反复直到区块内交易执行完毕;
步骤5:对于依赖交易,如果正式执行期间实际访问的键与步骤1中确定的读写集相同,则执行该交易;如果正式执行期间实际访问的键与步骤1中确定的读写集不同,则中止该交易,然后使用实际执行的读写集尝试重新获得锁并执行。
实施例1
本实施例是对交易进行排序锁并行处理的方法。设有一区块中包含如下交易,系统中的工作线程数为2:
T1:A=A+1;
T2:B=B+1;C=C-1;
T3:C=C+1;
T4:D=B+C;
其中,T1-T4为四个待执行交易,A、B、C、D为交易涉及的四个键值。
首先,对区块中的交易进行静态分析或模拟执行从而获得对应的读写集如下:
T1:read(A),write(A)
T2:read(B,C),write(B,C)
T3:read(C),write(C)
T4:read(B,C),write(D)
之后,按照区块中确定的交易顺序,通过排序锁并行处理上述四个交易。整个过程中各键值锁的状态如图3所示,其中黑色块代表该交易获得所有锁后正在执行,白色块则代表交易持有对应键值的锁,但仍有未获得的锁,处于等待状态;工作线程中交易的执行过程则如图4所示。下面详细说明整个过程。首先,在0时刻,锁管理线程依次扫描所有交易,T1先获得键值A的写锁,此时T1获得所有读写集的锁,可放入工作线程池进行执行;T2获得键值B和C的写锁,同样放入工作线程池进行执行;由于C的写锁被T2占用,T3需要等待;同理,T4只能获取D的写锁,也需要等待。等到1时刻,T2执行完毕并释放键值B、C的写锁后,锁管理线程会按未获得锁的交易在区块中所处的顺序,再次分配锁。首先是对于T3,尝试获取键值C的写锁,由于此时T2执行完后C的写锁被释放,T3可以拿到C的写锁并被放入工作线程池进行执行;其次是T4尝试获取键值B和C的读锁,由于C的写锁已被T3占用,所以T4只能获得B的读锁。等到2时刻,T3执行完毕释放C的写锁后,锁管理线程将C的读锁分配给T4,此时T4集齐所有锁,被放入工作线程池执行。整个执行过程,T1、T2并行,等T1、T2执行完后依次执行T3、T4。
实施例2
本实施例是对交易进行串行执行的方法。设区块中的交易同实施例1:
T1:A=A+1;
T2:B=B+1;C=C-1;
T3:C=C+1;
T4:D=B+C;
若上述交易使用串行执行的方法,则按照T1、T2、T3、T4的顺序逐个执行,总耗时为4笔交易各自耗时总和,相比本发明的方法多出一个T1的执行时间。
实施例3
随着整个交易集合中读写集冲突的减少,本发明的并行处理方法能够在某一时间段内同时处理的交易量更多,相较于串行处理方法所需要的时间更少,因此本发明的优势会随着交易之间的读写集冲突减少而增加。
本实施例是在交易间冲突较少的情况下,串行执行和本发明所述并行执行方法的时间对比。假设区块中包含如下交易,执行所需时间均为1秒:
T1:A=A+1;
T2:B=B+2;
T3:C=C+3;
T4:D=D+4;
对上述交易使用串行执行的方法,则按照T1、T2、T3、T4的顺序逐个执行,总耗时为4笔交易各自耗时总和,即4秒,而使用本发明所述方法,若CPU核数足够,则可以实现4笔交易并行执行,即所耗时间为4笔交易中耗时最长的交易所需时间,即1秒。大大减少了区块中交易的执行时间。
参考文献
[1]The Case for Determinism in Database Systems,VLDB,2010
[2]An Evaluation ofthe Advantages and Disadvantages ofDeterministicDatabase Systems,VLDB,2014
[3]An Overview ofDeterministic Database Systems,CommunicationsoftheACM,2018
本发明的保护内容不局限于以上实施例。在不背离本发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
Claims (6)
1.一种面向联盟链的交易并行处理方法,其特征在于,所述方法包括以下步骤:
步骤1:对客户端发起的交易提案进行预处理,利用静态分析或者模拟执行的方法确定交易的读写集;所述读写集是指交易执行过程中需要读取和写入的键值;
步骤2:通过共识算法对交易进行排序打包并生成区块,保证每笔交易在被打包的块中拥有一个全局唯一的顺序;
步骤3:区块链节点收到区块后,对区块内所有交易以确定性排序锁的方式加锁;具体包括如下步骤:
步骤3-1:区块链节点启动锁管理线程对所有交易进行锁管理;
步骤3-2:锁管理线程按区块中交易的顺序依次扫描每笔交易,并对该笔交易所需的读集和写集分别尝试获取读锁和写锁,从而保证交易按区块中的顺序依次获得执行所需的锁;
步骤4:按排序锁并行执行区块内的交易;具体包括以下步骤:
步骤4-1:对于已经获得所需读锁和写锁的交易,区块链节点维护一个工作线程池并行执行,执行完毕后通知锁管理线程释放相应的锁;
步骤4-2:锁管理线程将回收的锁重新分配给等待锁的交易,若有交易获得所需读锁和写锁,则通知工作线程池执行,如此反复直到区块内交易执行完毕;
步骤5:对于依赖交易,如果正式执行期间实际访问的键与步骤1中确定的读写集相同,则执行该交易;如果正式执行期间实际访问的键与步骤1中确定的读写集不同,则中止该交易,然后使用实际执行的读写集尝试重新获得锁并执行。
2.如权利要求1所述的方法,其特征在于,步骤5中,所述交易重新执行是指将该交易的执行顺序放至当前所有交易的最后,重新等待锁管理线程分配相应的锁;所述依赖交易是指读写集依赖于某些键的值,所述读写集会随着依赖键值的变化而变化,从而可能导致预执行的读写集与实际读写集不符的情况。
3.一种实现如权利要求1或2所述的面向联盟链的交易并行处理方法的系统,其特征在于,所述系统包括:预执行模块、共识模块和交易并行执行模块。
4.如权利要求3所述的系统,其特征在于,所述预执行模块通过静态分析或模拟执行的方法确定交易的读写集,并附在交易中。
5.如权利要求3所述的系统,其特征在于,所述共识模块通过拜占庭共识算法,对分析后的交易进行共识并打包出块。
6.如权利要求3所述的系统,其特征在于,所述交易并行执行模块使用所述交易并行处理方法,基于排序锁对交易进行并行执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110458354.0A CN113205417B (zh) | 2021-04-27 | 2021-04-27 | 一种面向联盟链的交易并行处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110458354.0A CN113205417B (zh) | 2021-04-27 | 2021-04-27 | 一种面向联盟链的交易并行处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113205417A CN113205417A (zh) | 2021-08-03 |
CN113205417B true CN113205417B (zh) | 2022-10-25 |
Family
ID=77028885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110458354.0A Active CN113205417B (zh) | 2021-04-27 | 2021-04-27 | 一种面向联盟链的交易并行处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113205417B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810378B (zh) * | 2021-08-19 | 2023-04-07 | 广东中科智能区块链技术有限公司 | 一种基于共识排序的交易预处理方法 |
CN113656509B (zh) * | 2021-08-26 | 2024-05-31 | 支付宝(杭州)信息技术有限公司 | 区块链系统中执行交易的方法及装置 |
CN113656510A (zh) * | 2021-08-26 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 区块链系统中执行交易的方法及装置 |
CN113656508A (zh) * | 2021-08-26 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 区块链系统中执行交易的方法及装置 |
CN113965570B (zh) * | 2021-10-25 | 2024-05-17 | 网络通信与安全紫金山实验室 | 区块链结构以及区块链事务执行方法、装置、设备和介质 |
CN113743950B (zh) * | 2021-11-04 | 2022-08-09 | 支付宝(杭州)信息技术有限公司 | 在区块链系统中执行交易的方法、节点和区块链系统 |
CN114663235A (zh) * | 2021-11-04 | 2022-06-24 | 支付宝(杭州)信息技术有限公司 | 区块链中执行交易的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110728578A (zh) * | 2019-09-29 | 2020-01-24 | 南京金宁汇科技有限公司 | 区块链交易的并行执行方法、系统及存储介质 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
CN111683043A (zh) * | 2020-04-26 | 2020-09-18 | 华东师范大学 | 面向联盟链的基于可信执行环境的智能合约并发执行方法 |
CN113220745A (zh) * | 2021-05-19 | 2021-08-06 | 中国科学技术大学 | 一种基于区块链的交易处理方法、装置及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201802148D0 (en) * | 2018-02-09 | 2018-03-28 | Nchain Holdings Ltd | Computer-implemented system and method |
CN108804112B (zh) * | 2018-05-22 | 2022-02-11 | 上海分布信息科技有限公司 | 一种区块链落账处理方法及系统 |
CN110231979A (zh) * | 2019-05-07 | 2019-09-13 | 深圳壹账通智能科技有限公司 | 基于区块链的事务处理方法、装置、设备及存储介质 |
CN111724256A (zh) * | 2020-05-28 | 2020-09-29 | 天津大学 | 一种基于多核架构的智能合约执行优化方法 |
CN112559174A (zh) * | 2020-12-08 | 2021-03-26 | 上海物融智能科技有限公司 | 一种区块链并行交易处理方法及装置 |
CN112669155B (zh) * | 2020-12-31 | 2024-05-03 | 杭州趣链科技有限公司 | 基于区块链的交易分发执行方法、装置服务器及存储介质 |
-
2021
- 2021-04-27 CN CN202110458354.0A patent/CN113205417B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110728578A (zh) * | 2019-09-29 | 2020-01-24 | 南京金宁汇科技有限公司 | 区块链交易的并行执行方法、系统及存储介质 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
CN111683043A (zh) * | 2020-04-26 | 2020-09-18 | 华东师范大学 | 面向联盟链的基于可信执行环境的智能合约并发执行方法 |
CN113220745A (zh) * | 2021-05-19 | 2021-08-06 | 中国科学技术大学 | 一种基于区块链的交易处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113205417A (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113205417B (zh) | 一种面向联盟链的交易并行处理方法及系统 | |
AU2015312005B2 (en) | Compilation of graph-based program specifications with automated clustering of graph components based on the identification of particular data port connections | |
Baer | A survey of some theoretical aspects of multiprocessing | |
Hoefler et al. | Towards efficient mapreduce using mpi | |
US8381230B2 (en) | Message passing with queues and channels | |
CN105700941B (zh) | 三维调度器模型的调度方法 | |
US8380965B2 (en) | Channel-based runtime engine for stream processing | |
CN107463442B (zh) | 一种星载多核SoC任务级负载均衡并行调度方法 | |
US11269692B2 (en) | Efficient sequencer for multiple concurrently-executing threads of execution | |
US8495642B2 (en) | Mechanism for priority inheritance for read/write locks | |
WO2023082575A1 (zh) | 一种面向神经网络模型计算的图执行流水并行方法和装置 | |
Wang et al. | Elastic pipelining in an in-memory database cluster | |
Pandey et al. | Priority inversion in DRTDBS: challenges and resolutions | |
CN112559174A (zh) | 一种区块链并行交易处理方法及装置 | |
US20110246582A1 (en) | Message Passing with Queues and Channels | |
Zhao et al. | Minimizing stack memory for partitioned mixed-criticality scheduling on multiprocessor platforms | |
He et al. | Real-time scheduling in mapreduce clusters | |
Fich et al. | On the inherent weakness of conditional synchronization primitives | |
Vrba et al. | Kahn process networks are a flexible alternative to MapReduce | |
Shrivastava et al. | Supporting transaction predictability in replicated DRTDBS | |
US9384047B2 (en) | Event-driven computation | |
CN113961364B (zh) | 一种大规模锁系统实现方法、装置、存储介质和服务器 | |
Liu et al. | Lock-free scheduling of logical processes in parallel simulation | |
Ghose et al. | A framework for OpenCL task scheduling on heterogeneous multicores | |
Arafat et al. | Work stealing for GPU‐accelerated parallel programs in a global address space framework |
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 |