You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Project Title

An object-key-value mapper for Hyperledger Fabric

Status

PENDING TOC REVIEW

Primary Focus

CODING   

Description 

In Hyperledger Fabric, there can be a significant mismatch between the simple key-value ledger storage abstraction and the data representation style used for developing chaincode – i.e., Java has classes and objects, not keys and values. Currently, there aren’t really good tools for facilitating the “object-key-value mapping” (at least anything approaching classic Object-Relational Mapping – ORM). This not only complicates chaincode development, but a less than systematic approach with the mapping can lead to performance problems (through logically unnecessary MVCC transaction invalidations). Additionally, an explicit object-oriented ledger data model would enable imposing data-centric constraints on the ledger content, either for runtime checking, or development time verification and validation.

The goal of the mentorship is to design and implement an object-key-value mapper with the following functionality:

  • Generating key-value storage models from UML ledger data models
  • Application of storage strategies during the mapping (as we explored in the report referenced below)
  • Generating a chaincode-internal Java data access/persistence layer, “parameterized” by the storage model
  • Demonstration on a representative example (e.g., our earlier work on faithfully implementing TPC-C to Fabric)
  • (If we have time): declaring OCL (Object Constraint Language) constraints on the models and enforcing them in the data access layer

Additional Information

A report exploring key related problems on the storage model side: https://tdk.bme.hu/VIK/DownloadPaper/Alkalmazasi-szintu-ateresztokepesseg

As a motivating example, our ACM SAC DAPP 2022 paper on TPC-C over Fabric: https://arxiv.org/pdf/2112.11277.pdf

The Wikipedia article on ORM: https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping

Learning Objectives

Expected Outcome

Relation to Hyperledger 

Mentee Skills

Mentee Open Source Contribution Experience

Future plans

Mentor(s) Names and Contact Info





  • No labels