Number
122
Author
zzz
Created
Thread
http://zzz.i2p/topics/2048
Last updated
Status
Rejected
Supercedes
102
Superceded by
123

Overview

This is the full-monty bombastic anything-goes-in-the-netdb proposal. AKA anycast. This would be the 4th proposed LS2 subtype.

Motivation

Say you wanted to advertise your destination as an outproxy, or a GNS node, or a Tor gateway, or a Bittorrent DHT or imule or i2phex or Seedless bootstrap, etc. You could store this information in the netDB instead of using a separate bootstrapping or information layer.

There's nobody in charge so unlike with massive multihoming, you can't have a signed authoritative list. So you would just publish your record to a floodfill. The floodfill would aggregate these and send them as a response to queries.

Example

Say your service was "GNS". You would send a database store to the floodfill:

  • Hash of "GNS"
  • destination
  • publish timestamp
  • expiration (0 for revocation)
  • port
  • signature

When somebody did a lookup, they would get back a list of those records:

  • Hash of "GNS"
  • Floodfill's hash
  • Timestamp
  • number of records
  • List of records
  • signature of floodfill

Expirations would be relatively long, hours at least.

Security implications

The downside is that this could turn into the Bittorrent DHT or worse. At a minimum, the floodfills would have to severely rate- and capacity-limit the stores and queries. We could whitelist approved service names for higher limits. We could also ban non-whitelisted services completely.

Of course, even today's netDB is open to abuse. You can store arbitrary data in the netDB, as long as it looks like a RI or LS and the signature verifies. But this would make it a lot easier.