abstract boolean dontKeepFullFieldSet();
protected abstract void maybeClearPeerAddedTimeOnRestart(long now);
private boolean parseARK(SimpleFieldSet fs, boolean onStartup, boolean forDiffNodeRef) {
USK ark = null;
long arkNo = 0;
try {
String arkPubKey = fs.get("ark.pubURI");
arkNo = fs.getLong("ark.number", -1);
if(arkPubKey == null && arkNo <= -1) {
// ark.pubURI and ark.number are always optional as a pair
return false;
} else if(arkPubKey != null && arkNo > -1) {
if(onStartup) arkNo++;
// this is the number of the ref we are parsing.
// we want the number of the next edition.
// on startup we want to fetch the old edition in case there's been a corruption.
FreenetURI uri = new FreenetURI(arkPubKey);
ClientSSK ssk = new ClientSSK(uri);
ark = new USK(ssk, arkNo);
} else if(forDiffNodeRef && arkPubKey == null && myARK != null && arkNo > -1) {
// get the ARK URI from the previous ARK and the edition from the SFS
ark = myARK.copy(arkNo);
} else if(forDiffNodeRef && arkPubKey != null && myARK != null && arkNo <= -1) {
// the SFS must contain an edition if it contains a arkPubKey