IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> Hyperledger Fabric学习笔记——7.链码安装、实例化、执行 -> 正文阅读

[区块链]Hyperledger Fabric学习笔记——7.链码安装、实例化、执行

1.智能合约

  • 执行环境:以太坊虚拟智能合约执行环境EVM,fabric执行环境是docker

  • 链码

    • 是应用层和区块链底层的中间点
    • 每一个链码执行环境是一个独立的docker
    • 使用GRPC协议与背书节点通信,只有背书节点才能运行智能合约
  • 链码的生命周期

    • 打包:智能合约的编写和编译
    • 安装:将打包好的文件,上传到背书节点
    • 实例化:实际安装,执行Init方法,只执行一次,构造函数
    • 升级:升级和修复链码
    • 交互:自己定义的方法的调用
  • 链码的交互流程
    在这里插入图片描述

  • 系统链码(CC:chaincode)

    • LSCC:管理链码的生命周期
    • CSCC:配置管理链码,管理链的配置
    • QSCC:查询账本存储,是一个区块索引的外部服务
    • ESCC:交易背书的链码,交易执行后的链码进行封装签名,给客户端返回背书交易结果
    • VSCC:交易验证的链码
  • 链码编程的接口

    • Init():链码初始化,只执行一次
    • Invoke() :链码的业务逻辑的编写
    • 上面2个方法参数一样,参数是SDK的接口
  • 链码SDK的接口

    • 写代码再看
  • 一些注意点

    • 分布式多机多节点执行,链码会执行多次
    • 不写随机函数,交易会无效,多次执行不一样
    • 不写系统时间,多机时间不一定一样

2.网络搭建配置的实现

  • crypto-config.yaml:用于配置节点的个数,参考firstnetwork编写
  • 编写好后,传到linux对应目录
    在这里插入图片描述
  • 进入deploy目录,设置工作目录为当前目录
    export FABRIC_CFG_PATH=$GOPATH/src/fabric_asset/deploy
  • 指定按照yaml文件生成配置
    cryptogen generate --config=./crypto-config.yaml

  • configtx.yaml:用于区块联盟中的组织信息,配置名字和证书等的位置,参考firstnetwork编写

  • 编写好后,传到linux对应目录
    在这里插入图片描述

  • 创建用于存放配置的目录
    mkdir config
    在这里插入图片描述

  • 生成系统链的创世区块
    -profile:指定联盟配置
    -outputBlock:指定存放的位置
    configtxgen -profile OneOrgsOrdererGenesis -outputBlock ./config/genesis.block

  • 生成通道的创世交易
    -profile:指定业务联盟
    -outputCreateChannelTx:指定存放路径
    -channelID:指定创建名字
    configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./config/mychannel.tx -channelID mychannel

  • 生成两个组织锚节点的交易信息
    configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./config/Org0MSPanchors.tx -channelID mychannel -asOrg Org0MSP
    configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./config/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP
    在这里插入图片描述


  • 新建docker-compose.yaml文件并移动到deploy目录下

3.启动网络

  • 启动docker,后台运行(要以管理员身份运行)
    docker-compose up -d

  • 查看orderer节点的运行日志
    docker logs orderer.example.com

  • 与客户端交互操作
    docker exec -it cli bash

  • 创建通道
    -o:指定与哪个orderer节点通信
    -c:指定创建的通道名称
    -f:指定使用的文件
    peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/config/mychannel.tx

  • 加入通道
    peer channel join -b mychannel.block

  • 查看peer加入的通道列表
    peer channel list

  • 指定主节点
    peer channel update -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/config/Org1MSPanchors.tx


  • 安装链码
    -n:安装的名字
    -v: version
    -l:使用语言
    -p:path
    peer chaincode install -n badexample -v 1.0.0 -l golang -p github.com/chaincode/badexample
  • 克隆一个会话,交互执行peer0,查看安装的链码
    docker exec -it peer0.org1.example.com bash
    cd /var/hyperledger/production/chaincodes/
    在这里插入图片描述
  • 链码实例化
    peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n badexample -l golang -v 1.0.0 -c '{"Args":["init"]}'
  • 链码交互执行
    peer chaincode query -C mychannel -n badexample -c '{"Args":[]}'
  • 多次执行查询,得到的结果不同,因为invoke()中使用了随机数,不要这么做

4.网络关闭

  • 退出客户端
    exit
  • 在deploy目录下关闭docker
    docker-compose down
  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:24:16  更:2022-05-05 11:24:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:37:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码