Abstract
Hyperledger Labs Blockchain Automation Framework(BAF) is a tool to deploy different DLT platforms automatically on a given Kubernetes cluster. BAF supports multi-cloud and multi-DLT deployments, and already supports HL Fabric, HL Besu, Quorum, R3 Corda. For HL Besu, currently only IBFT2 Consensus is supported by BAF. The task is to support the Clique consensus for Hyperledger Besu, so that BAF can be used to deploy and operate a HL Besu network with Clique consensus. This will also include upgrading BAF to support the latest stable Besu version.
Mentor and Mentee
Mentor: Sownak Roy
Timezone: UK/BST
Rocketchat(Hyperledger): sownak
Mentee: Roshan Raut
Timezone: IST
Rocketchat(Hyperledger): roshan13046
Mail: roshanpk.raut@gmail.com
Communication channel: Rocketchat + Github
Project repo: https://github.com/hyperledger-labs/blockchain-automation-framework
Deliverables
- Helmcharts required to set-up Clique consensus with Besu
- Ansible scripts to automate the generation of Helm value files.
- Documentation on how to use BAF for deploying HL Besu with Clique consensus.
- Documented, upgrade of Besu to latest stable on BAF.
Milestones
Eval 1:
- Local setup of all tools, Docker, Git, Minikube, Ansible.
- Use existing BAF code to deploy Besu with IBFT consensus on local network.
Eval 2:
- Deploy Besu with Clique consensus on local network manually.
- Manual steps for Besu with Clique documented.
Eval 3:
- Helmcharts created for Besu with Clique deployment.
- Tests and Documentation created for the Helmcharts.
Eval 4:
- Ansible scripts to automate the deployment of Besu with Clique.
- Updated documentation.
Timeline
Dates | Task/Plan | Status |
---|---|---|
June 1 - June 14 | Mentee intro with the mentor. Introduction to the concepts of BAF. | Done |
June 15 - June 28 | Set-up a small Besu network using local/AWS Kubernetes network using BAF. | InProgress |
June 29 - July 12 | Setup a Besu network with clique consensus manually/locally using Besu documentation. | Pending |
July 13 - July 26 | Create helmcharts that can be used to deploy Besu node with clique consensus | Pending |
July 27 - Aug 9 | (TBD)Complete tests and documentation of the Rust server impl. Eval on July 10: Provide reports for first quarter to the program organisers. | Pending Eval completed |
July 13 - July 26(TBD) | (TBD)Work on implementing diagnostics. Prepare the backend to process incoming code. | Pending |
July 27 - August 9(TBD) | (TBD)Work on diagnostics, fixing Range issues and fixing minor bugs. | Pending |
August 10 - August 16(TBD) | (TBD)Buffer period to complete the remaining work and co-op with difficulties during implementation. | Pending |
August 17 - August 23(TBD) | (TBD)Complete tests and documentation of the diagnostics implementation. Eval on August 21: Provide reports for the second quarter to the program organisers. | Pending Eval pending |
August 24 - Sept 6(TBD) | (TBD)Work on the hover feature. List out all possible grammar definitions and start implementing. | Pending |
Sept 7 - Sept 20(TBD) | (TBD)Follow up on the work. | Pending |
Sept 21 - 27(TBD) | (TBD)Finished the basics of hover implementation. Added hover for variable definition and types. | Pending |
Sept 28 - Oct 4(TBD) | (TBD)Complete tests and documentation of the implementation. Eval on Oct 2: Provide reports for third quarter to the program organisers. | Pending Eval pending |
Oct 5 - Oct 18(TBD) | (TBD)Week1: Work on adding support for Function + Return-type + Function params hover. Week2: Work on adding support for Emit token in hover. | Pending |
Oct 19 - Nov 1(TBD) | (TBD)Week1: Work on adding support for struct entries in hover. Week2: Buffer period to follow up on the work. | Pending |
Nov 2 - Nov 8(TBD) | (TBD)Used this week to work on hover implementation. | Pending |
Nov 9 - Nov 13(TBD) | (TBD)Time to complete remaining details and documentation. | Pending Eval pending |
Methodology
I am following the “Design-Code-Test-Document” methodology.
My first step while developing any software is to design the process flow by understanding the inner Architecture of Besu and BAF. During the initial mentorship, I along with my mentor will be doing some planning of the implementation and set important milestones for same as represented in the schedule for the work(given above) for the respective feature. Once I develop each feature, I will be writing Molecule Tests for the implementation to make sure whatever I wrote is working correctly. At the end of the tests, I will be documenting their implementation. I am using GIT for version control with reviews taking place on Github(Repo:https://github.com/hyperledger-labs/blockchain-automation-framework).
I am constantly sharing my progress with the mentor and the community, a weekly update regarding my work is shared with the mentor as a weekly meet.