Adding or removing validators

Hello everyone.

I am somewhat new to COSMOS and a big fan, already.

I am trying to build up a zone (ie: chain) of validators, where new validators can join and existing ones can leave. Basically, an environment where members of the public can become a validator but they are free to come and go as they feel.

I understand that the application ultimately decides what the validator set is, for its connected-to-Tendermint blockchain engine, by providing updated validator sets every block. Each validator’s local TM engine trusts that this set is the right one, and if all nodes behave, we have a working chain.

But I am totally getting confused by persistent peers.

Let’s say we have 4 validators in a chain and a 5th one wants to join with a new IP and port and public key. Do the existing 4 validators have to restart with a new config.toml file or command line to include this 5th new peer? Or does a seed node somehow make this part dynamic? I am confused what needs to be in the persistent peers list at startup.

The ideal I am hoping for is that nodes can come and go without restarting all the existing nodes. I suspect this is how it works, but I don’t see how, yet. Perhaps some clarification and pointers?

Much appreciated.