CN108959402A - 一种基于sql引擎对区块链进行开发的装置及方法 - Google Patents
一种基于sql引擎对区块链进行开发的装置及方法 Download PDFInfo
- Publication number
- CN108959402A CN108959402A CN201810573631.0A CN201810573631A CN108959402A CN 108959402 A CN108959402 A CN 108959402A CN 201810573631 A CN201810573631 A CN 201810573631A CN 108959402 A CN108959402 A CN 108959402A
- Authority
- CN
- China
- Prior art keywords
- data
- block chain
- sql
- sql engine
- ultrasql
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于区块链开发领域,尤其涉及一种基于SQL引擎对区块链进行开发的装置及方法。该装置包括:SQL引擎模块,所述SQL引擎模块连接应用系统;UltraSQL模块,所述UltraSQL模块连接SQL引擎模块和区块链。该方法包括:应用系统向SQL引擎发起数据操作请求的步骤;SQL引擎对应用系统发起的数据操作请求进行判断,若合法,将数据操作请求发送到UltraSQL的步骤;UltraSQL对接收到的数据操作请求进行数据格式转换,转换成功后,调用智能合约接口的步骤;智能合约对区块链发起数据操作请求的步骤;区块链对数据操作进行执行的步骤。利用本发明的基于SQL引擎对区块链进行开发的装置及方法,可以让开发者继续沿用标准的SQL开发语言对区块链进行应用开发,降低了开发难度。
Description
技术领域
本发明属于区块链开发领域,尤其涉及一种基于SQL引擎对区块链进行开发的装置及方法。
背景技术
目前,区块链技术在整个IT圈子十分火热,所有的开发者和应用设计者都认为它这种去中心化的技术代表了为了一种新型的应用形态和开发理念。
区块链技术虽然给人们带来了全新的架构理念—去中心化,但是由于其诞生的时间不长,目前市面上区块链平台提供的开发接口易用程度不高,造成了区块链开发和外部系统对接上的麻烦,并且区块链的存储设计和过去熟悉的范式设计差距巨大,这就更为开发者对区块链进行应用开发增添了难度。
鉴于此,开发一种对区块链存储进行开发的方法和装置,降低对区块链存储开发的难度是目前市场上的迫切需求。
发明内容
本发明所要解决的技术问题是针对现有技术的缺陷,提供一种基于SQL引擎对区块链进行开发的装置及方法,利用此装置及方法,可以让开发者继续沿用标准的SQL开发语言对区块链进行应用开发,降低了开发难度。
本发明为解决其技术问题所采取的技术方案为:
提供一种基于SQL引擎对区块链进行开发的装置,包括:
SQL引擎模块,所述SQL引擎模块连接应用系统,将应用系统的SQL命令翻译成对应的UltraSQL接口命令,同时将UltraSQL模块发送过来的区块链数据格式转换为符合SQL引擎模块识别的数据格式;
UltraSQL模块,所述UltraSQL模块连接SQL引擎模块和区块链,将SQL引擎模块和区块链之间的命令和数据格式进行转换和调用,以实现操作和数据传送的正常执行。
进一步地,所述区块链上可以根据用户需求定义智能合约,所述区块链支持数据的实时同步、无单点故障以及集群弹性扩容功能。
进一步地,所述SQL引擎模块向应用系统开放各种类型的访问方式,包括:JDBC接口访问方式、连接池访问访问方式、ODBC接口访问方式。
进一步地,所述SQL引擎模块支持标准的SQL语法。
进一步地,所述SQL引擎模块包括SQL的语法检查功能、SQL各类函数的实现功能、多表关联时的关联策略功能。
本发明还提高一种基于SQL引擎对区块链进行开发的方法,包括:
应用系统向SQL引擎发起数据操作请求的步骤;
SQL引擎对应用系统发起的数据操作请求进行判断,若合法,将数据操作请求发送到UltraSQL的步骤;
UltraSQL对接收到的数据操作请求进行数据格式转换,转换成功后,调用智能合约接口的步骤;
智能合约对区块链发起数据操作请求的步骤;
区块链对数据操作进行执行的步骤。
进一步地,所述方法还包括:
区块链执行了数据操作后,将执行结果逐级返回至应用系统的步骤。
进一步地,所述将执行结果逐级返回至应用系统的步骤具体包括:
区块链对数据操作进行执行后,将执行结果发送至智能合约,智能合约收到执行结果后,再返还给UltraSQL,UltraSQL对需要进行格式转换的数据进行格式转换,然后将转换后的数据返回给SQL引擎,SQL引擎执行SQL函数,最终将执行结果返还给应用系统。
进一步地,所述智能合约对区块链发起数据操作请求的步骤具体包括:
智能合约向区块链发起数据变更请求,将需要更新的数据设置为不可修改,然后再向区块链写入全新的数据,当区块链将新数据写入成功后,智能合约再向区块链发起“将刚才被设置为不可修改的数据”进行删除的请求。
进一步地,所述智能合约提供4种操作接口,分别是:数据写入接口、数据查询接口、数据删除接口以及数据更新接口。
利用本发明所提供的基于SQL引擎对区块链进行开发的装置及方法,可以让开发者继续沿用标准的SQL开发语言对区块链进行应用开发,降低了开发难度。
附图说明
图1为本发明基于SQL引擎对区块链进行开发的装置的结构框图;
图2为本发明基于SQL引擎对区块链进行开发的方法的流程图;
图3为本发明基于SQL引擎对区块链进行开发的方法的第一种实施方式的流程图;
图4为本发明基于SQL引擎对区块链进行开发的方法的第二种实施方式的流程图;
图5为本发明基于SQL引擎对区块链进行开发的方法的第三种实施方式的流程图;
图6为本发明基于SQL引擎对区块链进行开发的方法的第四种实施方式的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明公开了一种基于SQL引擎对区块链进行开发的装置,其特征在于,包括:
SQL引擎模块20,所述SQL引擎模块20连接应用系统10,将应用系统10的SQL命令翻译成对应的UltraSQL接口命令,同时将UltraSQL模块30发送过来的区块链数据格式转换为符合SQL引擎模块20识别的数据格式;
UltraSQL模块30,所述UltraSQL模块30连接SQL引擎模块20和区块链40,将SQL引擎模块20和区块链40之间的命令和数据格式进行转换和调用,以实现操作和数据传送的正常执行。
应用系统10为通常理解的应用系统程序,即普通开发者为了实现某中业务功能的应用程序。在本专利中,允许开发者在应用系统10中直接使用符合SQL标准的开发语言进行应用程序设计与开发。
SQL引擎模块20,为应用系统10提供标准的SQL功能模块。它支持将应用系统10的SQL命令翻译成对应的UltraSQL接口命令,同时将UltraSQL模块30发送过来的区块链数据格式转换为符合SQL引擎模20块识别的数据格式。
UltraSQL模块30,作为SQL引擎模块20和区块链40的桥梁,负责将两个模块的命令和数据格式进行转换和调用,以实现操作和数据传送的正常执行。UltraSQL模块30作为SQL引擎模块20和区块链40的中间过渡模块,主要的工作就是将SQL引擎模块20发送过来的SQL命令进行解析、转义和执行区块链操作。UltraSQL模块30将根据应用系统10真实的操作和区块链40中数据存储的特性生成对应的访问计划,针对不同的区块链调用相应的区块链命令。SQL引擎模块20和区块链40之间的数据交互也是由UltraSQL模块30提供对应的转译服务,原理是UltraSQL模块30将真实数据统一转义成数据流形式存储在区块链40中,而SQL引擎模块20需要从区块链40中获取数据时,则由UltraSQL模块30将数据流翻译成SQL引擎模块20可以读取的数据格式。
UltraSQL是一个SQL解析器与区块链数据存储之间的转换层。例如,一个典型的实现是将PostgreSQL的解析引擎代码从数据库中抽取出来,对接上UltraSQL模块,则可以将PostgreSQL引擎中的数据结构转化为UltraSQL内部的标准结构。同时UltraSQL底层如果对接区块链存储,则在写入数据时将UltraSQL内部的数据结构转化为区块链存储能够识别的数据格式,从而实现上层域下层的技术对接。
PostgreSQL支持大部分SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL可以用许多方法扩展,比如,通过增加新的数据类型、函数、操作符、聚集函数、索引。
区块链40为去中心化的分布式存储,支持用户在区块链上根据需求定义智能合约,并且支持数据的实时同步、无单点故障以及集群弹性扩容功能。
应用系统10需要通过SQL引擎模块20接入区块链,所以SQL引擎模块20需要向应用系统10开放各种类型的访问方式,包括:JDBC接口访问方式、连接池功能访问方式、ODBC接口访问方式等。而且SQL引擎模块20支持标准的SQL语法,所以在SQL引擎模块20的内部,还包含了SQL的语法检查功能、SQL各类函数的实现功能、多表关联时的关联策略等功能。
区块链40本身的数据存储结构是较为单一的,只有Key/Value的存储结构。而在一般的应用系统中,需要存储的数据结构较为复杂,例如需要多个字段进行存储,字段支持的数据类型要求也比较多,例如:字符串型、整型、浮点型、长整型、高精度浮点型、时间戳型、日期型、二进制型等。所以在本发明中,为了让开发者更加容易使用区块链40的存储结构,将SQL引擎模块20中的首字段对应为区块链40的Key字段,而将SQL引擎模块20中包含首字段的所有字段值转换为流式数据,将其存储在区块链40的Value字段中。
例如存在一张表结构如下的数据表:
字段名 | 数据类型 |
id | string |
name | string |
price | double |
text | string |
则在区块链的存储中,将以id字段的值作为区块链的Key字段,而Value字段则将包含id字段的所有字段值转换为区块链的流式数据进行存储。
SQL引擎模块:
id | name | price | text |
1 | apple | 12 | 苹果 |
2 | banana | 5 | 香蕉 |
区块链:
Key | Value(包含id、name、price、text所有字段值) |
1 | 流式数据 |
2 | 流式数据 |
如图2所示,本发明公开了一种基于SQL引擎对区块链进行开发的方法,包括:
S100,应用系统向SQL引擎发起数据操作请求的步骤;
S200,SQL引擎对应用系统发起的数据操作请求进行判断,若合法,将数据操作请求发送到UltraSQL的步骤;
S300,UltraSQL对接收到的数据操作请求进行数据格式转换,转换成功后,调用智能合约接口的步骤;
S400,智能合约对区块链发起数据操作请求的步骤;
S500,区块链对数据操作进行执行的步骤;
S600,区块链执行了数据操作后,将执行结果逐级返回至应用系统的步骤。
其中,所述将执行结果逐级返回至应用系统的步骤S600具体包括:
区块链对数据操作进行执行后,将执行结果发送至智能合约,智能合约收到执行结果后,再返还给UltraSQL,UltraSQL对需要进行格式转换的数据进行格式转换,然后将转换后的数据返回给SQL引擎,SQL引擎执行SQL函数,最终将执行结果返还给应用系统。
其中,所述智能合约对区块链发起数据操作请求的步骤S400具体包括:
智能合约向区块链发起数据变更请求,将需要更新的数据设置为不可修改,然后再向区块链写入全新的数据,当区块链将新数据写入成功后,智能合约再向区块链发起“将刚才被设置为不可修改的数据”进行删除的请求。
其中,所述智能合约提供4种操作接口,分别是:数据写入接口、数据查询接口、数据删除接口以及数据更新接口。
如图3所示,为本发明基于SQL引擎对区块链进行开发的方法的第一种实施例的流程图。
在本实施例中,当应用系统需要将新增数据写入到区块链中时,它首先和SQL引擎进行连接通讯,发出数据写入请求。SQL引擎收到数据写入请求后,会判断写入请求是否合法,确认该写入请求合法后,SQL引擎将数据写入请求以及数据发送到UltraSQL。UltraSQL接收数据写入请求以及数据后,UltraSQL将接收到的数据的数据格式转换符合智能合约中定义的流式数据格式,随后,UltraSQL再调用智能合约的写入接口,将数据发送至智能合约,智能合约再向区块链发送数据写入请求以及数据,最后区块链执行数据写入请求。区块链执行数据写入后,会将执行结果逐级返回,最后应用系统将收到该新增数据的操作的执行结果。
如图4所示,为本发明基于SQL引擎对区块链进行开发的方法的第二种实施例的流程图。
在本实施例中,当应用系统需要向区块链删除数据请求时,它首先和SQL引擎进行连接通讯,发出数据删除请求。SQL引擎收到数据删除请求后,会判断删除请求是否合法,确认该删除请求合法后,SQL引擎将数据删除请求发送到UltraSQL。UltraSQL接收数据删除请求后,UltraSQL对数据删除请求进行格式转换,随后,UltraSQL再调用智能合约的删除接口,将数据删除请求发送至智能合约,智能合约再向区块链发送数据删除请求,最后区块链执行数据删除请求。区块链执行数据删除后,会将执行结果逐级返回,最后应用系统将收到该数据删除的操作的执行结果。
如图5所示,为本发明基于SQL引擎对区块链进行开发的方法的第三种实施例的流程图。
在本实施例中,当应用系统需要向区块链发起数据查询请求时,它首先和SQL引擎进行连接通讯,发出数据查询请求。SQL引擎收到数据查询请求后,会判断数据查询请求是否合法,确认该查询请求合法后,SQL引擎将数据查询请求发送到UltraSQL。UltraSQL将SQL引擎传递过来的查询条件转换成符合智能合约查询接口的数据格式后,再调用智能合约的查询接口,将数据查询请求发送至智能合约,智能合约收到查询请求后,将此请求转发给区块链存储。区块链存储根据查询条件筛选后将查询结果返回给智能合约。智能合约在收到查询结果后,再返回给UltraSQL。UltraSQL会根据SQL引擎中定义的表结构将查询结果的数据进行格式转换,然后将转换后的数据返回给SQL引擎。如果应用系统在查询命令还包含了其他的SQL函数操作,则SQL引擎在收到查询结果会在此处执行对应的SQL函数,再将最终结果返回应用系统。
如图6所示,为本发明基于SQL引擎对区块链进行开发的方法的第四种实施例的流程图。
在本实施例中,当应用系统需要向区块链发起数据更新请求时,它首先和SQL引擎进行连接通讯,发出数据更新请求。SQL引擎收到数据更新请求后,会判断数据更新请求是否合法,确认该更新请求合法后,SQL引擎将数据更新请求发送到UltraSQL。UltraSQL接收数据更新请求后,UltraSQL对数据更新请求进行格式转换,随后,UltraSQL再调用智能合约的更新接口,将数据更新请求发送至智能合约。当智能合约收到数据更新请求后,为了确保未来可以对区块链中任意时刻的数据的可追溯性,所以不能够直接修改区块链存储中的数值。智能合约首先向区块链发起一个变更请求,将需要更新的数据设置为不可修改,然后再根据更新的规则向区块链写入一条全新的数据。当区块链将新数据写入成功后,智能合约再向区块链发起“将刚才被设置为不可修改的数据”进行删除的请求。然后区块链将对应的旧数据进行删除,执行结果再逐级返回给应用系统。
本发明提供一种基于SQL引擎对区块链进行开发的装置及方法,可以让开发者继续沿用标准的SQL开发语言对区块链进行应用开发,降低了开发难度。
以上所述仅为本发明的较佳实施例,并不用于限制本发明,凡在本发明的精神和原则内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于SQL引擎对区块链进行开发的装置,其特征在于,包括:
SQL引擎模块,所述SQL引擎模块连接应用系统,将应用系统的SQL命令翻译成对应的UltraSQL接口命令,同时将UltraSQL模块发送过来的区块链数据格式转换为符合SQL引擎模块识别的数据格式;
UltraSQL模块,所述UltraSQL模块连接SQL引擎模块和区块链,将SQL引擎模块和区块链之间的命令和数据格式进行转换和调用,以实现操作和数据传送的正常执行。
2.根据权利要求1所述的装置,其特征在于,所述区块链上可以根据用户需求定义智能合约,所述区块链支持数据的实时同步、无单点故障以及集群弹性扩容功能。
3.根据权利要求1所述的装置,其特征在于,所述SQL引擎模块向应用系统开放各种类型的访问方式,包括:JDBC接口访问方式、连接池访问方式、ODBC接口访问方式。
4.根据权利要求1至3任一所述的装置,所述SQL引擎模块支持标准的SQL语法。
5.根据权利要求4所述的装置,其特征在于,所述SQL引擎模块包括SQL的语法检查功能、SQL各类函数的实现功能、多表关联时的关联策略功能。
6.一种基于SQL引擎对区块链进行开发的方法,其特征在于,包括:
应用系统向SQL引擎发起数据操作请求的步骤;
SQL引擎对应用系统发起的数据操作请求进行判断,若合法,将数据操作请求发送到UltraSQL的步骤;
UltraSQL对接收到的数据操作请求进行数据格式转换,转换成功后,调用智能合约接口的步骤;
智能合约对区块链发起数据操作请求的步骤;
区块链对数据操作进行执行的步骤。
7.根据权利要求6所述的方法,其特征在于,还包括:
区块链执行了数据操作后,将执行结果逐级返回至应用系统的步骤。
8.根据权利要求7所述的方法,其特征在于,所述将执行结果逐级返回至应用系统的步骤具体包括:
区块链对数据操作进行执行后,将执行结果发送至智能合约,智能合约收到执行结果后,再返还给UltraSQL,UltraSQL对需要进行格式转换的数据进行格式转换,然后将转换后的数据返回给SQL引擎,SQL引擎执行SQL函数,最终将执行结果返还给应用系统。
9.根据权利要求6所述的方法,其特征在于,所述智能合约对区块链发起数据操作请求的步骤具体包括:
智能合约向区块链发起数据变更请求,将需要更新的数据设置为不可修改,然后再向区块链写入全新的数据,当区块链将新数据写入成功后,智能合约再向区块链发起“将刚才被设置为不可修改的数据”进行删除的请求。
10.根据权利要求5至9任一所述的方法,其特征在于,智能合约提供4种操作接口,分别是:数据写入接口、数据查询接口、数据删除接口以及数据更新接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810573631.0A CN108959402A (zh) | 2018-06-06 | 2018-06-06 | 一种基于sql引擎对区块链进行开发的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810573631.0A CN108959402A (zh) | 2018-06-06 | 2018-06-06 | 一种基于sql引擎对区块链进行开发的装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108959402A true CN108959402A (zh) | 2018-12-07 |
Family
ID=64492964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810573631.0A Pending CN108959402A (zh) | 2018-06-06 | 2018-06-06 | 一种基于sql引擎对区块链进行开发的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108959402A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110417857A (zh) * | 2019-06-19 | 2019-11-05 | 北京百度网讯科技有限公司 | 区块链协议处理装置、处理方法及区块链 |
US11093495B2 (en) | 2019-06-25 | 2021-08-17 | International Business Machines Corporation | SQL processing engine for blockchain ledger |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383754A (zh) * | 2016-09-19 | 2017-02-08 | 北京众享比特科技有限公司 | 一种基于区块链技术的数据库备份、恢复方法和系统 |
CN106874440A (zh) * | 2017-02-07 | 2017-06-20 | 杭州秘猿科技有限公司 | 一种基于sql数据库的区块链状态存储方法 |
CN106897933A (zh) * | 2017-04-18 | 2017-06-27 | 杜伯仁 | 一种面向多区块链平台的区块链网络节点服务装置 |
CN107368259A (zh) * | 2017-05-25 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 一种向区块链系统中写入业务数据的方法和装置 |
-
2018
- 2018-06-06 CN CN201810573631.0A patent/CN108959402A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383754A (zh) * | 2016-09-19 | 2017-02-08 | 北京众享比特科技有限公司 | 一种基于区块链技术的数据库备份、恢复方法和系统 |
CN106874440A (zh) * | 2017-02-07 | 2017-06-20 | 杭州秘猿科技有限公司 | 一种基于sql数据库的区块链状态存储方法 |
CN106897933A (zh) * | 2017-04-18 | 2017-06-27 | 杜伯仁 | 一种面向多区块链平台的区块链网络节点服务装置 |
CN107368259A (zh) * | 2017-05-25 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 一种向区块链系统中写入业务数据的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110417857A (zh) * | 2019-06-19 | 2019-11-05 | 北京百度网讯科技有限公司 | 区块链协议处理装置、处理方法及区块链 |
CN110417857B (zh) * | 2019-06-19 | 2021-08-10 | 北京百度网讯科技有限公司 | 区块链协议处理装置、处理方法及区块链 |
US11093495B2 (en) | 2019-06-25 | 2021-08-17 | International Business Machines Corporation | SQL processing engine for blockchain ledger |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8832020B2 (en) | Method and system for safely transporting legacy data to an object semantic form data grid | |
US6970882B2 (en) | Unified relational database model for data mining selected model scoring results, model training results where selection is based on metadata included in mining model control table | |
CN105740411B (zh) | 一种基于SOA和WebService的数据迁移方法 | |
CN100464329C (zh) | 动态结构化查询语言语句的构造方法 | |
CN100493221C (zh) | 数据配置文件在不同软件版本间进行转换的方法及装置 | |
CN103049251B (zh) | 一种数据库持久层装置及数据库操作方法 | |
CN103823797A (zh) | 基于ftp协议的行业数据库数据实时同步系统 | |
JPH11504451A (ja) | データベース構造に適したオブジェクトのモデリング、リレーショナルデータベース構造への翻訳、それらへの流動的なサーチ | |
CN104794147A (zh) | 异构数据库访问方法 | |
CN108959402A (zh) | 一种基于sql引擎对区块链进行开发的装置及方法 | |
CN101533407A (zh) | 一种etl流程中异常数据检测方法 | |
CN100392651C (zh) | 一种实时内存数据库通用约束的实现方法 | |
CN113204329B (zh) | 统一数据模型驱动业务应用的控制方法及其应用系统 | |
CN113934750A (zh) | 基于编译方式的数据血缘关系分析方法 | |
CN109710235A (zh) | 一种基于Java智能合约业务逻辑的事务实现系统及方法 | |
CN106558105A (zh) | 产品可配置bom在虚拟现实系统的使用方法 | |
CN102521408B (zh) | 一种通过jdbc接口访问平面文件的方法 | |
Kremenjaš et al. | Adapting CERIF for a national CRIS: A case study | |
CN108845793A (zh) | 一种orm设计方法及装置 | |
CN107832055A (zh) | 一种mql语言翻译为sql语言的方法 | |
CN100474852C (zh) | 电信设备服务端与客户端进行通信的方法 | |
KR20220041932A (ko) | 상호 운용성을 위한 프로그램을 적응시키는 방법 및 시스템과 이를 위한 어댑터 | |
CN112487006A (zh) | 一种动态编辑数据结构并生成数据库表的实现方法 | |
CN102081618A (zh) | 一种查询信息的方法及装置 | |
Ioanas et al. | LabbookDB: A Wet-Work-Tracking Database Application 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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181207 |
|
RJ01 | Rejection of invention patent application after publication |