Essential Components for Enterprise Blockchain
Having worked around with Blockchain for more than couple of years and pushing blockchain apps to Production , I would like to share essential components that is needed for every Enterprise Blockchain System.
** This applies to private Blockchain network(Hyeperlegder Fabric,Quorum,Corda(DLT))
Off-Chain/Data Provider System :
Your Enterprise Blockchain System may need lot amount of data(Reference data) to derive an output , where are the Reference data gonna fit is a question ?
There are two options
a) Store it on-chain
b) Store it off-chain
While Storing all reference data in on-chain is costly , It’s always wise to store all reference data in off-chain and ensure smart contract talks to off-chain /Data provider and derive the require output. Oraclize(Provable) is one such solution and it’s a must when lot of reference data flows to system.
Storing Documents to Blockchain :
Most of the system that we develop may need to interact with some document. (pdf,pictures,word dcoument, Excel etc…. ). We would allow users to either upload / download the documents and these are common functionality for every applications.
When it comes to blockchain , IPFS is one such blockchain stack and interestingly it supports private network which is all what Enterprise system requires.
I would highly recommend IPFS for processing documents.
Bonus : https://medium.com/@s_van_laar/deploy-a-private-ipfs-network-on-ubuntu-in-5-steps-5aad95f7261b
Replica System for Stats/ Analytics :
When blockchain System runs for long time , we would be filled with essential data that Smart contract produces and all these are vital information which requires analysis , we might need to record it in other system and provide different stats/analytics over the same. Ideally we can accomplish this having replica system by connecting to blockchain db i.e Couchdb in case of Hyperledger Fabric and Leveldb when it comes to Quorum . We can also plug-in events for each transaction and have it recorded in separate database for analytics.
Logs/Monitoring System :
These are essential components to monitor health of node and monitor logs of Chaincode /smart contract.
Montioring stack which I have used around with Blockchain:
New-Relic
ELK Stack
Promethus,Grafana
Blockchain Explorer
To sum it up , I would definitely have the mentioned above components when I try to build Enterprise System and I would always recommend the same to folks who are trying to build the same.