CN112988148B - 一种支持多区块链、跨平台的sdk生成方法及装置 - Google Patents
一种支持多区块链、跨平台的sdk生成方法及装置 Download PDFInfo
- Publication number
- CN112988148B CN112988148B CN202110404020.5A CN202110404020A CN112988148B CN 112988148 B CN112988148 B CN 112988148B CN 202110404020 A CN202110404020 A CN 202110404020A CN 112988148 B CN112988148 B CN 112988148B
- Authority
- CN
- China
- Prior art keywords
- blockchain
- sdk
- language
- algorithm
- different
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000006870 function Effects 0.000 claims abstract description 26
- 238000011161 development Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008571 general function Effects 0.000 abstract description 3
- 239000000284 extract Substances 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 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
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
Abstract
一种支持多区块链、跨平台的SDK生成方法及装置,其中,方法包括步骤:将若干个不同区块链所实现的功能需求按照通用性进行划分,形成多个基础通用模块;采用Golang对若干个不同区块链的基础通用模块的功能算法进行编写;采用一条Go‑Mobile命令将编写的若干个不同区块链的基础通用模块的功能算法编译为供不同操作系统调用的SDK包。本发明针对不同区块链的通用功能,把代码提取出来进行复用,底层再针对不同区块链实现对应的业务功能,使得一个SDK能够支持多条区块链的业务逻辑。本发明不仅可以支持多区块链,还支持跨平台,方便开发人员使用该一套软件开发工具包即可完成PC端、移动IOS端或者移动安卓端的应用的开发,并且,扩展性比较好。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种支持多区块链、跨平台的SDK生成方法及装置。
背景技术
在区块链开发完成后,需要通过SDK(Software Development Kit,软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合)给其他开发者进行调用。由于各个区块链在开发的时候所采用的语言不同,其最后封装的SDK版本也不同,不同的区块链有各自独立的SDK。
目前,区块链的SDK通常只支持单链,并且,不同平台的SDK也不能兼容,例如,PC端、IOS端、安卓端,每个平台都需要各自的SDK版本,为开发者带来了很多不便。
发明内容
针对不同平台区块链的SDK版本不同所带来的不便,本申请提供一种支持多区块链、跨平台的SDK生成方法及装置,通过采用go语言实现不同区块链的基础功能,进而实现区块链的跨平台操作,为开发者调整区块链SDK提供了便利。
本发明技术方案如下:
本发明提供一种支持多区块链、跨平台的SDK生成方法,包括步骤:
将若干个不同区块链所实现的功能需求按照通用性进行划分,形成多个基础通用模块;
采用Golang对若干个不同区块链的基础通用模块的功能算法进行编写;
采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的功能算法编译为供不同操作系统调用的SDK包。
进一步优选地,所述若干个不同区块链的基础通用模块包括接口模块、账号模块、密钥管理模块、密钥算法模块;其中,所述接口模块包括通用接口、各个区块链所对应的链接口、加密算法接口、辅助接口。
进一步优选地,所述采用Golang对若干个不同区块链的基础通用模块的实现算法进行编写的过程中,还包括对区块链中原生非go语言算法结构体进行go语言重构,以使区块链采用go语言实现。
进一步优选地,采用Golang对Polkadot区块链、Kusama区块链中的交易结构体、交易封装、签名算法进行go语言重构,及采用Golang对星际文件系统区块链中的blake2b签名算法进行go语言重构。
进一步优选地,还包括对不同的基础通用模块创建相应的文件,所述采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的实现算法编译为供不同操作系统调用的SDK包,具体命令为:
gomobile bind文件1,文件2,……文件n—O SDK,其中,1,2,……n分别为不同基础通用模块所对应的文件的编号。
进一步优选地,采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的实现算法编译为供IOS操作系统调用的一个SDK包和供安卓操作系统调用的一个SDK包。
本发明还提供一种支持多区块链、跨平台的SDK生成装置,包括:
功能划分模块,用于将若干个不同区块链所实现的功能需求按照通用性进行划分,形成多个基础通用模块;
编写模块,用于采用Golang对若干个不同区块链的基础通用模块的功能算法进行编写;
编译模块,用于采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的功能算法编译为供不同操作系统调用的SDK包。
本发明还提供一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现上述的SDK生成方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的SDK生成方法。
本发明提供的一种支持多区块链、跨平台的SDK生成方法及装置,具有以下效果:
1、本发明针对不同区块链的通用功能,把代码提取出来进行复用,底层再针对不同区块链实现对应的业务功能,使得一个SDK能够支持多条区块链的业务逻辑。
2、本发明不仅可以支持多区块链,还支持跨平台,方便开发人员使用该一套软件开发工具包即可完成PC端、移动IOS端或者移动安卓端的应用的开发,并且,扩展性比较好。
附图说明
图1为支持多区块链、跨平台的SDK生成方法流程图;
图2为支持多区块链、跨平台的SDK生成装置原理图;
图3为支持多区块链、跨平台的SDK生成设备原理图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
在区块链开发完成后,需要通过SDK给其他开发者进行调用,但是,区块链的SDK只支持单链,且不同平台的SDK也不能兼容,例如,PC端、IOS端、安卓端,每个平台都需要各自的SDK版本,造成代码不可复用、利用率低,给开发者带来了很多不便。基于此,本申请提供一种支持多区块链、跨平台的SDK生成方法、装置、设备及存储介质,通过将不同区块链的基础通用功能采用go语言编写,并编译为支持跨平台的SDK包,以实现支持多区块链、跨平台的目的。下面通过具体实施方式进行说明。
实施例一:
本申请实施例提供一种支持多区块链、跨平台的SDK生成方法,其流程图如图1所示,具体包括以下步骤。
S100:将若干个不同区块链所实现的功能需求按照通用性进行划分,形成多个基础通用模块。
S200:采用Golang对若干个不同区块链的基础通用模块的功能算法进行编写。
S300:采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的功能算法编译为供不同操作系统调用的SDK包。
通过上述步骤S100-S300能够实现将不同区块链的基础通用模块的功能算法采用go语言进行编写,并编译为供不同操作系统调用的SDK包,进而实现不同区块链的跨平台操作,实现代码的复用,提高扩展性。
在步骤S100中,将若干个不同区块链所实现的功能需求按照通用性进行划分,形成多个基础通用模块。具体地,若干个不同区块链包括Polkadot区块链、Kusama区块链等主流区块链,可以是其中的任两个组合、任三个组合、任四个组合、任五个组合、全部组合等多个不同区块链。
为了实现支持多区块链,需要将不同区块链之间具有相同功能的模块进行汇聚,然后,按照通用性将不同区块链实现的不同功能进行模块划分,以形成多个基础通用模块。这样划分的基础通用模块可以被多个不同的区块链通用,达到支持多区块链的目的,例如,针对某一个基础通用模块既可以被区块链A使用,也可以被区块链B使用,还可以被区块链C使用,则该基础通用模块能够支持区块链A、区块链B和区块链C。
基于上述基本构思对若干个不同区块链的通用性进行划分,则若干个不同区块链的基础通用模块包括接口模块、账号模块、密钥管理模块、密钥算法模块,其中,接口模块包括通用接口、各个区块链所对应的链接口、加密算法接口、辅助接口。
上述的账号模块用来生成账户、地址等信息;上述的密钥管理模块用来进行助记词和私钥的管理;上述的密钥算法模块,用来提供跟密钥相关的算法,例如导出私钥等。
在步骤S200中,采用Golang对若干个不同区块链的基础通用模块的功能算法进行编写。在具体编写的过程中,还包括对区块链中原生非go语言算法结构体进行go语言重构,以使区块链采用go语言实现;由于不同的区块链的原生编写语言并非go语言,例如,原生编写语言可能是c语言,也可能是java语言,而本申请是采用go语言实现区块链的跨平台操作,因此,在对不同区块链的基础通用模块的功能算法进行编写时,若该功能算法的原生编写语言非go语言,则需要将该非go语言算法结构体进行go语言重构,也即是采用go语言重新编写该功能算法,以达到划分的基础通用模块均采用go语言实现。
具体地,对于Polkadot区块链、Kusama区块链等中的非go语言算法,采用Golang对Polkadot区块链、Kusama区块链中的交易结构体、交易封装、签名算法进行go语言重构,对于星际文件系统区块链中的非go语言算法,采用Golang对星际文件系统区块链中的blake2b签名算法进行go语言重构。
在步骤S300中,采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的功能算法编译为供不同操作系统调用的SDK包。针对开发人员需要开发移动端的应用,本申请采用Go-Mobile编译器对步骤S200中的算法进行编译,所生成的文件中既包含适用于IOS系统开发的代码,也包含适用于安卓(Android)系统开发的代码,其中,Android系统是一种基于Linux的自由及开放源代码的操作系统,IOS系统是苹果公司为移动设备所开发的专有移动操作系统;具体地,Go-Mobile通过子命令bind构建支持不同系统的开发库。
在采用Go-Mobile编译时,现有的方法会导致最后生成的SDK出现命名冲突的问题,例如,为实现支持多链,该多链包括但不限于Polkadot区块链、Kusama区块链等主流区块链,现有的方法每条链对应一个文件夹,采用Go-Mobile的例如bind命令去生成SDK时,每条链生成一个SDK,也即,每个文件夹生成一个SDK包,再放到IOS系统中使用时,会出现命名冲突的问题,而本申请采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的实现算法编译为供不同操作系统调用的SDK包,具体命令为:
gomobile bind文件1,文件2,……文件n—O SDK,其中,1,2,……n分别为不同基础通用模块所对应的文件的编号。
通过上述构思,可以采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的实现算法编译为供IOS操作系统调用的一个SDK包和供安卓操作系统调用的一个SDK包。
通过上述命令,最后生成一个SDK包,不存在命名冲突的问题,该SDK包括多个接口,适用于多个链,当需要引用具体的区块链时,直接调用其对应的接口即可。
由于本申请采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的实现算法编译为供IOS操作系统调用的一个SDK包和供安卓操作系统调用的一个SDK包;因此,如果开发人员需要开发IOS系统的应用,则从文件中调用使用针对IOS系统的代码;如果开发人员需要开发安卓系统的应用,则从文件中调用针对安卓系统的代码;开发人员基于对应系统的代码,在此基础上增加设计其想要实现的功能,最后生成安装包提供给用户下载使用。
如果开发人员需要开发PC端的应用,则无需采用Go-Mobile编译,直接从该算法中调用对应的接口,通过该接口调用对应的区块链的SDK,从而开发在PC端的应用。
本实施例把针对不同链的通用的功能,把代码提取出来进行复用,底层再针对不同区块链实现对应的业务功能,使得一个SDK能够支持多条区块链的业务逻辑。本实施例不仅可以支持跨链,还支持跨平台,方便开发人员使用该一套软件开发工具包即可完成PC端、移动IOS端或者移动安卓端的应用的开发,并且,扩展性比较好。本实施例采用一条Go-Mobile命令生成一个SDK包,不存在命名冲突的问题。
实施例二:
基于实施例一,本实施例提供一种支持多区块链、跨平台的SDK生成装置,其原理图如图2所示,包括功能划分模块100、编写模块200和编译模块300。
功能划分模块100用于将若干个不同区块链所实现的功能需求按照通用性进行划分,形成多个基础通用模块;具体的,若干个不同区块链包括Polkadot区块链、Kusama区块链等等主流区块链,可以是其中的任两个组合、任三个组合、任四个组合、任五个组合、全部组合等多个不同区块链。
为了实现支持多区块链,需要将不同区块链之间具有相同功能的模块进行汇聚,然后,按照通用性将不同区块链实现的不同功能进行模块划分,以形成多个基础通用模块。这样划分的基础通用模块可以被多个不同的区块链通用,达到支持多区块链的目的,例如,针对某一个基础通用模块即可以被区块链A使用,也可以被区块链B使用,还可以被区块链C使用,则该基础通用模块能够支持区块链A、区块链B和区块链C。
基于上述基本构思,功能划分模块100对若干个不同区块链的通用性进行划分,具体的,若干个不同区块链的基础通用模块包括接口模块、账号模块、密钥管理模块、密钥算法模块,其中,接口模块包括通用接口、各个区块链所对应的链接口、加密算法接口、辅助接口。
编写模块200用于采用Golang对若干个不同区块链的基础通用模块的功能算法进行编写。
具体的,编写模块200包括编写单元201和重构单元202,其中,编写单元201用于采用Golang对若干个不同区块链的基础通用模块的功能算法进行编写;重构单元202用于对区块链中原生非go语言算法结构体进行go语言重构,以使区块链采用go语言实现;由于不同的区块链的原生编写语言并非go语言,例如,原生编写语言可能是c语言,也可能是java语言,而本申请是采用go语言实现区块链的跨平台操作,因此,在对不同区块链的基础通用模块的功能算法进行编写时,若该功能算法的原生编写语言非go语言,则需要将该非go语言算法结构体进行go语言重构,也即是采用go语言重新编写该功能算法,以达到划分的基础通用模块均采用go语言实现。
例如,重构单元202对Polkadot区块链、Kusama区块链中的非go语言算法,采用Golang对Polkadot区块链、Kusama区块链中的交易结构体、交易封装、签名算法进行go语言重构,重构单元202对于星际文件系统区块链中的非go语言算法,采用Golang对星际文件系统区块链中的blake2b签名算法进行go语言重构。
编译模块300用于采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的功能算法编译为供不同操作系统调用的SDK包。在采用Go-Mobile编译时,现有的方法会导致最后生成的SDK出现命名冲突的问题,例如,为实现支持多链,现有的方法每条链对应一个文件夹,采用Go-Mobile的例如bind命令去生成SDK时,每条链生成一个SDK,也即,每个文件夹生成一个SDK包,再放到IOS系统中使用时,会出现命名冲突的问题,而本申请的编译模块300采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的实现算法编译为供不同操作系统调用的SDK包,具体命令为:
gomobile bind文件1,文件2,……文件n—O SDK,其中,1,2,……n分别为不同基础通用模块所对应的文件的编号。
通过上述构思,编译模块300可以采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的实现算法编译为供IOS操作系统调用的一个SDK包和供安卓操作系统调用的一个SDK包。
通过上述命令,最后生成一个SDK包,不存在命名冲突的问题,该SDK包括多个接口,适用于多个链,当需要引用具体的区块链时,直接调用其对应的接口即可。
本实施例把针对不同链的通用的功能,把代码提取出来进行复用,底层再针对不同区块链实现对应的业务功能,使得一个SDK能够支持多条区块链的业务逻辑。本实施例不仅可以支持跨链,还支持跨平台,方便开发人员使用该一套软件开发工具包即可完成PC端、移动IOS端或者移动安卓端的应用的开发,并且,扩展性比较好。本实施例采用一条Go-Mobile命令生成一个SDK包,不存在命名冲突的问题。
实施例三:
基于实施例一和实施例二,本实施例提供一种电子设备,该电子设备的原理图如图3所示,该电子设备600可以是平板电脑、笔记本电脑或台式电脑。电子设备600还可能被称为便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备600包括有处理器6001和存储器6002,处理器6001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器6001可以采用DSP(DigitalSignal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器6001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
在一些实施例中,处理器6001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器6001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器6002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器6002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器6002中的非暂态的计算机可读存储介质用于存储至少一个指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集用于被处理器6001所执行以实现本申请中实施例一提供的SDK生成方法。
因此,本申请的电子设备600通过至少一条指令、至少一段程序、代码集或指令集执行实施例一提供的SDK生成方法,具有的优点是:把针对不同链的通用的功能,把代码提取出来进行复用,底层再针对不同区块链实现对应的业务功能,使得一个SDK能够支持多条区块链的业务逻辑。本实施例不仅可以支持跨链,还支持跨平台,方便开发人员使用该一套软件开发工具包即可完成PC端、移动IOS端或者移动安卓端的应用的开发,并且,扩展性比较好。本实施例采用一条Go-Mobile命令生成一个SDK包,不存在命名冲突的问题。
在一些实施例中,设备600还可选包括有:外围设备接口6003和至少一个外围设备。处理器6001、存储器6002和外围设备接口6003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口6003相连。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质。该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行实施例一中的SDK生成方法。
实施例二中的系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-only memory,ROM)、随机存取存储器(Random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (7)
1.一种支持多区块链、跨平台的SDK生成方法,其特征在于,包括步骤:
将若干个不同区块链所实现的功能需求按照通用性进行划分,形成多个基础通用模块;
采用Golang对若干个不同区块链的基础通用模块的功能算法进行编写;
在具体编写的过程中,还包括对区块链中原生非go语言算法结构体进行go语言重构,以使区块链采用go语言实现区块链的跨平台操作;
对于Polkadot区块链及Kusama区块链中的非go语言算法,采用Golang对Polkadot区块链、Kusama区块链中的交易结构体、交易封装、签名算法进行go语言重构,对于星际文件系统区块链中的非go语言算法,采用Golang对星际文件系统区块链中的blake2b签名算法进行go语言重构;
采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的功能算法编译为供不同操作系统调用的SDK包,Go-Mobile通过子命令bind构建支持不同系统的开发库;
具体命令为:
gomobile bind 文件1, 文件2, ……文件n —O SDK,其中,1,2,……n分别为不同基础通用模块所对应的文件的编号;
通过上述命令,最后生成一个SDK包,不存在命名冲突的问题,该SDK包括多个接口,适用于多个链,当需要引用具体的区块链时,直接调用其对应的接口即可。
2.如权利要求1所述的SDK生成方法,其特征在于,所述若干个不同区块链的基础通用模块包括接口模块、账号模块、密钥管理模块、密钥算法模块;其中,所述接口模块包括通用接口、各个区块链所对应的链接口、加密算法接口、辅助接口。
3.如权利要求1所述的SDK生成方法,其特征在于,采用Golang对Polkadot区块链、Kusama区块链中的交易结构体、交易封装、签名算法进行go语言重构,及采用Golang对星际文件系统区块链中的blake2b签名算法进行go语言重构。
4.如权利要求1所述的SDK生成方法,其特征在于,采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的实现算法编译为供IOS操作系统调用的一个SDK包和供安卓操作系统调用的一个SDK包。
5.一种支持多区块链、跨平台的SDK生成装置,其特征在于,包括:
功能划分模块,用于将若干个不同区块链所实现的功能需求按照通用性进行划分,形成多个基础通用模块;
编写模块,用于采用Golang对若干个不同区块链的基础通用模块的功能算法进行编写;在具体编写的过程中,还包括对区块链中原生非go语言算法结构体进行go语言重构,以使区块链采用go语言实现区块链的跨平台操作;
对于Polkadot区块链及Kusama区块链中的非go语言算法,采用Golang对Polkadot区块链、Kusama区块链中的交易结构体、交易封装、签名算法进行go语言重构,对于星际文件系统区块链中的非go语言算法,采用Golang对星际文件系统区块链中的blake2b签名算法进行go语言重构;
编译模块,用于采用一条Go-Mobile命令将编写的若干个不同区块链的基础通用模块的功能算法编译为供不同操作系统调用的SDK包,Go-Mobile通过子命令bind构建支持不同系统的开发库;
具体命令为:
gomobile bind 文件1, 文件2, ……文件n —O SDK,其中,1,2,……n分别为不同基础通用模块所对应的文件的编号;
通过上述命令,最后生成一个SDK包,不存在命名冲突的问题,该SDK包括多个接口,适用于多个链,当需要引用具体的区块链时,直接调用其对应的接口即可。
6.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1-4任一项所述的SDK生成方法。
7.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4任一项所述的SDK生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110404020.5A CN112988148B (zh) | 2021-04-15 | 2021-04-15 | 一种支持多区块链、跨平台的sdk生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110404020.5A CN112988148B (zh) | 2021-04-15 | 2021-04-15 | 一种支持多区块链、跨平台的sdk生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988148A CN112988148A (zh) | 2021-06-18 |
CN112988148B true CN112988148B (zh) | 2023-11-17 |
Family
ID=76340464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110404020.5A Active CN112988148B (zh) | 2021-04-15 | 2021-04-15 | 一种支持多区块链、跨平台的sdk生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988148B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594792A (zh) * | 2023-05-25 | 2023-08-15 | 上海贝锐信息科技股份有限公司 | 一种跨语言sdk系统、方法、设备及可读介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147704A (zh) * | 2017-04-21 | 2017-09-08 | 杭州趣链科技有限公司 | 一种面向区块链的通用服务中间件系统 |
CN206639260U (zh) * | 2017-04-18 | 2017-11-14 | 杜伯仁 | 一种面向多区块链平台的区块链网络节点服务装置 |
CN111240772A (zh) * | 2020-01-22 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 一种基于区块链的数据处理方法、装置及存储介质 |
WO2020125839A1 (de) * | 2018-12-18 | 2020-06-25 | GRID INVENT gGmbH | Elektronisches element und elektrisch angesteuertes anzeigeelement |
CN111737735A (zh) * | 2020-06-04 | 2020-10-02 | 斗云科技(北京)有限公司 | 一种BDChain区块链服务平台 |
CN112003888A (zh) * | 2020-07-09 | 2020-11-27 | 深圳市雄帝科技股份有限公司 | 基于区块链的证件照管理方法、装置、设备及可读介质 |
CN112148284A (zh) * | 2020-09-24 | 2020-12-29 | 普华云创科技(北京)有限公司 | 一种通用型区块链软件开发工具包 |
-
2021
- 2021-04-15 CN CN202110404020.5A patent/CN112988148B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN206639260U (zh) * | 2017-04-18 | 2017-11-14 | 杜伯仁 | 一种面向多区块链平台的区块链网络节点服务装置 |
CN107147704A (zh) * | 2017-04-21 | 2017-09-08 | 杭州趣链科技有限公司 | 一种面向区块链的通用服务中间件系统 |
WO2020125839A1 (de) * | 2018-12-18 | 2020-06-25 | GRID INVENT gGmbH | Elektronisches element und elektrisch angesteuertes anzeigeelement |
CN111240772A (zh) * | 2020-01-22 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 一种基于区块链的数据处理方法、装置及存储介质 |
CN111737735A (zh) * | 2020-06-04 | 2020-10-02 | 斗云科技(北京)有限公司 | 一种BDChain区块链服务平台 |
CN112003888A (zh) * | 2020-07-09 | 2020-11-27 | 深圳市雄帝科技股份有限公司 | 基于区块链的证件照管理方法、装置、设备及可读介质 |
CN112148284A (zh) * | 2020-09-24 | 2020-12-29 | 普华云创科技(北京)有限公司 | 一种通用型区块链软件开发工具包 |
Also Published As
Publication number | Publication date |
---|---|
CN112988148A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8627303B2 (en) | Memory optimization of virtual machine code by partitioning extraneous information | |
CN114546405B (zh) | 用于使用统一中间表示来处理图形的方法和系统 | |
US6678885B2 (en) | System and method for common code generation | |
US8645930B2 (en) | System and method for obfuscation by common function and common function prototype | |
US5675804A (en) | System and method for enabling a compiled computer program to invoke an interpretive computer program | |
CN111367510B (zh) | 一种安卓功能模块开发的方法及装置 | |
US8650537B2 (en) | Optimizing an object-oriented program by transforming invocations of synthetic accessor methods | |
US20040003377A1 (en) | Converting byte code instructions to a new instruction set | |
CN104573416A (zh) | 一种生成应用安装包、执行应用的方法及装置 | |
CN106415495A (zh) | 用于应用开发的编程系统和语言 | |
CN102402451A (zh) | 用户定义类型的编译时边界检查 | |
CN113826070A (zh) | 工作流引擎工具 | |
US20190138438A1 (en) | Conditional stack frame allocation | |
WO2017210150A1 (en) | Seamless high performance interoperability between different type graphs that share a garbage collector | |
CN112988148B (zh) | 一种支持多区块链、跨平台的sdk生成方法及装置 | |
CN114691188A (zh) | 兼容性评估方法、装置、设备及存储介质 | |
US11036527B2 (en) | Class splitting in object-oriented environments | |
US9760282B2 (en) | Assigning home memory addresses to function call parameters | |
US20190065161A1 (en) | Supporting compiler variable instrumentation for uninitialized memory references | |
CN111367512B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN114579135B (zh) | 一种安装包生成方法及装置 | |
CN114253615B (zh) | 一种引导程序设置方法、装置、电子设备及存储介质 | |
Trivedi et al. | Fundamental structure of Linux kernel based device driver and implementation on Linux host machine | |
CN112527320A (zh) | 一种基于浏览器部署应用系统的方法、装置及存储介质 | |
Narasimhan et al. | Accelerating Neural Networks Using Open Standard Software on RISC-V |
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 |