【技术实现步骤摘要】
一种联盟链多语言外部链码离线编译方法与系统
[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所述的一种联盟链多语言外部链码离线编译方法,其特征在于,还包括通过链码包配置信息对链码包进行配置的过程,其中,链码包配置信息包含链码源路径配置信息和链码元数据配置信息,所述链码元数据的配置项包括类型、路径和标签;基于类型、路径和标签找到链码元数据,通过...
【专利技术属性】
技术研发人员:黄步添,刘强,石印鸿,梁逸敏,刘振广,何钦铭,
申请(专利权)人:杭州云象网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。