We need more seednodes. It would be nice if this could be more automated and best if it could be done within Freenet itself.
Assumption: The official Freenet website will be shutdown or blocked someplaces\everywhere Toad (or other project maintainer\s) live someday in the future. Development will need to go underground and from within Freenet itself. These officials will need to stay anonymous. Seednode operators live somewhere more free or only development of Freenet is illegal and seednode operators are willing to accepted and make connections. Problems: We need a way that lists of volunteers can be compiled by whoever is releasing the official Freenet USK (updates, seednodes list, etc) This method cannot be spammable. Need users to opt-in by giving us consent. Volunteers need to be able to remove themselves from the official seednodes if they want. Need to be able to test volunteers firewalls and obviously not from the computer of the official maintainer. Proposal: Official seednodes do this work for us! Major changes to routing code required? Add a flag field to noderefs "Seednode=true" If missing or 'false' this means a node is unwilling to volunteer. If not already implemented somewhere, all seednodes must insert a USK key (that can be polled by those that know the noderef\ARK) that contains a list of volunteers it has collected. Easiest would be to use a field similar to ark.pubURI in the noderef pointing to a USK. Implementation: When a node with "Seednode=true" has been up and connected for 15 minutes it starts accepting announcements from connecting nodes. The 15 minutes gives it time to settle in. Next it polls the official Freenet USK and checks if it is on the official seednode list. If yes it is an 'official seednode'. *The remainder of this email will only talk about official seednodes.* When a seednode accepts a newbie node for announcement it checks if that newbie node has its "Seednode=true" flag set. If yes it puts this node on a list of potential volunteers. After 30 minutes of not being connected to each volunteer: The seednode tries to connect to the volunteer to test its firewall and that it accepts an announcement attempt. If everything looks good it adds this node to a list of volunteer nodes that can be inserted into the network. The reason we wait 30 minutes is to give the new volunteers time to settle into the network and make sure they stuck around. Seednodes insert their list of volunteers (hourly? daily?) to a USK key that can be polled by whoever is creating and inserting the official project USK seednodes list. This central person\node can compile a list from all the official seednodes and this central person\node can poll the volunteers arks and the "Seednode=true" flag to determine when to add or remove a seednode from the official seednodes list. If a node turns their "Seednode=true" flag to false then volunteers can come and go as needed. Something similar can be used to anonymously(to the maintainer) determine if an official seednode is defunct: Have official seednodes ping each other every so often and insert that info into a USK with 'last uptime' for each seednode. The maintainer can poll this info and remove seednodes from the official list based on whatever criteria he\she wants. -- I may disagree with what you have to say, but I shall defend, to the death, your right to say it. - Voltaire Those who would give up Liberty, to purchase temporary Safety, deserve neither Liberty nor Safety. - Ben Franklin
