Skip to content

Commit fc1f859

Browse files
ralyodioclaude
andcommitted
docs(pit): put the browser route on /pit/dns
The page told people to change a DNS setting and never mentioned the other way in, so anyone whose DNS is not theirs to change read it as "the namespace does not work for you". TronBrowser asks this registry over ordinary HTTPS before every navigation: no network settings, no admin rights, and the navigation lands on a host with a certificate the browser already trusts, so it is also the only route that does not warn on https://. Listed after the resolvers rather than instead of them, because it only fixes the browser -- curl and git still resolve through DNS. Notes 3.8.8 as the floor: older builds parked unpointed names at moshcoding.com/parking, a route that has never existed, so every claimed name with no target 404'd. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 06bd138 commit fc1f859

1 file changed

Lines changed: 58 additions & 5 deletions

File tree

apps/pwa/src/routes/moshpit.mjs

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -985,6 +985,13 @@ moshpitRouter.get("/pit", async (req, res) => {
985985
* internet, so the instruction is "change one setting", not "install a
986986
* browser".
987987
*
988+
* There is a second route, and leaving it off this page was a hole: TronBrowser
989+
* asks this registry over ordinary HTTPS before every navigation, so it needs no
990+
* network settings at all. It is listed after the resolvers because it only
991+
* fixes the browser -- curl, git and everything else on the machine still
992+
* resolve through DNS -- but it is the only route that works where DNS is
993+
* somebody else's to configure, and the only one that does not warn on https://.
994+
*
988995
* The addresses come from the environment (lib/moshpit-resolvers.mjs). When
989996
* none are configured this page says so and explains how to run one, rather
990997
* than inventing an address for a stranger to paste into their network
@@ -1025,6 +1032,8 @@ moshpitRouter.get("/pit/dns", async (req, res) => {
10251032
<span class="mono acid">.yeah</span> resolve like any other name — while
10261033
<span class="mono">.com</span>, <span class="mono">.org</span> and the rest of the internet keep
10271034
working exactly as before, forwarded on to 8.8.8.8 and 1.1.1.1.
1035+
If the DNS settings on the machine are not yours to change,
1036+
<a class="acid" href="#tron">TronBrowser</a> resolves the same namespace without touching them.
10281037
</p>
10291038
${pitTabs("dns")}
10301039
@@ -1045,8 +1054,41 @@ moshpitRouter.get("/pit/dns", async (req, res) => {
10451054
<li><b class="acid">A locked-down machine</b> where DNS is not yours to change — use DNS over HTTPS
10461055
in the browser. Firefox: Privacy &amp; Security → DNS over HTTPS → custom provider. Chrome:
10471056
Security → Use secure DNS → custom.
1048-
${doh ? `The endpoint is <code>${esc(doh)}</code>.` : "An endpoint appears here once a resolver is up."}</li>
1057+
${doh ? `The endpoint is <code>${esc(doh)}</code>.` : "An endpoint appears here once a resolver is up."}
1058+
Or run <a class="acid" href="#tron">TronBrowser</a>, which changes no network settings at all.</li>
1059+
</ol>
1060+
1061+
<h2 id="tron" style="margin-top:34px;font-size:1.2rem">Or change nothing: <span class="acid">TronBrowser</span></h2>
1062+
<p class="pit-copy">
1063+
<a class="acid" href="https://tronbrowser.dev" target="_blank" rel="noopener noreferrer">TronBrowser</a>
1064+
resolves these names itself. Before every navigation it asks this registry, over ordinary HTTPS, who
1065+
holds the name you typed. Nothing in your network settings changes, nothing needs admin rights, and
1066+
it works on a machine where DNS is somebody else's to configure.
1067+
</p>
1068+
<pre class="pit-pre"><code>curl -fsSL https://tronbrowser.dev/install.sh | sh <span class="faint"># macOS, Linux — Windows: the releases page</span>
1069+
tron http://scrambled.eggs <span class="faint"># or type it in the address bar</span></code></pre>
1070+
<ol class="pit-steps dim">
1071+
<li><b class="acid">Nothing to configure for a new ending.</b> <span class="mono">.eggs</span>,
1072+
<span class="mono">.moshpit</span>, <span class="mono">.yeah</span> resolve out of the box — the
1073+
legacy root has never heard of them, so there is nothing to conflict with.</li>
1074+
<li><b class="acid">Contested names are a setting.</b> Settings → Name resolution → <em>When a name
1075+
exists in both</em>. <b>Clearnet wins</b> is the default and never redirects a domain that already
1076+
works; <b>Moshpit wins</b> lets a registered name override the clearnet one. It is the same
1077+
decision the resolvers make with <code>MOSHPIT_RESOLVE_MODE</code>, taken per browser instead of
1078+
per network.</li>
1079+
<li><b class="acid">Claim from the address bar.</b> <code>mosh.eggs</code> opens the Pit for
1080+
<span class="mono acid">.eggs</span>. <code>mosh.</code><em>anything</em> is reserved, so nobody
1081+
can register that label and impersonate the page you register on.</li>
1082+
<li><b class="acid">Your own pit</b> — Settings → Name resolution → Registry (advanced). Point it at
1083+
the registry you run and it is looked up exactly like this one.</li>
1084+
<li><b class="acid">Needs 3.8.8 or newer.</b> Older builds sent a claimed-but-unpointed name to a URL
1085+
that has never existed, so parking 404'd. <code>tron upgrade</code> — and a stale address left in
1086+
settings by one of those builds is discarded on the way, rather than outliving the fix.</li>
10491087
</ol>
1088+
<p class="pit-copy" style="font-size:.9rem">
1089+
It fixes the browser, not the machine: <code>curl</code>, <code>git</code> and everything else still
1090+
go through DNS. On a machine you control, run both.
1091+
</p>
10501092
10511093
<h2 style="margin-top:34px;font-size:1.2rem">Check it worked</h2>
10521094
<pre class="pit-pre"><code>dig +short anything.moshpit <span class="faint"># an address, not an error</span>
@@ -1056,13 +1098,24 @@ nslookup anything.moshpit <span class="faint"># the Windows spelling</span
10561098
A <code>TXT</code> lookup on any Moshpit name reports which registry and gateway answered — the
10571099
fastest way to tell a resolver problem from a site problem.
10581100
</p>
1101+
<p class="pit-copy" style="font-size:.9rem">
1102+
On the browser route there is nothing to <code>dig</code>: resolution never touches DNS. Open
1103+
<code>mosh.eggs</code> — if the Pit loads, the browser is talking to this registry.
1104+
</p>
10591105
10601106
<h2 style="margin-top:34px;font-size:1.2rem">What still breaks</h2>
10611107
<p class="pit-copy">
1062-
<code>https://</code> on a Moshpit name will warn. No public certificate authority will issue for
1063-
<span class="mono">scrambled.eggs</span>, because none of them recognise a namespace that does not
1064-
descend from the ICANN root. Plain <code>http://</code> works, and so does this site. A
1065-
certificate authority you opt into is the real answer, and it is not built yet.
1108+
<code>https://</code> on a Moshpit name will warn <em>on the resolver route</em>. No public
1109+
certificate authority will issue for <span class="mono">scrambled.eggs</span>, because none of them
1110+
recognise a namespace that does not descend from the ICANN root. Plain <code>http://</code> works,
1111+
and so does this site. A certificate authority you opt into is the real answer, and it is not built
1112+
yet.
1113+
</p>
1114+
<p class="pit-copy" style="font-size:.9rem">
1115+
TronBrowser sidesteps it rather than solving it: it rewrites the navigation to this registry's own
1116+
<code>https://</code> host, so the certificate is one the browser already trusts. The address bar
1117+
shows where it landed, not what you typed — an honest trade, and the reason the two routes are
1118+
documented separately.
10661119
</p>
10671120
<p class="pit-copy" style="font-size:.9rem">
10681121
Clearnet lookups are forwarded to Google and Cloudflare, which is what a forwarder does. Run your

0 commit comments

Comments
 (0)