天天看點

建立自己的區塊鍊網絡 二

目錄

    • 前言
    • 系列文章直通車
    • 一、建立start.sh檔案
      • 1、在deploy下建立start.sh檔案
    • 二、編輯start.sh檔案
      • 1、清理項目環境
      • 2、生成組織基本結構
    • 三、運作start.sh
      • 第一次運作
      • 賦予權限
      • 第二次運作
    • 四、修改base/peer-base.yaml
    • 結語

前言

之前我們建立了項目目錄結構,複制了必要的檔案,修改了cropto-config.yaml檔案,那麼接下來我們還需要修改其它檔案。那麼廢話不多說,教程開始。

系列文章直通車

名稱 連結
建立自己的區塊鍊網絡 一 點選此處
建立自己的區塊鍊網絡 二 點選此處
建立自己的區塊鍊網絡 三 點選此處
建立自己的區塊鍊網絡 四 點選此處
建立自己的區塊鍊網絡 五 點選此處

一、建立start.sh檔案

我們需要一個shell腳本來幫我們啟動網絡,而無需自己一次次輸入指令。

1、在deploy下建立start.sh檔案

請確定在這個項目的deploy目錄下,切換目錄就不說了

touch start.sh
#使用這個指令來建立檔案
           

二、編輯start.sh檔案

我們編輯檔案就不适用Linux的vim指令了,我們在goland裡面編寫。編輯完的内容如下:

1、清理項目環境

#!/bin/bash

echo "1.清理項目環境"
#這一步是用來清除項目建立的檔案防止再次啟動網絡出錯
mkdir -p config
mkdir -p crypto-config
rm -rf ./config/*
rm -rf ./crypto-config/*
           

2、生成組織基本結構

echo "2.生成組織的基本結構"
cryptogen generate --config=./crypto-config.yaml
           

三、運作start.sh

接下來我們切換至deploy目錄下

第一次運作

./start.sh
           
建立自己的區塊鍊網絡 二

不出意外你們肯定是這種情況,搭建可以看到start.sh顔色是灰色的這就代表他沒有運作的權限

賦予權限

chmod 777 *.sh
           
建立自己的區塊鍊網絡 二

現在顔色就變了,就可以運作了

第二次運作

./start.sh
           
建立自己的區塊鍊網絡 二

運作成功,成功生成組織的基本結構

四、修改base/peer-base.yaml

現在我們需要修改peer-base.yaml檔案,大家可以先修改檔案在編寫指令,在執行腳本,這樣錯誤會少一點,我這裡就一步步來。

大家用goland打開檔案一定是報錯的

建立自己的區塊鍊網絡 二

這是因為我們沒有這個環境變量,不用管他直接删除就好了

建立自己的區塊鍊網絡 二

這樣就沒有報錯了,但是會不會影響我們使用呢?這個放心不會影響我們的使用。

這裡還有幾個注意的點:

這個檔案裡面定義了一些加密的内容我們現在不需要加密,是以我們把他删除掉

建立自己的區塊鍊網絡 二

看見TLS的如果為true就把他改為false

如果是路徑的話就把他删除掉是不是很簡單。

最後修改完成後是這個樣紫的

# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#

version: '2'

services:
  peer-base:
    image: hyperledger/fabric-peer
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      # the following setting starts chaincode containers on the same
      # bridge network as the peers
      # https://docs.docker.com/compose/networking/
      # - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_byfn
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=deploy_byfn
      #在此處修改
      - FABRIC_LOGGING_SPEC=INFO
      #- FABRIC_LOGGING_SPEC=DEBUG
      - CORE_PEER_TLS_ENABLED=false
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_PROFILE_ENABLED=true
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start

  orderer-base:
    image: hyperledger/fabric-orderer
    environment:
      - FABRIC_LOGGING_SPEC=INFO
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
      # enabled TLS
      - ORDERER_GENERAL_TLS_ENABLED=false
      - ORDERER_KAFKA_VERBOSE=false
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: orderer
           

哦,對了這裡還有一個注意的點,在environment下面的CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE這個變量裡面我們需要把${COMPOSE_PROJECT_NAME} 改為deploy及我們複制byfn.sh檔案的目錄。

結語

第二篇就這樣結束了,下次再見。寫blog雖然很累有時候也沒有時間寫,但我會堅持下次,希望大家多多支援。第三篇很快就會來了。

建立自己的區塊鍊網絡 二

繼續閱讀