为了迁移数据,我在chaincode中编写了迁移逻辑 .

async shareLIC(stub, args) {
    let dataAsBytes = await stub.getPrivateData('Collection1',"Key1");//fetch data from collection1

    await stub.putPrivateData("Collection2","Key1",Buffer.from(dataAsBytes.toString()));// insert data in collection2
}

所以,现在错误是当我从peer1中删除函数shareLIC时,对于peer2(peer0.peer2.example.com),endorsing提议失败 .

泊坞窗,compose.yml

版本:'2'

网络:基本:

服务:ca.peer1.example.com:image:hyperledger / fabric-ca环境: - FABRIC_CA_HOME = / etc / hyperledger / fabric-ca-server - FABRIC_CA_SERVER_CA_NAME = ca.peer1.example.com - FABRIC_CA_SERVER_CA_CERTFILE = / etc / hyperledger / fabric-ca-server-config / ca.peer1.example.com-cert.pem - FABRIC_CA_SERVER_CA_KEYFILE = / etc / hyperledger / fabric-ca-server-config / c66ab8100159104663e9f82727466bb1e93745041c8bf3e9bf754cd845c31516_sk - FABRIC_CA_SERVER_TLS_ENABLED = true - FABRIC_CA_SERVER_CA_NAME = ca-peer1 ports: - “ 7054:7054“命令:sh -c'fabric-ca-server start -b admin:adminpw'volume: - ./channel/crypto-config/peerOrganizations/peer1.example.com/ca/:/etc/hyperledger/fabric -ca-server-config container_name:ca.peer1.example.com networks: - basic

ca.peer2.example.com:image:hyperledger / fabric-ca环境: - FABRIC_CA_HOME = / etc / hyperledger / fabric-ca-server - FABRIC_CA_SERVER_CA_NAME = ca.peer2.example.com - FABRIC_CA_SERVER_CA_CERTFILE = / etc / hyperledger / fabric- ca-server-config / ca.peer2.example.com-cert.pem - FABRIC_CA_SERVER_CA_KEYFILE = / etc / hyperledger / fabric-ca-server-config / 324d8681dd625e45781b530aab5d11ce77ad59c9f67484b431573ec99f174658_sk - FABRIC_CA_SERVER_TLS_ENABLED = true - FABRIC_CA_SERVER_CA_NAME = ca-peer2 ports: - “7055: 7054“命令:sh -c'fabric-ca-server start -b admin:adminpw'volume: - ./channel/crypto-config/peerOrganizations/peer2.example.com/ca/:/etc/hyperledger/fabric-ca -server-config container_name:ca.peer2.example.com networks: - basic

ca.peer3.example.com:image:hyperledger / fabric-ca environment: - FABRIC_CA_HOME = / etc / hyperledger / fabric-ca-server - FABRIC_CA_SERVER_CA_NAME = ca.peer3.example.com - FABRIC_CA_SERVER_CA_CERTFILE = / etc / hyperledger / fabric- ca-server-config / ca.peer3.example.com-cert.pem - FABRIC_CA_SERVER_CA_KEYFILE = / etc / hyperledger / fabric-ca-server-config / fce5d65a0b742ccc83142acd43f32b68db9641bfe2ea022ca6410fbf1235acbd_sk - FABRIC_CA_SERVER_TLS_ENABLED = true - FABRIC_CA_SERVER_CA_NAME = ca-peer3 ports: - “7056: 7054“命令:sh -c'fabric-ca-server start -b admin:adminpw'volume: - ./channel/crypto-config/peerOrganizations/peer3.example.com/ca/:/etc/hyperledger/fabric-ca -server-config container_name:ca.peer3.example.com networks: - basic

ca.peer4.example.com:image:hyperledger / fabric-ca环境: - FABRIC_CA_HOME = / etc / hyperledger / fabric-ca-server - FABRIC_CA_SERVER_CA_NAME = ca.peer4.example.com - FABRIC_CA_SERVER_CA_CERTFILE = / etc / hyperledger / fabric- ca-server-config / ca.peer4.example.com-cert.pem - FABRIC_CA_SERVER_CA_KEYFILE = / etc / hyperledger / fabric-ca-server-config / f47e09fd31a38f7ecbf035ae0aa367cf9eab490144b184692bc951611b79b291_sk - FABRIC_CA_SERVER_TLS_ENABLED = true - FABRIC_CA_SERVER_CA_NAME = ca-peer4 ports: - “7057: 7054“命令:sh -c'fabric-ca-server start -b admin:adminpw'volume: - ./channel/crypto-config/peerOrganizations/peer4.example.com/ca/:/etc/hyperledger/fabric-ca -server-config container_name:ca.peer4.example.com networks: - basic

orderer.example.com:container_name:orderer.example.com image:hyperledger / fabric-orderer environment: - CONFIGTX_ORDERER_ORDERERTYPE = kafka - CONFIGTX_ORDERER_KAFKA_BROKERS = [ordererkafka:9092,ordererkafka1:9093,ordererkafka2:9094,ordererkafka3:9095] - ORDERER_KAFKA_RETRY_SHORTINTERVAL = 1s - ORDERER_KAFKA_RETRY_SHORTTOTAL = 30秒 - ORDERER_KAFKA_VERBOSE =真 - ORDERER_GENERAL_LOGLEVEL =调试 - ORDERER_GENERAL_LISTENADDRESS = 0.0.0.0 - ORDERER_GENERAL_GENESISMETHOD =文件 - ORDERER_GENERAL_GENESISFILE =的/ etc / hyperledger / configtx / genesis.block - ORDERER_GENERAL_LOCALMSPID = OrdererMSP - ORDERER_GENERAL_LOCALMSPDIR =的/ etc / hyperledger / MSP /订货者/ msp - ORDERER_GENERAL_TLS_ENABLED = true - ORDERER_GENERAL_TLS_PRIVATEKEY = / etc / hyperledger / fabric / tls / server.key - ORDERER_GENERAL_TLS_CERTIFICATE = / etc / hyperledger / fabric / tls / server.crt - ORDERER_GENERAL_TLS_ROOTCAS = / etc / hyperledger / fabric / tls / ca . crt working_dir:/opt/gopath/src/github.com/hyperledger/fabric/orderer命令:orderer ports: - 7050:7050卷: - ./ channel /:/ etc / hyperledger / configtx - ./channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/:/etc/hyperledger/msp/orderer - ./channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls:/etc/hyperledger/fabric/tls networks: - basic

peer0.peer1.example.com:container_name:peer0.peer1.example.com image:hyperledger / fabric-peer environment: - CORE_VM_ENDPOINT = unix:///host/var/run/docker.sock - CORE_PEER_ID = peer0.peer1 . example.com - CORE_LOGGING_PEER = debug - CORE_CHAINCODE_LOGGING_LEVEL = debug - CORE_PEER_LOCALMSPID = peer1MSP - CORE_PEER_MSPCONFIGPATH = / etc / hyperledger / msp / peer / - CORE_PEER_ADDRESS = peer0.peer1.example.com:7051 - CORE_PEER_TLS_ENABLED = true - CORE_PEER_TLS_CERT_FILE = / etc / hyperledger /tls/server.crt - CORE_PEER_TLS_KEY_FILE = / etc / hyperledger / tls / server.key - CORE_PEER_TLS_ROOTCERT_FILE = / etc / hyperledger / tls / ca.crt - CORE_PEER_GOSSIP_BOOTSTRAP = peer0.peer1.example.com:7051 - CORE_PEER_GOSSIP_EXTERNALENDPOINT = peer0.peer1 .example.com:7051# - CORE_PEER_CHAINCODELISTENADDRESS = peer0.peer1.example.com:7051 - CORE_LOGGING_GRPC = debug ##以下设置在同一##bridge网络上启动链代码容器作为对等## https://docs.docker.com/compose/networking/ - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE = net_basic - CORE_LEDGER_STATE_STA TEDATABASE = CouchDB - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb:5984#CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME和CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD#提供分类帐连接到CouchDB的凭据 . 用户名和密码必须#匹配为关联的CouchDB设置的用户名和密码 . - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME = - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD = working_dir:/opt/gopath/src/github.com/hyperledger/fabric命令:peer node start --logging-level = debug#command:peer node start --peer-chaincodedev = true ports: - 17051:7051 - 17053:7053卷: - / var / run /:/ host / var / run / - ./channel/crypto-config/peerOrganizations/peer1.example.com/peers/peer0.peer1.example.com/ msp:/ etc / hyperledger / msp / peer - ./channel/crypto-config/peerOrganizations/peer1.example.com/users:/etc/hyperledger/msp/users - ./channel/channel-artifacts:/etc/hyperledger / configtx - ./channel/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ - ./channel:/opt/gopath/src/github.com/hyperledger/fabric/ peer / channel-artifacts# - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts:/etc/hyperledger/tlscacerts - ./channel/crypto-config/peerOrganizations/peer1 . example.com/peers/peer0.peer1.example.com/tls:/etc/hyperledger/tls depen ds_on: - orderer.example.com - couchdb networks: - basic

peer0.peer2.example.com:container_name:peer0.peer2.example.com image:hyperledger / fabric-peer environment: - CORE_VM_ENDPOINT = unix:///host/var/run/docker.sock - CORE_PEER_ID = peer0.peer2 . example.com - CORE_LOGGING_PEER = info - CORE_CHAINCODE_LOGGING_LEVEL = info - CORE_PEER_LOCALMSPID = peer2MSP - CORE_PEER_MSPCONFIGPATH = / etc / hyperledger / msp / peer / - CORE_PEER_ADDRESS = peer0.peer2.example.com:7051 - CORE_PEER_TLS_ENABLED = true - CORE_PEER_TLS_CERT_FILE = / etc / hyperledger /tls/server.crt - CORE_PEER_TLS_KEY_FILE = / etc / hyperledger / tls / server.key - CORE_PEER_TLS_ROOTCERT_FILE = / etc / hyperledger / tls / ca.crt - CORE_PEER_GOSSIP_BOOTSTRAP = peer0.peer2.example.com:7051 - CORE_PEER_GOSSIP_EXTERNALENDPOINT = peer0.peer2 .example.com:7051# - CORE_PEER_CHAINCODELISTENADDRESS = peer0.peer2.example.com:17051 - CORE_LOGGING_GRPC = debug ##以下设置在同一##bridge网络上启动链代码容器作为对等## https://docs.docker.com/compose/networking/ - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE = net_basic - CORE_LEDGER_STATE_STAT EDATABASE = CouchDB - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb1:5984#CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME和CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD#提供分类帐连接到CouchDB的凭据 . 用户名和密码必须#匹配为关联的CouchDB设置的用户名和密码 . - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME = - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD = working_dir:/opt/gopath/src/github.com/hyperledger/fabric命令:peer node start#command:peer node start --peer-chaincodedev = true ports: - 27051:7051 - 27053:7053卷: - / var / run /:/ host / var / run / - ./channel/crypto-config/peerOrganizations/peer2.example.com/peers/peer0.peer2.example.com/msp:/etc/hyperledger/ msp / peer - ./channel/crypto-config/peerOrganizations/peer2.example.com/users:/etc/hyperledger/msp/users - ./channel/channel-artifacts:/etc/hyperledger/configtx - ./channel/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ - ./channel:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel -artifacts - ./channel/crypto-config/peerOrganizations/peer2.example.com/peers/peer0.peer2.example.com/tls:/etc/hyperledger/tls depends_on: - orderer.example.com - couchdb1 networks: - 基本

peer0.peer3.example.com:container_name:peer0.peer3.example.com image:hyperledger / fabric-peer environment: - CORE_VM_ENDPOINT = unix:///host/var/run/docker.sock - CORE_PEER_ID = peer0.peer3 . example.com - CORE_LOGGING_PEER = info - CORE_CHAINCODE_LOGGING_LEVEL = info - CORE_PEER_LOCALMSPID = peer3MSP - CORE_PEER_MSPCONFIGPATH = / etc / hyperledger / msp / peer / - CORE_PEER_ADDRESS = peer0.peer3.example.com:7051 - CORE_PEER_TLS_ENABLED = true - CORE_PEER_TLS_CERT_FILE = / etc / hyperledger /tls/server.crt - CORE_PEER_TLS_KEY_FILE = / etc / hyperledger / tls / server.key - CORE_PEER_TLS_ROOTCERT_FILE = / etc / hyperledger / tls / ca.crt - CORE_PEER_GOSSIP_BOOTSTRAP = peer0.peer3.example.com:7051 - CORE_PEER_GOSSIP_EXTERNALENDPOINT = peer0.peer3 .example.com:7051# - CORE_PEER_CHAINCODELISTENADDRESS = peer0.peer3.example.com:17051 - CORE_LOGGING_GRPC = debug ##以下设置在同一##bridge网络上启动链代码容器作为对等## https://docs.docker.com/compose/networking/ - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE = net_basic - CORE_LEDGER_STATE_STAT EDATABASE = CouchDB的 - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb2:5984#的CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME和CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD#为总帐的凭据连接到CouchDB的 . 用户名和密码必须#匹配为关联的CouchDB设置的用户名和密码 . - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME = - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD = working_dir:/opt/gopath/src/github.com/hyperledger/fabric命令:对等节点开始#命令:对等节点开始--peer-chaincodedev =真端口: - 37051:7051 - 37053:7053卷: - / var / run /:/ host / var / run / - ./channel/crypto-config/peerOrganizations/peer3.example.com/peers/peer0.peer3.example.com/msp:/etc/hyperledger/ msp / peer - ./channel/crypto-config/peerOrganizations/peer3.example.com/users:/etc/hyperledger/msp/users - ./channel/channel-artifacts:/etc/hyperledger/configtx - ./channel/ crypto-config / peerOrganizations / peer3.example.com / peers / peer0.peer3.example.com / tls:/ etc / hyperledger / tls depends_on: - orderer.example.com - couchdb2 networks: - basic

peer0.peer4.example.com:container_name:peer0.peer4.example.com image:hyperledger / fabric-peer environment: - CORE_VM_ENDPOINT = unix:///host/var/run/docker.sock - CORE_PEER_ID = peer0.peer4 . example.com - CORE_LOGGING_PEER = info - CORE_CHAINCODE_LOGGING_LEVEL = info - CORE_PEER_LOCALMSPID = peer4MSP - CORE_PEER_MSPCONFIGPATH = / etc / hyperledger / msp / peer / - CORE_PEER_ADDRESS = peer0.peer4.example.com:7051 - CORE_PEER_TLS_ENABLED = true - CORE_PEER_TLS_CERT_FILE = / etc / hyperledger /tls/server.crt - CORE_PEER_TLS_KEY_FILE = / etc / hyperledger / tls / server.key - CORE_PEER_TLS_ROOTCERT_FILE = / etc / hyperledger / tls / ca.crt - CORE_PEER_GOSSIP_BOOTSTRAP = peer0.peer4.example.com:7051 - CORE_PEER_GOSSIP_EXTERNALENDPOINT = peer0.peer4 .example.com:7051# - CORE_PEER_CHAINCODELISTENADDRESS = peer0.peer4.example.com:17051 - CORE_LOGGING_GRPC = debug ##以下设置在同一##bridge网络上启动链代码容器作为对等## https://docs.docker.com/compose/networking/ - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE = net_basic - CORE_LEDGER_STATE_STAT EDATABASE = CouchDB的 - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb3:5984#的CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME和CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD#为总帐的凭据连接到CouchDB的 . 用户名和密码必须#匹配为关联的CouchDB设置的用户名和密码 . - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME = - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD = working_dir:/opt/gopath/src/github.com/hyperledger/fabric命令:对等节点开始#命令:对等节点开始--peer-chaincodedev =真端口: - 47051:7051 - 47053:7053卷: - / var / run /:/ host / var / run / - ./channel/crypto-config/peerOrganizations/peer4.example.com/peers/peer0.peer4.example.com/msp:/etc/hyperledger/ msp / peer - ./channel/crypto-config/peerOrganizations/peer4.example.com/users:/etc/hyperledger/msp/users - ./channel/channel-artifacts:/etc/hyperledger/configtx - ./channel/ crypto-config / peerOrganizations / peer4.example.com / peers / peer0.peer4.example.com / tls:/ etc / hyperledger / tls depends_on: - orderer.example.com - couchdb3 networks: - 基本

couchdb:container_name:couchdb image:hyperledger / fabric-couchdb#填充COUCHDB_USER和COUCHDB_PASSWORD,为CouchDB设置管理员用户和密码# . 这将阻止CouchDB以“管理员方”模式运行 . 环境: - COUCHDB_USER = - COUCHDB_PASSWORD =端口: - 5984:5984网络: - 基本

couchdb1:container_name:couchdb1 image:hyperledger / fabric-couchdb#填充COUCHDB_USER和COUCHDB_PASSWORD,为CouchDB设置管理员用户和密码# . 这将阻止CouchDB以“管理员方”模式运行 . 环境: - COUCHDB_USER = - COUCHDB_PASSWORD = ports: - 5985:5984 networks: - basic

couchdb2:container_name:couchdb2 image:hyperledger / fabric-couchdb#填充COUCHDB_USER和COUCHDB_PASSWORD,为CouchDB设置管理员用户和密码# . 这将阻止CouchDB以“管理员方”模式运行 . 环境: - COUCHDB_USER = - COUCHDB_PASSWORD = ports: - 5986:5984 networks: - basic

couchdb3:container_name:couchdb3 image:hyperledger / fabric-couchdb#填充COUCHDB_USER和COUCHDB_PASSWORD,为CouchDB设置管理员用户和密码# . 这将阻止CouchDB以“管理员方”模式运行 . 环境: - COUCHDB_USER = - COUCHDB_PASSWORD = ports: - 5987:5984 networks: - basic

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 = info - CORE_PEER_ID = cli - CORE_PEER_ADDRESS = peer0.peer1.example.com:7051 - CORE_PEER_LOCALMSPID = peer1MSP - CORE_PEER_MSPCONFIGPATH =/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/peer1.example.com/users/Admin@peer1 .example.com / msp - CORE_CHAINCODE_KEEPALIVE = 10 - CORE_PEER_TLS_ENABLED = true - CORE_PEER_TLS_ROOTCERT_FILE = / opt / gopath / src / github.com / hyperledger / fabric / peer / crypto / peerOrganizations / peer1.example.com / peers / peer0.peer1 . example.com/tls/ca.crt working_dir:/opt/gopath/src/github.com/hyperledger/fabric/peer命令:/ bin / bash卷: - / var / run /:/ host / var / run / - ./../chaincode/:/opt/gopath/src/github.com/ - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ - ./channel-工件:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts networks: - 基本#depends_on:# - orderer.example.com# - peer0.org1.example.com# - couchdb

cli2:container_name:cli2 image:hyperledger / fabric-tools tty:true environment: - GOPATH = / opt / gopath - CORE_VM_ENDPOINT = unix:///host/var/run/docker.sock - CORE_LOGGING_LEVEL = info - CORE_PEER_ID = cli - CORE_PEER_ADDRESS = peer0.peer2.example.com:7051 - CORE_PEER_LOCALMSPID = peer2MSP - CORE_PEER_MSPCONFIGPATH =/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/peer2.example.com/users/Admin@peer2 .example.com / msp - CORE_CHAINCODE_KEEPALIVE = 10 - CORE_PEER_TLS_ENABLED = true - CORE_PEER_TLS_ROOTCERT_FILE = / opt / gopath / src / github.com / hyperledger / fabric / peer / crypto / peerOrganizations / peer2.example.com / peers / peer0.peer2 . example.com/tls/ca.crt working_dir:/opt/gopath/src/github.com/hyperledger/fabric/peer命令:/ bin / bash卷: - / var / run /:/ host / var / run / - ./../chaincode/:/opt/gopath/src/github.com/ - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ - ./channel-工件:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts networks : - 基本的

clipeer4:container_name:clipeer4 image:hyperledger / fabric-tools tty:true environment: - GOPATH = / opt / gopath - CORE_VM_ENDPOINT = unix:///host/var/run/docker.sock - CORE_LOGGING_LEVEL = info - CORE_PEER_ID = cli - CORE_PEER_ADDRESS = peer0.peer4.example.com:7051 - CORE_PEER_LOCALMSPID = peer4MSP - CORE_PEER_MSPCONFIGPATH =/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/peer4.example.com/users/Admin@peer4 .example.com / msp - CORE_CHAINCODE_KEEPALIVE = 10 - CORE_PEER_TLS_ENABLED = true - CORE_PEER_TLS_ROOTCERT_FILE = / opt / gopath / src / github.com / hyperledger / fabric / peer / crypto / peerOrganizations / peer4.example.com / peers / peer0.peer4 . example.com/tls/ca.crt working_dir:/opt/gopath/src/github.com/hyperledger/fabric/peer命令:/ bin / bash卷: - / var / run /:/ host / var / run / - ./../chaincode/:/opt/gopath/src/github.com/ - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ - ./channel-工件:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts网络: - 基本的

zookeeper0:image:hyperledger / fabric-zookeeper:0.4.8 restart:always container_name:zookeeper0端口: - '2181:2181' - '2888:2888' - '3888:3888'环境: - ZOO_MY_ID = 1 - ZOO_SERVERS = server.1 = zookeeper0:2888:3888 server.2 = zookeeper1:2887:3887服务器 . 3 = zookeeper2:2886:3886 #volumes:# - networks: - basic

zookeeper1:image:hyperledger / fabric-zookeeper:0.4.8 restart:always container_name:zookeeper1 ports: - '12181:2182' - '12888:2887' - '13888:3887'环境: - ZOO_MY_ID = 2 - ZOO_SERVERS = server . 1 = zookeeper0:2888:3888 server.2 = zookeeper1:2887:3887 server.3 = zookeeper2:2886:3886 #volumes:# - networks: - basic

zookeeper2:image:hyperledger / fabric-zookeeper:0.4.8 restart:always container_name:zookeeper2 ports: - '22181:2183' - '22888:2886' - '23888:3886'environment: - ZOO_MY_ID = 3 - ZOO_SERVERS = server . 1 = zookeeper0:2888:3888 server.2 = zookeeper1:2887:3887 server.3 = zookeeper2:2886:3886 #volumes:# - networks: - basic

ordererkafka:image:hyperledger / fabric-kafka:0.4.8 restart:always container_name:kafka ports: - '9092:9092'环境: - KAFKA_MESSAGE_MAX_BYTES = 103809024 - KAFKA_REPLICA_FETCH_MAX_BYTES = 103809024 - KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE = true - KAFKA_BROKER_ID = 0 - KAFKA_MIN_INSYNC_REPLICAS = 1 - KAFKA_DEFAULT_REPLICATION_FACTOR = 2 - KAFKA_ZOOKEEPER_CONNECT = zookeeper0:2181,zookeeper1:2182,zookeeper2:2183 #volumes:# - depends_on: - zookeeper0 - zookeeper1 - zookeeper2 networks: - basic

ordererkafka:image:hyperledger / fabric-kafka:0.4.8 restart:always container_name:kafka1 ports: - '9093:9093'环境: - KAFKA_MESSAGE_MAX_BYTES = 103809024 - KAFKA_REPLICA_FETCH_MAX_BYTES = 103809024 - KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE = true - KAFKA_BROKER_ID = 1 - KAFKA_MIN_INSYNC_REPLICAS = 1 - KAFKA_DEFAULT_REPLICATION_FACTOR = 2 - KAFKA_ZOOKEEPER_CONNECT = zookeeper0:2181,zookeeper1:2182,zookeeper2:2183 #volumes:# - depends_on: - zookeeper0 - zookeeper1 - zookeeper2 networks: - basic

ordererkafka2:image:hyperledger / fabric-kafka:0.4.8 restart:always container_name:kafka2 ports: - '9094:9094'环境: - KAFKA_MESSAGE_MAX_BYTES = 103809024 - KAFKA_REPLICA_FETCH_MAX_BYTES = 103809024 - KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE = true - KAFKA_BROKER_ID = 2 - KAFKA_MIN_INSYNC_REPLICAS = 1 - KAFKA_DEFAULT_REPLICATION_FACTOR = 2 - KAFKA_ZOOKEEPER_CONNECT = zookeeper0:2181,zookeeper1:2182,zookeeper2:2183 #volumes:# - depends_on: - zookeeper0 - zookeeper1 - zookeeper2 networks: - basic

ordererkafka3:image:hyperledger / fabric-kafka:0.4.8 restart:always container_name:kafka3 ports: - '9095:9095'环境: - KAFKA_MESSAGE_MAX_BYTES = 103809024 - KAFKA_REPLICA_FETCH_MAX_BYTES = 103809024 - KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE = true - KAFKA_BROKER_ID = 3 - KAFKA_MIN_INSYNC_REPLICAS = 1 - KAFKA_DEFAULT_REPLICATION_FACTOR = 2 - KAFKA_ZOOKEEPER_CONNECT = zookeeper0:2181,zookeeper1:2182,zookeeper2:2183 #volumes:# - depends_on: - zookeeper0 - zookeeper1 - zookeeper2 networks: - basic