Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Design a generic structure and interface (API) for the COPM that is portable across DLTs (while being implemented in DLT-specific ways for each ledger type.)
  • Identify a list of Core Operator primitives to implement. Thus far, we have identified a limited set of such operators, which in some combinations can fulfil the three canonical DLT interoperability use cases: data sharing, asset exchange, and asset transfer. (Note: this set is meant to be extensible, to accommodate more operators if we discover functions that are not covered by the below list)
    • lockAsset
    • pledgeAsset
    • claimAsset
    • generateProof
    • verifyProof
    • accessControl
    • noop (this is a passthrough option, for Cacti modules and connectors that do not need to invoke any of the above operators)
  • Implement a COPM for Hyperledger Fabric
    • On a best effort basis, implement a COPM (in part or whole) for Corda
    • On a best effort basis, implement a COPM (in part or whole)  for Besu/Ethereum
  • Sketch out a template for porting to arbitrary DLTs and write documentation (this may end up being part of the Cacti whitepaper)
  • Write scripts to deploy COPMs on a given network
  • Refactor existing Cacti packages (select a few) to invoke the appropriate COPM
  • Pick some end-to-end examples to showcase (this should cover existing Cactus examples, existing Weaver examples on data sharing, asset exchange, and asset transfer)

Preliminary work:

  • Test out various and evaluate Cactus setups and Weaver (especially, as these operators are currently mostly implemented as Weaver contracts and DApps) setups and samplesexamples using instructions in the documentation.
  • Test and evaluate Weaver setups and samples using instructions in the documentation.
  • Document bugs, required upgrades in software, instruction typos, and identify automation scripts that can help make tooling and CI more efficient.Fix any obvious bugs and patches, write automation scripts as needed (create a "service pack"), update CI GitHub Actions accordingly
  • Expose Weaver modules and libraries through symlinks in the packages  folder to simplify the integration process.

(The intention of this project is to unify multiple interoperability frameworks by creating a reusable set of operators so that the existing frameworks can be migrated to them.)

...

  •  

    Cacti Core Operators Module , with grpc or socket IO external interface, and REST API integrated into the Cacti Client API. These operators are to be implemented in:

    •  corda
    •  hyperledger fabric
    •  hyperledger besu

    (COPM) design: functions (see the list in the project scope above) and API

    •  

      API should be RESTful, built on gRPC or socket.IO, designed to be integrated with the Cacti Client API and invoked by Cacti Connectors

  •  

    Implementation of COPM:

    •  Hyperledger Fabric: (required: all functions and API)
    •  R3 Corda: (best effort: some functions and associated API)
    •  Hyperledger Besu: (best effort: some functions and associated API)
  •  Selection of use cases (examples) for end-to-end testing: both Cactus (Node Server) and Weaver (Relay) modes
    •  Weaver data sharing using test networks (minimum required)
    •  Other Weaver use cases (asset exchange, asset transfer) (best effort)
    •  Cactus examples: TBD
  •  CI-automated testing of Core Operator Module COPM for all combinations
  •  

    Documentation of the above, including API documentation and getting started guide

  •  RFCs updated
  • :

    •  

      Updates to architecture, vision, design methodology (as required)

    •  

      Tutorials for running with Cacti samples

    •  FAQs (best effort) 
    •  

      Suggestive instructions for adaptation to users' scenarios (best effort)

  •  Updated RFCs: COPM design and API specifications

Optional Deliverables

  •  Unified cacti Cacti CI github GitHub workflows
  •  Weaver tests run-able in local environment via docker
  •  Weaver test examples updated to use core operators
  •  Dockerize Weaver test tooling for easy setup (equivalent of a the fabric-tools container offered by Fabric)
  •  Cactus REST APIs updated to use core operators
  •  Redundant code identified and removed
  •  Implementation of Core Operator Module in other DLTsDLTs other than Fabric, Corda, and Besu

Timeline

WeekTask/PlanStatus
June 03 - June 20On boarding/orientation sessions. Meet with the mentors, discuss project implementation details,
deliverables and scope. Initiate the project plan.
June 20 - June 27 Finalize project plan, attempt to run examples, flagging project examples that no longer work
June 27 - July 7
Implement Core Operator Module skeleton with gprc and REST API interface
Produce COPM design (with interface). Preliminary work (best effort): see list in the Project Scope section
July 8 - July 17Mentee vacation
July 17 - July 22Implement COPM skeleton with gprc and REST API interface. Implement one core operator in Fabric, Besu and
Corda 
Corda .
July 22 - July 261ST QUARTER MENTEE EVALUATION
July 27 - August 18Implement remaining core operators on Fabric


August 19 - September 01Finalize documentation
September 02 - September 06

MIDTERM EVALUATIONS


September 08 - September 22Implement remaining core operators for Besu
September 23 - October 19Implement remaining core operators for Corda
October 14 - October 183RD QUARTER MENTEE EVALUATION
October 19 - November 29Optional deliverables




(Greyed out entries in the above table are placeholders, subject to review and revision.)