如何在区块链上部署链码

区块链
在本文中,我们将部署JAVA,GO,JAVASCRIPT的链代码以运行Hyperledger Fabric区块链网络。

[[399898]]

本文转载自微信公众号「区块链研究实验室」,作者链三丰。转载本文请联系区块链研究实验室公众号。

介绍

在本文中,我们将部署JAVA,GO,JAVASCRIPT的链代码以运行Hyperledger Fabric区块链网络。

网络设置

  • 具有一个应用程序通道的Hyperledger Fabric v2.3设置。
  • JAVA链码部署。
  • GO链码部署。
  • JAVASCRIPT链码部署。

资料夹结构

克隆包含源代码的仓库。

chaincodes:包含用JAVA,GO,JavaScript编写的链代码的源代码。

deployChaincode:包含链码部署脚本。

  1. git clone https://github.com/cmjagtap/Hyperledger-Fabric 

文件夹结构

织物区块链设置

如果光纤网络已经在运行,则可以跳过此步骤。让我们创建一个结构网络,执行以下命令:

  1. export PATH=${PWD}/bin:$PATH 
  2. sudo service docker start 
  3.  cd org1 
  4. ./1_enrollOrg1AdminAndUsers.sh 
  5. ./2_generateMSPOrg1.sh 
  6.  cd ../org2 
  7. ./1_enrollOrg2AdminAndUsers.sh 
  8. ./2_generateMSPOrg2.sh  
  9.   
  10.  cd ../orderer 
  11. ./1_enrollAdminAndMSP.sh 
  12. ./2_artifact.sh 
  13.   
  14.  cd ../org1 
  15. ./3_createChannel.sh 
  16.   
  17.  cd ../org2 
  18. ./3_joinChannel.sh 

超级账本2.3 blockchain已准备就绪。

链码生命周期

  • 打包链码:在这里,我们需要创建一个压缩的链码打包器tar.gz文件。由一个组织或每个组织来完成,可将chaincode打包在单个组织上,然后将其复制到其他组织或打包在所有其他组织上。
  • 安装:它是二进制自动触发的事件。每个将使用链码认可交易或查询分类帐的组织都需要完成此步骤,所有背书的对等方都需要执行此操作。
  • 批准:每个将使用链码的组织都需要完成此步骤。链码定义需要得到足够多的组织的批准,才能满足该频道的LifecycleEndorsment策略(大多数是默认值),才能在该频道上启动链码。
  • 提交链代码:一旦批准了通道上所需数量的组织,提交事务就必须由一个组织提交,提交者首先从已经批准链码的组织的足够的同龄人那里收集背书,然后提交交易以提交链码定义。

JAVA链码部署

让我们导航到deployChaincode目录。在这里,我们可以看到各种部署脚本。

在目录结构中,我们有deployOrg1_JAVA.sh脚本,其中包含部署链码所需的生命周期命令。在当前的Fabric网络中,我们有两个组织。

首先,在组织1上部署链码,如下所示:

  1. cd deployChaincodes 
  2. ./deployOrg1_JAVA.sh 

链码部署

上图显示成功的部署了链码,我们成功地将汽车记录推入了区块链并且成功查询了推车记录,这里要确保您的互联网已连接到以解决链码依赖性。

在组织2上部署链码,如下所示:

  1. ./deployOrg2_JAVA.sh 

Chaindoe部署

上图显示了链码的成功部署,我们可以查询了汽车数据。

在第二家公司中,则不需要执行所有生命周期命令,链码的提交和初始化由单个组织完成。

JAVAScript链码部署

在目录结构中,我们有deployOrg1_JavaScript.sh和deployOrg2_JavaScript.sh执行它们。

  1. ./deployOrg1_JavaScript.sh  
  2. ./deployOrg2_JavaScript.sh 

成功部署chaincode后,将看到与上图相同的输出。

GO链码部署

在目录结构中,我们有deployOrg1_GO.sh和deployOrg2_GO.sh执行它们。

  1. ./deployOrg1_GO.sh  
  2. ./deployOrg2_GO.sh 

成功部署chaincode后,将看到与上图相同的输出。

如何升级链码 ?

假设我们已经在结构网络上部署了链码。现在,我们想为现有的链码添加一个新功能。

实施后,必须遵循相同的链码生命周期过程来部署链码,但这里必须升级链码版本,链码序列和链码标签。

在部署,脚本将不得不改变CC_VERSION从1版本2和CC_SEQUENCE从1到2。

我们不需要更改标签,因为我们已经通过更改CC_VERSION和CC_SEQUENCE进行了更改。

清理

执行以下脚本以清理所有docker容器和加密材料。

  1. ./clean.sh 

 

目前为止,我们已经在Hyperledger Fabric区块链上成功部署了JAVA,GO,JavaScript链代码。

 

责任编辑:武晓燕 来源: 区块链研究实验室
相关推荐

2021-04-27 08:35:20

TRON区块链

2022-01-12 10:37:09

区块链技术金融

2021-12-24 13:24:16

区块链教育加密货币

2021-05-10 15:09:47

区块链互联网金融

2018-03-27 09:52:30

区块链数字货币比特币

2021-09-23 22:40:10

区块链比特币技术

2018-03-09 15:37:30

2021-09-30 22:42:03

区块链开发供应链

2018-10-17 22:01:06

2022-06-02 14:11:42

区块链药品供应链数据

2018-06-14 10:32:25

2019-01-24 15:50:06

区块链数字货币比特币

2021-10-04 15:52:14

区块链食品产品质量

2018-05-06 16:17:01

2022-04-18 14:50:00

区块链安全交易

2021-04-12 10:57:28

区块链信任银行

2021-03-16 14:33:12

区块链比特币加密货币

2021-04-11 11:31:05

区块链记账比特币

2020-08-18 10:58:05

区块链比特币区块链战略

2021-02-20 22:35:17

区块链比特币记账
点赞
收藏

51CTO技术栈公众号