ubuntu 18.04 搭建hyperledge-fabric 2.x网络和fabric-explorer

这篇具有很好参考价值的文章主要介绍了ubuntu 18.04 搭建hyperledge-fabric 2.x网络和fabric-explorer。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


本文详细说明在 ubuntu 18.04环境下搭建 fabric 2.x环境和 fabrix-explorer的过程。

1、前期工具准备

1.1 Git安装

$ apt-get update
$ apt-get install git

1.2 cURL安装

$ apt-get install curl

1.3 docker 安装

先卸载老版本的docker

$ sudo apt-get remove docker docker-engine docker.io containerd runc

安装辅助包:

$ sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

添加dockerGPR密钥:

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

设置存储库:

$ echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装docker 引擎:

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

列出存储库可用的版本:

$ apt-cache madison docker-ce

fabric安装ubuntu18.04,区块链,ubuntu,fabric,docker,区块链
下载指定版本的docker ,<VERSION_STRING>5:20.10.16~3-0~ubuntu-jammy 替代:

$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io docker-compose-plugin

验证docker 是否安装正确:

$ sudo docker run hello-world

查看docker 版本:

$ docker -v

配置修改阿里云镜像仓库:

进入阿里云官网-控制台-容器镜像服务-镜像工具-镜像加速器 获取加速地址

$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["加速器地址"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

安装docker-compose

尽量安装高版本的,不然后面创建channel时会报错。

下载docker-compose1.25.4

$ curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#将可执行权限应用于二进制文件
$ chmod +x /usr/local/bin/docker-compose
#创建软链
$ ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#查询版本号
$ docker-compose -v
$ docker-compose version 1.25.4, build 8d51620a

1.4 安装Go

下载go语言安装包:

$ wget https://studygolang.com/dl/golang/go1.15.5.linux-amd64.tar.gz
#解压
$ tar -C /usr/local -xzf go1.15.5.linux-amd64.tar.gz

配置:

## 创建go目录
$ mkdir $HOME/go
## 设置环境变量
$ vi ~/.bashrc
## 在文末加上,其中GOPATH 是存放 Go 项目的目录;GOROOT 是 Go 的安装包所在目录。
$ export GOROOT=/usr/local/go
$ export GOPATH=$HOME/go
$ export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
## 使配置的环境变量生效
$ source ~/.bashrc

# 查看go的版本
$ go version
$ go version go1.15.5 linux/amd64

# 构建go项目目录
## src:存放源代码的目录。
## bin:存放生成后的可执行文件和 Go 相关的工具。
## pkg:存放编译后的包文件。

2 下载 fabric 和 fabric-ca

2.1 clone fabric-sample:

# 创建存放源代码的目录,并进入
$ mkdir -p $GOPATH/src/github.com/hyperledger
$ cd $GOPATH/src/github.com/hyperledger
# 从gitee上克隆代码
$ git clone https://gitee.com/hyperledger/fabric-samples.git
# 进入目录,切换分支
$ cd fabric-samples
# 查看所有分支
$ git branch -a
# 切换到主分支
$ git checkout master

2.2 拉取 fabric 二进制文件:

# 下载所需的二进制文件
## 要注意版本的兼容性,这边下载的是fabric 2.4.0和fabric-ca 1.5.0
$ wget https://github.com/hyperledger/fabric/releases/download/v2.4.0-alpha/hyperledger-fabric-linux-amd64-2.4.0-alpha.tar.gz
$ wget https://github.com/hyperledger/fabric-ca/releases/download/v1.5.0/hyperledger-fabric-ca-darwin-amd64-1.5.0.tar.gz

# 解压二进制文件,并放入fabric-sample目录下
$ tar -C $GOPATH/src/github.com/hyperledger/fabric-samples -xzf hyperledger-fabric-linux-amd64-2.4.0-alpha.tar.gz
$ tar -C $GOPATH/src/github.com/hyperledger/fabric-samples -xzf hyperledger-fabric-ca-darwin-amd64-1.5.0.tar.gz

拉取过程可能很慢,可以自己本地下载后上使用 scp上传到 ubuntu

2.3 拉取fabric所需的镜像

官方bootstrap.sh:

# 在hyperledger目录下新建bootstrap.sh
$ cd $GOPATH/src/github.com/hyperledger
$ touch bootstrap.sh
# 将官方脚本中拉取镜像全部复制进来
$ vim bootstrap.sh

注释后面两个if

fabric安装ubuntu18.04,区块链,ubuntu,fabric,docker,区块链
运行bootstrap.sh脚本:

$ chmod +x bootstrap.sh
$ ./bootstrap.sh

3 测试用例

3.1 启用fabric自带的网络测试来测试环境是否装好:

#进入测试用例路径
$ cd facric-samples/test-network
#启动测试
$ ./network.sh up

启动成功会创建两个组织节点和一个排序节点:
fabric安装ubuntu18.04,区块链,ubuntu,fabric,docker,区块链

注:使用 docker ps -a 查看容器是否启动,若是容器启动后秒退,说明fabric镜像没有拉取全。

3.2 创建channel

$ ./network.sh createChannel

fabric安装ubuntu18.04,区块链,ubuntu,fabric,docker,区块链

出现这个则说明创建成功。

3.3 关闭测试网络

$ ./network.sh down

4 设置环境变量

fabric-samples/bin 加入环境变量 方便使用。

#添加环境变量
$ vim ~/.bashrc
#在最后一行加入
$ export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$HOME/go/src/github.com/hyperledger/fabric-samples/bin
#使配置生效
$ source ~/.bashrc
#验证是否生效
$ fabric-ca-client version
#看是否有输出 若是没有则重启虚拟机试试

5 fabric explorer安装

使用 docker 镜像部署,前提是已经装好fabric 网络。

创建目录:

#进入指定目录
$ cd  go/src/github.com/hyperledger

$ mkdir explorer
$ cd explorer

拉取配置文件到目录下:

$ wget https://raw.githubusercontent.com/hyperledger/blockchain-explorer/main/examples/net1/config.json
$ wget https://raw.githubusercontent.com/hyperledger/blockchain-explorer/main/examples/net1/connection-profile/test-network.json -P connection-profile
$ wget https://raw.githubusercontent.com/hyperledger/blockchain-explorer/main/docker-compose.yaml

从结构网络复制整个加密工件目录(组织/)(例如/fabric-samples/test-network):

$ cp -r ../fabric-samples/test-network/organizations/ .

此时的目录结构:

docker-compose.yaml
config.json
connection-profile/test-network.json
organizations/ordererOrganizations/
organizations/peerOrganizations/

查看fabric网络的名称:

$ docker network ls

fabric安装ubuntu18.04,区块链,ubuntu,fabric,docker,区块链

网络名称为:fabric_test

编辑配置文件 docker-compose.yaml

$ vim docker-commpose.yaml
# SPDX-License-Identifier: Apache-2.0
version: '2.1'

volumes:
  pgdata:
  walletstore:

networks:
  mynetwork.com:
      external:             # 自己添加
        name: fabric_test   #此处为fabric 名称 要对应

services:

  explorerdb.mynetwork.com:    # 不修改
    image: hyperledger/explorer-db:latest
    container_name: explorerdb.mynetwork.com
    hostname: explorerdb.mynetwork.com
    environment:
      - DATABASE_DATABASE=fabricexplorer
      - DATABASE_USERNAME=hppoc
      - DATABASE_PASSWORD=password
    healthcheck:
      test: "pg_isready -h localhost -p 5432 -q -U postgres"
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - pgdata:/var/lib/postgresql/data
    networks:
      - mynetwork.com

  explorer.mynetwork.com:
    image: hyperledger/explorer:latest
    container_name: explorer.mynetwork.com
    hostname: explorer.mynetwork.com
    environment:
      - DATABASE_HOST=explorerdb.mynetwork.com
      - DATABASE_DATABASE=fabricexplorer
      - DATABASE_USERNAME=hppoc
      - DATABASE_PASSWD=password
      - LOG_LEVEL_APP=info
      - LOG_LEVEL_DB=info
      - LOG_LEVEL_CONSOLE=debug
      - LOG_CONSOLE_STDOUT=true
      - DISCOVERY_AS_LOCALHOST=false    #通过网桥网络将 Explorer 连接到结构网络时,需要设置为 禁用到 localhost 的主机名映射。
      - PORT=${PORT:-8080}  #浏览器端口
    volumes:          # 一下内容 照样修改
          - ./config.json:/opt/explorer/app/platform/fabric/config.json
          - ./connection-profile:/opt/explorer/app/platform/fabric/connection-profile
          - ./organizations:/tmp/crypto
          - walletstore:/opt/explorer/wallet
    ports:
      - ${PORT:-8080}:${PORT:-8080}
    depends_on:
      explorerdb.mynetwork.com:
        condition: service_healthy
    networks:
      - mynetwork.com

修改test-network.json 配置文件

{
        "name": "test-network",   
        "version": "1.0.0",
        "client": {
                "tlsEnable": true,
                "adminCredential": {    #浏览器登录时的账号和密码 可以修改为自己想要的
                        "id": "exploreradmin",
                        "password": "null"
                },
                "enableAuthentication": true,
                "organization": "Org1MSP",
                "connection": {
                        "timeout": {
                                "peer": {
                                        "endorser": "300"
                                },
                                "orderer": "300"
                        }
                }
        },
        "channels": {
                "mychannel": {
                        "peers": {
                                "peer0.org1.example.com": {}
                        }
                }
        },
        "organizations": {
                "Org1MSP": {
                        "mspid": "Org1MSP",
                        # 这部分一定要修改 否则会启动失败
                        "adminPrivateKey": {
                                # 原为 "path": "/tmp/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk"
                                "path": "/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/priv_sk"
                        },
                        "peers": ["peer0.org1.example.com"],
                        "signedCert": {
                                # 原为 "path": "/tmp/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem"
                                "path": "/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem"
                        }
                }
        },
        "peers": {
                "peer0.org1.example.com": {
                        "tlsCACerts": {
                                "path": "/tmp/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt"
                        },
                        "url": "grpcs://peer0.org1.example.com:7051"
                }
        }
}

在启动之前还需要在fabric的测试网络中创建通道,通道名称就用默认的 channel

启动容器服务:

$ docker-compose up -d

停止服务:

  1. 若要在不删除持久性数据的情况下停止服务,请运行以下命令:
$ docker-compose down
  1. docker-compose.yaml 中,为持久性数据(Postgres 数据和用户钱包)分配了两个命名卷。如果要清除这些命名卷,请运行以下命令:
$ docker-compose down -v

在浏览器输入ip:8080 就可访问fabric-explorer
fabric安装ubuntu18.04,区块链,ubuntu,fabric,docker,区块链
部分错误排除

# 查看container 是否在运行
$ docker ps -a  
# 查看容器输出日志
$ docker logs -f [container-name\ID]

出现钱包创建失败则重点查看test-network.json文件"adminPrivateKey""signedCert"path是否修改正确。
出现channel 连接失败则先创建channel 在启动explorer

ps:如有不正之处欢迎指出!!!文章来源地址https://www.toymoban.com/news/detail-785117.html

到了这里,关于ubuntu 18.04 搭建hyperledge-fabric 2.x网络和fabric-explorer的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu18.04搭建AirSim+ROS仿真环境

    AIRSIM在UBuntu 18.04上构建的官网文档 AIRSIM是依赖于UE4引擎实现的,因此在安装AIRSIM之前要安装UE4引擎。 在Ubuntu上安装UE4引擎需要从源文件进行编译,因此我们需要访问UE4的github仓库。但想要访问UE4的github仓库,我们就必须建立github与UE4许可的链接,否则直接访问UE4的github仓库时就

    2023年04月08日
    浏览(100)
  • Ubuntu18.04 docker kafka 本地测试环境搭建

    Kafka是一种分布式流处理平台,也是一个高吞吐量的分布式发布订阅消息系统。它由LinkedIn开发,并于2011年成为Apache软件基金会的顶级项目。 Kafka的设计目标是能够处理大规模的消息流,并提供持久性、高吞吐量和低延迟的特性。它的核心概念是发布-订阅模型,其中消息被组

    2024年02月15日
    浏览(68)
  • 从头搭建Android源码编译环境(Ubuntu 18.04 / 20.04 / 22.04)

    在新安装的Ubuntu上(版本20.04LTS),完成搭建Android源码编译环境步骤如下。 顺带说一句,当前用的比较多的Ubuntu是18.04和20.04,在实际项目中一直在用,可用性和稳定性都没问题。 最新的Ubuntu22.04版本,系统默认的二进制库变化比较大,编译Android源码有问题(实测过,没细研

    2024年02月06日
    浏览(161)
  • 在Ubuntu18.04中搭建基于QT的opencv环境

    前言 在看这篇文章之前,需要读者已经安装了qt环境如果还没有安装可以移步至这篇文章的后半断 链接: qt移植 获取cmake-gui sudo apt-get install cmake-gui 这一步主要是一会儿编译opencv的时候会用到 获取opencv的依赖环境 sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcod

    2024年01月17日
    浏览(47)
  • 如何在Ubuntu 18.04上安装PHP 7.4并搭建本地开发环境

    PHP是一种流行的服务器脚本语言,用于创建动态和交互式web页面。开始使用你选择的语言是学习编程的第一步。 本教程将指导您在Ubuntu上安装PHP 7.4,并通过命令行设置本地编程环境。您还将安装依赖管理器Composer,并通过运行脚本来测试您的安装。 要完成本教程,您需要安

    2024年02月11日
    浏览(71)
  • Linux系统 Ubuntu18.04安装的详细教程(提供18.04ubuntu镜像)

    镜像文件下载: 链接:https://pan.baidu.com/s/12bEdRBwO1YbLt23QKnrSrA 提取码:h7as 关于全名、用户名区别可先看第四部分 处理器和内核数量,根据需要配置就行。我是8核16线程,配置2,2。小白学习的话,配置低一点没关系。如果你只是为了学一些基础命令,配置成1,1应该也没问题

    2024年02月01日
    浏览(89)
  • Ubuntu18.04 升级Ubuntu20.04

    因项目环境需要,欲将Ubuntu18.04升级至Ubuntu20.04,参考网上其他小伙伴的方法,也遇到了一个问题,特此记录一下,希望能帮助其他有同样问题的小伙伴。 参考:第十五章 Ubuntu18.04LTS升级到20.04LTS 主要的步骤: 在执行“do-release-upgrade”时,遇到“Failed to connect to https://changel

    2024年02月02日
    浏览(59)
  • Ubuntu(18.04)换源

    主要参考Ubuntu(18.04)更换国内源方法及注意事项_muxi_712的博客-CSDN博客 为防止其删除博客,本文简单重新梳理一遍: 跳转: 查看: 备份: 替换: 这里使用清华源:打开https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/,选择对应的Ubuntu版本。当然也可以选择其他源比如阿里源,中科大源

    2024年02月04日
    浏览(49)
  • ubuntu 18.04网络问题

    安装好系统之后,检查gcc和make是否已经安装 如果未安装,则安装gcc和make 安装openssh-server 安装网络工具和防火墙 开通端口 准备设置静态IP时,发现没有有线网卡,无法正常插网线进行联网。 执行ipconfig 查看网卡配置是否有 ethxx 或者 enxx ,也没有,则说明有线网卡的驱动需要

    2024年01月25日
    浏览(46)
  • Ubuntu 18.04分区方案

    先分逻辑分区后面在分主分区 【 不需要全部设为主分区 ,只需要第一个设为主分区;各个分区大小根据情况自己定义】 目录 分区 建议大小 格式 描述 是否可选 / 主分区 100G ext4 根目录,用于存放系统,相当于c 盘 安装系统和软件 必选 /home 逻辑分区 尽量大 ext4 相当于我的

    2024年02月04日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包