Abstract

Hyperledger Bevel is an automation framework for rapidly and consistently deploying production-ready DLT platforms.  This task aims to complete a live upgrade of a Hyperledger Fabric network from version 1.4.x to 2.2.x using Hyperledger bevel and document the steps as well as make any changes needed to automate any steps possible.

Mentors

NameTime zoneDiscord IDEmail ID
Sownak RoyUK/BSTSownak#7728sownak.roy@accenture.com
Jagpreet Singh SasanISTJag#2402jagpreet.singh.sasan@accenture.com

Mentee

NameTime zoneDiscord IDEmail ID
Mohit VaishISTMohitv#9920mohit_vaish@hotmail.com

Communication channel:  Discord+ Github

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

Deliverables

  • Automation of the live upgrade from version 1.4.x to 2.2.x of Hyperledger Fabric network deployed using Hyperledger Bevel
  • Relevant operational guide on the live upgrade from version 1.4.x to 2.2.x of Hyperledger Fabric network deployed using Hyperledger Bevel
  • Completion of relevant issues about the same on Github

Merged PR's

Final Project Presentation:

Milestones

Eval 1:

  • Manual upgrade of the platform components (orderer, peer) of the network
  • Manual upgrade of the application components (channel, chaincode) parts of the network

Eval 2:

  • Operation Guide on how to upgrade manually

Eval 3:

  • Helm and Ansible automation for upgrade of the components

Eval 4:

  • Final Operation Guide and Blog on how to upgrade using Hyperledger Bevel

Timeline

DatesTasks/Plan

Status

June 1 - June 14Mentee intro with the mentor. Introduction to the concepts of BevelDone
June 15 - June 28Manual upgrade of non-chaincode parts of the networkDone

June 29 - July 12

Manual upgrade of chaincode parts of the networkDone
July 13 - July 26Document the approach & manual upgrade tasks performedDone
July 27 - Aug 9Automate the binary upgrade process for Orderer Done
Aug 10 - Aug 23Automate the binary upgrade process for Peers and upgrade DBDone
Aug 24 - Sept 6Automate tasks for upgrade capabilitiesDone
Sept 7 - Sept 20Automate tasks to update EndPoints and Endorsement PoliciesDone
Sept 21 - Oct 4Automate tasks to update Lifecycle and ACLsDone
Oct 5 - Oct 18Test final automationDone
Oct 19 - Nov 1Update documentDone
Nov 2 - Nov 12Prepare final presentation and demoDone

Methodology

The planned approach can be broken into following steps:

  1. Perform a manual upgrade for all required steps and verify the results. Steps performed can be found here
  2. The operator updates the JSON file 'network.yaml' for upgrade flag and upgrade version. The operator also ensures the configuration in this file reflects the current state of Hyperledger fabric deployment. Operator should also takes backup of core.yaml and orderer.yaml files, if any changes are done for existing deployment
  3. Once the manual upgrade is tested. The approach is to automate the same manual steps which can be broadly divided into following:
    1. First upgrade orderer nodes to the upgrade version. When upgrade is finished, the script waits for operator confirmation to move to next step 
    2. This step upgrade peer nodes one by one and as earlier waits for operator confirmation
    3. This step upgrade ca nodes and peer cli nodes(where available) to the upgrade version
    4. Now script will upgrade the capabilities for orderer, channel and application group for system channel and all application channels mentioned in network.yaml file
    5. Next step will update the system channel consortium and all application channel orgs for endorsement policies
    6. This step will update all the application channels 'application group' for endorsement and lifecycle policies
    7. This step will ensure that OrdererEndpoints are used in system channel and all application channels
    8. Where ACL needs to be updated, we update it in this final automated step 
  4. Operator should compare the new core.yaml with backup file as per step 2 and manually make the required changes
  5. Operator can also deploy existing chaincode using new lifecycle of 2.2.x version.


  • No labels