准备工具:

  1.安装curl(cURL是一个利用URL语法在命令行下工作的文件传输工具)

  2.安装docker(每个节点需要单独放到单独的docker中启动)

  3.docker-compose(管理多个docker的管理工具 docker-compose k8s)

  4.安装go

  5.安装node.js(写链码但是不成熟,主要用来写客户端)

  6.安装Python(一些运行环境需要)

部署环境:

  1.创建hyperledger-fabric

  2.下载fabric包含三个版本(fabric版本,fabric-ca版本,第三方库版本)

     下载fabric-ca-linux-amd64

   peer中存放区块

   order:数据打包

   ccenv:Go语言依赖所需

   fafka:排序

        

         将hyperledger-fabric/fabric-samples/bin目录文件下的拷贝到环境变量中/usr/local/bin

        进入first-network,执行:./byfn.sh generate  (生成证书文件)

        ./byfn.sh up(启动,安装链码)

        ./byfn.sh down(关闭)

        每个peer节点都要安装一次链代码,在一个节点上做一次就行

成员管理:

  会员注册(联盟链,私有链)

  身份保护

  交易审计

  内容保密

账本管理

  区块链(保存所有的交易记录)

  世界状态

    (最新交易状态)

    (数据存储在当前节点的数据库中,自带的数据库levelDB,也可以使用couchDB)

交易管理

  部署交易(部署的是链码,给节点安装链码chaincode)

  调用交易(invoke)

智能合约

  处理网络成员需要的业务

  实现链码和账本分离(逻辑和数据分离)

 

基础概念:

  组织:

    有用户

    有进行数据处理的节点=》peer

      put 写入到区块链中

      get 数据查询

  节点

    client

      进行交易管理(cli,node sdk,java sdk)

        cli ->通过Linux命令,使用的是shell命令对数据进行提交和查询

        node.js (Java,go)->通过node.js实现客户端

      peer

        储存和同步账本数据

          用户通过客户端工具对数据进行put操作 ,写入到数据

          数据同步是fabric框架实现的

      orderer

        排序和分发交易

          排序:解决双花问题

             没发起一般交易都会在orderer节点中排序

          交易数据先打包,再写入区块 

通道  

  通道是由共识服务提供的通讯机制,将peer和orderer连接在一起,形成具有保密性的通讯线路(虚拟),实现业务的隔离,通道与账本和状态紧密相关

交易流程

  application/SDK:充当的是客户端角色

    写数据

  客户端发起一个提案给peer节点

  peer节点发起交易预演,得到结果

  peer节点将预演结果发送给客户端

    模拟失败,交易终止

    模拟成功,继续

  客户端将交易提交给排序节点

  排序节点进行交易打包

  oderer节点将打包数据发送给peer,peer节点将数据写入区块链中

    打包数据的发送不是实时的(旷工)

    有设定条件在配置文件中

  

 

转载于:https://www.cnblogs.com/s0what/p/10073259.html

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐