We want to make it clear that automatic checkpointing is a temporary solution that will be removed from the code as soon as we feel it is safe to do so. Though it is clearly beneficial for use as a failsafe mechanism while we perfect the code that powers Darksend, in the long term, the presence of a centralized checkpointing server on the network is unacceptable.
Sorry for my ignorance if this is covered elsewhere, but why is a centralised server necessary? Why couldn't for example new versions of the mining code contain a key which must be included in each solved block after a certain date for that block to be considered valid by those that have updated correctly? Thanks.
If I understand what happened last time, a bunch of forks appeared
of the updated code. So, while I think Evan believes he's fixed the issues that were causing these forks, checkpointing ensures there can only be one updated fork in case something else unforeseen comes along.
Right. With a centralized server, all nodes have a static reference point to go back to. Even if they get off on the wrong chain, a static checkpoint server will force them back to the correct one within a minute or two (the average user would most likely never notice anything was wrong).
If I correctly understand what TsuyokuNaritai describes, if a node got off on the wrong chain, it would verify against a block coming from the wrong chain. The system would be pointless.