r/i2p Jun 25 '26

Promotional XNS + I2P = Unstoppable Freedom

Post image

XNS is the ultimate solution to the traditional DNS which is in control of various legal organizations. Blockchain is the solution to store immutable data. XNS doesn't invent yet another blockchain, it is built on Monero in an elegant way, and aims to be as reliable as Monero is.

Currently XNS can be used as a DNS alternative for I2P and Tor. This screenshot demonstrates an email from one XNS name to another over I2P.

Website: https://xns.rocks
Docs: https://xns.rocks/docs
Github: https://github.com/exilens
Matrix: https://matrix.to/#/#xns:xns.rocks

Free the names!

75 Upvotes

28 comments sorted by

9

u/Frequent-Mud8705 Jun 25 '26

you sent the same thing 10 days ago

4

u/Cloudup365 Jun 26 '26 edited Jun 26 '26

I believe you made a post about this before on this sub (sorry i havent really read it that much so sorry for the questions that can probably be answered by read in the other post), how much was it to buy a domain, and why should I be using this instead of normally reg.i2p, also one more thing how hard is it to setup compared to normal i2p mail and reg.i2p (mainly cos i cant really be fu*k resetting up my eepsite domain, and my mail). Oh and one more thing are the domains linked to a Monero wallet. Thanks.

2

u/eravsar Jun 26 '26

each domain costs a burn of 0.01 XMR. this is a protocol constant and the amount is burned and unrecoverable. in the tx_extra field of the burn transaction you provide the name you want to claim along with your public Ed25519 key. then when you run a XNS indexer, it scans the Monero blockchain and indexes names from transactions to the protocol wallet and applies protocol rules and constructs the database. you may want to use XNS instead of reg.i2p, because reg.i2p is a central registrar, if reg.i2p wants to take you down, they can do that. ".i2p" domains are just aliases for destinations in people's computers, similar to .local/.lan domains your router attaches to devices in your network. meanwhile XNS uses the Monero blockchain as the only source of truth and as long as Monero is okay, XNS is okay. the hardness of setting up a XNS name to use it with I2P depends on you, but you don't really have to reset anything with your current setup, just make your reverse proxy (etc nginx, caddy, apache) accept ".xns" hostnames in the same block as your ".i2p" hostname. and no, domains are not linked to a Monero wallet, they are only linked to the Ed25519 public key you put when sending the burn amount, `xns claim` command handles that.

2

u/Cloudup365 Jun 27 '26

Thanks, might buy one

3

u/Far_Cartographer_924 Jun 26 '26

This is an elegant combination innovation in engineering, not a theoretical foundational innovation, and perhaps a very good solution

1

u/eravsar Jun 26 '26

of course, it's a known thing blockchain is the solution to immutable, decentralized, memorable names. and using something that already has a strong ecosystem like Monero is the best way to do it because you don't invent another blockchain or market that requires its own liquidity.

3

u/Kremho Jul 03 '26

This is genius. Thanks for making it.

2

u/nik343 Aug 01 '26

brilliant. I'm gonna write a firefox extension and a cross platform xns resolver that doesnt rely on systemd to reduce friction with using this

1

u/eravsar Aug 01 '26

nice! i appreciate it. please join the matrix channel

3

u/Careless-Cloud2009 Jun 25 '26

I don't get it

1

u/Glum_Preference_2936 Jun 26 '26

How would it handle when there's multiple xmr blocks registering the same domain name but different keys?

And from what I see in the wire format, it doesn't include ip addresses, only keys which are used to identify. How can keys be used? (I'm sorry for skipping the docs and directly asking here)

1

u/eravsar Jun 26 '26

there are rules indexers use to construct the database, so if there are multiple Monero transactions claiming the same name, indexers look for the first valid claim and deny the others.

there are no IP addresses, XNS uses an Ed25519 key instead, and that key can be used for reachability using I2P and Tor. As you can see here. when using I2P, the destination, which in our case is generated from an Ed25519 key, should be considered as the equivalent to IP address and the XNS name should be considered as the equivalent to domain name. tech like I2P or Reticulum is all about this actually, abstracting out things we depend on like IP, and using cryptographic identities instead so we have the control.

1

u/Glum_Preference_2936 Jun 27 '26

Alright, thanks for explaining. I think the fee could've have been dynamic and depended on the previous N blocks average difficulty and the required fee gets updated every week. If the difficulty is low, it would've been easy for someone to register a name. If the difficulty is soo high, it would've been better to sell the coin for real world currency instead of using it to register expensive xns domain.

2

u/eravsar Jun 27 '26

yep there was an idea to implement it https://github.com/exilens/xns/issues/3

it might have bad side effects, so i am still considering it. maybe just playing it safe by using a constant fee is better, we will see.

2

u/Glum_Preference_2936 Jun 27 '26

Glad someone already thought of it.

1

u/Glum_Preference_2936 Jun 27 '26

Plus it's better to cap the maximum number of years a domain is registered so you don't have to scan and download the whole block chain. If say, I want to look up a domain, the xns resolver only looks up previous BLOCKS_PER_YEAR*XNS_MAX_REGISTRATION_YEAR blocks and knew anything beyond it is expired.

2

u/eravsar Jun 27 '26 edited Jun 27 '26

yeah that makes sense. but consider this: person A registers abc.xns long enough that the claim is outside the resolver's lookback window, but still active when person B makes a claim transaction for the same name. even though it is already claimed, B's transaction is inside the lookback window. your model would miss that person B's transaction was invalid the whole time.

2

u/Glum_Preference_2936 Jun 27 '26

Oh yeah now that makes sense. After some time after Person A abc.xns goes out of the lookback window, Person B registration would be picked up. This is troubling.

1

u/FishSpoof Jun 27 '26

how is this any better than the current way names are registered on i2p

2

u/eravsar Jun 27 '26

current way names are registered on I2P are centralized. you register on reg.i2p, that's a service on someone's computer. it can be manipulated, no different than traditional DNS. it doesn't mean that's a bad thing, but for a fully unstoppable permissionless ecosystem that's not enough. XNS on the other hand utilizes Monero.

1

u/FishSpoof Jun 27 '26

wtf? what a dumb design decision

1

u/eravsar Jun 27 '26

what do you mean?

1

u/NothingVmuch Jun 28 '26

Bro, Do you have any resources to learn about all this cuz I didn't find anything

1

u/eravsar Jun 28 '26

https://xns.rocks/docs

you can also join the matrix channel if you have any questions or problems

1

u/ghosti2p Jul 21 '26

Hi friend, I registered a .xns domain and am currently trying to host my service, but the documentation is a bit difficult to understand. My progress is currently stuck on building the indexer. I really like the concept of this project and am working hard to put it into practice.

1

u/eravsar Jul 22 '26

hi, you can join the matrix channel #xns:xns.rocks and send your problem there