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

Reply via email to