https://github.com/nibiruchain/cosmoseed
A lightweight seed node for Cosmos-based blockchains.
https://github.com/nibiruchain/cosmoseed
Last synced: 6 months ago
JSON representation
A lightweight seed node for Cosmos-based blockchains.
- Host: GitHub
- URL: https://github.com/nibiruchain/cosmoseed
- Owner: NibiruChain
- License: mit
- Created: 2025-07-08T22:00:20.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-08-01T13:09:16.000Z (11 months ago)
- Last Synced: 2025-08-01T15:29:17.901Z (11 months ago)
- Language: Go
- Size: 7.95 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Cosmoseed
[](https://github.com/NibiruChain/cosmoseed/actions/workflows/test.yml)
[](https://github.com/NibiruChain/cosmoseed/actions/workflows/goreleaser.yml)
[](https://github.com/NibiruChain/cosmoseed/actions/workflows/docker.yml)
[](https://github.com/NibiruChain/cosmoseed/blob/main/LICENSE.md)
**Cosmoseed** is a lightweight seed node for Cosmos-based blockchains.
Unlike traditional seed implementations, Cosmoseed actively filters out unreachable or failing peers, ensuring that only viable peers are served to clients.
---
## ๐ Features
- Acts as a dedicated **Cosmos seed node**
- Maintains a strict and adaptive **address book** of peers
- Fully configurable via `config.yaml` or command-line flags
- Lightweight, single-binary deployment
- Exposes a basic **HTTP endpoint** (`/peers`) to retrieve a randomized selection of known good peers
---
## ๐ฆ Installation
To quickly install on linux or darwin you can run:
```bash
$ curl -s https://get.nibiru.fi/cosmoseed! | bash
```
Alternatively, you can download the binary from releases or use the available docker image.
---
## ๐ Configuration
By default, Cosmoseed reads its config from:
```bash
~/.cosmoseed/config.yaml
```
If it does not exist, Cosmoseed will create a new configuration file with the following defaults:
```yaml
nodeKeyFile: node_key.json
addrBookFile: addrbook.json
addrBookStrict: true
listenAddr: tcp://0.0.0.0:26656
logLevel: info
maxInboundPeers: 2000
maxOutboundPeers: 20
maxPacketMsgPayloadSize: 1024
peerQueueSize: 1000
dialWorkers: 20
chainID: ""
seeds: ""
apiAddr: 0.0.0.0:8080
```
Please note that `chainID` and `seeds` are required fields. You can either include them in the config file or pass them as command-line flags.
Once Cosmoseed starts and grabs the first peers, the address book will contain peers and `seeds` can then be omitted on following application starts.
---
## โ๏ธ Command-Line Flags
```bash
$ cosmoseed --help
Usage of cosmoseed:
-chain-id string
Chain ID to use
-home string
Path to config/data directory (default "~/.cosmoseed")
-log-level string
Logging level (default "info")
-seeds string
Comma-separated list of seed peers
-show-node-id
Print node ID and exit
-version
Print version and exit
```
Flags take precedence over values defined in `config.yaml`.
---
## ๐งช Example Usage
```bash
$ cosmoseed \
-chain-id nibiru-testnet-2 \
-seeds c2f87136e1a8b1c4469ff5a65b6cb3d6aca2b5fd@34.79.42.220:26656
```
---
## โจ Credits
Inspired by [`tenderseed`](https://github.com/binaryholdings/tenderseed) and the broader Cosmos ecosystem.