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

Zookeeper zookeeper.forceSync, Zab and Paxos

I noticed that the default the configuration for zookeeper.forceSync is "no". This mean FileChannel.Force() will not be called on the Write ahead log. I was under the impression that for the Zab consensus algorithm used by zookeeper to work…
skyde
  • 2,816
  • 4
  • 34
  • 53
0
votes
1 answer

Unable to send transactions with quorum nodes using tessera

I am unable send transactions between 2 quorum nodes on different machines using tessera privacy manager and raft consensus.(private-contract.js) I am getting the following error err creating contract Error: Non-200 status code: &{Status:500…
Meenu
  • 1
0
votes
1 answer

Hyperledger fabric : unable to create channel on raspberry pi 4 with Raft ordering service

I am trying to setup an hyperledger fabric network on a Raspberry Pi 4. My version of Fabric is 1.4.6. I am able to create a network running with a solo ordering service, but when I try with Raft, I can't create the channel. I am following the byfn…
0
votes
1 answer

Removing majority of orderers from OrdererAddresses section in channel in Hyperledger Fabric

Consider the following situation: I am running fabric-samples/first-network for the HLF in RAFT mode. I use the CLI container to fetch the latest block for mychannel and edit the OrdererAddresses section by removing 4 orderers namely,…
Chintan Rajvir
  • 689
  • 6
  • 20
0
votes
1 answer

Why Hyperledger Fabric use kafka in the first place

I'm doing a research about fabric but something stuck in my mind was why fabric use kafka in the first place? is there any technical reason for the fabric to change to raft beside raft implementation are somewhat simpler? (like some improvement or…
0
votes
1 answer

What if follower loses its leader in a two-node situation (only a leader and a candidate) in Raft?

I'm learning Raft algorithm. My implementation meets following situation: 1-leader-1-follower situation is established; shutdown the leader; follower gets no heartbeat so then becomes a candidate; candidate keeps sending VoteRequest to the peer…
dave
  • 43
  • 6
0
votes
1 answer

What's the difference between Raft and Casper consensus algorithm?

Raft is a consensus algorithm, and many distributed system uses it, and the Casper consensus protocol includes stake-based bonding, unbonding, and betting cycles that result in consensus. And usually we use Casper in blockchain, so what's the…
McGrady
  • 10,869
  • 13
  • 47
  • 69
0
votes
1 answer

Default time for orderers to detect change in their endpoints in system channel

I was trying to migrate my Hyperledger Fabric network (running a RAFT ordering service) from one host to another. In this process, I was making sure that the TLS communication is respected, which means that I made required changes in the system…
Chintan Rajvir
  • 689
  • 6
  • 20
0
votes
1 answer

How to pass all orderers while creating a channel ( raft)

I have a 3 org 6 peer system with node SDK and 5 raft orderers. The raft is working fine, tried killing leaders and election takes place. The SDK also working well can invoke transactions. But the problem bothering me is while starting the network…
0
votes
1 answer

Raft algorithm leader election when there is a partition

Let's say you have three servers A, B and C There is a network partition between A and C. During leader election the following steps might happen: a) A encounters a timeout and start a new election with term 1. B responds to the vote request and A…
g. arshad
  • 21
  • 4
0
votes
1 answer

How can I deploy my raft orderer nodes on separate hosts?

I'm using HyperLedger Fabric(v1.4.1) on 3 host machines(server1:client, server2:peer nodes server3:orderer nodes). And I want to put my raft nodes on multiple hosts.(like server1:orderer1,orderer2, server2:orderer3) I edited docker-compose-cli.yaml…
0
votes
1 answer

Setting a subset of orderers for RAFT application channel

I am trying to create an application channel using first-network from fabric-samples. I am creating the deployment to run 4 ordering nodes running in RAFT cluster. The following is the profile section used for creating Orderer Genesis Block in the…
Chintan Rajvir
  • 689
  • 6
  • 20
0
votes
1 answer

Reconnect Hazelcast (smart) client to CP subsystem

I am connecting to a HZ cluster as a smart client. After the client is running successfully for xome time I encounter com.hazelcast.cp.exception.CPGroupDestroyedException. In this case I'd like the client to forget about the old CP subsystem and…
vbence
  • 20,084
  • 9
  • 69
  • 118
0
votes
1 answer

Adding a new Orderer Node to the RAFT ordering service in Hyperledger Fabric

I am following steps given here to add a new Orderer node to the existing RAFT ordering service. I am using first-network from the fabric-samples (version: master/latest) github repository. I modified the files in the first-network folder to start…
Chintan Rajvir
  • 689
  • 6
  • 20
0
votes
1 answer

Adding an orderer of new organisation in hyperledger fabric

I have a RAFT setup of hyperledger fabric 1.4. I am trying to onboard a new organisation. I have created different sets of crypto materials using cryptogen tool for the new organisation and followed the steps mentioned in…
GPC
  • 381
  • 2
  • 14