I'm doing a POC that involves 4 types of entities. All of them will have different types of participants in the network. I have drafted out an architecture that needs validations and considerations that I might be missing out.
Architecture:
- Created 4 Orgs on the Fabric. One for each of the entities.
- The first org contains 1 CA, 1 Orderer, and 2 Peers.
- The other three org contains 1 CA and 2 Peers.
- All the Orgs will run on a different host machine.
- All the Orgs are on the same channel.
- Employ docker swarm to create an overlay and make these containers talk to each other.
- Next, setup composer REST server on each of these machines, such that the PeerAdminCard and BusinessAdminCard are logically mapped to its own Org.
- Use permissions.acl to control access to the participant's data.
- A central server will get the requests from all these Org's client and pass it to the respective composer REST server.
Questions that I have pertaining this one:
- Is this feasible to implement or am I missing any crucial point?
- If we use docker swarm, then there will be a kind of master-slave communication. Does it break the essence of the blockchain?
- There are different interactions happening between the clients and that is the purpose of using a central server. Is there other way to handle this without a central server?
- Is the acl file enough to control access to the data? If someone has a physical access to the peer's couchdb, he'll be able to see the other participant's data?
Any guidance or references will be helpful.