在超级账本结构中添加数据持久性

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

我已经建立了一个超级账本结构网络。下面是我docker-compose.yaml文件中的配置。

  peer0.org1.example.com:
    container_name: peer0.org1.example.com
    image: hyperledger/fabric-peer:latest
    environment:
      - GODEBUG=netdns=go
      - CORE_PEER_ID=peer0.org1.example.com
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_example
      - FABRIC_LOGGING_SPEC=INFO
      - 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
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984
      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
    volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
      - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
      - peer0.org1.example.com:/var/hyperledger/production
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    ports:
      - 7051:7051
      - 7053:7053
    depends_on:
      - couchdb0
    networks:
      - example

  couchdb0:
    container_name: couchdb0
    image: hyperledger/fabric-couchdb
    environment:
      - COUCHDB_USER=
      - COUCHDB_PASSWORD=
    ports:
      - "5984:5984"
    networks:
      - example

我错过了为数据持久性添加配置。我正在关注此documentation link以添加数据持久性。因此,在fabric-couchdb中添加以下行后,它将使用主机的指定文件系统存储数据。

volumes:
 - /var/hyperledger/couchdb0:/opt/couchdb/data

但是我无法弄清楚的是我们如何检索网络中当前存在的当前数据。默认情况下,fabric-couchdb在哪里存储数据?我们不能将旧数据从默认文件夹位置复制到新文件夹位置吗?

couchdb hyperledger-fabric
1个回答
1
投票

如果按照您的定义定义CouchDB卷,则主机文件夹应位于/var/hyperledger/couchdb0中。

您可以始终运行docker volume lsdocker volume inspect your_volume_name来检查卷的安装点。

如果您还没有为容器定义卷,并且想要检索文件夹(我认为是您的问题),请尝试:

docker cp couchdb0:/opt/couchdb/data your-host-destination-folder
© www.soinside.com 2019 - 2024. All rights reserved.