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:
- 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.
- 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.
- Add suitable API support within the common Cacti client API for ease of application development
- 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.com, peter_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
Peter Somogyvari
Ramakrishna V Thank you for putting this together, LGTM!
Rafael Belchior
+1 this project is important
Yash Harale
Excited about contributing to Hyperledger Cacti! Could you please share any additional requirements beyond the cover letter and resume? Thank you!
Ramakrishna V
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.
sakhineti praveena
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.
Ramakrishna V
Can you contact Min Yu by email? She runs the Hyperledger Mentorship Program and is the best person to advise you.
Min Yu
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.
sakhineti praveena
LFX support has helped me resolve my issue. Thanks a lot!
sakhineti praveena
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?
Ramakrishna V
Sorry, we are running a bit late on this. We are still in the shortlisting phase.
sakhineti praveena
No Problem, I'm looking forward to hear from you.
Shivamrut G
Hello mentors,
Since 31st is last date for mentee notification, will it be announced tomorrow or it may take more time?