smeri az npub-ot, ellenőrizni tudja hogy egy node_addr az övé-e, de nem tudja fordítva
Titkosítás (kétrétegű)¶
FMP: Hop-by-hop (Noise IK)¶
- Minden link saját Noise IK session
- Initiator küldi npub-ját első üzenetben
- 1 round-trip, kölcsönös autentikáció
- Transit router dekriptálja → továbbítja → re-encryptálja következő hop-ra
FSP: End-to-end (Noise XK)¶
- Initiator npub-ja rejtve 3. üzenetig (titkosítva a shared secret alatt)
- Transit routerek nem látják a payloadot
- Session megmarad routing hibák esetén is
Ki mit lát?¶
| Megfigyelő | Lát | Nem lát |
|---|---|---|
| Transport observer | Titkosított blob-ok, timing, méret | Bármilyen FIPS információ |
| Direct peer | npub, forgalom mennyiség, timing | Mások session-jei |
| Transit router | src/dest node_addr, csomag méret | Payload, npub-ok, session tartalom |
| Destination (célpont) | Sender npub, payload, session meta | Útvonal, köztes node-ok |
Routing: Spanning Tree + Bloom Filter¶
Spanning Tree¶
- Gyökér: legkisebb node_addr (determinisztikus, nincs választás)
- Minden node egy parent-et választ (legjobb út a gyökérhez, MMP cost alapján)
- Koordináták: [self, parent, ..., root] — egyedi pozíció a fában
- Fa távolság = legkisebb közös ősig hátralévő lépések
Bloom Filter¶
- Node-onként kimenő filter: milyen node_addr-ok elérhetők rajtam keresztül
- "Nem" = biztosan nem elérhető, "Igen" = talán elérhető (false positive lehetséges)
- Tree-only merge + split-horizon: nem propagáljuk végtelenül
- Routing döntés: local → direct peer → bloom filter → greedy tree → drop
Hibaelhárítás¶
- CoordsRequired (0x20): transit node-nak nincs célpont koordinátája
- PathBroken (0x21): nincs közelebbi szomszéd a célpont felé
- MtuExceeded (0x22): csomag túl nagy a következő hop MTU-hoz
- Rate limit: 1 hiba/cél/100ms (transit), 1 CoordsWarmup/cél/2000ms (source)
- Session nem bontódik — csak routing állapot frissül
Transportok¶
| Kategória | Transport | Állapot |
|---|---|---|
| Overlay | UDP/IP | ✅ live |
| Overlay | TCP/IP | ✅ live |
| Overlay | Tor | ✅ live |
| Overlay | WebSocket | 📋 planned |
| Shared Medium | Ethernet | ✅ live |
| Shared Medium | WiFi | 📋 planned |
| Shared Medium | BLE | ✅ live |
| Shared Medium | Radio | 📋 planned |
| Point-to-Point | Serial | 📋 planned |
| Point-to-Point | Satellite | 📋 planned |
Multi-transport bridging: egy node több transporton is futhat, automatikusan hidat képez köztük.
MMP (Metrics Measurement Protocol)¶
- Minden aktív peer link-en fut
- Három mód: full (default), lightweight, minimal
- Méri: SRTT, loss, jitter, goodput, OWD trend, ETX
- Link cost = ETX × (1 + SRTT_ms / 100)
- Parent választás hysteresis: új parent csak 20%-kal jobban kell
- ECN: CE flag hop-by-hop, végcél IPv6 Traffic Class-ba
IPv6 Gateway (Legacy App kompatibilitás)¶
- TUN interface (fips0): fd00::/8 cím a kernel felé
- DNS resolver: npub1...xxx.fips → fd00:: cím + identity cache
- Identity cache: LRU 10 000 bejegyzés, nincs TTL (hash determinisztikus)
- TCP MSS clamping, ICMPv6 Packet Too Big
- fips-gateway sidecar: LAN-on lévő gépeknek (nftables DNAT/SNAT, fd01::/112 pool)
- Transport MTU < 1357 byte → nincs IPv6 (LoRa, serial)
Fenyegetés Modell (4 ellenfél osztály)¶
- Transport observer — passzív lehallgatás → FMP Noise IK véde
- Active attacker — injekció, módosítás, replay → FMP AEAD + replay protection
- Other FIPS node — kíváncsi vagy ellenséges peer → FSP Noise XK védi payloadot
- Disruptive node — hamis TreeAnnounce, mérgezett bloom filter → Schnorr aláírás, handshake rate limit, discretionary peering
Nem cél¶
- Nem anonimitás: direct peer-ek látják egymás npub-ját, nincs mixing, nincs cover traffic
- Nem traffic analysis ellenállás: globális megfigyelő korrelálhatja flow timing-ot
- Ez teszi lehetővé hogy low-power eszközökön is fusson (LoRa, BLE)
Wire Format¶
- Little-endian, 4 byte közös prefix (ver/phase/flags/payload_len)
- SessionDatagram: ttl(1B) + path_mtu(2B) + src_addr(16B) + dest_addr(16B) + FSP üzenet
- FSP: 12 byte cleartext header + AEAD (CP flag = koordináták a ciphertext előtt)
- TreeAnnounce: Schnorr aláírás az egész üzeneten
- LookupResponse: aláírja (request_id || target || target_coords), path_mtu kihagyva (hop-onként változik)
Telepítés & Tesztelés¶
# Debian/Ubuntu
git clone https://github.com/jmcorgan/fips.git
cd fips && cargo install cargo-deb && cargo deb
sudo dpkg -i target/debian/fips_*.deb
sudo usermod -aG fips $USER
sudo systemctl start fips
# Ellenőrzés
fipsctl show status
fipsctl show peers
fipsctl show tree
ping6 npub1qmc3cvfz0yu2hx96nq3gp55zdan2qclealn7xshgr448d3nh6lks7zel98.fips
fipstop # TUI dashboard
Nyilvános teszt node: npub1qmc3cvfz0yu2hx96nq3gp55zdan2qclealn7xshgr448d3nh6lks7zel98 @ udp 217.77.8.91:2121
Jonathan Corgan¶
- Korai cypherpunk (Silicon Valley, 90-es évek)
- Korai Bitcoin fejlesztő (2010-es évek)
- FIPS = "dancing bear" — nem az, hogy jól táncol, hanem hogy tud táncolni
- Claude Code-dal építette (99% kód LLM, de minden sor reviewed)
- Design először, kód másodszor
- Nostr:
npub19wavu4f7l6l43h24jyskn7fvzy37kcfp67aqjtmv2qgy4lp34nhsda8p6k
Források¶
- No Solutions Podcast #24 (2026-04-17) — Building FIPS w/ Johnathan Corgan
- No Solution Podcast #25 (2026-05-30) — White Noise, MLS, Marmot w/ Jeff G
- No Solution Podcast #28 (2026-06-03) — Speak Human w/ MouxDesign (UX, community, mini-AGI, vibe-design)
- Learn FIPS — 14 interaktív lecke (2026-04-20 olvasva)
- GitHub: jmcorgan/fips — referencia implementáció (Rust)
- Protocol Specs — design dokumentáció
No Solutions #31: Buzz, Mosaico, and Other Stuff w/ Pablo (2026-07-25)¶
Vendég: Pablo (FIPS Nostr fejlesztő, npub1n0...3000n) • Házigazda: No Solutions host (npub1n0...3000n) • Epizód: 2:00:41, multi-topic (Buzz agent orchestration, Mosaico Nostr kliens, FIPS, NIP-29, proaktív kontextus)
A No Solutions #31 epizódja Pablo-val (FIPS Nostr fejlesztő) középpontjában két projekt áll: a Buzz (agent orchestration platform, Slack/Discord-szerű, NIP-29 alapú) és a Mosaico (Nostr kliens, autonomy-növelés). A beszélgetés során a NIP-29 vs. NIP-17 trade-off (encrypted vs. trust-within-team), a "serial killer relay" anti-pattern, a "tokens vs. time" filozófia, és a "proactive context" projekt (awareness layer, noun extraction, vector database + ollama rerank) is terítékre kerülnek.
1. Bevezető + Buzz és Mosaico¶
Pablo bemutatkozása és a két projekt (Buzz + Mosaico) áttekintése. A Buzz egy "finished contained product" — Slack/Discord-szerű rendszer, ahol az agent-ek "élnek", és a felhasználó csak a fontos pillanatokban szólal meg. A Mosaico a "Nostr kliens" kategóriába tartozik, a "no KYC sats" filozófiával. A két projekt kiegészíti egymást: a Buzz a team-coordination, a Mosaico a personal Nostr élmény.
Időtartomány: 0:00-30:00 · Szavak: 4973
2. Buzz vs. Mosaico — az agent-human in the loop filozófia és a NIP-29 trade-off¶
A "fragmentation" probléma (cloud code, különböző agent rendszerek nem interaktálnak egymással). A NIP-29 vs. NIP-17 trade-off — a NIP-29 unencrypted, de "trust within team" feltételezéssel működik ("Discord for nostr"). A "serial killer relay" anti-pattern (single relay = anti-pattern a Nostr ökoszisztémában). A "tokens vs. time" filozófia — a token olcsó, az idő drága. A trust skepticism problémája. A Buzz telepítési flow (QR kód invite, lokális telepítés). A Mosaico preview.
Időtartomány: 30:00-60:00 · Szavak: 4973
3. Mosaico Nostr kliens — NIP-29, proaktív kontekstus-injekció, hálózatelmélet¶
A chunk-topic eltérést jelez a subagent (a chunk valójában Mosaico ügynök-koordináció, NIP-29, proaktív kontextus-injekció, hálózatelmélet, NEM FIPS/applet/outbox/blossom — ez egy fontos felismerés a chunkolás pontatlanságáról).
Időtartomány: 60:00-90:00 · Szavak: 4973
4. A "proactive context" projekt — a felhasználói input mint a legfontosabb dolog¶
Az "awareness layer" és a "self-organization layer" — a "irreducible complexity" elve, minden modul egy dolgot csinál. A "proactive context" alapelve — a felhasználói input a legfontosabb dolog ("I can always spend more tokens. I can never get back like a single minute of my time."). A "no bullshit" szűrés — a rendszer nem hallucinálhat. A "noun extraction" — a főnevek kiválasztása és az ontology építés. A "watermark" — a felhasználó írásstílusának felismerése (Satoshi dupla szóköz, Pablo kisbetűs írás). A vector database + ollama kombináció a releváns wiki-bejegyzések kikeresésére. A Codex hook — a felhasználói üzenetek automatikus rögzítése. A "no context is better than bad context" elv. A "user input primacy" — a felhasználó szuverenitása, a "why" explicit rögzítése, a cypherpunk építkezés filozófiája.
Időtartomány: 90:00-120:41 · Szavak: 4974
No Solutions #32: Nostrology w/ WhisperHash (2026-07-25)¶
Vendég: WhisperHash (Sovereign Engineering CCO 8th cohort, Nostr asztrológia/spiritualitás, jelenleg Hong Kongban él) • Házigazda: No Solutions host (npub1n0...3000n) • Epizód: 1:27:47, multi-topic (Nostrology, Nostr primitívek, Zap Store, személyes út, asztrológia/spiritualitás)
A No Solutions #32 epizódja WhisperHash-sel (Sovereign Engineering CCO 8th cohort tag, jelenleg Hong Kongban él) középpontjában a "Nostrology" (Nostr + asztrológia/spiritualitás) áll, de a beszélgetés sokkal szélesebb: a Nostr primitívek (Blossom, FIPS, NIP-ek) állapota, a Zap Store (a Nostr első "killer app"-ja) sikertörténete, a "permissionless publishing" forradalma, a "data formats vs. protocols vs. UX" stack, és WhisperHash személyes útja (Silicon Valley → London → Hong Kong) is terítékre kerülnek.
1. Bevezető + WhisperHash bemutatkozása¶
WhisperHash a Sovereign Engineering CCO 8th cohort tagja, és a "breadcrumbs" (kenyérmorzsák) metaforával írja le az útját a Nostr-hoz. A vendég elmagyarázza, hogyan fedezte fel a No Solutions podcast-ot ("we do zero marketing"), és miért döntött úgy, hogy "go all the way" — teljes elköteleződés a Nostr ökoszisztéma mellett.
Időtartomány: 0:00-29:00 · Szavak: 4581
2. A Nostr primitívek, a Zap Store, és WhisperHash személyes útja¶
A "right abstractions" és "right primitives" elve. A Nostr primitívek (Blossom, FIPS, NIP-ek) áttekintése — a státusz: "network fabric infrastructure and primitives stage". A Zap Store sikertörténete — az első cohort-ból nőtt ki, "permissionless" publishing, "just fucking works", "on par with the big app stores". A "vibe coding" app publishing vízió. A "data formats vs. protocols vs. UX" stack. WhisperHash személyes útja: Silicon Valley (late 90s, dot-com bubble) → London (5 év, Agile ipar, "snake oil salesmen") → Hong Kong (9/11 és George W. Bush újraválasztása mint "final straw", MTR rendszer, természeti környezet). A "professional athlete" analógia a Bay Area-i fejlesztőkről.
Időtartomány: 29:00-58:00 · Szavak: 4581
3. A Nostrology asztrológia-spiritualitás, a "decision fork", záró gondolatok¶
A Nostrology (Nostr + asztrológia/spiritualitás) koncepció. A "decision fork" — a vendég döntése, hogy "go all the way" és teljesen a Nostr ökoszisztémára szánja az életét. A "set the data free" filozófia. A clankerek (AI ügynökök) szerepe a jövőben. A záró gondolatok: "I want to echo that always go all the way you have nothing to lose. We're all gonna die anyway might as well go all the way".
Időtartomány: 58:00-87:00 · Szavak: 4581
No Solutions #33: ASMap, nix, and nix-nostr w/ Julien (2026-07-25)¶
Vendég: Julien (Sovereign Engineering társalapító, ASMap / Cartograph / nix-nostr karbantartó) • Házigazda: Adam (Sovereign Engineering, ASMap kérdező fél) • Epizód: 1:35:08, FIPS-networking + Bitcoin reprodukálható build
A No Solutions #33 epizódja Juliennel (Sovereign Engineering) a reprodukálható build rendszerek és a Nostr kliensek reprodukálható módon történő fejlesztéséről szól. A beszélgetés középpontjában az ASMap és Cartograph projektek állnak (Bitcoin Core funkció a Core 20 óta, a hálózati topológia leképezésére), a Nix funkcionális build rendszer (amivel 100 futtató 100 azonos binárist tud előállítani), és a nix-nostr projekt (Nix overlay a Nostr kliensekhez). Julien a Sovereign Engineering filozófiáját is bemutatja: non-profit cooperative a Bitcoin- és privacy-ökoszisztémához, ahol a fejlesztők kizárólag a közösséget szolgálják.
1. Julien története és a BTC++ Berlin 2023¶
Julien hosszú ideje Bitcoin-rajongó, de soha nem tudott érdemben hozzájárulni a Core-hoz, mert soha nem kódolt C++-ban (és nem is akar). A COVID lockdown alatt tanult Nix-et "az őrület határáig, és visszavonult a széléről". A BTC++ Berlin 2023 Nix edition-ön tartott egy talkot, ahol találkozott Fabian Jahr-ral (a Bitcoin core régi közreműködőjével). Fabian problémája: az ASMap-ben sok ember futtatja ugyanazt a szoftvert, de a függőségek reprodukálhatósága nem biztosított.
Időtartomány: 0:00-29:00 · Szavak: 3846
2. ASMap és Cartograph — a hálózati topológia reprodukálható leképezése¶
Az ASMap a Bitcoin Core funkciója, ami a hálózati topológiát írja le. A node-ok az internetes topológiát "szimulálják", hogy a tranzakciók a lehető legkevesebb ugrással terjedjenek. A Julien által karbantartott Cartograph projekt az, ami az AS mapek tényleges generálását végzi — Python eszköz, ami a világ minden tájáról származó traceroute adatokat gyűjti. A reprodukálhatóság kérdése: 100 futtatónak 100 azonos binárist kell kapnia.
Időtartomány: 29:00-58:00 · Szavak: 3846
3. FIPS overlay network és a hang/szöveg UI forradalma¶
A chunk_3 valódi tartalma a transcript lineáris elrendezése miatt a várttól eltérően a FIPS overlay hálózatról, a hang/szöveg UI forradalmáról (BitChat, Pebble ring, voice-first interface), és a Bitcoin Core FIPS transport ötletről szól. Julien véleménye: "I think UI is part of the agentic world", és a voice-first interface a jövő. A vendég és Julien beszélgetnek az LLM-ek embodied korlátairól is (Snow Crash párhuzam, John Ravecchi, perception).
Időtartomány: 58:00-87:00 · Szavak: 3846
4. Nix alkalmazása a Nostr kliensekre — az archipelago, a FIPS és a NPUB punching¶
A "bridge-building technology" koncepció. Az archipelago projekt Nix-szel buildelt bridge node-okat készít, és a Nostr kliensek NAT-traversal és router configuration nélkül tudnak egymáshoz csatlakozni. A "you punch in the NPUB, that's it" — a felhasználónak csak a Nostr pubkey-t kell megadnia. A nix-nostr projekt Julien fő projektje, ami Nix overlay-en keresztül reprodukálható Nostr klienseket biztosít (Amethyst, Damus, Iris, Primal). A Buzz integráció példája: a meglévő projektekbe a Nostr ötletei "meglepően egyszerűen integrálhatók".
Időtartomány: 87:00-115:00 · Szavak: 3846
5. Az archipelago demo és a Bitcoin design forradalma¶
A "deep in the soul" momentum. Az archipelago demo Julien szerint "az első alkalom, hogy a Bitcoin ökoszisztémában ilyen badass design-t látok, ami valóban megtestesíti a küldetést". A release ígéret: 2026-07-31 (vagy 2026-10-31 — a transcriptben mindkettő előfordul). A "rug pulled by a month" ironikus megjegyzés. A Bitcoin ökoszisztéma design failure-je ("szoftvereink jók, működnek, de nem ragadnak meg") és az archipelago ezen változtató szerepe. A záró "clankers will do the rest" — a podcast AI-szerkesztőjére utaló kifejezés.
Időtartomány: 115:00-135:08 · Szavak: 3842
6. Intelligence Snacks #72 — "The Internet We deserve w. FIPs!" (2026-09-17)¶
A YouTube-videó Pete és Andy beszélgetése a FIPS-ről és a Nostr-ról, 75 percben. A FIPS-történet legfrissebb fejezete: Pete "ninja launch"-ot jelent be a tengerpartról, és a hallgatói kérdésre (John on Nostr) épülő epizód a FIPS-t mint "az internetet, amit megérdemlünk" mutatja be.
- FIPS device-key és self-organising mesh: a FIPS-címzés (device-key identity) és az önszerveződő mesh (Bluetooth + IPv6 kombináció) révén a számítógépek ismét a hálózat első osztályú résztvevőivé válnak a felhő-szerver-néző modell helyett. A "computer-use hullám" kontextusában ez a lokális vs. cloud-agent vita újradefiniálása.
- Wingman app suite (Flight Deck / Tower / Autopilot): Pete saját fejlesztésű app-csomagja, amely a FIPS-címekre épít. A QR-kód onboarding a domain-vásárlás és Cloudflare-beállítás helyettesítője — "ezerszeres javulás" a UX-ben.
- Dan-féle GRASP + Forgejo self-hosted git: Nostr-alapú Git-szerver, ahol a klienst a saját géped tárolja. A fejlesztői élmény ("staging-pokol") kiküszöbölése a FIPS-címek segítségével.
- Pete draft NIP a
window.fipstransportra: a NIP-F5 (Permissioned FIPS Transport for Web Apps) javaslat, amely awindow.fipsTransportAPI-t definiálja. Ez a Nostr Compass #40-ben is megjelent javaslat gyakorlati alkalmazása. - "Nostr + FIPS elég" tézis: Pete szerint "we can rebuild everything now" — a FIPS + Nostr kombináció elegendő az internet újraépítéséhez, a felhő-centralizáció kiváltásához. A "Dropbox-killer" virtual filesystem és az "organizations as distributed computers" vízió a gyakorlati alkalmazások.
- AI pivot és regulation moat: az epizód második felében Pete és Andy az AI doom vitát elemzik (Dario Amodei / Anthropic "AI will kill everyone by 2030", Jensen Huang pushback, "tegyük illegálissá a gyilkosságot" Pete javaslata, Andy "kartell-viselkedés" vádja). A "regulation moat" leleplezése: a biztonság nem a cél, hanem a monopólium-építés ürügye.
Időtartomány: 0:00-75:00 · Szavak: 17306 (YouTube-transcript-api)
Vendégek: Pete + Andy · Házigazda: (Pete + Andy saját podcast)
E116: Húszonegy "Megépült egy új internet" — magyar FIPS-magyarázat (2026-09-17)¶
A Húszonegy podcast 116. epizódjában Lez mutatja be a FIPS-overlay network-öt magyar nyelven, hétköznai példákkal. Főbb pontok: (1) FIPS-sel a felhasználót publikus kulcs azonosítja (npub1abcd....fips), nem IP-cím — a hálózat bármilyen fizikai közegen megtalálja (földkábel, műhold, Bluetooth, belső hálózat). (2) A certificate authority és a RIPE-IP-címkiosztás is meg van kerülve — ezek a centralizált elemek tűntek el. (3) A Telegram egy napig elérhetetlen volt, mert a domain-IP-t elvették; FIPS-szel ez nem történhet meg. (4) Jonathan Corgan a főfejlesztő, "cypherpunk időkben nevelkedett, 50 fölött van, és már legalább egy évtizede teljesen passzív volt". (5) Hiányzó elem: a DNS-névfeloldás — decentralizált módon nem lehet tökéletesen megoldani ("te mondod, hogy huszonegy.world, én mondom, hogy másik cím"). (6) IoT use case: mozgó eszközöknek nem kell újrakonfigurálniuk az IP-címet, portot, protokollt — a FIPS overlay megtalálja őket. Henky saját tapasztalata: az nsite irányba mozdult el, de a FIPS koncepcionálisan szebb megoldás. Vendégek: Henky (HenkyPenky) és Lez. Episode: https://huszonegy.world/podcast/megepult-egy-uj-internet-amihez-nem-kell-engedely/