网络组成

组织:业务相关组织

身份认证:证明自己的身份

组成联盟:一起做业务

创建通道:与某业务相关的组织划在一个通道中

智能合约:一起约定做什么

背书策略:需要哪个组织为交易背书

重要术语

交易和账本:交易对应资产键值(key,value),账本由世界状态和区块链组成

背书策略:由智能合约选择哪些peer节点参与到背书环节中

节点:背书节点,记账节点,证书节点

排序节点:负责对网络所有交易按规则来进行排序,并生成区块,分发给各记账节点

世界状态:对同一个key多次交易形成的最终value,就是世界状态

交易流程:

1、客户端提出交易请求

2、相关背书节点执行交易请求

3、将执行结果的读写集结果返回给客户端

4、客户端把返回的读写集提交给orderer节点

5、orderer节点对接收到的读写集按规则进行排序,再打包成区块

6、orderer节点把区块分发给各peer节点

7、记账节点验证交易

8、记账节点通知客户端交易结果

Channel通道

通道就是私有的子网络,为了隔离不同业务应用。一个fabric联盟网络中可以有多个通道

通道提供了基础设施的有效共享,同时维护数据和通信隐私。

通道管理私密数据:公开数据和私密数据,私密数据指定哪些成员可见,私密数据只在可见成员的peer节点内共享,不可见成员只能看到hash

世界状态

将业务对象属性当前值保存为唯一的账本状态

为什么存在:因为程序通常需要一个对象的当前值,而不是遍历整个区块链来计算对象的当前值

成员服务MSP的功能

MSP提供身份信息(peer,orderer,client,admin)

身份信息可以从机构颁发(fabric-ca,外部ca)

MSP可以提供:身份校验,权限校验,签名,身份证明颁发

安装部署

Docker,Docker Compose,Go语言环境,Fabric示例和二进制文件,Docker镜像

sudo apt-get install git #安装git
sudo apt-get install curl #安装curl
apt install docker.io #安装docker
docker --version #查看docker是否安装可运行
apt install docker-compose #安装docker-compose(docker模板引擎,管理由多个docker容器组成的服务)
docker-compose --version #查看docker—compose是否安装成功
tar xzvf go1.11.linux-amd64.tar.gz -C /usr/local #安装go语言环境
go version #查看go语言是否生效

配置系统变量使Go语言环境生效

安装Fabric

git clone https://github.com/hyperledger/fabric.git #下载Fabric源码
git checkout V2.0.0 #切换2.0版本命令
ls #查看Fabirc目录的命令
git clone https://github.com/hyperledger/fabric-samples.git #安装平台特定的二进制文件
curl -sSL https://bit.ly/2ysbOFE|bash -s -- 2.0.0 1.4.4 0.4.18 #配置文件(保证Fabric正确运行)
ls #查看Fabric—samples目录
./bootstrap.sh 2.0.0 -b -s #下载Fabric镜像
docker images #查验下载Fabric镜像结果

启动fabric网络

./network.sh up #启动Fabric测试网络
docker ps -a #通过查看所有Docker容器命令查看
./network,sh createChannel #创建通道

部署智能合约

./network.sh deployCC #启动智能合约
peer chaincode query -C mychannel -n fabcar -c #d

智能合约开发Chaincode链码

智能合约规定了管理交易方之间所有交互的业务模型

链码部署在peer节点上,运行在docker容器内,通过一系列peer命令对链码进行管理

链码设计与开发

链码设计:

type Chaincode interface(接口)包括init与invoke

init:在链码初始化或升级时被调用,仅被调用一次

invoke:主要的业务逻辑实现

导入依赖包:

区块链认知(3)fabric相关推荐

  1. 区块链开源实现fabric快速部署及CLI体验

    区块链开源实现fabric快速部署及CLI体验 2018年05月22日 09:53:41 阅读数:1359 标签: hyperledgerfabric区块链联盟链PBFT 更多 个人分类: 区块链技术 ...

  2. 5分钟,了解通证派孟岩眼中的区块链认知问题

    春节时的三点钟群和节后币价大跌,使得"区块链"成为全民热议的关键词.不管你是不是大佬,都能聊两句行业现状,品评下这个新潮又略显神秘的领域. 但是,大家聊着聊着忽然发现,区块链.比特 ...

  3. 区块链技术之Fabric逻辑架构详解

    一.架构图 该图出自区块链技术指南一书,架构解释也主要出自于本书,有兴趣的同学可以去自行找一找资源. 如图所示:fabric的底层主要由四种服务构成,分别是:身份服务.策略服务.区块链服务.智能合约服 ...

  4. 区块链:Hyperledger Fabric环境配置及fabric-sample测试运行

    环境准备 安装go1.11 以及以上版本 安装docker 17.06.2-ce 以及以上版本 安装docker-compose 1.14.0 以及以上版本 git 拉下 fabric-sample ...

  5. 【区块链】使用 Fabric 测试网络

    首先,我们要回到官方文档 https://hyperledger-fabric.readthedocs.io/en/release-2.4/test_network.html 运行 fabric 测试 ...

  6. 区块链原理和fabric概念介绍

    一.区块链的基本原理 区块链包括三个基本概念: 1.交易(transaction):一次对账本的操作,导致账本状态的一次改变,如添加一次转账记录: 2.区块(block):记录一段时间内发生的所有交易 ...

  7. Linux搭建Hyperledger Fabric区块链框架 - Hyperledger Fabric模型概念

    企业选型的区块链底层技术 Hyperledger Fabric 概念 2015年,Linux基金会启动了Hyperledger项目,目标是发展跨行业的区块链技术. Hyperledger Fabric ...

  8. 十一、区块链学习-Hyperledger Fabric (基于release-1.0) 链码开发-marbles管理

    链码开发-marbles管理 1. 概述 2. marble弹珠管理 2.1实现功能 2.2chaincode链码 2.3编写测试类 2.4 跑测试类 3 搭建本地测试环境 并测试链码 3.1 挂载链 ...

  9. HyperLedger Fabric Introduction——区块链超级账本介绍

    介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...

最新文章

  1. Python中的变量以及赋值语句
  2. 可构建AI的“AI”诞生:几分之一秒内,就能预测新网络的参数
  3. Linux——文件管理之inode
  4. AI顶会直播丨深度学习顶级会议ICLR中国预讲会明天召开,为期三天五大论坛
  5. 微服务访问安全设计方案全探索
  6. PAT——程序运行时间 (1026)
  7. 使用 Kafka 和 Spark Streaming 构建实时数据处理系统
  8. 去重 指定区域数据_大数据分析常用去重算法分析
  9. 在windows下python,pip,numpy,scipy,matplotlib的安装
  10. C#调用exe工作目录
  11. 消息队列中间件的技术选型分析
  12. Mxnet框架学习笔记(二):Kaggle房价预测实战分析
  13. 2020最新软件测试学习资料,全套源码无加密网盘下载
  14. ipad iphone开发_如何在iPad或iPhone上使用外部GPS设备
  15. IIS 7 为 URL Rewrite 模块创建重写规则
  16. button3 电脑上mouse,自定义鼠标按键(X-Mouse Button Control)
  17. 网传前端大神司徒正美突发病逝,再度思考健康与金钱
  18. 为什么总是封板又打开涨停_多次涨停多次被打开,涨停板打开然后封住反复
  19. php实现短信找回密码,thinkphp5怎么调用云片接口实现发送短信验证码找回密码功能...
  20. 达梦数据库角色详解——VTI、SOI

热门文章

  1. 关于助焊层和阻焊层的理解
  2. 计算机开机响5声是什么问题,电脑开机发出5声滴滴声怎么修复
  3. 如何搜索想要的资源?
  4. Vue本地引用Iconfont(阿里巴巴图标库) SVG及普通图标
  5. 新华三进击数智化“大基建”
  6. oracle如何下载及安装,Oracle下载及安装超详细教程
  7. iPhone屏幕尺寸、分辨率及适
  8. knockout中foreach双重嵌套
  9. python库升级命令_pypi仓库更新
  10. 【设计模式】谈谈我们工作中的23个设计模式