Purpose of Seed Nodes
Seed nodes are crucial for the reliability of the Steem blockchain.
- They provide a way for other Steem blockchain nodes to "sync", and download the latest blockchain data.
- They also help to provide reliability/structure to the "peer to peer" (p2p) network that all of the blockchain nodes use to communicate, and distribute the latest blocks.
Providing Seed Nodes
There is no economic incentive to run a seed node. It costs money to run the server, and it doesn't earn the operator any money for doing it.
For this reason, the witnesses (who are paid by the blockchain for their services as a witness) are expected to run seed nodes if they are financially able to do so.
Some non-witnesses (such as developers) may also chose to run public or private seed nodes to help provide reliability to other nodes that they are operating.
Configuring Seed Nodes
Every node operator is responsible for configuring a list of seed nodes in their node's configuration file.
Some node operators will connect to private seed nodes (ones that only they control and can access) but the majority of node operators will use publicly available seed nodes.
Low Latency is Desired
Having reliable seed nodes with low latency near your node helps your node to stay up to date with the latest blockchain data at a pace that is fast enough to keep up with the three second block times.
When node operators are configuring their seed nodes, it is recommended to ping all of the available seed nodes to determine the latency times from your node. (Which nodes will have low vs. high latency for your specific node will vary based on the location of your node compared to the seed nodes.)
Once you know the latency from your node to all of the available seed nodes, it is recommended to configure the seed nodes with the lowest latency near the top of the config file.
Lists of Public Seed Nodes
There are currently two places that a list of public seed nodes is available:
- There is the "official list" in the Steem GitHub repository: p2p_default_seeds.hpp
- There is a "seed status" website created by @wackou :https://status.steemnodes.com/
Maintenance of the Lists
Sometimes witnesses submit pull requests to add their nodes to the list(s), but the maintenance of is primarily done by @gtg based on updates that are provided in the
seed-nodes channel of steem.chat. @gtg monitors the list of seed nodes that have been provided, and adds them to the lists after they have been deemed "stable".
Over the years, the lists have become outdated in various ways:
- Nodes have been added to one list, but not the other.
- New nodes have come online, but nobody informed the
seed-nodeschannel or submitted a PR to add them to both lists.
- Node operators have taken nodes offline, but never notified anyone to remove them from the lists.
I am planning to submit pull requests to both repositories to update the lists:
- Remove nodes that are no longer active from both lists.
- Add all of the nodes from the "official list" to the "seed status" website.
- Add all of the stable nodes from the "seed status" to the "official list".
Here is a summary of the changes I plan to make:
Add to the "official list"
Add to the "seed status" website
Add to both the "official list" and "seed status" website
Update seed node
Removal from the "official list"
Removal from the "seed status" website
steem-seed.crypto.fans:2001@sc-steemit / crypto.fans
Removal from both the "official list" and "seed status" website
Here is a final list of seed nodes that will be included in both lists:
Also, I thought it would be interesting to see where the seed nodes we have are dispersed geographically. Below is a map showing all of the seed nodes across the world.
(Note, a few of the dots have overlap and represent multiple nodes.)
Seed node operators may want to consider setting up nodes in some of the "underserved" locations.
If you are a seed node operator and you have a seed node that is not in the final list, please drop by the
seed-nodes channel in steem.chat and let us know, or reply here with the information about your seed node.