Where do I begin with understanding the naming system on i2p domains?

Discuss the I2P addressbook and naming system
Post Reply
User avatar
eepman
Posts: 12
Joined: 17 Sep 2023 14:10

Where do I begin with understanding the naming system on i2p domains?

Post by eepman »

Looking at any jump service, like reg.i2p, notbob.i2p, etc., I am seeing human-legible names assigned to random i2p b32 addresses. How are these coordinated, and what happens if I try to assign a name to my newly-created i2p website a name that was already in use by some other, older, i2p website?
xmr: 82w6CM9MKMyNpyj8grvxfXhnm4CJUJbBAUjtTTTBd4tXFmrL4MTDW2xGFFhCrUzEr7hsoL4nc1687SsP8umwCucU8cwXi5D
anikey
Posts: 43
Joined: 30 Nov 2023 20:08

Re: Where do I begin with understanding the naming system on i2p domains?

Post by anikey »

Initially, i2p destinations are really long base64 strings that contain various information about the destination.

The data in that string gets hashed, that hash encoded in base32, and now you have the usual <string of characters>.b32.i2p format.

Then there is the concept of address book. It maps a human readable name into that long (either base64 or base32, i dont remember) string.

There are people who create their address books and publish these in i2p (just on an http server). These done by reg.i2p, notbob.i2p, etc. (i2p-projekt.i2p also has some address book used to "bootstrap" so you can specify addr.book hosts themselves in human readable form).

The i2p router periodically downloads these address books and merges them, and if there is conflicting definitions in two of the "upstream" address books, the site says it resolves them "on a first-come first-served basis."
The merged address book is then saved locally.

When you open a site, it looks up the name in that address book, and finds its long-string-version.

It seems like this is how it works.

You can read more about i2p naming system here: http://i2p-projekt.i2p/en/docs/naming (clearnet link: https://geti2p.net/en/docs/naming)
Post Reply