From 67ae2c9d025907840603cf38eaf3b39e511c9d19 Mon Sep 17 00:00:00 2001 From: Matthew B White Date: Tue, 31 Jan 2023 09:32:20 +0000 Subject: [PATCH] Correct the private data collection information For the asset transfer example (https://hyperledger-fabric.readthedocs.io/en/release-2.5/private_data_tutorial.html#pd-use-case) the are three private data collections, one per org and one shared between the orgs. The shared collection didn't have an endorsement policy so inheritted the chaincodes; this was specifically set away from the default to be OR(Org1MSP,Org2MSP). The documentation says this is to ensure that either organization can create and asset. However this isn't really necassary, the endorsement policy should be lowest level; so this PR moves the endorsement policy to the collection. The documentation does I believe lead to a false understanding Signed-off-by: Matthew B White --- .../chaincode-go/collections_config.json | 5 ++++- .../chaincode-java/collections_config.json | 5 ++++- ci/scripts/run-test-network-private.sh | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/asset-transfer-private-data/chaincode-go/collections_config.json b/asset-transfer-private-data/chaincode-go/collections_config.json index cb3729aa..993bbd31 100644 --- a/asset-transfer-private-data/chaincode-go/collections_config.json +++ b/asset-transfer-private-data/chaincode-go/collections_config.json @@ -6,7 +6,10 @@ "maxPeerCount": 1, "blockToLive":1000000, "memberOnlyRead": true, - "memberOnlyWrite": true + "memberOnlyWrite": true, + "endorsementPolicy": { + "signaturePolicy":"OR('Org1MSP.member','Org2MSP.member')" + } }, { "name": "Org1MSPPrivateCollection", diff --git a/asset-transfer-private-data/chaincode-java/collections_config.json b/asset-transfer-private-data/chaincode-java/collections_config.json index cb3729aa..6d67f3c3 100644 --- a/asset-transfer-private-data/chaincode-java/collections_config.json +++ b/asset-transfer-private-data/chaincode-java/collections_config.json @@ -6,7 +6,10 @@ "maxPeerCount": 1, "blockToLive":1000000, "memberOnlyRead": true, - "memberOnlyWrite": true + "memberOnlyWrite": true, + "endorsementPolicy": { + "signaturePolicy":"OR('Org1MSP.member','Org2MSP.member')" + } }, { "name": "Org1MSPPrivateCollection", diff --git a/ci/scripts/run-test-network-private.sh b/ci/scripts/run-test-network-private.sh index 83283925..33b1c13d 100755 --- a/ci/scripts/run-test-network-private.sh +++ b/ci/scripts/run-test-network-private.sh @@ -15,7 +15,7 @@ function createNetwork() { print "Creating network" ./network.sh up createChannel -ca -s couchdb print "Deploying ${CHAINCODE_NAME} chaincode" - ./network.sh deployCC -ccn "${CHAINCODE_NAME}" -ccp "${CHAINCODE_PATH}/chaincode-${CHAINCODE_LANGUAGE}" -ccv 1 -ccs 1 -ccl "${CHAINCODE_LANGUAGE}" -ccep "OR('Org1MSP.peer','Org2MSP.peer')" -cccg ../asset-transfer-private-data/chaincode-go/collections_config.json + ./network.sh deployCC -ccn "${CHAINCODE_NAME}" -ccp "${CHAINCODE_PATH}/chaincode-${CHAINCODE_LANGUAGE}" -ccv 1 -ccs 1 -ccl "${CHAINCODE_LANGUAGE}" -cccg ../asset-transfer-private-data/chaincode-go/collections_config.json } function stopNetwork() {