Project Plan: Implement the Secure Asset Transfer Protocol in Cacti

Abstract

Implement the IETF Secure Asset Transfer Protocol according to proposed drafts (precursor to official RFCs) in Cacti using Relays.

Mentors

NameTime zoneDiscord IDEmail ID
Venkatraman RamakrishnaISTvramaiitkgpvramakr2@in.ibm.com
Rafael BelchiorESTrafaelapb#6679rafael.belchior@tecnico.ulisboa.pt
Sandeep NishadISTsandeepnsandeep.nishad1@ibm.com
Sikhar PatranabisISTSikharsikhar.patranabis@ibm.com

Mentee

NameTime zoneDiscord IDEmail ID
Zakwan JarouchehESTzakwanjzakwanj@gmail.com

Communication channel:  Slack + Discord+ Github

Project repo: https://github.com/hyperledger/cacti

Deliverables

  • Augment Cacti Relay module to implement the IETF SATP (Secure Asset Transfer Protocol)
    • Relay as asset source
    • Relay as asset destination
  • Failover and recovery support in the Cacti Relay module
  • Augment Fabric driver to handle SATP asset transfer instructions received from relays
  • Augment Fabric Interoperation SDK to trigger and manage asset transfers using SATP
  • Augment Fabric CLI to run and demonstrate an end-to-end instance of asset transfer
  • (Optional) Augment Corda Interoperation SDK to trigger and manage asset transfers using SATP
  • (Optional) Augment Corda CLI to run and demonstrate an end-to-end instance of asset transfer
  • Demonstrate asset transfers across Fabric networks using the SATP
  • (Optional) Demonstrate asset transfers across any combination of Fabric and Corda networks using the SATP
  • Unit and Integration tests
  • Write RFCs around the design and implementation of SATP using relays (final design specs will be an outcome of experimentation, and will be adjusted to reflect the latest IETF SATP draft specs.)
  • Write tutorial documents for users to configure and run testnets and applications and move assets across them
  • Propose updates to the IETF SATP drafts
  • (Optional) Port SATP logic from Relay to Node Server (older implementation using ODAP)

Merged PR's

  • TBD

Final Project Presentation:

  • TBD

Milestones

Eval 1:

  • Research: understand the SATP by reading the drafts, read about distributed commit protocols
  • Get hands-on with relay and driver code within Cacti
  • Implement: basic relay support for round-trip messaging
  • Implement: Stage 1: Steps 1.1 - 1.4: happy path and error handling

Eval 2:

  • Implement: remainder of the steps: 2.1 - 3.9: happy pat and error handling
  • Implement: Fabric Interoperation SDK support

Eval 3:

  • Implement: Fabric CLI additions to orchestrate asset transfers using this protocol
  • Demonstrate asset transfer across Fabric networks
  • Write tutorial documentation to guide users
  • Add appropriate Github Actions for integration testing

Eval 4:

  • Relay support for crash (fault) monitoring and recovery
  • Write design specifications (RFCs) for SATP-based asset transfer
  • TBD: Optional deliverables

Timeline

DatesTasks/Plan

Status

Jun 12 - Jun 30Mentee intro with mentors, getting hands-on with the Cacti-Weaver code and documentation, understanding the SATP, understanding the deliverables
July 1 - July 15

Design and Implement: GRPC Protobufs for SATP

Implement: basic relay support for round-trip messaging: endpoints for Stages 1 and 2

July 16 - July 31

Implement: Steps 2.1 - 2.3, with Stage 1 bootstrapping

Aug 1 - Aug 15

Implement: remainder of the steps: 2.4 - 3.10

Aug 16 - Aug 31

Implement: Fabric Interoperation SDK support

Sept 1 - September 30

Implement: Fabric CLI additions to orchestrate asset transfers using this protocol

Demonstrate asset transfer across Fabric networks

October 1 - October 15

Write tutorial documentation to guide users

Partially done (docs need to be published)
October 16 - October 31

Relay support for crash (fault) monitoring and recovery

November 1 - November 15

Presentation for Standardization Body (IETF) Meeting (118, Prague)

✅ (See Notes for presentation link)

November 16 - November 30

Write design specifications (RFCs) for SATP-based asset transfer

Add appropriate Github Actions for integration testing


Nov 7 - Nov 30 (Nov 30 eval)Final presentation

Methodology

  • TBD
  • TBD
  • TBD

Notes

IETF 118 Presentation (Virtual) in the SATP Working Group

Date: November 9, 2023

Venue: Prague, Czech Republic

Conference agenda: https://datatracker.ietf.org/meeting/118/agenda

Session recording: https://play.conf.meetecho.com/Playout/?session=IETF118-SATP-20231109-1200