Questions tagged [raft]

A distributed consensus protocol designed to be easy to understand. It's equivalent to Paxos in fault-tolerance and performance.

Click for source

Raft is a consensus algorithm that is designed to be easy to understand. It's equivalent to Paxos in fault-tolerance and performance. The difference is that it's decomposed into relatively independent subproblems, and it cleanly addresses all major pieces needed for practical systems. We hope Raft will make consensus available to a wider audience, and that this wider audience will be able to develop a variety of higher quality consensus-based systems than are available today.

Consensus is a fundamental problem in fault-tolerant distributed systems. Consensus involves multiple servers agreeing on values. Once they reach a decision on a value, that decision is final. Typical consensus algorithms make progress when any majority of their servers are available; for example, a cluster of 5 servers can continue to operate even if 2 servers fail. If more servers fail, they stop making progress (but will never return an incorrect result).

Consensus typically arises in the context of replicated state machines, a general approach to building fault-tolerant systems. Each server has a state machine and a log. The state machine is the component that we want to make fault-tolerant, such as a hash table. It will appear to clients that they are interacting with a single, reliable state machine, even if a minority of the servers in the cluster fail. Each state machine takes as input commands from its log. In our hash table example, the log would include commands like set x to 3. A consensus algorithm is used to agree on the commands in the servers' logs. The consensus algorithm must ensure that if any state machine applies set x to 3 as the nth command, no other state machine will ever apply a different nth command. As a result, each state machine processes the same series of commands and thus produces the same series of results and arrives at the same series of states.

259 questions
0
votes
1 answer

Forcing re-election in RAFT

I'm using Raft consensus, in hyperledger fabric, and I have some questions about how does it work. Once a Leader is elected, does the orderer stays a leader until he goes down ? Is it possible to force re-election process without restarting the…
No name
  • 323
  • 4
  • 11
0
votes
1 answer

inconsistent state after zookeeper leader crash?

I'm trying to understand zookeeper's internal. Suppose a 3-servers zookeeper cluster, the leader server send a proposal(say setdata: foo=1) to two followers and then crashed, but at least one follower record this proposal to its transaction log…
0
votes
1 answer

Hyperledger Fabric Raft Orderer Setup Failed with authentication handshake failure on channel create

I am creating a HLF network with raft as orderering service. peer channel create -o ProdOrderer1_ProdOrdr_com:7050 -c masterchannel -f ./configtx/masterchannel.tx --tls true --cafile…
0
votes
1 answer

Raft leader election algorithm one vote for term?

i have a doubt in undersanting the leader election algorithm of the Raft algorithm. In the paper i read that each node con give only one vote for each term. My doubt is because the terms in each node can be different, what is referred is the term of…
pinotto
  • 45
  • 7
0
votes
1 answer

Vault HA with Raft as storage backed - auto join

At the time of writing this, the latest Vault version is 1.3. This supports the joining of a node to a Raft cluster. I've seen that in the official example the join seems that must be run manually. So the first node run vault operator init and all…
Mazzy
  • 13,354
  • 43
  • 126
  • 207
0
votes
0 answers

Shutdown machine while inserting data stops the network

I have my network running with 3 machines, each one with: 1 orderer 1 peer 1 ca 1 Node.Js client They are deployed on AWS and a load balancer correctly distributes the requests to the 3 different clients. The clients are not using discovery…
Riki95
  • 706
  • 1
  • 7
  • 16
0
votes
1 answer

Increment term in Raft algorithm?

i'm trying to learn the raft algorithm to implement it, i don't have understood when the term is incremented, apart from when a node pass from stato follower to state candidate there are others cases when the term is incremented? For instance when…
0
votes
1 answer

TermId in raft leader election algorithm?

i'm trying to understand the raft consensus algorithm for trying to implement it, what i don't have understood is the leader election algorithm, the termId is incremented when one node pass from state follower to candidate, but how we can be sure…
pinotto
  • 45
  • 7
0
votes
1 answer

How does Raft guarantee log consistency?

I'm learning Raft, and I already know the basic mechanism of Raft. When a Leader is elected, it is responsible to update the Followers' log to the Leader's one. When updating a Follower, it finds the first matched backwards, and…
0
votes
1 answer

When does a term begin and end in Raft?

I've been reading the paper "In Search of an Understandable Consensus Algorithm". I'm confused with how "term" works. I have two thoughts. A term begins with an election, and ends with the next election. The next election may happen due to the…
Kanjie Lu
  • 997
  • 2
  • 9
  • 26
0
votes
1 answer

Rejecting broadcast of normal message from 10.55.56.23:39324 with SERVICE_UNAVAILABLE: rejected by Order: aborted

facing the error frequently during my first transaction on any channel fabric version 1.4.2 orderering service : raft peer logs 2019-12-05 10:00:41.232 UTC [orderer.common.broadcast] ProcessMessage -> WARN 959c89 [channel: qlqlchannel] Rejecting…
rahul_eth
  • 123
  • 3
0
votes
1 answer

Is there any termination guarantee for raft algorithm leader election?

I was trying to understand how Raft algorithm overcomes FLP theorem. For FLP to be valid, consensus algorithm should be deterministic, termination and asynchronous. As the PhD dissertation on the Raft consensus algorithm says Unfortunately, it is…
vrnithinkumar
  • 1,273
  • 1
  • 11
  • 29
0
votes
1 answer

Start and connect several servers before a client connection

I'm trying to implement a Raft software in java but i'm having problems on how should I start the servers in the cluster. How am I supposed to start them all without a connection to a client? I'm stuck at the socket.accept() of the first one, since…
0
votes
1 answer

Cannot start quorum 7nodes example locally on ubuntu

I was trying to build 7nodes example on my pc locally ,following the process on quorum site (http://docs.goquorum.com/en/latest/Getting%20Started/7Nodes-Setup/) . but when I run "./raft-init.sh" (even with sudo) the following error appears: [*]…
0
votes
1 answer

Hyperledger setup in Docker Swarm Mode w/ TLS

I am setting up a production-ready Hyperledger network. This requires the Docker containers to run in swarm mode, so we can have orderers in different geolocations. I have previously setup Kafka network in swarm mode (without TLS), and…
a.hrdie
  • 716
  • 2
  • 14
  • 35