The meta-database consists of mainly two layers:
The query API has been implemented using the Node.js framework, and it makes up the database's interface, through which clients can submit their query-transaction requests. This layer acts as a middleware between the client and the blockchain network. The purpose of using a REST API is to hide the complexity of Layer 2 from the user by providing widely known high-level interface methods.
The blockchain network has been implemented using the Hyperledger Fabric framework; the current implementation consists of a test network of four peers. This layer uses smart contracts which implement the database logic of the meta-database. It takes care of both the storage and the indexing of the models on the blockchain's peer nodes, using Hyperledger Fabric's concepts and regulations.
The following diagram explains the client-request processing flow in Model Meta-Database.
(1) Client sends a REST request to Node.js rest server
(2) The Node.js server translates request into the corresponding blockchain transaction and sends it to the blockchain network
(3) A blockchain smart contract executes the transaction by either utilizing the World State database (CouchDB) or the blockchain files
(4) The transaction results are returned to the Node.js server
(5) The Node.js server generates the suiting REST response and sends the results to the client
Model Meta-Database is mainly a BSc Thesis project. The meta-database is currently suitable
for research and experimentation purposes only, using dummy/test data, and it has been developed
by researchers and students at the Data Management Systems Laboratory (DMSL),
Department of Computer Science, at the University of Cyprus.
The aspiration is to create both a versioning system for machine learning (ML) models, as well as a user-friendly interface that provides a sufficient set of database-style query options for the purposes of the ML and researching communities.