Implement cross chain contract invocation using ServiceMesh way

Project TitleImplement cross chain contract invocation using 'ServiceMesh' way
Status

COMPLETED

Difficulty

MEDIUM  

Description 

Since permissioned blockchain has been adopted widely in various industries, the need to integrate different permissioned blockchains rises up recently. The two core problems of this case are chain contract interoperability and transaction atomic. 

Many frameworks and solutions proposed currently are a bit complex. We introduced a lightweight protocol and reference implementation inspired by the ‘ServiceMesh’ pattern in the microservice integration area. Combine with a stateless off-chain relay and an extended on-chain contract development kit as a ‘SideCar’ for different permissioned blockchains. 

Contract developers can focus on writing business logic since the on-chain contract development kit uses an AOP(aspect-oriented programming) approach to delegate the contract interoperability. In addition it also provides a lock API for locking contract state which can be used in two-phase commit cases. The off-chain relay uses an event based architecture to coordinate different permissioned blockchains.

Additional Information

Current we already defined a set of chain interoperability lifecycle events and we already have a reference implementation for Hyperledger fabric on-chain contract development kit using Go and off-chain relay which support a Hyperledger fabric plugin. We also have a sample program which demonstrates chain contract interoperability and two-phase commit case through three Hyperledger fabric networks.

The initial design doc at .

Mesher Repo: https://github.com/GrapeBaBa/mesher

Sidemesh Repo: https://github.com/GrapeBaBa/sidemesh

ChainMesh Samples Repo: https://github.com/GrapeBaBa/crossmesh-samples(There is a three fabric networks cross chaincode invocation demo)

Learning Objectives

  • Contributing and collaborating in an open-source project.
  • Understand the chain contract interoperability in permissioned blockchain integration cases. 
  • Design and implement chain interoperability lifecycle protocol.
  • Understand the contract state locking scheme and two-phase locking protocol.
  • Writing good documentations

Expected Outcome

  • Implement the on-chain contract development kit for Hyperledger fabric using JAVA.
  • Implement the on-chain contract development kit for Consensys quorum or Hyperledger Besu using Solidity.
  • Implement the off-chain relay plugin for Consensys quorum or Hyperledger Besu.

Relation to Hyperledger 

Hyperledger fabric, Hyperledger Besu

Education Level

Undergraduate or graduated student with developing experience preferred.

Skills

  • Master Go and JAVA programming language
  • Familiar with Solidity language
  • Understand Hyperledger fabric or Consensys quorum or Hyperledger Besu

Future plans

Looking forward to contribute this project to Hyperledger community

Preferred Hours and Length of Internship

Full-time (40 hours a week for 12 weeks during the summer)

Mentor(s) Names and Contact Info

Mentee

Shritesh Jamulkar, National Institute of Technology Raipur

Project Results

Final Report

Project Presentation Session Recording


https://youtu.be/6NnrDSr651A