Make it the default to not sync from Genesis
A weird anti-pattern is that a new Teku installation defaults to syncing from Genesis although we strongly recommend against doing this and encourage people to use checkpoint sync instead.
This is really a conversation starter about how we might go about changing this. Easiest may be to simply to "bake in" a recent checkpoint with releases. In a sense this is what we do with the Genesis file, though post-genesis checkpoints are more controversial. Alternatively, find a set of "trusted" state providers and point --initial-state to one of them, perhaps after verifying that they all agree. For the naive user, this get them up and running quickly, and as safely as syncing from Genesis; the sophisticated user can override this to choose their own provider.
There is a wider conversation going on about how to verify checkpoint states and we should be sure to work in concert with that as it evolves.
We could just refuse to sync from a state outside the weak subjectivity period by default and then have a flag to allow it. That will act as a prompt for users to actually source a suitable initial state without us having to bake something in and keep it up to date.
This shouldn't be too bad.
Currently we specify the finalized state for initial-state for holesky, we could do the same for other networks if we similarly reference checkpoints urls...
As a starting point its probably worth understanding if the networks we support have public checkpoints endpoints we can consume...
We could do it same way we gather DepositTreeSnapshot - consuming it from our own test servers, but I have concerns about whole concept of bundling checkpoints. In case of DepositTreeSnapshot if we bundle bad thing, the node will just stuck on sync and couldn't ever propose, even eclipsed . Bundled snapshots on the other side allows some type of attacks probably (say, multi-stage eclipse if someone got access to our repo, needs some in-depth analysis to be sure). I like Adrian's proposal, say, --force-weak-subjectivity-sync. And better user message on exit without flag provided.