Generating an eepsite vanity address
I2P base32 addresses aren't particularly memorable, http://gdncgijky3xvocpkq6xqk5uda4vsnvzuk7ke7jrvxnvyjwkq35iq.b32.i2p/
doesn't exactly roll off the tongue.
Although you can register a shortname, the availability of your site via that name will depend on whether the shortname appears in the user's addressbook.
Some I2P operators, therefore prefer to generate a vanity address.
This documentation details how to generate a vanity I2P address for use with an eepsite.
Tooling
You will need i2pd-tools
or my dockerised version of it.
Generating the vanity name
The process works by generating lots and lots of keys and seeing whether they match the pattern you've provided - the longer the string you're trying to include, the more computationally expensive this is (you can see approximate times to generate in the i2pd-tools readme.
The following tells the tooling to use 4 threads to try and find btas
docker run --rm \
-v $PWD:/op \
bentasker12/id2pd-tools vain btask -t 4
It gave the following output
Initializing vanity generator (4 threads)
Starting attempt #1:
[+] thread 3 bound
[+] thread 2 bound
[+] thread 0 bound
[+] thread 1 bound
Found address: btaskxu6k3mdxcq73zky6ocinv7xbcj5owqzgmagg56fr2wryckq
Hashes calculated: 4003375
The key is written into a file called private.dat
in the local directory
docker run --rm \
-v $PWD:/op \
bentasker12/id2pd-tools keyinfo private.dat
btaskxu6k3mdxcq73zky6ocinv7xbcj5owqzgmagg56fr2wryckq.b32.i2p
Pattern based generation
The tool will accept a regex to search for, so I might perhaps want to run
docker run --rm \
-v $PWD:/op \
bentasker12/id2pd-tools vain '(btask|ben)' -r -t 4
To find names which match either of those.
Using the name
In order to use the name, you need to copy the .dat
file to wherever your eepsite is hosted and reference it in tunnels.conf
[my-eepsite]
type = http
host = 127.0.0.1
port = 80
keys = keys/private.dat
inbound.length = 1
outbound.length = 1
Restart I2P and you should be good to go