Project Title
Extensible Library and API for Core Interoperability-Enabling Ledger Functions
Status

IN PROGRESS

Primary Focus

CODING DOCUMENTATION  RESEARCH

Description 

Cacti provides modules, toolkit, and protocols to enable networks built on distributed ledgers to interoperate and carry out transactions spanning their boundaries, such as asset transfers, asset swapping, and ledger data communication. The protocols enabling such transactions as well as more complex use cases require certain basic capabilities or building blocks that every distributed ledger or blockchain technology (e.g., Ethereum, Corda, Hyperledger technologies like Fabric, Sawtooth, Iroha, and Besu) can support, though using specific and distinct implementations. These capabilities, or core operators, include the ability to lock or freeze assets for a given time period, claim or unfreeze assets by a deadline, generate and verify proofs of ledger state authenticity, and access control. They also include, at a basic level, the ability to write or query a ledger and its transaction log, using the native modes supported by a given DLT, e.g., UTXO spending, smart contract interfaces.

For ease of building DLT-agnostic protocols in Cacti, we need to build modules corresponding to various DLTs supported by Cacti that implement these core operators and expose them using a standard API. These modules, which will be engineered as smart contracts or distributed applications according to the native development style for a given DLT, will be deployed on the networks that seek to interoperate with others, and can be invoked on demand by the connector plugins and business logic at higher layers in Cacti.

The goals of this project are as follows:

  1. Design and build DLT-specific core operator modules for Cacti by leveraging existing Cactus or Weaver packages. This involves identifying building blocks of unique features in either, and integrating legacy Cactus and Weaver packages wherever they offer a common feature.
  2. Design and implement a common DLT-agnostic API, following the OpenAPI standard, using which any DLT-specific core operator module can be invoked by application-specific business logic on-demand.
  3. Add suitable API support within the common Cacti client API for ease of application development
  4. Do a research survey of existing blockchain/DLT literature to identify a potentially exhaustive set of core operators any DLT network must possess (or harness) to interoperate with other networks.


Learning Objectives

  • Working with, and augmenting, legacy software.
  • Repository maintenance and quality control using tests and CI/CD.
  • Designing developer-friendly and usable interfaces (API).
  • Art of documentation targeted at both developers and users.
  • Comprehensive and diverse blockchain/DLT development experience, spanning at least Fabric, Besu, and Corda.

Expected Outcome and Deliverables

  • Implementation of a Core Ledger Operators Module for Fabric, Besu, and Corda.
  • Designing a DLT-agnostic interface for the Core Ledger Operators Module and exposing it through a standard protocol like GRPC or socket.io.
  • Augment Cacti client API to connect with and invoke the capabilities of this module, allowing application business logic to harness the power of cross-network interoperability.
  • Demonstrating and testing end-to-end example use cases of asset swaps and ledger data sharing by exercising this module.
  • Documentation: setup instructions, tutorial, RFC updates


Relation to Hyperledger and Impact on the community

Core contribution: Hyperledger Cacti

Usage: Hyperledger Fabric, Besu

Recommended Skills

  • Knowledge of Node.js (JavaScript, TypeScript), GoLang, and Java/Kotlin programming languages a strong plus, or ability and willingness to learn quickly.
  • Understanding web services and design of service interfaces (HTTP, RESTful interfaces, GRPC, OpenAPI).
  • Experience with Hyperledger Fabric and/or Besu and/or Corda a strong plus.

Mentor(s) Names and Contact Info

Venkatraman Ramakrishna, vramakr2@in.ibm.com, vramaiitkgp (Discord), IBM Research

Peter Somogyvari, peter.somogyvari@accenture.competer_somogyvari (Discord), Accenture

Izuru Sato, sato.izuru@fujitsu.com, izurusato (Discord), Fujitsu

Sandeep Nishad, sandeep.nishad1@ibm.com, sandeepn (Discord), IBM Research

Michal Bajer, michal.bajer@fujitsu.com, bajerm (Discord), Fujitsu

Rafael Belchior, rafael.belchior@tecnico.ulisboa.pt, rafaelapb (Discord), Blockdaemon and Técnico Lisboa, University of Lisbon, Portugal; and MIT Media Lab


Additional Information

Code development repository: https://github.com/hyperledger/cacti. See the project roadmap at https://github.com/hyperledger/cacti/blob/main/ROADMAP.md for a high-level overview and illustration of the integrated Cacti architecture, a part of which this project seeks to realize. Especially, see the envisioned integrated Cacti architecture in https://github.com/hyperledger/cacti/blob/main/images/cacti-architecture-v2-integration.png where the Core Operators module is explicitly illustrated.

See the official Cacti documentation in https://hyperledger.github.io/cacti/. As this project will involve the integration of legacy Cactus and Weaver packages, with distinct source code folders in the Cacti repository, see both the Cactus documentation starting at https://hyperledger.github.io/cacti/cactus/introduction/ and the Weaver documentation starting at https://hyperledger.github.io/cacti/weaver/introduction/.




12 Comments

  1. Ramakrishna V Thank you for putting this together, LGTM!

  2. +1 this project is important

  3. Excited about contributing to Hyperledger Cacti! Could you please share any additional requirements beyond the cover letter and resume? Thank you!

    1. Check out the recommended skills above. Also, go through the Cacti documentation (link is in the project README) and start getting familiar with the framework, especially using the hands-on tutorials.

  4. Greetings mentors,

    I have applied for the project through LFX Mentorship Program. I withdrew the application by mistake and now the prerequisite tasks aren't listed for me. When I try to re-apply it says that I already applied for the project. I am really interested to work for the project. If there is another way for me to get the prerequisite tasks done, please let me know.

    Thank you.

    1. Can you contact Min Yu by email? She runs the Hyperledger Mentorship Program and is the best person to advise you.

    2. sakhineti praveena if you have't already, please contact LFX Mentorship Support. You can find Support under the question icon at the top right hand corner of LFX Mentorship when logged in. 

      1. LFX support has helped me resolve my issue. Thanks a lot!

  5. Hello mentors,
    I didn't receive any further communication regarding the interview or selection process. Does this mean that I wasn't shortlisted for the project? 

    1. Sorry, we are running a bit late on this. We are still in the shortlisting phase.

      1. No Problem, I'm looking forward to hear from you.

  6. Hello mentors,

    Since 31st is last date for mentee notification, will it be announced tomorrow or it may take more time?