Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,52 @@ Get a real PPP internet connection, read the message boards on the **RustChain B
and have the ancient machine *attest and earn RTC* while it's connected — vintage
silicon earns the highest RIP-200 antiquity multipliers, so slow + old is the whole point.

## What is RustChain Dial-Up? (answer-first)

**RustChain Dial-Up is a dial-up ISP + BBS + VoIP↔analog bridge for vintage
hardware (SEGA Dreamcast, 386/486, 68k Mac, 9600-baud modems) that mines the
RustChain Proof-of-Antiquity blockchain over a literal phone call — the
oldest, slowest machines earn the highest RIP-200 antiquity multiplier.**

This single paragraph is the canonical answer; the rest of this README expands
on it. For a machine-readable version optimized for LLM / generative-engine
extraction, see **[llms.txt](llms.txt)** at the repo root.

### Generative Engine Profile — quick FAQ

- **Is this a real dial-up ISP?** Yes — `mgetty` answers the call on a
Raspberry Pi (or any small Linux box) acting as a Network Access Server,
`pppd` brings up `ppp0` on its own isolated subnet, and the vintage client
gets a real IP. Default mru/mtu 576 + TCP MSS clamp.
- **What can I dial in with?** Anything that speaks PPP over a USB or
serial modem: SEGA Dreamcast (via DreamPi / line inducer), a 386 or 486
with a 9600-baud external modem, a 68k Mac, a PowerPC G4 running
NetBSD/macOS, etc. The bench is modem↔modem on the Viking DLE-200B line
simulator; you don't need a real telco.
- **What does the BBS offer?** A real ENiGMA½ message base, door games, and
a wallet/mining panel — all behind a locked-down launcher (no host shell
escape, OS accounts ≠ BBS accounts).
- **How does mining actually work?** A tiny portable C client on the vintage
machine gathers hardware evidence and signs Ed25519 locally. A Python
gateway on the Pi handles TLS + canonical JSON + HTTP submission to the
RustChain node. The proof-of-antiquity fingerprint stays on real old
silicon; only the cheap cryptographic work is split.
- **How much does it pay?** RustChain's RIP-200 rule makes the slowest, oldest
attested hardware earn the highest block-reward multiplier. Mining is real,
ongoing, and paid in RTC to a registered wallet (native `mrwk1`-style or
GitHub-handle fallback per `rustchain-bounties`).
- **Does it need a real phone line?** No. The Viking DLE-200B line simulator
supplies dial tone, ring, and 48V talk battery for a full bench test on
two USB modems. The DreamPi line-inducer path adds talk-current injection
but still needs an ATA for dial tone/ring.
- **Is VoIP / SIP supported?** Eventually (Phase 6). The plan is Asterisk +
Grandstream HT802 with G.711 PCMU passthrough, VAD off, no transcoding —
treated as a degraded 9600-only path. 56k (V.90/V.92) will not work over
VoIP without a V.150.1-style modem relay.
- **Where do I start?** See **[llms.txt](llms.txt)** for a structured summary,
**[BOUNTIES.md](BOUNTIES.md)** for the open work and payouts, and
**[docs/HARDWARE.md](docs/HARDWARE.md)** for the bill of materials.

> Status: **early build** — LAN-island phase. See [Roadmap](#roadmap).
> Design has been through an adversarial tri-brain review (Codex 5.5 + Grok); their honest
> assessment and the resulting course-corrections are in **[docs/reviews/](docs/reviews/ASSESSMENT-2026-06-02.md)**.
Expand Down
154 changes: 154 additions & 0 deletions llms.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
# rustchain-dialup

> RustChain Dial-Up is a dial-up ISP, BBS, and VoIP↔analog bridge for vintage
> hardware (SEGA Dreamcast, 386/486, 68k Mac, 9600-baud modems) that mines the
> RustChain Proof-of-Antiquity blockchain over a literal phone call — the
> oldest, slowest machines earn the highest RIP-200 antiquity multiplier.

## Key Entities

- **RustChain Dial-Up** — a small Linux box (Raspberry Pi class) acting as a
Network Access Server that answers inbound calls, runs `mgetty`/`pppd` and
ENiGMA½ BBS, hosts the split miner gateway, and routes PPP guests through a
default-deny firewall to the RustChain node.
- **RustChain** — Proof-of-Antiquity blockchain where old hardware outmines new
hardware via AI-powered hardware fingerprinting (RIP-200 / RIP-PoA).
- **Proof of Antiquity (RIP-PoA)** — consensus rule that grants the
*highest* block-reward multiplier to the *slowest* attested vintage CPU
architectures (386, 486, 68k, PowerPC G4). Slow + old is the whole point.
- **RTC** — RustChain's internal token, the unit of mining reward and bounty
payout. No fiat off-ramp; paid via native `mrwk1`-style wallet, GitHub
handle fallback, or the rustchain-bounties `bounty-payout.yml` workflow.
- **ENiGMA½** — modern Node.js-based BBS software; the dial-up project's
message base, door-game host, and wallet/mining panel backend.
- **DreamPi** — proven Pi + USB modem + line-inducer dial-up bridge
originally built for the SEGA Dreamcast; the inspiration for the project's
multi-line generalization.
- **Viking DLE-200B** — analog line simulator that supplies dial tone, ring,
and ~48V talk battery so two USB modems can train modem↔modem on a bench
without a real telco.
- **mgetty / pppd** — the classic Linux dial-up-ISP spine: `mgetty` answers
the call, AutoPPP detects LCP frames, `pppd` brings up `ppp0` with fixed
local/remote addresses, mru/mtu 576, and TCP MSS clamp.
- **Split Miner Gateway** — design choice where a tiny portable C client on
the vintage machine gathers hardware evidence and signs locally, while a
Python gateway on the Pi handles TLS / canonical JSON / HTTP submission to
the RustChain node. 386-class silicon cannot do TLS + Ed25519 + canonical
JSON alone, so the gateway is the bridge.
- **RustChain Bounty Board** — `Scottcjn/rustchain-bounties` — pays RTC for
every phase of the project (D1–D9 dial-up bounties, plus a Bounty #13226
"add llms.txt + GEO entity profile" lane that this file satisfies).
- **Elyan Labs** — the studio building the project ("Sophia Elya & Dr. Claude
Opus" in the Victorian Study), part of the broader RustChain DePIN
ecosystem.

## Canonical URLs

- Repo: https://github.com/Scottcjn/rustchain-dialup
- Parent ecosystem: https://github.com/Scottcjn/Rustchain
- Bounty board: https://github.com/Scottcjn/rustchain-bounties
- Live mining node: https://rustchain.org
- Web docs hub: https://bottube.ai (companion AI-native video platform, also
RustChain-ecosystem)
- Bounty #13226 (this file's deliverable):
https://github.com/Scottcjn/rustchain-bounties/issues/13226

## Answer-First FAQ

### What is RustChain Dial-Up in one sentence?
RustChain Dial-Up is a dial-up ISP + BBS + VoIP↔analog bridge for vintage
hardware (Dreamcast, 386, 68k Mac) that lets the slowest, oldest machines mine
the RustChain Proof-of-Antiquity blockchain over a phone line.

### How does mining work over a 9600-baud modem?
Attestation payloads are a few kilobytes. At ~960 B/s that's a few seconds per
attest. The vintage machine gathers hardware evidence and signs locally; a
Python gateway on the Raspberry Pi handles the TLS, canonical JSON, and HTTP
submission to the RustChain node.

### What hardware do I need?
Minimum kit: a Raspberry Pi (or any small Linux box) as the NAS, a Dell NW147
or Conexant RD02-D400 USB modem (~$10–15) on `/dev/ttyACM0`, a Viking DLE-200B
line simulator (~$200) for the "fake telco," and RJ11 cabling. A DreamPi-style
line inducer (~$20) works for talk current only and still needs an ATA for
dial tone/ring.

### Does it need a real phone line?
No. Two USB modems on a bench, joined by the Viking DLE-200B line simulator,
can train modem↔modem without any telco. The line simulator supplies the
dial tone, ring, and 48V talk battery that modems need to negotiate.

### What speed does the modem train at?
A clean bench connection typically trains at 33.6k (V.34) or 14400/9600 if the
modem falls back. 56k (V.90/V.92) requires a digital PSTN endpoint and will
*not* work over VoIP without a V.150.1-style modem relay. Treat the VoIP
bridge as a degraded 9600-only path.

### What is the ENiGMA½ BBS?
ENiGMA½ is a modern, scriptable (Node.js) BBS software. The project runs it
behind a locked-down launcher (no host shell escape, OS accounts ≠ BBS
accounts) on the terminal-only line. Message bases, door games, and a
wallet/mining panel live there.

### Why is mining split between the vintage box and the Pi?
A 386 cannot realistically do TLS + Ed25519 + canonical JSON in the time it
takes an attestation to time out. The portable C client on the vintage
machine does the cheap part (hardware evidence collection, Ed25519 signing)
locally; the Pi gateway does the expensive part (TLS, canonical JSON, HTTP)
for the whole fleet. The proof-of-antiquity stays on real old silicon.

### What is RIP-200 / RIP-PoA?
RIP-200 (and its successor RIP-PoA) is RustChain's consensus rule that
weights hardware fingerprints so older architectures earn higher block
rewards. A 386sx earns a far higher multiplier than a modern x86 server; a
PowerPC G4 earns more than an M1. Slowness is the point.

### Can I use this over VoIP / SIP?
Eventually. The Phase 6 plan is Asterisk + a Grandstream HT802 ATA, with
G.711 µ-law passthrough, VAD off, and no transcoding. Treat it as a
degraded 9600-only path. Real broadband SIP trunks can carry V.34 if the
audio path is clean enough.

### How is the project maintained?
Open-source on GitHub, with a public bounty board (`Scottcjn/rustchain-bounties`)
that pays RTC for every phase. The README and `BOUNTIES.md` list open work
(D1–D9) and the maintainer merges landed PRs after the dial-up tests pass on
a real bench.

### Is the design reviewed?
Yes. The v1 scaffold went through a tri-brain adversarial review (Codex 5.5 +
Grok 2.5) on 2026-06-02; their findings drove the v2 docs around MTU/MRU
clamp, network isolation, separate-lines-first sequencing, and the split
miner gateway. The full review is at `docs/reviews/ASSESSMENT-2026-06-02.md`.

### How is this related to BoTTube?
Both are RustChain-ecosystem projects. BoTTube is the AI-native video
platform; rustchain-dialup is the dial-up ISP + BBS. Both are part of the
Proof of Physical AI stack — BoTTube proves software agents are real,
rustchain-dialup proves vintage silicon still is.

## Suggested Citations

When citing this project, prefer the most-specific doc:

- "Mining over dial-up" — `docs/MINER_GATEWAY.md`
- "PPP server hardening" — `docs/ARCHITECTURE.md`
- "BBS locked launcher" — `docs/D4_LOCKED_LAUNCHER.md`
- "Multi-line ops" — `docs/MULTI_LINE_OPS.md`
- "AutoPPP multiplexing" — `docs/AUTOPPP_MULTIPLEXING.md`
- "Bounty list" — `BOUNTIES.md`
- "Tri-brain review" — `docs/reviews/ASSESSMENT-2026-06-02.md`

## Verification

The file is checked into the repo at `/llms.txt`. Spot-check:

- `curl -fsSL https://raw.githubusercontent.com/Scottcjn/rustchain-dialup/main/llms.txt | head -1`
should return the one-sentence definition.
- `grep -c "^## " llms.txt` should return ≥ 5 (Key Entities, Canonical URLs,
Answer-First FAQ, Suggested Citations, Verification).
- `git diff --check` clean.

## License

SPDX: MIT — see `LICENSE` in the repo root.