Coder Social home page Coder Social logo

musa's Introduction

๐ŸŒ Musa

standard-readme compliant

Musa is a lean bootstrapper for any libp2p-based network. It's called like that to capture the ๐ŸŒ vibes around here.

Table of Contents

Background

The current bootstrappers run by Protocol Labs are instances of Kubo and one other written in Rust [blog post]. It is good to have implementation diversity in case of a regression that could render the network unreachable. We have already shipped a feature that uses previously identified peers as backup bootstrap peers. However, it will take time until peers will upgrade their Kubo installation and therefore won't benefit from that feature for a while. With Musa we're adding to the effort of diversifying the fleet of bootstrap peers.

Because of the way it is built, it can be configured to bootstrap into any libp2p-based network. Further, we expect it to require minimal resources

Usage

Just run

$ go run *.go

in the root directory of this repository.

Tracing

To enable tracing, first start the Jaeger container:

docker run --rm --name jaeger -p 16686:16686 -p 4317:4317 jaegertracing/all-in-one:1.49

Then provide the --trace-host and --trace-port command line flags:

$ go run *.go --trace-host localhost --trace-port 4317

Traces will be available at http://localhost:16686.

Configuration

There are plenty of configuration options. Just provide the --help command line flag

NAME:
   musa - a lean bootstrapper process for any network

USAGE:
   musa [global options] command [command options] [arguments...]

COMMANDS:
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --host value          the network musa should bind on (default: "127.0.0.1") [$MUSA_HOST]
   --port value          the port on which musa should listen on (default: random) [$MUSA_PORT]
   --private-key value   base64 private key identity for the libp2p host (default: "127.0.0.1") [$MUSA_PRIVATE_KEY]
   --protocol value      the libp2p protocol for the DHT (default: "/ipfs/kad/1.0.0") [$MUSA_PROTOCOL]
   --metrics-host value  the network musa metrics should bind on [$MUSA_METRICS_HOST]
   --metrics-port value  the port on which musa metrics should listen on (default: 0) [$MUSA_METRICS_PORT]
   --trace-host value    the network musa trace should be pushed to [$MUSA_TRACE_HOST]
   --trace-port value    the grpc otlp port to which musa should push traces to (default: 0) [$MUSA_TRACE_PORT]
   --log-level value     the structured log level (default: 0) [$MUSA_LOG_LEVEL]
   --help, -h            show help

Maintainers

@ProbeLab.

Contributing

Feel free to dive in! Open an issue or submit PRs.

License

MIT ยฉ Protocol Labs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.