Storing/Retrieving key values in a collaborative way - endorsement policy

Anoop Vijayan <anoop@...>

Hello Fabric guys,
I have a scenario where there are X orgs in a Hyperledger Fabric network.
I would like to have each org can create/set/reset their respective values for key(s).
However, other orgs should be able to only read them but not modify them.
Also, as there is only possible to set one policy per Chaincode, I have to use `OutOf()` but this would end up to an ability to modify org1’s changes without involving org1.


Lets say there are 10 orgs in a Hyperledger Fabric network.
Usual approach which we all know that works:

1. N (say N=2) Orgs should be able to set a unique key+value pair (can be implemented with Endorsement policy of type `OutOf(E[, E...])`)
- Org1 creates the key+value pair and gets signed from any of OrgX (2..N)
2. Implicit: Any 2 Orgs is able to modify any key+value pair
3. Any one of those orgs is able to get the value from the key (IIRC)

My Requirements:

1. An org (containing multiple peers) should be able to set a unique key+value pair
2. Only that org can modify the key+value pair which it had set
3. Any one of orgs in Hyperledger Fabic network is able to read value from key

I have tried going through older mail archives (not all though) and didn’t find anything relevant.
The closest one which had relevance is, solved by private data collection which I am not sure if that solution applies here.

Hyperledger Fabric version can be: 1.4.x or 2.x

Please let me know your suggestions. Any answers like “Hyperledger is not suited for your purpose…” is also welcome :)

- Anoop

Join to automatically receive all group messages.