一种联盟链多语言外部链码离线编译方法与系统技术方案

技术编号:31088365 阅读:33 留言:0更新日期:2021-12-01 12:47
本发明专利技术提出了一种联盟链多语言外部链码离线编译方法与系统,具体包括:响应于外部链码离线编译请求,获取请求中的链码语言定义,根据链码语言定义选择链码包外部构建器类型,调用detect组件从相应外部构建器类型中选择外部构建器,外部构建器根据请求信息创建链码包;调用build组件编译链码包得到链码,并启动链码;验证Peer节点的证书、私钥和根CA证书,验证通过后,启用外部链码服务器与Peer之间的TLS协议;调用release组件提供元数据,元数据包括CouchDB状态数据库索引定义和外部链码服务的连接信息;根据元数据中的外部链码服务的连接信息连接Peer节点与外部链码服务器,连接完成后即可调用创建的外部链码。完成后即可调用创建的外部链码。完成后即可调用创建的外部链码。

【技术实现步骤摘要】
一种联盟链多语言外部链码离线编译方法与系统


[0001]本专利技术涉及区块链
,具体涉及一种联盟链多语言外部链码离线编译方法与系统。

技术介绍

[0002]在联盟链中,链码的编译和启动过程是peer实现的一部分,不容易定制。所有安装在peer上的链码都是使用peer中的语言特定逻辑硬编码来创建。这个过程会生成一个启动执行链码的Docker容器镜像作为客户端连接到peer。这种方式把链码的实现限制在了少数语言中,不能定制化特定语言链码,适应性和可扩展性较差,并且阻碍了链码作为一个长时间运行的服务。外部构建器和启动器通过允许操作员使用可以构建、启动和发现链码的程序扩展peer来解决这些限制。

技术实现思路

[0003]针对
技术介绍
中提出的问题,本专利技术提出了一种联盟链多语言外部链码离线编译方法,具体包括:
[0004]响应于外部链码离线编译请求,获得请求中的链码定义;
[0005]调用Peer节点对链码定义进行背书,得到背书结果,其中,链码定义至少包括链码语言定义;
[0006]对背书结果进行验证,通本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种联盟链多语言外部链码离线编译方法,其特征在于,具体包括:响应于外部链码离线编译请求,获得请求中的链码定义;调用Peer节点对链码定义进行背书,得到背书结果,其中,链码定义至少包括链码语言定义;对背书结果进行验证,通过后将背书结果进行广播并对背书结果进行共识,共识通过后将链码定义打包成区块并添加到链上;根据链码语言定义选择相应的外部构建器,并基于链码定义创建链码包,其中,链码包包括链码源路径和链码元数据;通过链码源路径和链码元数据对所述链码包进行编译,得到链码;对Peer节点的证书、私钥及根CA证书进行验证;验证通过后,基于所述链码元数据中的连接信息将Peer节点与外部链码服务器进行连通,并调用创建的外部链码。2.根据权利要求1所述的一种联盟链多语言外部链码离线编译方法,其特征在于,所述链码语言定义用于定义链码语言信息,根据链码语言信息选择相应的外部构建器,其中,链码语言信息包括Go语言链码、Java语言链码、JavaScript语言链码,所述外部构建器包括Go链码包外部构建器、Java链码包外部构建器、JavaScript链码包外部构建器。3.根据权利要求1所述的一种联盟链多语言外部链码离线编译方法,其特征在于,所述基于链码语言定义选择相应的外部构建器,并基于链码定义创建链码包,具体包括:初始化容器路由,根据yaml文件的配置信息初始化相应的外部构建器;外部构建器的编译方法被调用时,循环所选类型中的所有外部构建器来调用detect组件,返回第一个满足条件的外部构建器即为选定的外部构建器;外部构建器根据请求中的链码定义创建链码包。4.根据权利要求1或3所述的一种联盟链多语言外部链码离线编译方法,其特征在于,所述基于链码定义创建链码包步骤之前还包括配置外部构建器,具体为:根据外部构建器的组件配置信息对包含的每个组件进行配置,其中,所述外部构建器包括detect组件、build组件、release组件及run组件,组件配置信息包括构建器路径、构建器名称、组件配置信息及脚本执行环境。5.根据权利要求1所述的一种联盟链多语言外部链码离线编译方法,其特征在于,还包括通过链码包配置信息对链码包进行配置的过程,其中,链码包配置信息包含链码源路径配置信息和链码元数据配置信息,所述链码元数据的配置项包括类型、路径和标签;基于类型、路径和标签找到链码元数据,通过...

【专利技术属性】
技术研发人员:黄步添刘强石印鸿梁逸敏刘振广何钦铭
申请(专利权)人:杭州云象网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1