View Issue Details

IDProjectCategoryView StatusLast Update
0002186GNUnetGNSpublic2013-08-15 12:47
Reporterschanzen Assigned ToChristian Grothoff Due Date
PrioritylowSeverityfeatureReproducibilityN/A
Status closedResolutionwon't fix 
Product VersionGit master 
Target VersionGit masterFixed in VersionGit master 
Summary0002186: GNS service needs zone transfer functionality
DescriptionWe need some way to transfer zones between GNS nodes.
I suggest a second block plugin for the GNSNameRecordBloc/GNSRecordBlock layout would be incompatible with a zone information block because they can also contain private records.

Either:
Store all of the (non private) records in the block and sign them (namestore api)
or
Put meta information into the block to allow communication with the peer (via mesh?)
TagsNo tags attached.

Activities

Christian Grothoff

2012-03-16 21:07

manager   ~0005623

Actually, the idea was that each GNS service periodically PUTs a (trivial) block (with a new block type, key is hash of public key) with just the (signed) current zone revision number (which we need to make up and store somehow, I know -- different issue) into the DHT --- and enables path tracking for that block.

Then, when we want to do a zone transfer, we just do a GET for that block and thus 'learn' a path to the other GNS peer (there'll eventually be an API for us to give such paths to mesh, for now this detail can be ignored). Then we ask the *stream* library to create a TCP-like connection to the other GNS peer and send a "please start (incremental) zone transfer starting with (last revision we have)". Then we get a stream of the blocks in the DHT that have changed since the last revision. At least that was my vision for this.

Christian Grothoff

2013-08-15 12:47

manager   ~0007382

With the recent addition of query privacy ("new crypto"), the zone transfer makes even less sense. Even with DNS, this is these days an unpopular feature.
And database replication can be done with tools from the respective database (of the namestore). So I think this would simply be a miss-feature.

Issue History

Date ModifiedUsernameFieldChange
2012-02-28 09:01schanzenNew Issue
2012-02-28 09:01schanzenStatusnew => assigned
2012-02-28 09:01schanzenAssigned To => schanzen
2012-03-16 21:07Christian GrothoffNote Added: 0005623
2012-03-16 21:11Christian GrothoffProduct Version => Git master
2012-03-16 21:11Christian GrothoffTarget Version => 0.9.4
2012-04-18 13:50Christian GrothoffSeveritymajor => feature
2012-06-20 13:47Christian GrothoffPrioritynormal => low
2012-06-22 08:53Christian GrothoffTarget Version0.9.4 => 0.9.5
2012-06-22 08:58Christian GrothoffTarget Version0.9.5 => 0.10.0
2012-10-07 12:06Christian GrothoffTarget Version0.10.0 =>
2013-07-10 21:44Christian GrothoffAssigned Toschanzen =>
2013-07-10 21:44Christian GrothoffStatusassigned => confirmed
2013-08-15 12:47Christian GrothoffNote Added: 0007382
2013-08-15 12:47Christian GrothoffAssigned To => Christian Grothoff
2013-08-15 12:47Christian GrothoffReproducibilityhave not tried => N/A
2013-08-15 12:47Christian GrothoffStatusconfirmed => closed
2013-08-15 12:47Christian GrothoffResolutionopen => won't fix
2013-08-15 12:47Christian GrothoffFixed in Version => Git master
2013-08-15 12:47Christian GrothoffTarget Version => Git master