Skip to content

NibiruChain/cosmoseed

Repository files navigation

Cosmoseed

Test GoReleaser Docker Builds License: MIT

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:

$ 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:

~/.cosmoseed/config.yaml

If 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: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

$ 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

$ cosmoseed \
  -chain-id nibiru-testnet-2 \
  -seeds [email protected]:26656

✨ Credits

Inspired by tenderseed and the broader Cosmos ecosystem.

About

A lightweight seed node for Cosmos-based blockchains.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •