Multichain streams business concept

+2 votes

Hello there,

I have the following use case, and I need your help in designing it using MultiChain.

  • I have something called person profile, where this profile has many subcategories in term of information, like Health data (Health Record), Education data (Person education fields), Social Data (marital status,...), Identity data (Id, Passport, Name, Nationality), Financial data (bank transaction data), the unique reference (PK) is person ID.
  • There is only one participant which own the full record of person including all of his subcategories, and the full person profile is initially provided by that participant, and later; each entity shall submit subset of data (one subcategory) based on its business, for example: Education data for person can be submitted by some nodes like schools, immigration submits (passport, nationality, immigration data).
  • At the end; person profile is going to be updated by on the received transactions (live events), and person profile must be updated accordingly.
  • Reading person profile is subject to permission, each entity can read one or more subcategory.

Now my questions:

1- How I can design permissioned blockchain for the same? shall I create main stream which contains all person profile information, and allow parties to push transaction into it, and deny reading from that stream except for the main entity (participant).

2- Should I create some streams like : Health, Education , Financial, then I can allow any node (participant) to subscribe to read peace of person profile (one or more subcategory)?

3- Logically; I need to grant permission to any node to subscribe on stream(s) based on permission that admin provides, like Health stream, Education stream,.., I'm i right?

4- I have business rules like: can't update person information if person is already passed away.

Where I can right those rules, since I don't have smart contract, or I have to mange rules outside Multichain?


Thanks in advanced.

Bassel Kh.

asked Mar 15, 2018 by bkhashfeh80

1 Answer

+3 votes
In general, you should use a separate stream for each type of information that will have separate permissions. So in your case, one stream per information category, with the appropriate addresses being able to write to each stream.

For now, rules like "a person cannot be updated after they die" would need to be imposed at the application level, at the time of reading.

Finally you cannot currently control who can subscribe to which stream, so you would need to take care of read permissioning by using encryption of the data in the chain.
answered Mar 15, 2018 by MultiChain
Thanks a lot, it really helped.
The most important thing is that I was able to understand how multichain works, the blockchain concept in general is new for me.
But now; I'm able to start writing applications by using Mutichain.