Skip to content

v0.15.0 — curl the name

Choose a tag to compare

@ralyodio ralyodio released this 01 Aug 06:22
· 189 commits to main since this release
d1ee7bc

install.sh resolves releases/latest, so the ten commits merged since v0.14.0 were unreachable to anyone installing — including the reason curl <name> didn't work.

The headline is parking

A parked name always resolved somewhere, but the address it pointed at was a host that routes by Host header and answers "Application not found" for a name it has never heard of. curl scrambled.eggs resolved and then died one layer up.

It couldn't be fixed there — the platform rejects a Moshpit ending as a custom domain, and no public CA will certify a TLD outside the DNS root. The bridge is already running locally for the name to resolve at all, so it now serves the answer too:

$ moshcode dns start
parked names → http://127.0.0.1:80 → https://pit.moshcode.sh/n/<name>

$ curl -i scrambled.eggs
HTTP/1.1 302 Found
location: https://pit.moshcode.sh/n/scrambled.eggs

Port 80 needs privileges; a failed bind falls back to the old behaviour with a clear message rather than refusing to start. --parking-port N moves it, --no-parking-http turns it off.

Underneath it, a quieter one

fetchTlds read the first page of the ending list and stopped. The registry answers 200 rows and reports the real total, but 200 rows look exactly like a complete list of 200. .eggs sat past that line, so dns install wrote a config that didn't route it and the name failed to resolve — a DNS-shaped symptom three layers from the cause.

It was hiding 94% of the namespace: 3707 endings, 200 visible.

Also in this release

  • dns resolve reports a parked name's page in the Pit instead of an IP that answers for nobody, with --open to go there
  • the pit's /n/ pages are crawlable — robots.txt, a generated sitemap, and canonical tags naming the pit host rather than the app host it shares a service with
  • the claim box takes a whole name, claiming the ending first when it's free and minting the name under it
  • the endings list pages instead of stopping at 200, the paste field reads names as well as endings, related endings keep the name you're reading, and integrations ship JSON support matrices

Upgrading

curl -fsSL https://moshcode.sh/install.sh | sh

Then, as root (the resolver edits system DNS, and port 80 is privileged):

moshcode dns install --write && systemctl restart systemd-resolved
moshcode dns start