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.
- Acts as a dedicated Cosmos seed node
- Maintains a strict and adaptive address book of peers
- Fully configurable via
config.yamlor command-line flags - Lightweight, single-binary deployment
- Exposes a basic HTTP endpoint (
/peers) to retrieve a randomized selection of known good peers
To quickly install on linux or darwin you can run:
$ curl -s https://get.nibiru.fi/cosmoseed! | bashAlternatively, you can download the binary from releases or use the available docker image.
By default, Cosmoseed reads its config from:
~/.cosmoseed/config.yamlIf it does not exist, Cosmoseed will create a new configuration file with the following defaults:
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:8080Please 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.
$ 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 exitFlags take precedence over values defined in config.yaml.
$ cosmoseed \
-chain-id nibiru-testnet-2 \
-seeds [email protected]:26656Inspired by tenderseed and the broader Cosmos ecosystem.