Explore Courses Blog Tutorials Interview Questions
0 votes
in Blockchain by (4.1k points)

I am wondering how to model my assets, participants, transactions en events. I have already looked on documentation on how to do it syntax wise, but I was wondering if there is a structured way to do it. Just like the way normalization is done on relational databases.

If someone has principles about blockchain data storage, i would love to hear it.

1 Answer

0 votes
by (14.4k points)

Hyperledger Fabric is based on key-value stores like LevelDB and CouchDB. Therefore, don't really gain any benefit from normalizing data. In relational databases, you do it for easy indexing and joins, but in key-value stores joins do not exist.

What you can do is create indexes on your data. This will enable faster querying. 

This is covered in the Marbles tutorial chaincode (l.108+):

let indexName = 'color~name'

let colorNameIndexKey = await stub.createCompositeKey(indexName, [marble.color,]);

For modeling your assets in Hyperledger Composer you can use .cto definitions.

Browse Categories