Uploaded image for project: 'Fabric'
  1. Fabric
  2. FAB-6135

Raft Consensus (etcd/raft)

    XMLWordPrintable

Details

    • Epic
    • Status: Closed
    • Highest
    • Resolution: Done
    • v1.1.0
    • v2.0.0, v1.4.2
    • fabric-orderer
    • Raft Consensus (etcd/raft)
    • No
    • Reviewed
    • Done
    • Done
    • Done
    • Delivered in v1.4.1. Kafka to raft migration completed in v1.4.2 and v2.0.
    • Hide
      High level system test plan:
      - Week 1: All basic crash/restart variations in latency/constant mode. Dynamic onboarding.
      - Week 2: Spillover from week 1, plus TLS certificate rotation tests, maybe more onboarding scenarios. Kickoff long-running test and monitor for leaks.
      - Week 3: Spillover from week 2, plus performance testing. Cert rotation/onboarding with fat chains. Begin migration testing (code might not be merged: we'll work with images on Docker Hub if need be).
      - Week 4: Performance + migration.
      Show
      High level system test plan: - Week 1: All basic crash/restart variations in latency/constant mode. Dynamic onboarding. - Week 2: Spillover from week 1, plus TLS certificate rotation tests, maybe more onboarding scenarios. Kickoff long-running test and monitor for leaks. - Week 3: Spillover from week 2, plus performance testing. Cert rotation/onboarding with fat chains. Begin migration testing (code might not be merged: we'll work with images on Docker Hub if need be). - Week 4: Performance + migration.
    • The ordering service now supports an additional consensus mechanism that uses the Raft protocol. Please refer to the documentation for configuration instructions.

    Description

      If this were titled as a story it would be:

      As a Fabric ordering service operator/deployer, I wish to decrease my dependency on third-party binaries.

      We propose to achieve this via an ordering service based on etcd/raft.

      Raft still keeps us in CFT-land and as such, it is still not the optimal solution (BFT is, and that's also coming), but –

      1. It allows us to have an ordering service without Kafka/ZK depedencies, and
      2. It helps with the BFT development as well, since it gives us a chance to hook into Fabric a leader-based consensus protocol and carry those lessons over when writing the BFT plugin.

      The design document goes over everything we'll need to do in order to make Raft a consensus option for Fabric. The spreadsheet goes over the rough plan of how we will be breaking this epic into stories. The last sheet on that spreadsheet includes a list of recommended resources and reference material.

      Attachments

        Issue Links

          Activity

            People

              kchristidis Kostas Christidis
              kchristidis Kostas Christidis
              Votes:
              8 Vote for this issue
              Watchers:
              44 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: