CN109783077A - 区块链系统及其中间件系统、数据上链方法、存储介质 - Google Patents
区块链系统及其中间件系统、数据上链方法、存储介质 Download PDFInfo
- Publication number
- CN109783077A CN109783077A CN201811540057.5A CN201811540057A CN109783077A CN 109783077 A CN109783077 A CN 109783077A CN 201811540057 A CN201811540057 A CN 201811540057A CN 109783077 A CN109783077 A CN 109783077A
- Authority
- CN
- China
- Prior art keywords
- dynamic link
- link library
- data
- input data
- language
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000012545 processing Methods 0.000 claims abstract description 44
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 67
- 238000005538 encapsulation Methods 0.000 claims description 36
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 claims description 32
- 239000010931 gold Substances 0.000 claims description 32
- 229910052737 gold Inorganic materials 0.000 claims description 32
- 238000004806 packaging method and process Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 12
- XXQCMVYBAALAJK-UHFFFAOYSA-N ethyl n-[4-[benzyl(2-phenylethyl)amino]-2-(2-phenylethyl)-1h-imidazo[4,5-c]pyridin-6-yl]carbamate Chemical compound N=1C=2C(N(CCC=3C=CC=CC=3)CC=3C=CC=CC=3)=NC(NC(=O)OCC)=CC=2NC=1CCC1=CC=CC=C1 XXQCMVYBAALAJK-UHFFFAOYSA-N 0.000 description 75
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于区块链的中间件系统,中间件系统包括JAVA封装层、C语言动态链接库和Golang语言动态链接库;其中,JAVA封装层,别与第一上层应用连接、底层区块链、C语言动态链接库和Golang语言动态链接库连接,用于接收第一上层应用的第一输入数据,调用C语言动态链接库和/或Golang语言动态链接库处理第一输入数据并生成第一上链数据,将第一上链数据上链至底层区块链;其中,第一上层应用属于连接中间件系统上游的上层应用系统;底层区块链连接于中间件系统的下游。本发明还公开了一种上述中间件系统的数据上链方法、区块链系统和可读存储介质。本发明可提高区块链处理数据的效率,简化开发效率同时提高数据安全性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的中间件系统、中间件系统的数据上链方法、区块链系统和可读存储介质。
背景技术
随着互联网技术的发展,区块链由于具有去中心化、开放性、安全性、自治性等优点被广泛应用于数据的存储和交互。在区块链应用的过程中,上层业务应用与底层区块链的对接,一般采用中间件实现。在现有的中间件中,大多采用单一的编程语言进行构建,但单一的编程语言均会存在一定缺陷,例如,若使用最常用的java语言进行编码,代码的运行效率不及c语言,代码开发的简易程度不及golang语言,此外Java语言的编译结果可直接查看源码,安全性不足;若使用c语言或golang进行编码,则可能导致中间件与上层业务应用对接困难。因此,中间件采用单一的编程语言,无法同时保证中间件的代码运行效率高、代码开发的简易、代码的保密、和与上层业务应用易于对接等,从而对区块链的应用造成限制。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种基于区块链的中间件系统,旨在提高区块链处理数据的效率,简化开发效率同时提高数据安全性。
为实现上述目的,本发明提供一种基于区块链的中间件系统,所述中间件系统包括JAVA封装层、C语言动态链接库和Golang语言动态链接库;其中,
所述JAVA封装层,分别与第一上层应用、底层区块链、所述C语言动态链接库和所述Golang语言动态链接库连接,用于接收所述第一上层应用的第一输入数据,调用所述C语言动态链接库和/或所述Golang语言动态链接库处理所述第一输入数据并生成第一上链数据,将所述第一上链数据上链至底层区块链;所述第一上层应用属于连接所述中间件系统上游的上层应用系统;所述底层区块链连接于所述中间件系统的下游;
所述C语言动态链接库,用于运行时按照第一预设算法处理所述第一输入数据;
所述Golang语言动态链接库,用于运行时按照第二预设算法处理所述第一输入数据。
可选地,所述C语言动态链接库与所述上层应用系统的第二上层应用连接,用于接收第二上层应用的第二输入数据,根据所述第二输入数据形成待上链数据,将所述待上链数据输入至所述JAVA封装层;
所述JAVA封装层还用于接收所述待上链数据,根据所述待上链数据生成第二上链数据,将所述第二上链数据上链至底层区块链。
可选地,所述C语言动态链接库与所述Golang语言动态链接库连接,所述C语言动态链接库还用于调用所述Golang语言动态链接库处理所述第一输入数据或所述第二输入数据;且/或,
所述Golang语言动态链接库还用于调用所述C语言动态链接库处理所述第一输入数据或所述第二输入数据。
此外,为了实现上述目的,本发明还提供一种根据如上任意一项所述的基于区块链的中间件系统的数据上链方法,所述中间件系统的数据上链方法的步骤包括:
JAVA封装层接收第一上层应用的第一输入数据;
所述JAVA封装层调用C语言动态链接库和/或Golang语言动态链接库处理所述第一输入数据并生成第一上链数据;
所述JAVA封装层将所述第一上链数据上链至底层区块链。
可选地,所述中间件系统的数据上链方法还包括:
所述C语言动态链接库接收第二上层应用的第二输入数据;
所述C语言动态链接库根据所述第二输入数据形成待上链数据;
所述C语言动态链接库将所述待上链数据输入至所述JAVA封装层;
所述JAVA封装层根据所述待上链数据形成第二上链数据;
所述JAVA封装层将所述第二上链数据上链至所述底层区块链。
可选地,所述JAVA封装层接收第一上层应用的第一输入数据的步骤之前,和/或,C语言动态链接库接收到第二上层应用的第二输入数据的步骤之前,还包括:
所述C语言动态链接库提取所述Golang语言动态链接库的符号表;
所述C语言动态链接库采用C语言的符号规则重新编译所述符号表,形成所述Golang语言动态链接库的接口,以供所述JAVA封装层和/或所述C语言动态链接库调用。
可选地,所述JAVA封装层调用C语言动态链接库和/或Golang语言动态链接库处理所述第一输入数据并生成第一上链数据的步骤包括:
所述JAVA封装层获取所述第一输入数据的第一应用特征值;
所述JAVA封装层确定所述第一应用特征值对应的数据业务类型;
当所述数据业务类型为零知识证明时,所述JAVA封装层确定所述C语言动态链接库中与所述第一应用特征值对应的第一预设算法;
所述JAVA封装层调用确定的第一预设算法对所述第一输入数据进行零知识证明并生成所述第一上链数据;且/或,
当所述数据业务类型为加密相关操作时,所述JAVA封装层确定所述Golang语言动态链接库中与所述第一应用特征值对应的第二预设算法;
所述JAVA封装层调用确定的第二预设算法对所述第一输入数据进行加密相关操作并生成所述第一上链数据。
可选地,所述中间件系统的数据上链方法还包括:
在所述C语言动态链接库处理所述第一输入数据或所述第二输入数据,且所述第一输入数据或所述第二输入数据需进行加密相关操作时,所述C语言动态链接库确定加密相关操作的操作类型;
所述C语言动态链接库确定所述Golang语言动态链接库中所述操作类型对应的第二预设算法;
所述C语言动态链接库调用确定的第二预设算法对所述第一输入数据或所述第二输入数据进行处理;且/或,
在所述Golang语言动态链接库处理所述第一输入数据或所述第二数据数据,且所述第一输入数据或所述第二输入数据需进行零知识证明时,所述Golang语言动态链接库确定所述C语言动态链接库中零知识证明相关的第一预设算法;
所述Golang语言动态链接库调用确定的第一预设算法对所述第一输入数据或第二输入数据进行处理。
此外,为了实现上述目的,本发明还提供一种区块链系统,所述区块链系统包括上层应用系统、底层区块链和如上任一项所述的中间件系统,所述上层应用系统包括第一上层应用和第二上层应用,所述中间件系统分别与所述第一上层应用、所述第二上层应用和所述底层区块链通信连接,所述中间件系统运行时执行如上任一项所述的中间件系统的数据上链方法的步骤。
此外,为了实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有中间件系统数据处理程序,所述中间件系统数据处理程序被处理器执行时实现如上任一项所述的中间件系统的数据上链方法的步骤。
本发明实施例提出的一种基于区块链的中间件系统,该中间件系统包括JAVA封装层、C语言动态链接库和Golang语言动态链接库,JAVA封装层从第一上层应用接收第一输入数据,可按照其数据的业务需求调用C语言动态链接库和/或Golang语言动态链接库对第一输入数据进行处理,由于JAVA封装层基于JAVA语言的特点便于与基于不同语言框架形成的第一上层应用对接,C语言动态链接库基于C语言的特点有利于提高数据的处理效率,Golang语言其开发简易程度高,并且由于C语言和Golang语言不会像JAVA语言的编译结果可查看源码,令使用C语言和Golang语言的编码具有较高的安全性,因此采用基于JAVA语言、C语言、Golang语言混合编程形成的中间件系统对区块链数据进行上链,有利于提高区块链系统处理数据的效率,简化开发效率同时提高数据安全性。
附图说明
图1是本发明实施例方案中间件系统所在的区块链系统的结构示意图;
图2为本发明实施例中间件系统的数据上链方法第一实施例的流程示意图;
图3为本发明实施例中间件系统的数据上链方法第二实施例的流程示意图;
图4为本发明实施例中间件系统的数据上链方法第三实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:设置包括JAVA封装层11、C语言动态链接库12以及Golang语言动态链接库13的中间件系统1,其中,所述JAVA封装层11分别与第一上层应用21连接、底层区块链、所述C语言动态链接库12和所述Golang语言动态链接库13连接,用于接收所述第一上层应用21的第一输入数据,调用所述C语言动态链接库12和/或所述Golang语言动态链接库13处理所述第一输入数据并生成第一上链数据,将所述第一上链数据上链至底层区块链;其中,C语言动态链接库12运用第一预设算法处理所述第一输入数据,Golang语言动态链接库13运用第二预设算法处理所述第一输入数据。
由于现有技术大多采用单一的编程语言进行构建区块链系统的中间件,但单一的编程语言,无法同时保证中间件的代码运行效率高、代码开发的简易、代码的保密、和与上层业务应用易于对接等,从而对区块链的应用造成限制。
本发明提供上述的解决方案,采用基于JAVA语言、C语言、Golang语言混合编程形成的中间件系统1对区块链数据进行上链,有利于提高区块链系统处理数据的效率,简化开发效率同时提高数据安全性。
在本发明实施例中,提出一种基于区块链的中间件系统1。该中间件系统1用于上层应用系统2与底层区块链3之间的数据对接。
如图1所示,该中间件系统1包括JAVA封装层11、C语言动态链接库12和Golang语言动态链接库13。
中间件系统1的运行环境基于计算机硬件(处理器、存储器等)形成。中间件系统1与上层应用系统2的服务器通信连接、以及与底层区块链3的服务器通信连接。
JAVA封装层11分别与第一上层应用21、底层区块链3、所述C语言动态链接库12和所述Golang语言动态链接库13连接,用于接收所述第一上层应用21的第一输入数据,调用所述C语言动态链接库12和/或所述Golang语言动态链接库13处理所述第一输入数据并生成第一上链数据,将所述第一上链数据上链至底层区块链3。其中,所述第一上层应用21属于连接所述中间件系统1上游的上层应用系统2;所述底层区块链3连接于所述中间件系统1的下游;所述C语言动态链接库12,用于运行时按照第一预设算法处理所述第一输入数据;所述Golang语言动态链接库13,用于运行时按照第二预设算法处理所述第一输入数据。这里,JAVA、C语言、Golang均为计算机的编程语言。
JAVA封装层11由JAVA语言编译数据处理算法的程序代码形成。JAVA封装层11提供RESTFUL接口,以供上层应用系统2与JAVA封装层11连接。上层应用系统2为需要数据进行上链的使用单位,如抵押品、积分、供应链、贸易金融、支付预算、公示公证等。用户在使用上层应用系统2时所产生的数据,上层应用系统2可通过JAVA封装层11提供的RESTFUL接口将所产生的数据输入至JAVA封装层11。第一上层应用21自身业务框架的编译语言可优先选用JAVA语言,以便于第一上层应用21和JAVA封装层11之间的对接。此外,第一上层应用21自身业务框架的编译语言还可根据实际需求选用SQL、VB等便于与JAVA语言对接的编程语言。
JAVA封装层11接收到第一上层应用21输入的第一输入数据后,可先判断第一输入数据是否需要调用C语言动态链接库12中的第一预设算法进行处理,和/或,判断第一输入数据是否需要调用Golang语言动态链接库13中的第二预设算法处理第一输入数据。在第一输入数据需要调用C语言动态链接库12进行处理时,可调用C语言动态链接库12中的第一预设算法处理第一输入数据;在第一输入数据需要调用Golang语言动态链接库13进行处理时,可调用Golang语言动态链接库13中的第二预设算法处理第一输入数据;在第一输入数据不需要调用C语言动态链接库12和Golang语言动态链接库13进行处理时,可按照JAVA封装层11中的第一标准算法对第一输入数据进行处理。这里的第一标准算法为JAVA封装层11中自带的数据处理算法,可具体根据第一输入数据的数据类型、业务类型等进行选择。处理后的第一输入数据按照底层区块链3的上链需求进行封装生成第一上链数据。JAVA封装层11与底层区块链3连接,在得到第一上链数据后,JAVA封装层11可将第一上链数据上链至底层区块链3。
其中,由于C语言的运行效率较高、安全性较好,且可直接与JAVA语言融合对接,第一预设算法可具体为与零知识证明相关、TLS安全传输相关的算法。其中,零知识证明相关算法可具体为Pedersen commitment,Range Proof,高性能的ECC曲线等相关的算法。第一预设算法可通过C语言编译成的代码存储在C语言动态链接库12的文件中。C语言动态链接库12中可根据需求存储有多个不同的第一预设算法的代码,以对数据进行不同的处理。JAVA封装层11确定第一输入数据对应的业务类型为零知识证明时,JAVA封装层11可调用C语言动态链接库12中相应的第一预设算法对第一输入数据进行处理,以实现对第一输入数据的零知识证明。
此外,由于golang语言的特点是其原生加密库极其强大,因此,第二预设算法可具体为与加密相关的算法,如加密算法、解密算法、签名算法、签名验证算法、哈希算法等。第二预设算法可通过Golang语言编译成的代码存储在Golang语言动态链接库13的文件中。Golang语言动态链接库13中可根据需求存储有多个不同的第二预设算法的代码,以对数据进行不同的加密相关处理。JAVA封装层11确定第一输入数据对应的业务类型为加密相关操作时,JAVA封装层11可调用Golang语言动态链接库13中相应的第二预设算法对第一输入数据进行处理,以实现对第一输入数据的加密、解密、签名、验签等加密相关操作。
本发明实施例提出的一种中间件系统1,该中间件系统1包括JAVA封装层11、C语言动态链接库12和Golang语言动态链接库13,JAVA封装层11从第一上层应用21接收第一输入数据,可按照其数据的业务需求调用C语言动态链接库12和/或Golang语言动态链接库13对第一输入数据进行处理,由于JAVA封装层11基于JAVA语言的特点便于与基于不同语言框架形成的第一上层应用21对接,C语言动态链接库12基于C语言的特点有利于提高数据的处理效率,Golang语言其开发简易程度高,并且由于C语言和Golang语言不会像JAVA语言的编译结果可查看源码,令使用C语言和Golang语言的编码具有较高的安全性,因此采用基于JAVA语言、C语言、Golang语言混合编程形成的中间件系统1对区块链数据进行上链,按照需求选用合适的语言模块对第一输入数据进行处理,有利于提高区块链系统处理数据的效率,简化开发效率同时提高数据安全性。
进一步的,所述C语言动态链接库12与所述上层应用系统2的第二上层应用22连接,用于接收第二上层应用22的第二输入数据,根据所述第二输入数据形成待上链数据,将所述待上链数据输入至所述JAVA封装层11。与中间件系统1通信连接的上层应用系统2除了第一上层应用21以外,还包括第二上层应用22。第二上层应用22具体为自身业务框架的编译语言为C语言的上层应用。相应的,第二输入数据为在使用第二上层应用22时基于C语言运行框架产生的数据。中间件系统1的C语言动态链接库12在运行的过程中,接收第二上层应用22输入的第二输入数据。
C语言动态链接库12接收到第二上层应用22输入的第二输入数据后,可先判断第二输入数据是否需要调用Golang语言动态链接库13中的第二预设算法处理第二输入数据。在第二输入数据需要调用Golang语言动态链接库13进行处理时,可调用Golang语言动态链接库13中的第二预设算法处理第二输入数据;在第一输入数据不需要调用Golang语言动态链接库13进行处理时,可按照C语言动态链接库12中的第二标准算法对第二输入数据进行处理形成待上链数据。这里的第二标准算法为C语言动态链接库12中自带的数据处理算法,可具体根据第二输入数据的数据类型、业务类型等进行选择。
得到待上链数据后,C语言动态链接库12可将待上链数据输入至JAVA封装层11。JAVA封装层11接收到的待上链数据后,将待上链数据按照底层区块链3的上链需求进行封装生成第二上链数据。JAVA封装层11与底层区块链3连接,在得到第二上链数据后,JAVA封装层11可将第二上链数据上链至底层区块链3。
在本实施例中,基于JAVA封装层11与使用JAVA语言框架的第一上层应用21连接,通过C语言动态链接库12与使用C语言框架的第二上层应用22连接,中间件系统1分别采用不同的语言模块对接不同语言框架的上层应用,有利于提高中间件系统1的数据处理效率的同时,降低中间件系统1与上层应用系统2的对接难度。
进一步的,所述C语言动态链接库12与所述Golang语言动态链接库13连接,所述C语言动态链接库12还用于调用所述Golang语言动态链接库13处理所述第一输入数据或所述第二输入数据;且/或,所述Golang语言动态链接库13还用于调用所述C语言动态链接库12处理所述第一输入数据或所述第二输入数据。Golang语言动态链接库13形成后,可提取Golang语言动态链接库13中的程序代码对应的符号表,将符号表按照C语言的符号规则进行重新编译后形成Golang语言动态链接库13对外暴露的API接口。所形成的API接口可作为JAVA封装层11或C语言动态链接库12调用Golang语言动态链接库13的连接通道。
在C语言动态链接库12处理数据的过程中,C语言动态链接库12可根据数据的处理需求调用Golang语言动态链接库13中的第二预设算法处理第一输入数据或第二输入数据,例如,在C语言动态链接库12中的数据进行零知识证明的过程中,需进行加密相关的操作时,C语言动态链接库12可调用Golang语言动态链接库13对数据进行加密、加密、签名、验签、哈希算法等加密相关的操作。在Golang语言动态链接库13处理数据的过程中,Golang语言动态链接库13可根据数据的处理需求调用C语言动态链接库12中的第二预设算法处理第一输入数据或第二输入数据,例如,在Golang语言动态链接库13中的数据在进行加密相关操作过程中,需进行零知识证明时,Golang语言动态链接库13可调用C语言动态链接库12对数据进行零知识证明。在本实施例中,C语言动态链接库12与Golang语言动态链接库13可根据数据处理需求相互调用,有利于进一步提高数据处理效率和数据安全性。
参照图2,本发明实施例还提供一种基于区块链的中间件系统1的数据上链方法,该中间件系统1的数据上链方法基于上面实施例所述的中间件系统1,用于将上层应用系统2中的数据上链至底层区块链3。具体的,所述中间件系统1的数据上链方法包括:
步骤S10,JAVA封装层11接收第一上层应用21的第一输入数据
上层应用系统2为需要数据进行上链的使用单位,如抵押品、积分、供应链、贸易金融、支付预算、公示公证等。上层应用系统2包括第一上层应用21,第一上层应用21为上层应用系统2中的一种类型的应用,第一上层应用21自身业务框架的编译语言优选为JAVA语言,以便于与JAVA封装层11的数据对接。
用户在使用第一上层应用21系统2时所产生的数据,数据通过JAVA封装层11提供的RESTFUL接口输入至JAVA封装层11,JAVA封装层11通过RESTFUL接口接收第一上层应用21所输入的第一输入数据。
步骤S20,所述JAVA封装层11调用C语言动态链接库12和/或Golang语言动态链接库13处理所述第一输入数据并生成第一上链数据;
JAVA封装层11可通过jni/jna等技术手段直接调用C语言动态链接库12或间接调用Golang语言动态链接库13。
JAVA封装层11接收到第一上层应用21输入的第一输入数据后,可先确定第一输入数据的第一应用特征值,JAVA封装层11根据确定的第一应用特征值判断第一输入数据是否需要调用C语言动态链接库12中的第一预设算法进行处理,和/或,JAVA封装层11判断第一输入数据是否需要调用Golang语言动态链接库13中的第二预设算法处理第一输入数据。在第一输入数据需要调用C语言动态链接库12进行处理时,JAVA封装层11可调用C语言动态链接库12中的第一预设算法处理第一输入数据;在第一输入数据需要调用Golang语言动态链接库13进行处理时,JAVA封装层11可调用Golang语言动态链接库13中的第二预设算法处理第一输入数据;在第一输入数据不需要调用C语言动态链接库12和Golang语言动态链接库13进行处理时,JAVA封装层11可按照JAVA封装层11中的第一标准算法对第一输入数据进行处理。这里的第一标准算法为JAVA封装层11中自带的数据处理算法,可具体根据第一输入数据的数据类型、业务类型等进行选择。处理后的第一输入数据按照底层区块链3的上链需求进行封装生成第一上链数据。
需要说明的是,若JAVA封装层11处理的是特定上层应用中的特定数据,则可无需进行上述判断,JAVA封装层11直接调用C语言动态链接库12和/或Golang语言动态链接库13处理所述第一输入数据并生成第一上链数据。
步骤S30,所述JAVA封装层11将所述第一上链数据上链至底层区块链3。
数据上链是指JAVA封装层11将接收到的第一输入数据加密并按照底层区块链的要求进行封装后上传到基于IPFS(分布式文件系统)的公网侧链,并在公信链(GXChain)形成数据索引(即本实施例中将第一上链数据上链至底层区块链3)。一旦上链,除了用户本人授权解密外,任何个人或组织都没有能力获取相关的数据。
在本实施例中,基于JAVA语言、C语言、Golang语言混合编程形成的中间件系统1对区块链数据进行上链,可按照需求调用合适的语言模块对第一输入数据进行处理,有利于提高区块链系统处理数据的效率,简化开发效率同时提高数据安全性。
进一步的,参照图3,基于上述图2所示的实施例,在本实施例中,所述中间件系统1的数据上链方法还包括:
步骤S40,C语言动态链接库12接收第二上层应用22的第二输入数据;
上层应用系统2除了包括第一上层应用21以外,还包括第二上层应用22,第二上层应用22为上层应用系统2中另一种类型的应用,第二上层应用22自身业务框架的编译语言优选为C语言,以便于与C语言动态链接库12的数据对接。
步骤S50,C语言动态链接库12根据所述第二输入数据形成待上链数据;
C语言动态链接库12接收到第二上层应用22输入的第二输入数据后,可先获取第二输入数据对应的第二应用特征值,C语言动态链接库12根据第二应用特征值判断第二输入数据是否需要调用Golang语言动态链接库13中的第二预设算法处理第二输入数据。在第二输入数据需要调用Golang语言动态链接库13进行处理时,C语言动态链接库12可调用Golang语言动态链接库13中的第二预设算法处理第二输入数据;在第一输入数据不需要调用Golang语言动态链接库13进行处理时,C语言动态链接库12可按照C语言动态链接库12中的第二标准算法对第二输入数据进行处理形成待上链数据。这里的第二标准算法为C语言动态链接库12中自带的数据处理算法,可具体根据第二输入数据的数据类型、业务类型等进行选择。
需要说明的是,若C语言动态链接库12处理的是特定应用中的特定数据,则可无需进行上述判断,C语言动态链接库12直接按照C语言动态链接库12中的第二标准算法对第二输入数据进行处理形成待上链数据。
步骤S60,C语言动态链接库12将所述待上链数据输入至所述JAVA封装层11;
步骤S70,所述JAVA封装层11根据所述待上链数据形成第二上链数据;
步骤S80,所述JAVA封装层11将所述第二上链数据上链至所述底层区块链3。
C语言动态链接库12得到待上链数据后,C语言动态链接库12可将待上链数据输入至JAVA封装层11。JAVA封装层11接收到的待上链数据后,JAVA封装层11将待上链数据按照底层区块链3的上链需求进行封装生成第二上链数据。其中,底层区块链3中不同的公信链可对应有不同的封装方式。JAVA封装层11与底层区块链3连接,在得到第二上链数据后,JAVA封装层11可将第二上链数据上链至底层区块链3。
在本实施例中,基于JAVA封装层11与使用JAVA语言框架的第一上层应用21连接,通过C语言动态链接库12与使用C语言框架的第二上层应用22连接,中间件系统1分别采用不同的语言模块对接不同语言框架的上层应用,有利于提高中间件系统1的数据处理效率的同时,降低中间件系统1与上层应用系统2的对接难度。
进一步的,参照图4,所述JAVA封装层11接收第一上层应用21的第一输入数据的步骤之前,和/或,C语言动态链接库12接收到第二上层应用22的第二输入数据的步骤之前,还包括:
步骤S01,所述C语言动态链接库12提取所述Golang语言动态链接库13的符号表;
符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,Golang语言动态链接库13中的程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址等。
步骤S02,所述C语言动态链接库采用C语言的符号规则重新编译所述符号表,形成所述Golang语言动态链接库13的接口,以供所述JAVA封装层11和/或所述C语言动态链接库12调用。
这里的符号规则为C语言所使用的符号标识符及其排列方式等,Golang语言动态链接库13中的标识符可与C语言的标识符预先建立映射关系。基于上述预先建立的映射关系,所述C语言动态链接库12可分别确定Golang语言动态链接库13的符号表中每一个标识符所对应的C语言标识符,所述C语言动态链接库12将符号表中每一个标识符的声明或使用信息分别与对应的C语言标识符进行一一绑定。绑定后形成新的符号表,新的符号表可作为Golang语言动态链接库13对外暴露的接口,JAVA封装层11或C语言动态链接库12通过解析新的符号表便可调用Golang语言动态链接库13中第二预设算法所对应的程序代码对数据进行处理。
在本实施例中,通过所述C语言动态链接库将Golang语言动态链接库13的符号表按照C语言的符号规则重新进行编译,形成Golang语言动态链接库13对外暴露的接口,以实现JAVA封装层11或C语言动态链接库12对Golang语言动态链接库13的有效调用。
具体的,所述JAVA封装层11调用C语言动态链接库12和/或Golang语言动态链接库13处理所述第一输入数据并生成第一上链数据的步骤包括:
步骤S21,JAVA封装层11获取所述第一输入数据的第一应用特征值;
第一应用特征值为表征所述第一输入数据的业务需求(加密、零知识证明等)的特征参数。第一输入数据可携带有上述的第一应用特征值。JAVA封装层11可对第一输入数据进行解析得到第一应用特征值。此外,JAVA封装层11也可基于第一输入数据向第一上层应用21发送应用特征获取请求,并接收第一上层应用21基于应用特征获取请求返回的第一应用特征值。
步骤S22,所述JAVA封装层11确定所述第一应用特征值对应的数据业务类型;
不同的数据业务类型可对应设置有不同的预设应用特征值或预设特征值集合。当第一应用特征值为预设特征值或属于预设特征值集合时,便可将预设特征值或预设特征值集合对应的预设数据业务类型作为第一应用特征值对应的数据业务类型。
步骤S231,当所述数据业务类型为零知识证明时,所述JAVA封装层11确定所述C语言动态链接库12中与所述第一应用特征值对应的第一预设算法;
其中,由于C语言的运行效率较高、安全性较好,且可直接与JAVA语言融合对接,第一预设算法可具体为与零知识证明相关、TLS安全传输相关的算法。其中,零知识证明相关算法可具体为Pedersen commitment,Range Proof,高性能的ECC曲线等相关的算法。第一预设算法可通过C语言编译成的代码存储在C语言动态链接库12的文件中。C语言动态链接库12中可根据需求存储有多个不同的第一预设算法的代码,以对数据进行不同与零知识证明相关的处理。
具体的,当C语言动态链接库12中包括多个关于不同零知识证明相关操作的第一预设算法时,不同第一预设算法可对应不同的应用特征值。
通过应用特征值与第一预设算法之间的预设对应关系,所述JAVA封装层11可确定第一应用特征值在C语言动态链接库12中对应的第一预设算法。
步骤S232,所述JAVA封装层11调用确定的第一预设算法对所述第一输入数据进行零知识证明并生成所述第一上链数据;且/或,
步骤S241,当所述数据业务类型为加密相关操作时,所述JAVA封装层11确定所述Golang语言动态链接库13中与所述第一应用特征值对应的第二预设算法;
由于Golang语言的特点是其原生加密库极其强大,因此,第二预设算法可具体为与加密相关的算法,如加密算法、解密算法、签名算法、签名验证算法、哈希算法等。第二预设算法可通过Golang语言编译成的代码存储在Golang语言动态链接库13的文件中。Golang语言动态链接库13中可根据需求存储有多个不同的第二预设算法的代码,以对数据进行不同的加密相关处理。
具体的,当Golang语言动态链接库13中包括多个关于不同加密相关操作的第二预设算法时,不同第二预设算法可对应不同的应用特征值。
通过应用特征值与第二预设算法之间的预设对应关系,所述JAVA封装层11可确定第一应用特征值在Golang语言动态链接库13中对应的第二预设算法。
步骤S242,所述JAVA封装层11调用确定的第二预设算法对所述第一输入数据进行加密相关操作并生成所述第一上链数据。
JAVA封装层11可调用Golang语言动态链接库13中相应的第二预设算法对第一输入数据进行加密、解密、签名、验签等加密相关操作。
通过上述方式,有利于通过Golang语言保证高安全性需求的第一输入数据的数据安全,有利于通过C语言保证第一输入数据的安全性同时提高零知识证明相关操作的数据处理效率。
具体的,所述中间件系统1的数据上链方法还包括:
步骤S91,在所述C语言动态链接库12处理所述第一输入数据或所述第二输入数据,且所述第一输入数据或所述第二输入数据需进行加密相关操作时,所述C语言动态链接库12确定加密相关操作的操作类型;
C语言动态链接库12中的第一预设算法对应的代码中,在需要对所处理的数据进行加密相关操作的位置可设置有预设节点,预设节点可具体为预设代码。在JAVA封装层11调用C语言动态链接库12处理第一输入数据时,或,在C语言动态链接库12处理第二输入数据时,所述C语言动态链接库12判断C语言动态链接库12当前执行的代码中是否存在预设节点,若存在预设节点,则可判定第一输入数据或所述第二输入数据需进行加密相关操作;若不存在预设节点,则可判定第一输入数据或所述第二输入数据不需进行加密相关操作。
不同的预设节点对应不同的加密相关操作的操作类型。在第一输入数据或所述第二输入数据需进行加密相关操作时,所述C语言动态链接库12可根据预设节点确定对应的加密相关操作的操作类型。
此外,在C语言动态链接库12处理第二输入数据时,所述C语言动态链接库12可获取第二输入数据的第二应用特征值。所述C语言动态链接库12根据第二应用特征值判断第二输入数据是否需进行加密相关操作,并可根据第二应用特征值确定对应的加密相关操作的操作类型。
步骤S92,所述C语言动态链接库12确定所述Golang语言动态链接库13中所述操作类型对应的第二预设算法;
不同的加密相关操作的操作类型在Golang语言动态链接库13中可对应有不同的第二预设算法。因此,所述C语言动态链接库12可根据加密相关操作的操作类型确定对应的第二预设算法。
步骤S93,所述C语言动态链接库12调用确定的第二预设算法对所述第一输入数据或所述第二输入数据进行处理;
且/或,步骤S94,在所述Golang语言动态链接库13处理所述第一输入数据或所述第二数据数据,且所述第一输入数据或所述第二输入数据需进行零知识证明时,所述Golang语言动态链接库13确定所述C语言动态链接库12中零知识证明相关的第一预设算法;
Golang语言动态链接库13中的第二预设算法对应的代码中,在需要对所处理的数据进行加密相关操作的位置可设置有预设节点,预设节点可具体为预设代码。在JAVA封装层11调用Golang语言动态链接库13处理第一输入数据时,或,在C语言动态链接库12调用Golang语言动态链接库13处理第二输入数据时,所述Golang语言动态链接库13判断Golang语言动态链接库13当前执行的代码中是否存在预设节点,若存在预设节点,则可判定第一输入数据或所述第二输入数据需进行零知识证明相关操作;若不存在预设节点,则可判定第一输入数据或所述第二输入数据不需进行零知识证明的相关操作。
不同的预设节点对应不同的零知识证明相关操作的操作类型。在第一输入数据或所述第二输入数据需进行零知识证明相关操作时,所述Golang语言动态链接库13可根据预设节点确定对应的零知识证明相关操作的操作类型。
步骤S95,所述Golang语言动态链接库13调用确定的第一预设算法对所述第一输入数据或第二输入数据进行处理。
不同的零知识证明相关操作的操作类型在C语言动态链接库12中可对应有不同的第一预设算法。因此,可根据零知识证明相关操作的操作类型确定对应的第一预设算法。
在本实施例中,C语言动态链接库12与Golang语言动态链接库13可根据数据处理需求相互调用,有利于进一步提高数据处理效率和数据安全性。
此外,本发明实施例还提出一种区块链系统,其特征在于,所述区块链系统包括上层应用系统2、底层区块链3和如上任一实施例所述的中间件系统1,所述上层应用系统2包括第一上层应用21和第二上层应用22,所述中间件系统1分别与所述第一上层应用21、所述第二上层应用22和所述底层区块链3通信连接,所述中间件系统运行时执行如上任一实施例所述的中间件系统的数据上链方法的步骤。
本发明区块链系统的中间件系统1的具体实施方式与上述中间件系统1各实施例基本相同,中间件系统1的数据上链方法的具体实施方式与上述中间件系统的数据上链方法的各实施例基本相同,在此不再赘述。
此外,本发明实施例还提出一种可读存储介质,所述可读存储介质上存储有中间件系统1数据处理程序,所述中间件系统1数据处理程序被处理器执行时实现如上实施例所述的中间件系统1的数据上链方法的步骤。
本发明可读存储介质的具体实施方式与上述中间件系统1的数据上链方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于区块链的中间件系统,其特征在于,所述中间件系统包括JAVA封装层、C语言动态链接库和Golang语言动态链接库;其中,
所述JAVA封装层,分别与第一上层应用、底层区块链、所述C语言动态链接库和所述Golang语言动态链接库连接,用于接收所述第一上层应用的第一输入数据,调用所述C语言动态链接库和/或所述Golang语言动态链接库处理所述第一输入数据并生成第一上链数据,将所述第一上链数据上链至底层区块链;所述第一上层应用属于连接所述中间件系统上游的上层应用系统;所述底层区块链连接于所述中间件系统的下游;
所述C语言动态链接库,用于运行时按照第一预设算法处理所述第一输入数据;
所述Golang语言动态链接库,用于运行时按照第二预设算法处理所述第一输入数据。
2.如权利要求1所述的中间件系统,其特征在于,所述C语言动态链接库与所述上层应用系统的第二上层应用连接,用于接收第二上层应用的第二输入数据,根据所述第二输入数据形成待上链数据,将所述待上链数据输入至所述JAVA封装层;
所述JAVA封装层还用于接收所述待上链数据,根据所述待上链数据生成第二上链数据,将所述第二上链数据上链至底层区块链。
3.如权利要求2所述的中间件系统,其特征在于,所述C语言动态链接库与所述Golang语言动态链接库连接,所述C语言动态链接库还用于调用所述Golang语言动态链接库处理所述第一输入数据或所述第二输入数据;且/或,
所述Golang语言动态链接库还用于调用所述C语言动态链接库处理所述第一输入数据或所述第二输入数据。
4.一种根据如权利要求1至3任意一项所述的基于区块链的中间件系统的数据上链方法,其特征在于,所述中间件系统的数据上链方法的步骤包括:
JAVA封装层接收第一上层应用的第一输入数据;
所述JAVA封装层调用C语言动态链接库和/或Golang语言动态链接库处理所述第一输入数据并生成第一上链数据;
所述JAVA封装层将所述第一上链数据上链至底层区块链。
5.如权利要求4所述的中间件系统的数据上链方法,其特征在于,所述中间件系统的数据上链方法还包括:
所述C语言动态链接库接收第二上层应用的第二输入数据;
所述C语言动态链接库根据所述第二输入数据形成待上链数据;
所述C语言动态链接库将所述待上链数据输入至所述JAVA封装层;
所述JAVA封装层根据所述待上链数据形成第二上链数据;
所述JAVA封装层将所述第二上链数据上链至所述底层区块链。
6.如权利要求5所述的中间件系统的数据上链方法,其特征在于,所述JAVA封装层接收第一上层应用的第一输入数据的步骤之前,和/或,C语言动态链接库接收到第二上层应用的第二输入数据的步骤之前,还包括:
所述C语言动态链接库提取所述Golang语言动态链接库的符号表;
所述C语言动态链接库采用C语言的符号规则重新编译所述符号表,形成所述Golang语言动态链接库的接口,以供所述JAVA封装层和/或所述C语言动态链接库调用。
7.如权利要求6所述的中间件系统的数据上链方法,其特征在于,所述JAVA封装层调用C语言动态链接库和/或Golang语言动态链接库处理所述第一输入数据并生成第一上链数据的步骤包括:
所述JAVA封装层获取所述第一输入数据的第一应用特征值;
所述JAVA封装层确定所述第一应用特征值对应的数据业务类型;
当所述数据业务类型为零知识证明时,所述JAVA封装层确定所述C语言动态链接库中与所述第一应用特征值对应的第一预设算法;
所述JAVA封装层调用确定的第一预设算法对所述第一输入数据进行零知识证明并生成所述第一上链数据;且/或,
当所述数据业务类型为加密相关操作时,所述JAVA封装层确定所述Golang语言动态链接库中与所述第一应用特征值对应的第二预设算法;
所述JAVA封装层调用确定的第二预设算法对所述第一输入数据进行加密相关操作并生成所述第一上链数据。
8.如权利要求6所述的中间件系统的数据上链方法,其特征在于,所述中间件系统的数据上链方法还包括:
在所述C语言动态链接库处理所述第一输入数据或所述第二输入数据,且所述第一输入数据或所述第二输入数据需进行加密相关操作时,所述C语言动态链接库确定加密相关操作的操作类型;
所述C语言动态链接库确定所述Golang语言动态链接库中所述操作类型对应的第二预设算法;
所述C语言动态链接库调用确定的第二预设算法对所述第一输入数据或所述第二输入数据进行处理;且/或,
在所述Golang语言动态链接库处理所述第一输入数据或所述第二数据数据,且所述第一输入数据或所述第二输入数据需进行零知识证明时,所述Golang语言动态链接库确定所述C语言动态链接库中零知识证明相关的第一预设算法;
所述Golang语言动态链接库调用确定的第一预设算法对所述第一输入数据或第二输入数据进行处理。
9.一种区块链系统,其特征在于,所述区块链系统包括上层应用系统、底层区块链和如权利要求1至3中任一项所述的中间件系统,所述上层应用系统包括第一上层应用和第二上层应用,所述中间件系统分别与所述第一上层应用、所述第二上层应用和所述底层区块链通信连接,所述中间件系统运行时执行如权利要求4至8中任一项所述的中间件系统的数据上链方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有中间件系统数据处理程序,所述中间件系统数据处理程序被处理器执行时实现如权利要求4至8中任一项所述的中间件系统的数据上链方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811540057.5A CN109783077B (zh) | 2018-12-14 | 2018-12-14 | 区块链系统及其中间件系统、数据上链方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811540057.5A CN109783077B (zh) | 2018-12-14 | 2018-12-14 | 区块链系统及其中间件系统、数据上链方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783077A true CN109783077A (zh) | 2019-05-21 |
CN109783077B CN109783077B (zh) | 2023-07-11 |
Family
ID=66497189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811540057.5A Active CN109783077B (zh) | 2018-12-14 | 2018-12-14 | 区块链系统及其中间件系统、数据上链方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783077B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414159A (zh) * | 2020-03-16 | 2020-07-14 | 北京艾鸥科技有限公司 | 一种区块链虚拟机装置、虚拟机创建方法及交易方法 |
CN111555870A (zh) * | 2020-04-29 | 2020-08-18 | 支付宝实验室(新加坡)有限公司 | 一种密钥运算方法及装置 |
CN114697350A (zh) * | 2020-12-31 | 2022-07-01 | 福建凯米网络科技有限公司 | 一种基于区块链的数据存储方法及存储介质 |
GB2618105A (en) * | 2022-04-27 | 2023-11-01 | Nchain Licensing Ag | Protocol for communicating compact scripts |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008054074A1 (en) * | 2006-10-31 | 2008-05-08 | Sk Telecom Co., Ltd. | Terminal device having function of interfacing compilation libraries in heterogeneous languages, method of calling api, and method of creating compile function |
CN101714087A (zh) * | 2009-12-15 | 2010-05-26 | 四川长虹电器股份有限公司 | C语言结构体至关系数据库表的映射系统及映射方法 |
CN102662772A (zh) * | 2012-03-08 | 2012-09-12 | 河海大学 | 多语言开发系统中实现不同语言间数据通信的方法 |
CN103577180A (zh) * | 2012-08-03 | 2014-02-12 | 新华瑞德(北京)网络科技有限公司 | 数据处理方法及装置 |
CN104156481A (zh) * | 2014-08-26 | 2014-11-19 | 北京软安科技有限公司 | 基于动态链接库注入的Android加密通信检测装置和方法 |
CN108446112A (zh) * | 2018-03-27 | 2018-08-24 | 北京邦邦共赢网络科技有限公司 | 一种调用对象的方法和装置 |
CN108898007A (zh) * | 2018-06-26 | 2018-11-27 | 焦点科技股份有限公司 | 一种基于JavaAgent和dll增强Java分发软件的安全方法 |
-
2018
- 2018-12-14 CN CN201811540057.5A patent/CN109783077B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008054074A1 (en) * | 2006-10-31 | 2008-05-08 | Sk Telecom Co., Ltd. | Terminal device having function of interfacing compilation libraries in heterogeneous languages, method of calling api, and method of creating compile function |
CN101714087A (zh) * | 2009-12-15 | 2010-05-26 | 四川长虹电器股份有限公司 | C语言结构体至关系数据库表的映射系统及映射方法 |
CN102662772A (zh) * | 2012-03-08 | 2012-09-12 | 河海大学 | 多语言开发系统中实现不同语言间数据通信的方法 |
CN103577180A (zh) * | 2012-08-03 | 2014-02-12 | 新华瑞德(北京)网络科技有限公司 | 数据处理方法及装置 |
CN104156481A (zh) * | 2014-08-26 | 2014-11-19 | 北京软安科技有限公司 | 基于动态链接库注入的Android加密通信检测装置和方法 |
CN108446112A (zh) * | 2018-03-27 | 2018-08-24 | 北京邦邦共赢网络科技有限公司 | 一种调用对象的方法和装置 |
CN108898007A (zh) * | 2018-06-26 | 2018-11-27 | 焦点科技股份有限公司 | 一种基于JavaAgent和dll增强Java分发软件的安全方法 |
Non-Patent Citations (1)
Title |
---|
陈胜,曾靖,左春: "基于区块链项目开发语言选型的初探", vol. 26, no. 4, pages 252 - 255 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414159A (zh) * | 2020-03-16 | 2020-07-14 | 北京艾鸥科技有限公司 | 一种区块链虚拟机装置、虚拟机创建方法及交易方法 |
CN111555870A (zh) * | 2020-04-29 | 2020-08-18 | 支付宝实验室(新加坡)有限公司 | 一种密钥运算方法及装置 |
CN114697350A (zh) * | 2020-12-31 | 2022-07-01 | 福建凯米网络科技有限公司 | 一种基于区块链的数据存储方法及存储介质 |
GB2618105A (en) * | 2022-04-27 | 2023-11-01 | Nchain Licensing Ag | Protocol for communicating compact scripts |
Also Published As
Publication number | Publication date |
---|---|
CN109783077B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783077A (zh) | 区块链系统及其中间件系统、数据上链方法、存储介质 | |
Montesi et al. | Service-oriented programming with Jolie | |
CN110009494B (zh) | 一种监控区块链中的交易内容的方法及装置 | |
WO2020119391A1 (zh) | 一种基于区块链智能合约的数据处理方法及系统 | |
TWI767182B (zh) | 基於h5的接入組件及移動終端 | |
TWI719651B (zh) | 基於區塊鏈智慧合約的轉帳方法及系統 | |
JP2001236014A (ja) | 複数の政策をマージする機構 | |
US20130283251A1 (en) | Canonical Mechanism for Securely Assembling Features into a Mobile Application | |
WO2020119380A1 (zh) | 一种基于区块链智能合约的签名验证方法及系统 | |
WO2020119387A1 (zh) | 一种基于区块链智能合约的交易哈希获取方法及系统 | |
WO2020119382A1 (zh) | 一种基于区块链智能合约的数据处理方法及系统 | |
Puder et al. | Exposing native device APIs to web apps | |
CN110535631A (zh) | 边缘计算节点数据传输的方法、系统、设备及存储介质 | |
CN111314309A (zh) | 数据传输方法、装置、电子设备及计算机可读存储介质 | |
CN111045722A (zh) | 智能合约打包方法、装置、系统、计算机设备及存储介质 | |
CN110888674B (zh) | 在Python虚拟机中执行安全计算的方法及装置 | |
CN111736844B (zh) | 一种数据库云服务标准接口及实现方法 | |
CN113032741A (zh) | 类文件加密方法、类文件运行方法、装置、设备及介质 | |
CN114503074A (zh) | 动态创建的打包应用的注册 | |
Faupel | Status of Industry Work on Signed Mobile Code | |
CN116342283A (zh) | 可信智能合约实现方法、装置、设备及可读存储介质 | |
CN111177660B (zh) | 一种开放平台脚本代码的权限校验方法 | |
CN111460464B (zh) | 数据加解密方法、装置、电子设备及计算机存储介质 | |
CN114064176A (zh) | 一种视图交互方法、装置、电子设备及计算机可读介质 | |
WO2023159900A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |