šŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →
Socket
Sign inDemoInstall
Socket

github.com/libp2p/go-libp2p-raft

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/libp2p/go-libp2p-raft

v0.5.0
Source
Go
Version published
Created
Source

go-libp2p-raft

GoDoc Build Status codecov Discourse posts

A LibP2P wrapper for hashicorp/raft implementation.

go-libp2p-raft implements a go-libp2p-consensus interface wrapping hashicorp/raftimplementation and providing a libp2p network transport for it.

Table of Contents

Background

Raft is a fault-tolerant consensus algorithm that allows a number of peers to agree on a State. Each peer can submit updates to that State, which are then distributed and agreed upon.

Hashicorp's Raft is a mature implementation of the algorithm, which includes a number of performance improvements over the original version and a modular approach that allows to replace pieces of the system with custom implementations.

LibP2P provides a modular peer-to-peer networking stack, which simplifies the networking layer by adding features like generic addressing, secure channels, protocol multiplexing over single connections or nat traversal in a standarized fashion.

go-libp2p-raft uses Hashicorp's Raft implementation and provides a LibP2P-based network transport for it. At the same time, it wraps the whole system with an implementation of the go-libp2p-consensus interface, ensuring any applications relying on it can easily swap it for a different one.

In short, go-libp2p-raft:

  • can be used to implement raft-consensus-based systems
  • takes advantange of the libp2p features (secure channels, protocol multiplexing, nat transversal...)
  • takes advantage of Hashicorp's Raft implementation matureness and performance improvementes (pipelining)
  • forms a layer which can easily be replaced by a different go-libp2p-consensus implementation.

Install

go-libp2p-raft works like a regular Go library and uses Go modules for depdendency management:

Usage

The documentation and examples for this module can be found in godoc.org/github.com/libp2p/go-libp2p-raft.

Contribute

PRs accepted.

Small note: If editing the README, please conform to the standard-readme specification.

License

MIT Ā© Protocol Labs, Inc.

The last gx published version of this module was: 1.2.20: QmX73JLtJ92tDcZajRrYtQDVSLQ5LPnADHwwQLXkTzNRhE

FAQs

Package last updated on 22 Apr 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts