{"id":22959574,"url":"https://github.com/probe-lab/musa","last_synced_at":"2026-06-01T03:32:37.078Z","repository":{"id":195787711,"uuid":"693636706","full_name":"probe-lab/musa","owner":"probe-lab","description":"🍌 A lean DHT bootstrapper for any libp2p-based network","archived":false,"fork":false,"pushed_at":"2025-11-20T01:19:21.000Z","size":155,"stargazers_count":6,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-12T05:08:18.259Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/probe-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-19T12:21:34.000Z","updated_at":"2025-09-02T21:19:54.000Z","dependencies_parsed_at":"2024-03-21T15:59:38.498Z","dependency_job_id":"4db4f2d5-7999-4de2-9cf9-bcb1b99e8cac","html_url":"https://github.com/probe-lab/musa","commit_stats":null,"previous_names":["plprobelab/musa","probe-lab/musa"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/probe-lab/musa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probe-lab%2Fmusa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probe-lab%2Fmusa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probe-lab%2Fmusa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probe-lab%2Fmusa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/probe-lab","download_url":"https://codeload.github.com/probe-lab/musa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probe-lab%2Fmusa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33759178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-14T18:19:22.097Z","updated_at":"2026-06-01T03:32:37.062Z","avatar_url":"https://github.com/probe-lab.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍌 Musa\n\n[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)\n\n[Musa](https://en.wikipedia.org/wiki/Musa_(genus)) is a lean bootstrapper for any libp2p-based network. It's called like that to capture the [🍌](https://en.wikipedia.org/wiki/Musa_(genus)) vibes [around here](https://github.com/ipfs/kubo/pull/8958).\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Background](#background)\n- [Usage](#usage)\n  - [Tracing](#tracing)\n- [Configuration](#configuration)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Background\n\nThe current bootstrappers run by [Protocol Labs](https://protocol.ai) are\ninstances of [Kubo](https://github.com/ipfs/kubo) and one other [written in Rust](https://github.com/libp2p/rust-libp2p/tree/master/misc/server) [[blog post](https://blog.ipfs.tech/2023-rust-libp2p-based-ipfs-bootstrap-node/)].\nIt is good to have implementation diversity in case of a regression that could\nrender the network unreachable. We have already [shipped a feature](https://github.com/ipfs/kubo/pull/8856)\nthat uses previously identified peers as backup bootstrap peers. However, it\nwill take time until peers will upgrade their Kubo installation and therefore\nwon't benefit from that feature for a while. With Musa we're adding to the effort\nof diversifying the fleet of bootstrap peers.\n\nBecause of the way it is built, it can be configured to bootstrap into any\nlibp2p-based network. Further, we expect it to require minimal resources\n\n## Usage\n\nJust run\n\n```sh\n$ go run *.go\n```\n\nin the root directory of this repository.\n\n### Tracing\n\nTo enable tracing, first start the [Jaeger](https://www.jaegertracing.io/) container:\n\n```shell\ndocker run --rm --name jaeger -p 16686:16686 -p 4317:4317 jaegertracing/all-in-one:1.49\n```\n\nThen provide the `--trace-host` and `--trace-port` command line flags:\n\n```sh\n$ go run *.go --trace-host localhost --trace-port 4317\n```\n\nTraces will be available at [http://localhost:16686](http://localhost:16686).\n\n## Configuration\n\nThere are plenty of configuration options. Just provide the `--help` command line flag\n\n```text\nNAME:\n   musa - a lean bootstrapper process for any network\n\nUSAGE:\n   musa [global options] command [command options] [arguments...]\n\nCOMMANDS:\n   help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --host value          the network musa should bind on (default: \"127.0.0.1\") [$MUSA_HOST]\n   --port value          the port on which musa should listen on (default: random) [$MUSA_PORT]\n   --private-key value   base64 private key identity for the libp2p host (default: \"127.0.0.1\") [$MUSA_PRIVATE_KEY]\n   --protocol value      the libp2p protocol for the DHT (default: \"/ipfs/kad/1.0.0\") [$MUSA_PROTOCOL]\n   --metrics-host value  the network musa metrics should bind on [$MUSA_METRICS_HOST]\n   --metrics-port value  the port on which musa metrics should listen on (default: 0) [$MUSA_METRICS_PORT]\n   --trace-host value    the network musa trace should be pushed to [$MUSA_TRACE_HOST]\n   --trace-port value    the grpc otlp port to which musa should push traces to (default: 0) [$MUSA_TRACE_PORT]\n   --log-level value     the structured log level (default: 0) [$MUSA_LOG_LEVEL]\n   --help, -h            show help\n```\n\n## Maintainers\n\n[@ProbeLab](https://github.com/probe-lab).\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/probe-lab/musa/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) © Protocol Labs","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobe-lab%2Fmusa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprobe-lab%2Fmusa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobe-lab%2Fmusa/lists"}