使用旧数据还原结构网络时,获得权限被拒绝错误

问题描述 投票:0回答:1

我正在尝试用fabric-network恢复old blockchain data,同样,我按照以下步骤操作。

备份过程

1. Stopped docker swarm network.

2. created a directory `bchain_backup` and under this directory I have created sub-directories for every node like orderer1, orderer2 and so on.

3. then I copied the data from container to `bchain_backup` directory
   --> "docker cp container_name:/var/hyperledger/production bchain_backup/orderer1
   --> executed above step for every node

恢复过程

 1. copied all the certs and channel-artifacts 

 2. mapped '/bchain_backup/orderer1/production:/var/hyperledger/production' in compose-file.

 3. performed step 2 for every node.

[当我尝试启动网络时,我遇到了以下错误:

带有订购者节点

紧急:打开leveldb时出错:打开/ var / hyperledger / production / orderer / index / LOCK:权限被拒绝

具有对等节点

紧急:打开leveldb时出错:打开/ var / hyperledger / production / ledgersData / ledgerProvider / LOCK:权限被拒绝

使用ouchDB

在GCP Ubuntu 18.04实例上使用Docker-swarm

docker-orderer1.yaml文件

version: '3.7'

volumes:
  orderer1.example.com:

# set external: true and now network name is "networks.test-network.name" instead of "networks.test-network.external.name"
networks:
  testchain-network:
    external: true
    name: testchain-network

services:

  orderer1:
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
      placement:
        constraints:
          - node.hostname == gcloud1
      resources:
        limits:
          cpus: '0.50'
          memory: 1000M
        reservations:
          cpus: '0.25'
          memory: 50M

    hostname: orderer1.example.com
    image: hyperledger/fabric-orderer:1.4.4
    user: "${UID}:${GID}"
    #healthcheck:
    #testchain: ["CMD","curl","-f","http://orderer1.example.com:4443/"]
    #interval: 1m30s
    #timeout: 10s
    #retries: 3
    #start_period: 1m
    environment:
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=testchain-network
      - ORDERER_HOST=orderer1.example.com
      - ORDERER_GENERAL_LOGLEVEL=info
      - FABRIC_LOGGING_SPEC=warning
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_LISTENPORT=7050
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
      - ORDERER_GENERAL_GENESISPROFILE=OrdererOrg
      - CONFIGTX_ORDERER_ADDRESSES=[127.0.0.1:7050]
      - ORDERER_OPERATIONS_LISTENADDRESS=0.0.0.0:4443
        # 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]
      #- ORDERER_KAFKA_TOPIC_REPLICATIONFACTOR=1
      #- ORDERER_KAFKA_VERBOSE=true
      - ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/var/hyperledger/orderer/tls/server.crt
      - ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/var/hyperledger/orderer/tls/server.key
      - ORDERER_GENERAL_CLUSTER_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
      - CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
      - CORE_CHAINCODE_LOGGING_SHIM=DEBUG
      - ORDERER_TLS_CLIENTROOTCAS_FILES=/var/hyperledger/users/[email protected]/tls/ca.crt
      - ORDERER_TLS_CLIENTCERT_FILE=/var/hyperledger/users/[email protected]/tls/client.crt
      - ORDERER_TLS_CLIENTKEY_FILE=/var/hyperledger/users/[email protected]/tls/client.key
      - GODEBUG=netdns=go

    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: orderer
    volumes:
      - /home/delta/GoWorkspace/src/github.com/testchain/bchain_network/channel-artifacts/:/var/hyperledger/configs:ro
      - /home/delta/GoWorkspace/src/github.com/testchain/bchain_network/channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block:ro
      - /home/delta/GoWorkspace/src/github.com/testchain/bchain_network/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp:/var/hyperledger/orderer/msp:ro
      - /home/delta/GoWorkspace/src/github.com/testchain/bchain_network/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/:/var/hyperledger/orderer/tls:ro
      - /home/delta/GoWorkspace/src/github.com/testchain/bchain_network/crypto-config/ordererOrganizations/example.com/users:/var/hyperledger/users:ro
      - /home/delta/GoWorkspace/src/github.com/testchain/backup_blockchain/orderer1/production/orderer:/var/hyperledger/production/orderer

    ports:
      - published: 7050
        target: 7050
        #        mode: host
            #- 7050:7050
      - published: 4443
        target: 4443
        #        mode: host

    networks:
      testchain-network:
        aliases:
          - orderer1.example.com

docker-peer0-org1.yaml

version: '3.7'

volumes:
  peer0.org1.example.com:

networks:
  testchain-network:
    external: true
    name: testchain-network

services:
  org1peer0couchdb:
    hostname: couchdb.peer0.org1.example.com
    image: hyperledger/fabric-couchdb:0.4.18
    user: "${UID}:${GID}"
    environment:
      - COUCHDB_USER=couchdb
      - COUCHDB_PASSWORD=couchdb123
    deploy:
      mode: replicated
      replicas: 1
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
      placement:
        constraints:
           - node.hostname == gcloud1
    ports:
      - published: 5984
        target: 5984
        #        mode: host

    networks:
      testchain-network:
        aliases:
          - couchdb.peer0.org1.example.com

  org1peer0:
    hostname: peer0.org1.example.com
    image: hyperledger/fabric-peer:1.4.4
    user: "${UID}:${GID}"
    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=testchain-network
      - CORE_VM_DOCKER_ATTACHSTDOUT=true
      - CORE_PEER_ID=peer0.org1.example.com
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_LISTENADDRESS=0.0.0.0:7051
      - CORE_PEER_CHAINCODEADDRESS=peer0.org1.example.com:7052
      - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
      - CORE_CHAINCODE_BUILDER=hyperledger/fabric-ccenv:1.4.4
      - CORE_CHAINCODE_GOLANG_RUNTIME=hyperledger/fabric-baseos:0.4.18
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:8051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
      - FABRIC_LOGGING_SPEC=info
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_ADDRESSAUTODETECT=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
      - CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
      - CORE_CHAINCODE_LOGGING_SHIM=DEBUG
      - CORE_LOGGING_CAUTHDSL=warning
      - CORE_LOGGING_GOSSIP=warning
      - CORE_LOGGING_LEDGER=info
      - CORE_LOGGING_MSP=warning
      - CORE_LOGGING_POLICIES=warning
      - CORE_LOGGING_GRPC=DEBUG
      - CORE_OPERATIONS_LISTENADDRESS=0.0.0.0:7443
      # Client certs
      - CORE_PEER_TLS_CLIENTROOTCAS_FILES=/var/hyperledger/users/[email protected]/tls/ca.crt
      - CORE_PEER_TLS_CLIENTCERT_FILE=/var/hyperledger/users/[email protected]/tls/client.crt
      - CORE_PEER_TLS_CLIENTKEY_FILE=/var/hyperledger/users/[email protected]/tls/client.key

      # CouchDB
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=couchdb
      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=couchdb123
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb.peer0.org1.example.com:5984
      - GODEBUG=netdns=go

    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
      - /var/run/:/host/var/run/:rw
      - /home/delta/GoWorkspace/src/github.com/testchain/bchain_network/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp:ro
      - /home/delta/GoWorkspace/src/github.com/testchain/bchain_network/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls:ro
      - /home/delta/GoWorkspace/src/github.com/testchain/bchain_network/crypto-config/peerOrganizations/org1.example.com/users:/var/hyperledger/users:ro
      - /home/delta/GoWorkspace/src/github.com/testchain/backup_blockchain/peer0org1/production:/var/hyperledger/production
          #- ../chaincode/:/opt/gopath/src/github.com/chaincode

    deploy:
      mode: replicated
      replicas: 1
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
      placement:
        constraints:
          - node.hostname == gcloud1

    ports:
      - published: 7051
        target: 7051
        #        mode: host

      - published: 7052
        target: 7052
        #        mode: host

      - published: 7443
        target: 7443
        #        mode: host

    networks:
      testchain-network:
        aliases:
          - peer0.org1.example.com
docker hyperledger-fabric hyperledger docker-swarm
1个回答
0
投票
 - /home/delta/GoWorkspace/src/github.com/testchain/backup_blockchain/orderer1/production/orderer:/var/hyperledger/production/orderer

代替上面的主机路径安装

请为每个实体(orderer1,orderer2等)创建一个docker卷,并将所有数据复制到该卷并映射该卷而不是主机路径

Usage:  docker volume COMMAND

Manage volumes

Commands:
  create      Create a volume
  inspect     Display detailed information on one or more volumes
  ls          List volumes
  prune       Remove all unused local volumes
  rm          Remove one or more volumes

Run 'docker volume COMMAND --help' for more information on a command.

似乎是权限问题,并检查CPU和ram等资源用法

© www.soinside.com 2019 - 2024. All rights reserved.