【fabric】部署链码

article/2025/10/3 5:43:38

链码开发好后

参考文章:https://blog.csdn.net/taifei/article/details/85234632

1:启动网络后,查看容器

在这里插入图片描述

docker ps -a 

部署链码是在cli容器里面。第一步我们可以先查看一下cli有没有成功启动,他的ID是什么。后续可以通过ID或者名字进入容器。

2.进入容器,建立专用放链码文件夹,拷贝链码到文件夹中

docker exec -it 【CONTAINER ID或者NAMES】 /bin/bash
mkdir 【文件夹名字】

文件夹一定要在gopath目录下。

拷贝链码到docker cli容器里面。

docker cp ./【链码名字】.go 【CONTAINER ID或者NAMES】:【文件夹路径】

【CONTAINER ID或者NAMES】是容器,为CONTAINER ID或者NAMES均可

在这里插入图片描述

3.(无桌面只有bash需要这一步)退出容器

退出容器

exit

(如果是有可视化桌面,可以另外再开一个terminal进行第四步操作)

4.拷贝链码到对应文件夹

docker cp ./【链码名字】 【CONTAINER ID或者NAMES】:/opt/gopath/src/github.com/hyperledger/fabric/peer/【专用文件夹名字】

5.编译(编译这步可省略)

go build

6.(重新进入容器,到链码所在文件夹)安装链码

peer chaincode install -n 【链码名字】 -v 1.0 -p 【链码路径】

-n:指定要安装的链码名称
-v:指定链码的版本
-p:指定要安装的链码所在的路径

这个路径注意
现在在docker里面。
路径前面的三个文件夹是默认固定的,是/opt/gopath/src/
所以我们这里填写的是/opt/gopath/src/文件夹下面的某个路径。

举个例子:peer chaincode install -p chaincodedev/chaincode/marbles_chaincode -n mycc -v 0
在这里插入图片描述

成功后显示:Installed remotely response:<status:200 payload:“OK” >

7.实例化链码

peer chaincode instantiate -n 【链码名字】-v 1.0 -c ‘{“Args”:[]}’ -C 【指定通道名称】–tls true --cafile 【指定 TLS_CA 证书的所在路径】

注意,此处–cafile: 指定 TLS_CA 证书的所在路径 是完整路径,从头开始。

参数说明:

-o: 指定Oderer服务节点地址
–tls: 开启 TLS 验证
–cafile: 指定 TLS_CA 证书的所在路径
-n: 指定要实例化的链码名称,必须与安装时指定的链码名称相同
-v: 指定要实例化的链码的版本号,必须与安装时指定的链码版本号相同
-C: 指定通道名称
-c: 实例化链码时指定的参数
-P: 指定背书策略
实例化完成后,用户即可向网络中发起交易。

实例:

peer chaincode instantiate \-C mychannel \-n mycc \-v 1.0 \-c '{"Args":["wallet","123"]}' \--tls true \--cafile /myorg/hyperledger/fabric/peer/crypto-config/ordererOrganizations/myorg.org/orderers/orderer.myorg.org/msp/tlscacerts/tlsca.myorg.org-cert.pem

在这里插入图片描述
如果不记得自己channel名字的话:

在cli里面,查找当前有哪些channel:
peer channel list
执行后可看到现有channel

检查环境变量是否正确配置(是不是目前想要的channel)
echo ¥CHANNEL_NAME
如果不对的话就改:
export CHANNEL_NAME=【channel名字】

8.查询链码


http://chatgpt.dhexx.cn/article/bQ8jkY7C.shtml

相关文章

fabric2.0 概念,链码和私有数据

1.智能合约和链码 管理员将相关智能合约组织起来用于部署–链码。 智能合约中存储各方交易的业务模型&#xff0c;定义了术语、处理流程等。利用区块链可以将智能合约转换为可执行程序。应用通过调用智能合约来产生交易与在账本进行记录。使用智能合约可以实现自动化&#xf…

matlab计算图片链码,MATLAB--数字图像处理 计算图像链码及其相似多边形

题目 计算下面图像 边界阶数为20的形状数及其相应的近似多边形 在这里插入图片描述 概念 形状数&#xff1a;链码的最小一阶差分码 简单说来求形状数就是&#xff1a;先求出图像的链码 &#xff0c;再求其一阶差分码&#xff0c;最后找一阶差分码的最小值 在这里插入图片描述 在…

链码的打包与升级

目录 1、链码的打包与签名 ​编辑 对链码的签名 1、安装已经添加签名的链码 2、安装成功之后进行链码的实例化操作&#xff0c;同时指定其背书策略 测试 1、查询链码 2、调用链码 3、查询链码 链码的升级 1、安装链码 2、升级链码 3、测试 1、查询 2、调用 3、…

fabric链码的编写-入门

链码的编写 前言:fabric链码的编写较简单&#xff0c;在熟悉了基本结构和相关API之后就可上手编写&#xff0c;但是要多多练习&#xff0c;提高编写链码的速度和正确度。 学习步骤&#xff1a; 1.熟悉链码的基本结构 2.熟练链码相关API 3.练习&#xff0c;练习&#xff0c…

Hyperledger Fabric 链码

懂哪写哪&#xff0c;随时补充 链码结构 链码API 链码在开发过程中需要实现链码接口&#xff0c;交易的类型决定了哪个接口函数将会被调用&#xff0c;链码的接口定义如下&#xff1a; type Chaincode interface {Init(stub ChaincodeStubInterface) pb.ResponseInvoke(stu…

fabric2.3链码对比1.4链码小记

最近实验室的项目要部署到fabric2.0以上版本&#xff0c;之前写的都是1.4的链码&#xff0c;现在看2.0版本的链码还是有些不一样的&#xff0c;主要是链码api改了&#xff1a; 前提&#xff1a;如果想在fabric2.0以上环境中还是想用shim和peerAPI的话&#xff1a;也就是&#…

Hyperledger Fabric 链码生命周期

目录 一、什么是链码 二、部署链码 2.1 安装和定义链码 2.1.1 打包智能合约 2.1.2 peer节点安装链码 2.1.3 组织批准链码 2.1.4 将链码提交到通道 2.2 升级链码 总结 一、什么是链码 ChainCode&#xff08;链码&#xff09;是一个程序&#xff0c;用Go、Node.js或Java编…

matlab freeman链码,对Freeman链码分析的角点检测算法

图像中的角点是图像的重要特征, 具有旋转不变性, 决定了图像形状, 可以降低图像信息的存储效率, 在目标跟踪, 目标检测, 图像匹配, 图像轮廓拟合等领域都有重要的应用价值. 近几十年来, 国内外学者提出的图像角点检测算法[, 各有各的优缺点, 大致可分为三大类: 基于灰度强度的角…

Fabric链码升级

一、修改链码&#xff0c;上传 二、打包链码 1、设置组织1环境变量 export PATH${PWD}/../bin:$PATH export FABRIC_CFG_PATH$PWD/../config/ # Environment variables for Org1 export CORE_PEER_TLS_ENABLEDtrue export CORE_PEER_LOCALMSPID"Org1MSP" export C…

图像特征-链码(Freeman code)

目录 引言链码编程实现轮廓提取链码计算 总结 引言 本文介绍了图像的形状特征–链码&#xff0c;以及通过python和opencv实现的链码提取方法。所有opencv的版本为3.4.2&#xff0c;已经移除了直接返回链码的选项。 链码 链码用于描述图像的形状特征&#xff0c;首先需要获得图像…

Java知识扫盲——向上转型(类向上转型、接口向上转型)以及向上转型的优势、灵活运用

目录 普通类示例 抽象类的向上转型&#xff0c; 接口向上转型&#xff1a; 作用&#xff1a;使用向上转型可以&#xff0c;提高代码的简洁性、灵活性、适用性。 普通类示例 父类&#xff1a; package 普通类向上转型;public class Father {public int age 48;public void…

java 向上转换_java的向上转型总结

在《think of java》中对向上转型有着如下的描述 看完之后很蒙圈&#xff0c;所以自己在网上找了一些描述&#xff0c;并自己做了简单的总结 简单的例子 class A{ public void A1(){ System.out.println("父类方法1"); } public void A2(){ System.out.println("…

JAVA中多态以及向上转型向下转型、重写的讲解

重写 重写(override)&#xff1a;也称为覆盖。重写是子类对父类非静态、非private修饰&#xff0c;非final修饰&#xff0c;非构造方法等的实现过程 进行重新编写, 注意&#xff01;&#xff01;&#xff01;返回值和形参都不能改变。 重写的好处在于子类可以根据需要&#x…

JAVA中的向上转型和向下转型

一、向上转型和向下转型 向上转型和向下转型是在JAVA继承操作中用到的东西&#xff0c;在讲到转型之前我们需要认识到继承过程中的对象类型转换&#xff0c;这种转换有两个特点&#xff1a; 1.这是继承过程中发生的操作 2.新类是现有类的一种类型。这种说法主要是因为现有类的方…

java转型 内存_Java向上转型及内存分析

学习设计模式的时候&#xff0c;发现很多模式都用到了向上转型(eg. 工厂方法)。而我对向上转型(upcasting)的机制并不十分熟悉。这篇文章将深入分析向上转型的机制、内存分析。 概念 先从几个基本概念开始&#xff1a; 1. Java中的引用类型(reference type) Java中的数据类型分…

java向上转型_Java向上转型和向下转型

一、向上转型 简单的说向.上转型就是:将-一个子类类型的对象赋值给- -个父类类型的变量&#xff0c; 基本的实现语法: 父类类型变量new 子 类类型(); DEMO:向上转型 发现了可以使用父类类型的变量调用子类覆写了父类的方法&#xff0c;但是为什么不调用Worker的say()方法呢?原…

C++ 向上转型

在 C 中经常会发生数据类型的转换&#xff0c;例如将 int 类型的数据赋值给 float 类型的变量时&#xff0c;编译器会先把 int 类型的数据转换为 float 类型再赋值&#xff1b;反过来&#xff0c;float 类型的数据在经过类型转换后也可以赋值给 int 类型的变量。 数据类型转换…

java 对象向上转型_JAVA对象向上转型和向下转型

今天做了一个测试的题目&#xff0c;发现自己还是很多问题没有静下心来做。很多问题是可以自己解决的但是自己一是没有读清题意&#xff0c;二是自己心里太急躁了。所以这个要自己应以为鉴&#xff01; 对象的转型问题其实并不复杂&#xff0c;我们记住一句话&#xff1a;“父类…

java 向上转型_Java 转型问题(向上转型和向下转型)

Java 转型问题其实并不复杂&#xff0c;只要记住一句话&#xff1a;父类引用指向子类对象。 什么叫父类引用指向子类对象&#xff1f; 从 2 个名词开始说起&#xff1a;向上转型(upcasting) 、向下转型(downcasting)。 举个例子&#xff1a;有2个类&#xff0c;Father 是父类&a…

java向上转型_Java向上转型

向上类型转换&#xff1a; 1.可以通过父类引用变量调用的方法是子类覆盖或继承父类的方法。 2.父类引用变量无法调用子类新增成员变量和新增成员方法。 举个例子 public classAnimal { public voidsleep() { System.out.println("Animal sleep"); } public voidjump(…