Details

    • Epic Name:
      Raft Consensus (etcd/raft)
    • SDK Impact:
      No
    • Design Status:
      Reviewed
    • Function Test Status:
      Done
    • Documentation Status:
      Done
    • Sample/Tutorial:
      Done
    • Current Status:
      Delivered in v1.4.1. Kafka to raft migration targeted for v1.4.2.
    • Test Plan:
      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.
    • Release Note:
      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

              Toggl

              Enter your Toggl API token
              Mark as billable
              Apply JIRA issue labels


              {{ currentTimer.description|limitTo:35 }}...
              {{hours}} hour{{hoursS}}, {{minutes}} minute{{minutesS}}, {{seconds}} second{{secondsS}}

                People

                • Assignee:
                  kchristidis Kostas Christidis
                  Reporter:
                  kchristidis Kostas Christidis
                • Votes:
                  8 Vote for this issue
                  Watchers:
                  45 Start watching this issue

                  Dates

                  • Created:
                    Updated:

                    Git Source Code