CN110149376B - 提高hyperledger composer链码部署效率的方法 - Google Patents

提高hyperledger composer链码部署效率的方法 Download PDF

Info

Publication number
CN110149376B
CN110149376B CN201910360121.XA CN201910360121A CN110149376B CN 110149376 B CN110149376 B CN 110149376B CN 201910360121 A CN201910360121 A CN 201910360121A CN 110149376 B CN110149376 B CN 110149376B
Authority
CN
China
Prior art keywords
proxy server
chain code
ccenv
deployment
grpc
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
Application number
CN201910360121.XA
Other languages
English (en)
Other versions
CN110149376A (zh
Inventor
郭俊
汪志超
陈文元
张嘉杰
胡西冲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Kechuang Space Information Technology Co ltd
Original Assignee
Guangzhou Kechuang Space Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Kechuang Space Information Technology Co ltd filed Critical Guangzhou Kechuang Space Information Technology Co ltd
Priority to CN201910360121.XA priority Critical patent/CN110149376B/zh
Publication of CN110149376A publication Critical patent/CN110149376A/zh
Application granted granted Critical
Publication of CN110149376B publication Critical patent/CN110149376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了提高hyperledger composer链码部署效率的方法,即在通过hyperledger composer进行业务网络部署中,使用代理服务软件建立代理服务器,并把代理服务器地址通过参数传入,底层fabric的ccenv被告知去访问所述代理服务器,在ccenv编译链码的时候,通过所述代理服务器从镜像服务器处获取对应的二进制文件。本发明易于实现,极大地提高了部署链码的稳定性,部署的成功率可以达到99%,其次,极大地缩短了部署链码的时间,主要是很大程度的避免了访问aws超时以及grpc源码的编译,在同一台机器上的测试表明,现有技术的部署时间需要≥10分钟,而本发明缩短到2‑3分钟。

Description

提高hyperledger composer链码部署效率的方法
技术领域
本发明涉及区块链技术领域,具体涉及到一种提高hyperledger composer业务网络部署效率的方法技术。
背景技术
在实际通过hyperledger composer进行业务网络部署中,底层fabric的ccenv会去编译源代码生成二进制文件,一般会耗时很久,而且往往会超时失败。为此,在现有技术中,是通过本地搭建npm的镜像服务器来解决这个问题,但这个成本比较大,不太适合小企业及个人用户;或者通过修改官方ccenv镜像避免npm依赖频繁安装,这个技术要求也比较高,而且在生成环境中,不方便部署,也会带来比较大的风险。另外通过传递参数registry=https://mycompanynpmregistry.com:4873,通过这个参数向npm发出指令使registry指定的网址去寻找对应的npm包,但从测试的结果看,不成功。
发明内容
为了克服现有技术的不足,本发明的目的在于提供提高hyperledger composer链码部署效率的方法,易于实现,提高部署链码的稳定性与部署的成功率,缩短部署链码的时间。
为达上述目的,本发明采用以下技术方案:
一种提高hyperledger composer链码部署效率的方法,即在通过hyperledgercomposer进行业务网络部署中,使用代理服务软件建立代理服务器,并把代理服务器地址通过参数传入,底层fabric的ccenv被告知去访问所述代理服务器,在ccenv编译链码的时候,通过所述代理服务器从镜像服务器处获取对应的二进制文件。
所述代理服务器的代理服务指向国内的grpc版本服务的npm镜像服务器,并把https协议转换为http协议,并进行路径转换。
进一步来说:通过开源软件,搭建代理服务器,IP地址设置为x.y.z.k,开放端口port1;
在代理服务器中配置本地的端口port指向https://npm.XX.org/mirrors/grpc,其中npm.XX.org是指镜像服务器的具体名称;在本地目录中生成文件npmconfig.txt,内容如grpc_node_binary_host_mirror=https://x.y.z.k:port1/;通过composer networkinstall、composer network start提供的参数npmrcFile指向npmconfig.txt,这样在ccenv编译链码的时候,通过所述代理服务器去npm镜像服务器处获取grpc二进制版本。
本发明具有以下有益效果:
在实际通过hyperledger composer进行业务网络部署中,底层fabric的ccenv会去编译源代码生成二进制文件,一般会耗时很久,而且往往会超时失败,现有技术通过本地搭建npm的镜像服务器或者通过修改官方ccenv镜像避免npm依赖频繁安装来解决这种技术难题,显然,其没有获取其产生的根本原因,这种根本原因,对于本领域的技术人员来说,是难以发现的。本发明通过阅读源码发现,在编译过程中,发现ccenv去aws获取grpc对应版本的二进制文件,如果获取不到,就会去获取对应的源代码,然后本地编译生成,耗时很久,其原因往往是本地编译源码的过程耗时,而超时失败更多的是因为访问aws没有响应导致的,这样极大地影响了链码的部署效率,通过本发明,经测试,首先极大地提高了部署链码的稳定性,部署的成功率可以达到99%,其次,极大地缩短了部署链码的时间,主要是很大程度的避免了访问aws超时和grpc源码的编译,在同一台机器上的测试表明,现有技术的部署时间需要≥10分钟,而本发明缩短到2-3分钟。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是现有技术的常规网络链接图;
图2是现有技术中ccenv编译源代码为二进制的流程图;
图3是本发明网络连接图;
图4是本发明ccenv编译源代码为二进制的流程图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
本发明提高hyperledger composer链码部署效率的方法,是指在通过hyperledger composer进行业务网络部署中,使用代理服务软件建立代理服务器,并把代理服务器地址通过参数传入,底层fabric的ccenv被告知去访问所述代理服务器,如图3所示网络连接图。在ccenv编译链码的时候,通过所述代理服务器从镜像服务器处获取对应的二进制文件。代理服务器的代理服务指向国内的grpc版本服务的npm镜像服务器,并把https协议转换为http协议,并进行路径转换。
通过开源软件,搭建代理服务器,IP地址设置为x.y.z.k,开放端口port1;在代理服务器中配置本地的端口port指向https://npm.XX.org/mirrors/grpc,该网址是npm.XX.org镜像服务器下grpc对应的目录,其中npm.XX.org是指镜像服务器的具体名称;在本地目录中生成文件npmconfig.txt,内容如grpc_node_binary_host_mirror=https://x.y.z.k:port1/;通过composer network install、composer network start提供的参数npmrcFile指向npmconfig.txt,这样在ccenv编译链码的时候,通过所述代理服务器去npm镜像服务器处获取grpc二进制版本,如图4所示ccenv编译源代码为二进制的流程图。
下面是更详细的说明:
本发明提高hyperledger composer链码部署效率的方法,使用代理服务软件,如开源的nginx,来建立一个代理服务,指向国内的grpc版本服务的npm镜像服务器,例如阿里云的npm镜像服务器,并把https协议转换为http协议,并进行路径转换,然后在部署业务网络的时候,通过传入对应的参数,告诉ccenv,去访问这个代理服务,从而从npm镜像服务器获取对应的grpc二进制文件。如图4,ccenv通过代理服务器从npm镜像获取grpc二进制版本,然后编译x509源码,再编译链码源码以及后续的操作。图1是现有技术的常规网络链接图,即ccenv去amazon获取grpc对应版本的二进制文件,如果获取不到,就会去获取对应的源代码,然后本地编译生成,图2所示ccenv编译源代码为二进制的流程图,耗时很久,其原因往往是本地编译源码的过程耗时,而超时失败更多的是因为访问amazon没有响应导致的,这样极大地影响了链码的部署效率。
详细步骤是:通过开源软件,搭建代理服务器(IP地址为x.y.z.k),开放端口port1;
在代理服务器中配置本机的端口port指向https://npm.taobao.org/mirrors/grpc;
在本地目录中生成文件npmconfig.txt,内容如grpc_node_binary_host_mirror=https://x.y.z.k:port1/,其中x.y.z.k是指IP地址的具体数字,IP地址为192.168.1.2;
在hyperledger composer进行业务网络部署的时候,通过composer networkinstall、composer network start提供的参数npmrcFile指向npmconfig.txt,这样在ccenv编译链码的时候,就会通过代理服务器去npm镜像获取grpc二进制版本。
在本发明中专有名词解释:
hyperledger:是一个旨在推动区块链跨行业应用的开源项目,由Linux基金会在2015年12月主导发起该项目。
hyperledger composer:是Hyperledger项目下的一个子项目,是用于构建区块链网络的协同工具。借助Hyperledger Composer,可以在线、本地或在云中,通过最喜欢的方式,轻松构建区块链应用程序。
fabric/hyperledger composer:是Hyperledger项目下的一个子项目。
amazon:亚马逊公司或者网站。
aws:亚马逊公司旗下云计算服务平台,为全世界各个国家和地区的客户提供一整套基础设施和云解决方案。
ccenv:fabric项目中使用的go语言的cc运行环境库镜像。
grpc:由google开发,是一款语言中立、平台中立、开源的远程过程调用RPC系统。
npm:是JavaScript世界的包管理工具,并且是Node.js平台的默认包管理工具。
nginx:是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。
https:是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
x509:是一种非常通用的证书格式,所有的证书都符合ITU-T X.509国际标准。
proxy:代理。
IP:IP地址。
port:端口。
composer network install/composer network start:composer中安装/运行业务网络的命令。
需要声明的是,上述具体实施方式仅为本发明的较佳实施例及所运用技术原理,在本发明所公开的技术范围内,任何熟悉本技术领域的技术人员所容易想到的变化或替换,都应涵盖在本发明的保护范围内。

Claims (3)

1.一种提高hyperledger composer链码部署效率的方法,其特征在于:在通过hyperledger composer进行业务网络部署中,使用代理服务软件建立代理服务器,并把代理服务器地址通过参数传入,底层fabric的ccenv被告知去访问所述代理服务器,在ccenv编译链码的时候,通过所述代理服务器从镜像服务器处获取对应的二进制文件。
2.根据权利要求1所述的提高hyperledger composer链码部署效率的方法,其特征在于:所述代理服务器的代理服务指向国内的grpc版本服务的npm镜像服务器,并把https协议转换为http协议,并进行路径转换。
3.根据权利要求1所述的提高hyperledger composer链码部署效率的方法,其特征在于:
通过开源软件,搭建代理服务器,IP地址设置为x.y.z.k,开放端口port1;
在代理服务器中配置本地的端口port指向https://npm.XX.org/mirrors/grpc,其中npm.XX.org是指镜像服务器的具体名称;
在本地目录中生成文件npmconfig.txt,内容为grpc_node_binary_host_mirror=https://x.y.z.k:port1/;
通过composer network install、composer network start提供的参数npmrcFile指向npmconfig.txt,这样在ccenv编译链码的时候,通过所述代理服务器去npm镜像服务器处获取grpc二进制版本。
CN201910360121.XA 2019-04-30 2019-04-30 提高hyperledger composer链码部署效率的方法 Active CN110149376B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910360121.XA CN110149376B (zh) 2019-04-30 2019-04-30 提高hyperledger composer链码部署效率的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910360121.XA CN110149376B (zh) 2019-04-30 2019-04-30 提高hyperledger composer链码部署效率的方法

Publications (2)

Publication Number Publication Date
CN110149376A CN110149376A (zh) 2019-08-20
CN110149376B true CN110149376B (zh) 2021-01-05

Family

ID=67594041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910360121.XA Active CN110149376B (zh) 2019-04-30 2019-04-30 提高hyperledger composer链码部署效率的方法

Country Status (1)

Country Link
CN (1) CN110149376B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114675935A (zh) * 2022-03-30 2022-06-28 蚂蚁区块链科技(上海)有限公司 联盟链中部署链码的方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107579931A (zh) * 2017-09-08 2018-01-12 杭州云象网络技术有限公司 一种基于Kubernetes的区块链即服务资源适配方法
CN108965468A (zh) * 2018-08-16 2018-12-07 北京京东尚科信息技术有限公司 区块链网络服务平台及其链码安装方法、存储介质
CN109462508A (zh) * 2018-11-30 2019-03-12 北京百度网讯科技有限公司 节点部署方法、装置和存储介质
CN109545301A (zh) * 2018-11-23 2019-03-29 浙江工商大学 基于区块链Hyperledger Fabric的共享电子病历方法
CN109597693A (zh) * 2018-09-25 2019-04-09 国网浙江省电力有限公司信息通信分公司 分布式软件系统中grpc通信协议的应用方法
CN109634810A (zh) * 2018-12-10 2019-04-16 广东亿迅科技有限公司 基于Fabric的区块链业务平台和运行方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10762079B2 (en) * 2017-09-29 2020-09-01 Oracle International Corporation System and method for managing a blockchain cloud service

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107579931A (zh) * 2017-09-08 2018-01-12 杭州云象网络技术有限公司 一种基于Kubernetes的区块链即服务资源适配方法
CN108965468A (zh) * 2018-08-16 2018-12-07 北京京东尚科信息技术有限公司 区块链网络服务平台及其链码安装方法、存储介质
CN109597693A (zh) * 2018-09-25 2019-04-09 国网浙江省电力有限公司信息通信分公司 分布式软件系统中grpc通信协议的应用方法
CN109545301A (zh) * 2018-11-23 2019-03-29 浙江工商大学 基于区块链Hyperledger Fabric的共享电子病历方法
CN109462508A (zh) * 2018-11-30 2019-03-12 北京百度网讯科技有限公司 节点部署方法、装置和存储介质
CN109634810A (zh) * 2018-12-10 2019-04-16 广东亿迅科技有限公司 基于Fabric的区块链业务平台和运行方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Performance Characterization of Hyperledger Fabric;Arati Baliga等;《IEEE 2018 Crypto Valley Conference on Blockchain Technology (CVCBT)》;20180622;全文 *
基于Node.js高并发web系统的研究与应用;陈瑶;《中国优秀硕士学位论文全文数据库信息科技辑I139-514》;20160315;全文 *

Also Published As

Publication number Publication date
CN110149376A (zh) 2019-08-20

Similar Documents

Publication Publication Date Title
CN105487892B (zh) 一种Linux环境下的云中GIS服务部署系统
US20130080999A1 (en) Automated Testing for Hosted Applications on Various Computing Platforms
US7085851B2 (en) SNMP interface to existing resource management extension-enabled management agents
US20080320135A1 (en) Method and system for establishing network connections
US20050015762A1 (en) Methods and systems for deploying computer source code
US6519228B1 (en) System and method of operation for verifying and validating public switch telephone networks (PSTN) to (IP) network services
CN104536890A (zh) 测试系统、方法和装置
US11726808B2 (en) Cloud-based managed networking service that enables users to consume managed virtualized network functions at edge locations
CN103428046A (zh) 一种测试接口协议的方法及终端
CN113515278A (zh) 低代码模型处理方法、系统、电子设备及存储介质
CN110149376B (zh) 提高hyperledger composer链码部署效率的方法
US12137032B2 (en) Systems and methods for identifying and determining third party compliance
CN104536765B (zh) 登录、调试嵌入式设备的方法及系统
CN112073923A (zh) 兼容多运营商的通信方法、装置、网关及可读存储介质
CN115248700A (zh) 一种产品代码自动化构建移动安装包的方法和系统
KR102436385B1 (ko) 사물 인터넷 프로토콜을 이용한 비콘 기반 단말 접속 시스템, 이의 방법, 그리고 이 방법이 저장된 컴퓨터 판독 가능 저장 매체
CN101499031A (zh) 软件错误反馈系统及方法
JP2009157468A (ja) プレゼンス合成装置、プレゼンス合成プログラム、およびプレゼンス合成方法
CN113824790A (zh) 一种支持企业级应用的云原生PaaS管理平台
KR100751449B1 (ko) OSGi 서비스 플랫폼 기반의 스텁 번들 생성 방법
US10419388B2 (en) Method and system for dark matter scanning
Cisco Release Notes for Cisco Unity Release 3.1(2c)
Cisco Release Notes for Cisco Unity Release 3.1(2b)
US11249742B1 (en) Systems and methods for zero-touch infrastructure build automation
CN113992517A (zh) 基于PaaS平台的网络对外服务的实现方法及系统

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