Multiple Blockchain & Database Support
The blockchain component can be swapped at any time with other supported blockchain frameworks. Modex BCDB is currently implementing HyperLedger Sawtooth and Tendermint. HyperLedger Fabric and Ethereum integrations are in the testing phase. As for database engines, MongoDB is our default data storage system, but the database component can be changed with a different remote database engine, whether traditional or NoSQL.
Security Permissions & Data Sharing
The possibility to encrypt recorded data implies the existence of a decryption mechanism. Every system user who writes data in the system can encrypt and decrypt it by using their private key, which is generated at the user creation stage. The system administrator can also access this private key to unlock/decrypt system user data in case of an emergency.
Record Versioning & Monitoring
All data records are stored together with their historical versions since their creation time. Every read operation can be done with a version parameter attached. This instructs the system regarding which record version to retrieve to its caller. Record deletion happens only at the database level; the actual blockchain references to records and record hashes are never lost. The delete operation is also marked in the blockchain trail of historical versions.
Smart Data Access
Modex BCDB read operations can be done by accessing the database components directly. They can also be performed through optimized blockchain core queries to obtain records with confirmed and valid integrity checks. All write operations are blockchain transactions that store references to database records location and payload hashes for integrity checks.
Data Sync Policies
Each group of nodes or network can be configured separately in terms of data synchronization rules within the entire Modex BCDB network. This way, a network can be either restricted or open. A restricted network will collect data received from any open network but will not send any data of its own. An open network will fully synchronize all the data available in the system (Send and Receive everything).
Data Storage Management
A node can be full, partial, or private. A full node will collect all the data circulating in the entire network, and it will make it available to any node if a request is submitted. A partial node will only collect data that was introduced within its own exposed APIs, and other nodes’ data will be collected and stored when required, but it will provide data to any nodes requesting it. A private node will collect data from its own exposed APIs, and will also collect data from other nodes when required, but it will never provide any data from its storage.