Implement cross chain contract invocation using ServiceMesh way
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.
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
- GrapeBaba , 281165273grape@gmail.com, rocketchat: grapebaba
- zhen peng ,pengzhen9278@gmail.com
Mentee
Shritesh Jamulkar, National Institute of Technology Raipur
Project Results
- ChainMesh org: https://github.com/Chain-Mesh
- Design Doc:
- Wiki: Project Plan - Implement cross chain contract invocation using 'ServiceMesh' way
- Sidemesh Library: https://github.com/Shritesh99/sidemesh-solidity
- Mesher Library: https://github.com/Shritesh99/Mesher-Solidity
- Sample Implementation: https://github.com/Shritesh99/samples/tree/besu2fabric