Project Plan: Data Sharing from Besu/Ethereum in Cacti

Abstract

Augment existing modules and add new adapters to enable data sharing to and from networks built on Hyperledger Besu and Ethereum.

Mentors

NameTime zoneDiscord IDEmail ID
Venkatraman RamakrishnaISTvramaiitkgpvramakr2@in.ibm.com
Sandeep NishadISTsandeepnsandeep.nishad1@ibm.com
Sikhar PatranabisISTSikharsikhar.patranabis@ibm.com

Mentee

NameTime zoneDiscord IDEmail ID
Vatti Praveen KumarISTvatti_praveenvattipraveen565@gmail.com

Communication channel:  Slack + Discord+ Github

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

Deliverables

  • Create components for a Besu network to be able to participate in data sharing:
    • Besu driver for view and proof generation
    • Besu interoperation module: access control
    • Besu interoperation module: membership management
    • Besu interoperation module: proof generation
    • Besu interoperation module: proof verification
    • Besu Node.js SDK for triggering data sharing flows
    • (Optional) Besu IIN Agent for membership syncing
  • Augment Fabric interoperation chaincode to accept and validate Besu proofs
  • Augment Corda interoperation CorDApp to accept and validate Besu proofs
  • Write appropriate configuration files: relay, access control policy, verification policy, membership info for Besu network
  • Update Besu CLI to orchestrate and test end-to-end data sharing flows with at least one Besu network
  • Unit and Integration tests
  • Write RFCs detailing specifications of Besu-related components, compiling research and design specifications
  • Write tutorial documents for users to launch and configure Besu networks and run end-to-end data sharing examples
  • (Optional) Port interoperation module for use with Ethereum Mainnet: to generate proofs from Ethereum
  • (Optional) Port Besu driver to work with the Ethereum mainnet to generate proofs from Ethereum
  • (Optional) Add encryption and authentication logic in Besu interoperation module for end-to-end confidentiality
  • (Optional) Add decryption and authentication logic in Besu SDK for end-to-end confidentiality

Merged PR's

  • TBD

Final Project Presentation:

  • TBD

Milestones

Eval 1:

  • Research: structure and security of Besu networks, data/block structures, proof structures
  • Design specifications for each module involved in the data sharing protocol involving Besu as either source or destination: write RFCs
  • Implement: Besu interoperation module: membership management (with unit tests)

Eval 2:

  • Implement: Besu interoperation module: proof generation (with unit tests)
  • Implement: Besu interoperation module: proof verification (with unit tests)
  • Implement: Besu interoperation module: access control (with unit tests)
  • Implement: Besu driver (with unit tests)

Eval 3:

  • Implement: Besu SDK support for data sharing (with unit tests)
  • Implement: Besu CLI for sample end-to-end data sharing scenarios
  • Demonstrate end-to-end data sharing: Besu-Besu
  • Implement: Fabric interoperation chaincode support for Besu views
  • Demonstrate end-to-end data sharing: Fabric-Besu
  • Write tutorial documentation to guide users
  • Add appropriate Github Actions for integration testing

Eval 4:

  • Implement: Interop CorDApp support for Besu views
  • Demonstrate end-to-end data sharing: Corda-Besu
  • Write tutorial documentation to guide users
  • Add appropriate Github Actions for integration testing
  • 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 deliverables

July 1 - July 15
  • Create common protobuf data structures
  • Write RFCs
July 16 - July 31

Implement: Besu interoperation module: membership management (with unit tests)


Aug 1 - Aug 15
  • Implement: Besu interoperation module: proof generation (with unit tests)
  • Implement: Besu interoperation module: proof verification (with unit tests)

Aug 16 - Aug 31
  • Implement: Besu interoperation module: access control (with unit tests)
  • Implement: Besu driver (with unit tests)

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

Methodology

  • TBD
  • TBD
  • TBD