1. 程式人生 > >fabric多機部署

fabric多機部署

fabric自定義多機叢集服務架構搭建

基於官方架構,下面自己手動搭建一個1 orderer + 1 peer 架構的fabric網路

orderer.example.com 192.168.88.240
peer0.demo.example.com 192.168.88.170

1、orderer節點伺服器配置

(1)在fabric目錄中新建一個自定義資料夾orderer:

[email protected]:~/go/src/github.com/hyperledger/fabric/examples/orderer# pwd
/root/go/src/github.com/hyperledger/fabric/examples/orderer

(2)準備fabric提供的二進位制編譯工具:

Fabric平臺特定使用的二進位制檔案cryptogen,configtxgen,configtxlator, 以及peer。

我們可以通過configtxgen和cryptogen手動生成證書/金鑰以及各項配置檔案。也可通過e2c_cli例子中的generateArtifacts.sh自動生成,由於我們需要自定義各節點的域名,及聯盟鏈的統一域名,下面手動生成。

通過generateArtifacts.sh指令碼,找到fabric目錄release/linux-amd64/bin中的二進位制檔案:

[email protected]
:~/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin# pwd /root/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin [email protected]:~/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin# ll total 80044 drwxr-xr-x 2 root root 4096 Jul 5 23:57 ./ drwxr-xr-x 3 root root 4096 Jul 5 23:55 ../ -rwxr-xr-x 1 root root 15170657 Jul 5 23:56 configtxgen* -rwxr-xr-x 1 root root 16334265 Jul 5 23:56 configtxlator* -rwxr-xr-x 1 root root 7452967 Jul 5 23:56 cryptogen* -rwxr-xr-x 1 root root 441 Jul 5 23:57 get-byfn.sh* -rwxr-xr-x 1 root root 757 Jul 5 23:57 get-docker-images.sh* -rwxr-xr-x 1 root root 19966961 Jul 5 23:57 orderer* -rwxr-xr-x 1 root root 23016352 Jul 5 23:57 peer*

將bin目錄複製到剛剛新建的資料夾目錄中:

[email protected]:~/go/src/github.com/hyperledger/fabric/examples/orderer# ll
total 20
drwxr-xr-x 4 root root 4096 Aug  2 00:05 ./
drwxr-xr-x 9 root root 4096 Aug  1 01:33 ../
drwxr-xr-x 2 root root 4096 Aug  2 00:05 base/
drwxr-xr-x 4 root root 4096 Aug  2 00:10 bin/

(3)生成組織證書與私鑰

在bin目錄中新建crypto-config.yaml檔案,可參照e2e_cli例子中的crypto-config.yaml。

OrdererOrgs:
  - Name: Orderer
    Domain: example.com
    Specs:
      - Hostname: orderer

PeerOrgs:
  - Name: Demo
    Domain: demo.example.com
    Template:
     Count: 1
    Users:
     Count: 1

檔案定義了orderer節點以及peer節點的域名及數量等資訊。我們組建一個名為example的聯盟,且我們自己的組織名稱為Demo,我們會建立一個Orderer排序服務節點,同時還會建立一個peer節點。

接下來,使用crytogen工具給我們不同的網路實體(peer/client)生成加密證書(X509 certs)。這些證書代表了身份,當我們的網路實體在進行通訊以及transact的時候進行簽名與驗證身份。

crypto-config.yaml配置檔案將被crytogen工具呼叫,檔案中包括了網路拓撲,同時允許我們給organization(Demo)以及component(隸屬於organization的元件)生成一個證書與私鑰的集合。每一個organization(Demo)被分配一個唯一的根證書(綁定了隸屬於organization(Demo)的具體的component,包括peers與orderers)。Hyperledger Fabric的transaction與通訊均被節點的私鑰(keystore)進行簽名,截止被公鑰進行驗證(signcerts)。 這個配置檔案中有一個計數(count)的變數,我們使用其定義organization(Demo)中peer的數量,在本例中我們定義Demo組織有一個peer。

在bin目錄下執行命令:

./cryptogen generate --config=./crypto-config.yaml

執行成功後,bin目錄下生成crypto-config資料夾,其中會有ordererOrganizations和peerOrganizations兩個目錄:

[email protected]:~/go/src/github.com/hyperledger/fabric/examples/orderer/bin# ll crypto-config
total 16
drwxr-xr-x 4 root root 4096 Aug  1 18:06 ./
drwxr-xr-x 4 root root 4096 Aug  2 01:34 ../
drwxr-xr-x 3 root root 4096 Aug  1 18:06 ordererOrganizations/
drwxr-xr-x 3 root root 4096 Aug  1 18:06 peerOrganizations/

(4)定義configtx.yaml檔案

使用configtxgen工具來執行configtx.yaml檔案建立orderer Genesis block,在此之前需要為configtxgen工具指定configtx.yaml檔案的路徑,我們需要設定一個環境變數,進入bin目錄,執行如下命令:

export FABRIC_CFG_PATH=$PWD

在bin目錄下建立channel-artifacts目錄,用來存放各種渠道的原始檔。

新建configtx.yaml檔案,可參照e2e_cli中示例檔案。

Profiles:

    ExampleOrdererGenesis:
        Orderer:
            <<: *OrdererExample
            Organizations:
                - *OrdererDemo
        Consortiums:
            ExampleConsortium:
                Organizations:
                    - *Demo
    ExampleChannel:
        Consortium: ExampleConsortium
        Application:
            <<: *ApplicationExample
            Organizations:
                - *Demo
Organizations:

    - &OrdererDemo
        Name: OrdererDemo
        ID: OrdererMSP
        MSPDir: crypto-config/ordererOrganizations/example.com/msp

    - &Demo
        Name: DemoMSP
        ID: DemoMSP
        MSPDir: crypto-config/peerOrganizations/demo.example.com/msp
        AnchorPeers:
            - Host: peer0.demo.example.com
              Port: 7051

Orderer: &OrdererExample

    OrdererType: solo

    Addresses:
        - orderer.example.com:7050

    BatchTimeout: 2s
    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB

    Kafka:
        Brokers:
            - 127.0.0.1:9092
    Organizations:

Application: &ApplicationExample

    Organizations:

在該檔案中,我們定義了組織名稱peer0.demo.anti-moth.com、組織排序服務名稱、組織渠道名稱、應用渠道名稱、應用聯盟名稱等。

(5)生成初始區塊

接下來,通過configtxgen工具生成初始區塊genesis.block:

./configtxgen -profile ExampleOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

命令執行完成後,在bin目錄下可見genesis.block檔案。

(6)生成channel原始檔

生成ID為examplechannel的通道檔案:

./configtxgen -profile ExampleChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID examplechannel

(7)生成channel下節點集合認證檔案

為examplechannel通道生成ID為DemoMSP的認證檔案DEMOMSPanchors.tx

./configtxgen -profile ExampleChannel -outputAnchorPeersUpdate ./channel-artifacts/DEMOMSPanchors.tx -channelID examplechannel -asOrg DemoMSP

完成以上步驟後,bin目錄下將生成orderer節點所需的所有配置檔案:

channel-artifacts資料夾下檔案:

[email protected]:~/go/src/github.com/hyperledger/fabric/examples/orderer/bin# ll channel-artifacts/
total 24
drwxr-xr-x 2 root root 4096 Aug  1 18:25 ./
drwxr-xr-x 4 root root 4096 Aug  2 01:46 ../
-rw-r--r-- 1 root root  354 Aug  1 18:13 channel.tx
-rw-r--r-- 1 root root  263 Aug  1 18:25 DEMOMSPanchors.tx
-rw-r--r-- 1 root root 6353 Aug  1 18:10 genesis.block

2、orderer節點啟動

在orderer目錄下建立一個docker-compose-orderer.yaml檔案:

version: '2'

services:

  orderer.example.com:
    extends:
      file:   base/docker-compose-base.yaml
      service: orderer.example.com
    container_name: orderer.example.com

這裡有一個協助啟動檔案,是位於base目錄下的docker-compose-base.yaml檔案,這個檔案的引數配置如下:

version: '2'

services:

  orderer.example.com:
    container_name: orderer.example.com
    image: hyperledger/fabric-orderer
    environment:
      - ORDERER_GENERAL_LOGLEVEL=debug
      - 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=true
      - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
      - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
      - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: orderer
    volumes:
        - ../bin/channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
        - ../bin/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp
        - ../bin/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls
    ports:
      - 7050:7050

隨後在orderer目錄下執行啟動命令:

docker-compose -f docker-compose-orderer.yaml up -d

檢視docker容器啟動情況:

[email protected]:~/go/src/github.com/hyperledger/fabric/examples/orderer# docker ps
CONTAINER ID        IMAGE                        COMMAND             CREATED             STATUS              PORTS                    NAMES
ca17df655b68        hyperledger/fabric-orderer   "orderer"           8 hours ago         Up 8 hours          0.0.0.0:7050->7050/tcp   orderer.example.com

orderer節點啟動成功。

3、peer節點配置及啟動

通過scp將orderer節點在bin目錄下的生成的channel-artifacts/目錄和crypto-config/拷貝至peer節點的新建org/bin目錄中。

新建docker-compose-org.yaml檔案:

version: '2'

services:

  peer0.demo.example.com:
    container_name: peer0.demo.example.com
    extends:
      file:  base/docker-compose-base.yaml
      service: peer0.demo.example.com
    extra_hosts:
      - "orderer.example.com:192.168.88.240"

  cli:
    container_name: cli
    image: hyperledger/fabric-tools
    tty: true
    environment:
      - GOPATH=/opt/gopath
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_ID=cli
      - CORE_PEER_ADDRESS=peer0.demo.example.com:7051
      - CORE_PEER_LOCALMSPID=DemoMSP
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/demo.example.com/peers/peer0.demo.example.com/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/demo.example.com/peers/peer0.demo.example.com/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/demo.example.com/peers/peer0.demo.example.com/tls/ca.crt
      - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/demo.example.com/users/[email protected]/msp
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    volumes:
        - /var/run/:/host/var/run/
        - ../chaincode/go/:/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go
        - ../bin/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
        - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/
        - ../bin/channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts
    depends_on:
      - peer0.demo.example.com
    extra_hosts:
     - "orderer.example.com:192.168.88.240"
     - "peer0.demo.example.com:192.168.88.170"

這裡與orderer不同,有兩個協助啟動檔案,分別是位於base目錄下的docker-compose-base.yaml和peer-base.yaml檔案,這兩個檔案的引數配置分別如下:

docker-compose-base.yaml:

version: '2'

services:

  peer0.demo.example.com:
    container_name: peer0.demo.example.com
    extends:
      file: peer-base.yaml
      service: peer-base
    environment:
      - CORE_PEER_ID=peer0.demo.example.com
      - CORE_PEER_ADDRESS=peer0.demo.example.com:7051
      - CORE_PEER_CHAINCODELISTENADDRESS=peer0.demo.example.com:7052
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.demo.example.com:7051
      - CORE_PEER_LOCALMSPID=DemoMSP
    volumes:
        - /var/run/:/host/var/run/
        - ../bin/crypto-config/peerOrganizations/demo.example.com/peers/peer0.demo.example.com/msp:/etc/hyperledger/fabric/msp
        - ../bin/crypto-config/peerOrganizations/demo.example.com/peers/peer0.demo.example.com/tls:/etc/hyperledger/fabric/tls
    ports:
      - 7051:7051
      - 7052:7052
      - 7053:7053

peer-base.yaml:

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=e2ecli_default
      #- CORE_LOGGING_LEVEL=ERROR
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start

啟動peer節點:

docker-compose -f docker-compose-org.yaml up -d

檢視docker容器,啟動了peer0.demo.anti-moth.com 和 cli 兩個容器

[email protected]:~/go/src/github.com/hyperledger/fabric/examples/org# docker ps
CONTAINER ID        IMAGE                      COMMAND             CREATED             STATUS              PORTS                              NAMES
74d16920ef36        hyperledger/fabric-tools   "/bin/bash"         2 hours ago         Up 2 hours                                             cli
a4cce3b3b78f        hyperledger/fabric-peer    "peer node start"   2 hours ago         Up 2 hours          0.0.0.0:7051-7053->7051-7053/tcp    peer0.demo.example.com

peer節點啟動成功。

4、建立並加入channel

執行生成channel id檔案命令:

peer channel create -o orderer.example.com:7050 -c examplechannel -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

返回資訊:

2018-08-02 11:24:31.315 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2018-08-02 11:24:31.315 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2018-08-02 11:24:31.422 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized
2018-08-02 11:24:31.437 UTC [msp] GetLocalMSP -> DEBU 004 Returning existing local MSP
2018-08-02 11:24:31.437 UTC [msp] GetDefaultSigningIdentity -> DEBU 005 Obtaining default signing identity
2018-08-02 11:24:31.437 UTC [msp] GetLocalMSP -> DEBU 006 Returning existing local MSP
2018-08-02 11:24:31.437 UTC [msp] GetDefaultSigningIdentity -> DEBU 007 Obtaining default signing identity
2018-08-02 11:24:31.437 UTC [msp/identity] Sign -> DEBU 008 Sign: plaintext: 0A8C060A0744656D6F4D53501280062D...78616D706C65436F6E736F727469756D 
2018-08-02 11:24:31.455 UTC [msp/identity] Sign -> DEBU 009 Sign: digest: 503C8C2271DCA7C0D96B3D8A263FC5887BE8342DFE4BAD8F0B0E0F7328B7BC9C 
2018-08-02 11:24:31.458 UTC [msp] GetLocalMSP -> DEBU 00a Returning existing local MSP
2018-08-02 11:24:31.458 UTC [msp] GetDefaultSigningIdentity -> DEBU 00b Obtaining default signing identity
2018-08-02 11:24:31.459 UTC [msp] GetLocalMSP -> DEBU 00c Returning existing local MSP
2018-08-02 11:24:31.459 UTC [msp] GetDefaultSigningIdentity -> DEBU 00d Obtaining default signing identity
2018-08-02 11:24:31.459 UTC [msp/identity] Sign -> DEBU 00e Sign: plaintext: 0AC8060A1A08021A0608EFD38BDB0522...24DCCE6A232BC8B452A5C33B378D3374 
2018-08-02 11:24:31.459 UTC [msp/identity] Sign -> DEBU 00f Sign: digest: 5C26F8289B08052E39BAD16527F70FB8B1CF08096119DA2842145E64D4E57281 
2018-08-02 11:24:31.560 UTC [msp] GetLocalMSP -> DEBU 010 Returning existing local MSP
2018-08-02 11:24:31.561 UTC [msp] GetDefaultSigningIdentity -> DEBU 011 Obtaining default signing identity
2018-08-02 11:24:31.561 UTC [msp] GetLocalMSP -> DEBU 012 Returning existing local MSP
2018-08-02 11:24:31.561 UTC [msp] GetDefaultSigningIdentity -> DEBU 013 Obtaining default signing identity
2018-08-02 11:24:31.561 UTC [msp/identity] Sign -> DEBU 014 Sign: plaintext: 0AC8060A1A08021A0608EFD38BDB0522...752F272E5E5112080A021A0012021A00 
2018-08-02 11:24:31.561 UTC [msp/identity] Sign -> DEBU 015 Sign: digest: 654F1805FC97706ABEDB2BDFE36C063B34EE6ED5074E3457DBF850BFCEEBE4BA 
2018-08-02 11:24:31.565 UTC [channelCmd] readBlock -> DEBU 016 Got status:*orderer.DeliverResponse_Status 
2018-08-02 11:24:31.566 UTC [msp] GetLocalMSP -> DEBU 017 Returning existing local MSP
2018-08-02 11:24:31.566 UTC [msp] GetDefaultSigningIdentity -> DEBU 018 Obtaining default signing identity
2018-08-02 11:24:31.594 UTC [channelCmd] InitCmdFactory -> INFO 019 Endorser and orderer connections initialized
2018-08-02 11:24:31.795 UTC [msp] GetLocalMSP -> DEBU 01a Returning existing local MSP
2018-08-02 11:24:31.795 UTC [msp] GetDefaultSigningIdentity -> DEBU 01b Obtaining default signing identity
2018-08-02 11:24:31.796 UTC [msp] GetLocalMSP -> DEBU 01c Returning existing local MSP
2018-08-02 11:24:31.796 UTC [msp] GetDefaultSigningIdentity -> DEBU 01d Obtaining default signing identity
2018-08-02 11:24:31.796 UTC [msp/identity] Sign -> DEBU 01e Sign: plaintext: 0AC8060A1A08021A0608EFD38BDB0522...508F85B98AEB12080A021A0012021A00 
2018-08-02 11:24:31.796 UTC [msp/identity] Sign -> DEBU 01f Sign: digest: 5B26A52D5BD9B29EC78C2053594457EB8A5C625BEDDEC383EC9CBF4461AD61F3 
2018-08-02 11:24:31.856 UTC [channelCmd] readBlock -> DEBU 020 Received block:0 
2018-08-02 11:24:31.856 UTC [main] main -> INFO 021 Exiting.....

cli目錄下生成examplechannel.block檔案。

peer節點加入channel:

[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel join -b examplechannel.block
2018-08-02 11:28:01.121 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2018-08-02 11:28:01.121 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2018-08-02 11:28:01.183 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized
2018-08-02 11:28:01.226 UTC [msp/identity] Sign -> DEBU 004 Sign: plaintext: 0A89070A5B08011A0B08C1D58BDB0510...04E8761D1DAA1A080A000A000A000A00 
2018-08-02 11:28:01.226 UTC [msp/identity] Sign -> DEBU 005 Sign: digest: 4D269EB76EAB8AF5D08DC257DE1923ADDB9AD3F5FAC97A6CE6A67A11E637AB4E 
2018-08-02 11:28:01.544 UTC [channelCmd] executeJoin -> INFO 006 Peer joined the channel!
2018-08-02 11:28:01.544 UTC [main] main -> INFO 007 Exiting.....

相關推薦

fabric部署

fabric自定義多機叢集服務架構搭建 基於官方架構,下面自己手動搭建一個1 orderer + 1 peer 架構的fabric網路 orderer.example.com 192.168.88.240 peer0.demo.example.com

CentOS7 - Hyperledger Fabric1.1部署中切換預設生成的證書為Fabric-CA

根據蒐集的資料安裝測試並在安裝測試過程中整理的文件,如有不足希望不吝賜教。  目錄 一、前提 二、安裝部署Fabric-CA 1.下載安裝 2.部署 三。生成證書 1.生成fabric-ca admin證書 2建立聯盟. 3.為每個組織準備msp

Hyperledger Fabric 1.0 快速搭建 -------- 部署 核心共識節點Orderer

前言 在這裡我推薦兩位大神的部落格,可以參考或者直接跟著這兩位大神學習,我是閱讀這兩位大神的部落格和《深度探索區塊鏈Hyperledger技術與應用》一書部署的 《深度探索區塊鏈Hyperledger技術與應用》作者:張增駿、董寧、朱軒彤、陳劍雄  著。 上一篇

hyperledger fabric--1.1--kafka部署

一、環境搭建 各個主機的配置情況: 每臺主機都需要先進行單機的區塊鏈部署,所以以下步驟適用於所有主機。 1、Docker-CE 安裝 1)安裝docker-ce step 1: 安裝必要的一些系統工具 #sudo yum install -y yum-

Hyperledger Fabric基於kafka部署

各主機角色和安裝的軟體 主機編號 A B C D IP 45.32.103.254 149.28.146.218 207.148.75.101 66.42.57.57 角色 orderer0.exampl

在阿里雲進行Fabric部署需要注意的幾個坑

深藍大神的《Fabric 1.0的多機部署》等部落格給初學者很多入門的指導。從這篇部落格中可以看到深藍所用的5個節點時同一區域網下的幾個,和利用阿里雲伺服器進行多機部署有幾個地方需要注意。1. Fabric原始碼的版本不同會導致後面各種報錯(例如orderer無法啟動),直接

區塊鏈100講:Hyperledger Fabric 區塊鏈部署

區塊鏈技術可以應用在很多領域,未來最有可能先在這些領域落地。 區塊鏈技術是利用塊鏈式資料結構來驗證與儲存資料、利用分散式節點共識演算法來生成和更新資料、利用密碼學的方式保證資料傳輸和訪問的安全、利用由自動化指令碼程式碼組成的智慧合約來程式設計和操作資料的一

Hyperledger fabric應用的部署

前面關於fabric部署的介紹都是基於單機環境下的,實際生產環境中一般會根據應用場景將節點分開部署在多臺物理機上,面臨的難題主要是不同主機間的節點如何通過網路進行通訊。 前言 這裡仍然以balance-transfer v1.0為例,嘗試將兩個組織分佈到內網中

Hyperledger Fabric 1.0 快速搭建 -------- 部署準備篇

前言 在這裡我推薦兩位大神的部落格,可以參考或者直接跟著這兩位大神學習,我是閱讀這兩位大神的部落格和《深度探索區塊鏈Hyperledger技術與應用》一書部署的 《深度探索區塊鏈Hyperledger技術與應用》作者:張增駿、董寧、朱軒彤、陳劍雄  著。 在前兩

Fabric環境搭建,測試通過

超級賬本網路多機聯網測試 A demo to setup hyperledger fabric network with mulitple machines/servers. 前提條件 Installed Docker (version >= 17.06.2) Installed Doc

部署之使用NTPD服務平滑同步時間

本文已在本人部落格https://www.nsxsg.com/archives/82首發 文章目錄 多機部署之使用NTPD服務平滑同步時間 多機部署之使用NTPD服務平滑同步時間 多機部署中時間的同步是很重要的,當然有人說了搞毛啊

部署之NFS的安裝與配置

本文已在本人部落格https://www.nsxsg.com/archives/90首發 文章目錄 多機部署之NFS的安裝與配置 多機部署之NFS的安裝與配置 NFS即網路檔案系統,說的通俗一點就是網路共享檔案。它能夠讓不同的伺服

我對hyperledger fabric1.1.0的執著(五):solo部署

預設已安裝好fabric環境。 我這裡用兩臺伺服器,一個作為orderer節點(192.168.2.238),一個作為peer節點(192.168.2.118) 1、在orderer伺服器進入fabric原始碼目錄:cd /opt/gopath/src/github.com/hyp

hyperledger部署

一、環境配置 5臺伺服器全部是centos7.4 orderer 47.75.123.155 orderer.example.com orderer peer0.org1 47.52.202.124   1G記憶體 peer1.org1 47.75.184.117

redission-tomcat:快速實現從單機部署部署

原文地址: http://blog.jboost.cn/2019/06/29/session-redis.html   一些專案初期出於簡單快速,都是做單機開發與部署,但是隨著業務的擴充套件或對可用性要求的提高,單機環境已不滿足需求。單機部署往多機部署切換,其中可能存在的一個重要環節就

部署之定時任務完整方案

1.場景描述 老專案需要多機部署,專案中有幾十個定時任務,一旦多機部署,定時任務就會重複執行,固定ip與錯開時間方案都存在較大弊端,最終採用的方案是:AOP+排他鎖的方式,軟體老王已驗證通過,介紹下,有需要的朋友可以參考下。 2.解決方案 軟體老王基本方案是採用:AOP+排他鎖的方式。 (1)目前老專案有幾十

實戰Caliper測試Fabric環境

成功跑完caliper自帶例子之後,本人嘗試使用caliper來測試自己部署的多機fabric環境。 被測fabric網路拓撲 1orderer、3peer、kafka共識、無ca、native啟動(非docker)。 IP 節點

Hyperledger Fabric 1.0 從零開始(八)——Fabric節點叢集生產部署

6.1、平臺特定使用的二進位制檔案配置 該方案與Hyperledger Fabric 1.0 從零開始(五)——執行測試e2e類似,根據企業需要,可以控制各節點的域名,及聯盟鏈的統一域名。可以指定單獨節點的訪問,生成指定的公私鑰、證書等檔案。具體的引數配置可以參考generateArtifacts.sh檔案,

超級賬本HyperLedger的Fabric“全手動”、“節點”部署教程,帶視訊演示

說明 雖然通過Building Your First Network中的docker-compose檔案可以直接啟動一個all-in-one的fabric。 但這種方式隱藏了太多的細節,只能讓人有個模糊的認識,對生產環境中部署方式、多伺服器部署,依然不清不楚, 對各

如何在同一臺部署個tomcat服務

背景:往往不知情的同學在同一臺機器上部署多個tomcat會發現第二個tomcat啟動會報錯。而有些同學會想到可能是埠重複,然而,在server.xml改了埠還是發現不行。其實要想實現同一臺機器部署多個tomcat,需要修改配置的地方不止一個!第一個地方:找到bin/start