Versions Compared

Key

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

...

Page properties


TitleHyperledger Burrow - Web3
Status

Status
colourBlue
titlePending TSC ReviewUnselected

Difficulty

Status
colourYellow
titleMedium


Description 

Burrow is known as the Hyperledger Ethereum project but growing up alongside other clients like go-ethereum, circa 2015 it developed a parallel RPC system. This separates it from the rest of Ethereum-land and means the ecosystem of tooling (e.g. the excellent Truffle, Metamask, Remix IDE) cannot be used with Burrow despite us being compatible at the virtual machine level. So to pave the way for better interoperability between burrow and mainstream Ethereum tooling we would like a to implement the web3 RPC. Actually we'd like you to implement it (smile).

This project will involve collaborating with Fabric who have made a good start on Go-based web3 support for Fabric

Additional Information

The first part of this project will involve understanding how current Web3 architectures are implemented, the best place to start is with the Ethereum documentation:

...

Learning Objectives

  • Learn how to get stuff down in an open source community of corporate competitors
  • Work across teams from IBM, Intel, and Bitwise within Hyperledger
  • Learn how to implement a high performance Go HTTP API
  • Understand the account and transaction model of Ethereum
  • Develop an intuition for the trade-offs when integrating systems
  • How to protect yourself in the case of a marmot attack
  • Learn about elliptic curve signing algorithms
  • Learn about binary encodings

Expected Outcome

Implement https://github.com/ethereum/wiki/wiki/JSON-RPC.

...

  1. Implement sendRawTransaction
  2. Sign and send a transaction with MetaMask (https://metamask.io/)
  3. Connect Burrow with Remix (https://remix.ethereum.org/)
  4. Debug a Burrow contract on Remix

Notes

Members of the the Fabric Team (Swetha Repakula is your contact) have developed some lovely modular web3 code https://github.com/hyperledger/fabric-chaincode-evm/tree/master/fab3 that interacts with Fabric's implementation of Burrow. As have the Sawtooth team with https://github.com/hyperledger/sawtooth-seth/tree/master/rpc written in Rust and so is a little harder to integrate Burrow. We should find a way to share the Fabric fab3 code and extend it so both projects can benefit.

...

Remix debugging requires elements of the Ethereum management API. Some research will be required to scope this out.

Relation to Hyperledger 

Hyperledger Burrow - with effects on Fabric-ChainCode-EVM and Sawtooth-Seth via their Burrow integrations.

Education Level

If you think you can do the work, please apply.

Skills

Basic understanding of client / server architectures. Working knowledge of JavaScript and Go preferred but not essential. Good research skills, willingness to learn and try new things. Ability to lie very still and very quiet during a marmot attack.

Future plans

The web3 project will continue to mature to provide parity with mainstream Ethereum clients.

If you would like to continue contributing; this internship is on the maintainer track for Burrow (get hired on your commit history...).

Preferred Hours and Length of Internship

Full-time (40 hours) or part-time (20 hours) available.

Mentor(s) Names and Contact Info

Sean Young, Sean Young, Monax

...