Kihagyás

No Solutions #33. ASMap, nix, and nix-nostr w/ Julien

Epizód: #33 • Dátum: 2026. július 26. • Házigazda: No Solutions host (Sovereign Engineering) • Vendég: Julien (Sovereign Engineering, ASMap / Cartograph / nix-nostr karbantartó) Forrás: https://sovereignengineering.io/podcast/33-asmap-nix-and-nix-nostr-w-julien Transcript: OpenAI Whisper ggml-medium.en.bin (whisper.cpp, Metal GPU), saját futtatás 2026-07-26 (1:35:09 → 19 226 szó) Hossz: ~1 óra 35 perc, séta-formátum, Julien és Gigi beszélgetése


Összegzés

A No Solutions harmincharmadik epizódja egy sétával indul, és a Bitcoin Core hálózati topológiájától a Nostr-en futó nix-nostr csomagkezelésig ível. Julien, a Cartograph és a nix-nostr karbantartója Gigi kérdéseire válaszolva elmeséli, hogyan jutott el a Nix build rendszer tanulásától a BTC++ Berlin 2023 Nix editionjén át a Bitcoin Core ASMap projektjéhez, és miért fontos a reprodukálható infrastruktúra a szuverenitás-protokollok világában. A beszélgetés középpontjában a „nincs tökéletes AS-térkép, csak a trade-off-ok kezelése” elv áll, és a Cartograph projekt, amely a RPKI és más források adataiból próbál a lehető legjobb közelítést adni.

Julien hosszú ideje Bitcoin-rajongó, és mindig is kereste a módját, hogyan tudna érdemben hozzájárulni a Bitcoin Core-hoz, de van egy szilárd korlát: fejlesztő, de soha nem kódolt C++-ban, és nem is nagyon akar. A Bitcoin Core kódbázisa túlnyomórészt C++, és ez önmagában kizárta a közvetlen core-contributor útvonalat. A COVID lockdown időszaka alatt a házában ragadt, és ahelyett, hogy a Bitcoin Core C++ kódbázisát kezdte volna böngészni, a Nix felé fordult, és nagyon mélyre ásott. A „stepped back from the brink” (visszavonult a széléről) önironikus megfogalmazás: a Nix ökoszisztéma arról hires, hogy a kezdeti lelkesedés után az ember vagy megérti a funkcionális build rendszerek elméleti hátterét, vagy a derivációk útvesztőjében elveszik.

A 2023-as BTC++ Berlin konferencia kulcsszerepet játszott Julien ASMap-hez vezető útján. A BTC++ a Bitcoin-protokoll fejlesztőinek egyik legfontosabb meetup-sorozata, és a 2023-as berlini kiadás kivételesen Nix edition volt. Lisa Neigut, a BTC++-sorozat egyik társszervezője, felismerte, hogy Julien Nix-tudása illeszkedik a 2023-as Nix edition tematikájához, és felkérte egy előadásra. A talk az a belépő Julien számára, ami később az ASMap-contributor pozícióba vezetett. A talk után Julien a networking-részen futott össze Fabian Jahr-ral, a Bitcoin Core egyik régi, nagy tapasztalatú contributorával, és a beszélgetésük kulcsmondata Fabian problémájáról szólt: a Cartograph futtatásához az egész közösségnek ugyanazt a szoftver-verziót, ugyanazokat a függőségeket és ugyanazokat a build-flag-eket kell használnia, hogy az output determinisztikus és összehasonlítható legyen. Julien felismerte, hogy a Nix pontosan erre a problémára kínál megoldást, és ez a felismerés volt az ASMap-beli belépő.

Az ASMap és a Cartograph az internetes hálózati topológia problémáját oldja meg. A Bitcoin Core node-ok peer-discoverálásának egy alattomos gyengesége, hogy ha egy node elindul, akkor a peer-to-peer hálózaton keresztül más node-okhoz csatlakozik, és az IP-címek alapján szervezett bucketing a kiindulópont. Ha az összes peer egyazon adatközpontban van (pl. AWS Frankfurt, Hetzner FSN1), akkor egy támadó viszonylag olcsón tud nagyszámú hamis node-ot üzemeltetni egy adatközpontban (Sybil attack), és a célzott node-ot „eclipselni” a hálózatról (eclipse attack), ahol a node nem a valódi Bitcoin hálózatot látja, hanem egy támadó által épített „fake mirror world”-öt. A régi IP-bucketing az IP-cím első két oktettje alapján sorolta vödrökbe a peer-eket, de a mai interneten egy entitás (Cloudflare, Google, Amazon) több Autonomous System-et (AS) is birtokolhat, amelyek nem összefüggő IP-tartományokból állnak.

Az ASMap célja, hogy a peer-bucketinget IP-cím helyett AS-szinten végezze. Ha két peer IP-címe különböző, de ugyanabba az AS-be tartozik (pl. mindkettő Hetzner, AS24940), akkor az ASMap ugyanabba a bucketbe rakja őket. A Cartograph a valós idejű AS-leképezést generálja: adatokat gyűjt több forrásból (RIPE, ARIN, APNIC routing registry-k, BGP route advertisements), megpróbálja optimálisan összefűzni az adatokat, és a Bitcoin Core által használt bináris formátumba konvertálja az eredményt. A Bitcoin Core 20-as verzió óta ez a képesség alapértelmezetten be van kapcsolva, és a core node-ok tipikusan 4000-50 000 címet tartanak nyilván a peer-térképükben.

A Cartograph problémája, hogy a BGP (Border Gateway Protocol) az internet routing rétegének protokollja, és a BGP „sucks a lot”. A BGP lehetővé teszi, hogy bármely AS bármilyen IP-tartományt announceljon, és a globális routerek ezt elfogadják, hacsak nincs manuális szűrés. Ez azt jelenti, hogy a Cartograph nem tud 100%-ig megbízható AS-leképezést építeni, mert a forrás-adatok (BGP announcements) hamisíthatók. A megoldás felé vezető út a RPKI (Resource Public Key Infrastructure), ahol a regionális registry-k (RIPE, ARIN) PKI-alapú aláírással látják el az AS-ek route jogosultságait. A RPKI a „no solutions, only trade-offs” filozófia egyik tipikus példája: nem oldja meg 100%-osan a BGP-hamisítás problémát, de jelentősen megemeli a támadás költségét.

A reprodukálhatóság a Cartograph egyik legérdekesebb technikai-filozófiai része. Mivel a Cartograph futtatása függ a RPKI szerverek pillanatnyi állapotától, a kiegészítő nyilvános DB-k aktuális tartalmától, és a hálózati kapcsolatok időzítésétől, nagyon könnyű előállítani két különböző AS-térképet akár ugyanabból a forráskódból. Julien és csapata ezért vezette be a collaborative run gyakorlatát: havonta egyszer (vagy gyakrabban) a közösség megállapodik egy konkrét Unix timestampben, és minden résztvevő ezen a pontos pillanatban indítja el a Cartograph-ot. A tapasztalatok meglepően jók: általában 5-6 futtató részvételével a résztvevők több mint 50%-a ugyanazt a hash-elt kimenetet kapja. Amikor eltérések vannak, azokat „debugolják”: valakinek a futtatása másodpercekkel eltérő route-ot látott, vagy nem sikerült minden RPKI szerverhez csatlakoznia.

A Nostr és a decentralizált fejlesztői infrastruktúra a beszélgetés második felében kerül elő. Julien elmeséli, hogyan „bottal ütötte meg” a Nostr: az első kapcsolatfelvétel Will Kasserin Twitter-posztjain keresztül történt, miközben Julien az „Ellen socket work”-ját böngészte. A Nostr NIP-jei meggyőzték Julient, mert „tisztán, jól átgondolva volt exponálva”. Napi driver-e az Amethyst (Android), kiegészítve a Wisp-pel (NIP-17 DMs megbízhatósága miatt) és a Coop-pal (NIP-17, asztali). Julien nagy rajongója a Zap Store-nak, és az elve világos: „ha nincs Zap Store-ban, számomra nem is létezik”. A Nostr jövőjét illetően Julien kifejezetten bullish, különösen Jack Buzz projektje kapcsán, ami a GitHub-ot próbálja Nostr-primitívekre építeni.

A nix-nostr projekt Julien másik nagy projektje, ami a Nostr kliensek (Amethyst, Damus, Iris, nak) reprodukálható buildjeit Nix csomagdefiníciókkal oldja meg. Az inspiráció a nix-bitcoin, de a cél szélesebb: relays, FIPS node-ok, git szerverek, Blossom drive-ok, Cashu mint-ek és más szolgáltatások, amelyek könnyen komponálhatók, reprodukálhatók és szállíthatók. Ha az ágensek fognak infrastruktúrát futtatni helyettünk, a deklaratív rendszerek kevésbé ízlés kérdésévé, inkább eszközzé válnak. A nix-nostr tehát a reprodukálható build-ek elvének alkalmazása a Nostr ökoszisztémára, és a Bitcoin Core ASMap projektjének szellemi testvére.

A beszélgetés főbb témái

  • Julien Bitcoin-története: C++-tudás hiánya, COVID lockdown, Nix tanulás, BTC++ Berlin 2023
  • ASMap és a peer-bucketing problémája: Sybil attack, eclipse attack, IP-bucketing korlátai
  • Cartograph projekt: RPKI, BGP, regionális registry-k, AS-térkép generálás
  • Reprodukálhatóság és a collaborative run mechanizmus, Unix timestamp szinkronizáció
  • Nostr felfedezése: Will Kasserin, NIP-ek, Amethyst, Wisp, Coop, Zap Store
  • nix-nostr projekt: Nostr kliensek reprodukálható buildjei Nix csomagdefiníciókkal
  • A Bitcoin Core és a GitHub függetlensége, agent-alapú fejlesztés

Kulcsmondatok

  • „A Nix a reprodukálhatóság problémáját oldja meg: ugyanaz a forráskód + Nix expression egyenlő ugyanaz a bináris.” — Julien
  • „A BGP sucks, you know, BGP sucks a lot, bármely AS bármilyen IP-tartományt announcelhet.” — Julien
  • „A RPKI nem oldja meg 100%-osan a BGP-hamisítást, de jelentősen megemeli a támadás költségét.” — Julien
  • „Collaborative run: ugyanaz a Unix timestamp, és megnézzük, ki milyen hash-elt kimenetet kap.” — Julien
  • „Ha nincs Zap Store-ban, számomra nem is létezik.” — Julien

Vendég: Julien

Julien a Sovereign Engineering cohort tagja, a Cartograph és a nix-nostr karbantartója. A Bitcoin Core hálózati topológiájának egyik fő szakértője, aki a C++-tudás hiánya ellenére a Nix build rendszer és a reprodukálhatóság révén vált a Bitcoin Core egyik fontos projektjének contributorává. A séta-epizódban a hálózati mélységet és a Nostr-ökoszisztéma építőkockáit egyaránt bemutatja.

Házigazda

A No Solutions host (Gigi, a Sovereign Engineering társalapítója) sétál Juliennel, és a Bitcoin Core hálózati topológiájától a Nostr-en futó nix-nostr csomagkezelésig terjedő témákban kérdez. A séta-formátum lehetővé teszi, hogy a technikai mélység és a gondolati ívek természetesen keveredjenek.

Főbb érvek és gondolatmenetek

Julien Bitcoin-története a C++-tudás hiányával indul. A Bitcoin Core kódbázisa túlnyomórészt C++, és ez önmagában kizárta a közvetlen core-contributor útvonalat. A COVID lockdown időszaka alatt a házában ragadt, és a Nix felé fordult, és nagyon mélyre ásott. A „stepped back from the brink” önironikus megfogalmazás, és a Nix ökoszisztémáról szóló tapasztalat: a derivációk és a lazy evaluation útvesztőjében sokan elvesznek, de aki megérti a funkcionális build rendszerek elméleti hátterét, hatékony Nix-felhasználóvá válik. Julien az utóbbi csoportba tartozik.

A BTC++ Berlin 2023 Nix edition a Nix-tudás „beruházásának” megtérülése volt. Lisa Neigut, a BTC++-sorozat egyik társszervezője, felismerte, hogy Julien Nix-tudása illeszkedik a 2023-as Nix edition tematikájához, és felkérte egy előadásra. A talk után Julien a networking-részen futott össze Fabian Jahr-ral, és a beszélgetésük Fabian problémájáról szólt: a Cartograph futtatásához az egész közösségnek ugyanazt a szoftver-verziót kell használnia, hogy az output determinisztikus és összehasonlítható legyen. Julien felismerte, hogy a Nix pontosan erre a problémára kínál megoldást, és ez a felismerés volt az ASMap-beli belépő.

Az ASMap és a Cartograph az internetes hálózati topológia problémáját oldja meg. A Bitcoin Core node-ok peer-discoverálásának egy alattomos gyengesége, hogy ha egy node elindul, akkor a peer-to-peer hálózaton keresztül más node-okhoz csatlakozik, és az IP-címek alapján szervezett bucketing a kiindulópont. Ha az összes peer egyazon adatközpontban van (pl. AWS Frankfurt, Hetzner FSN1), akkor egy támadó viszonylag olcsón tud nagyszámú hamis node-ot üzemeltetni egy adatközpontban (Sybil attack), és a célzott node-ot „eclipselni” a hálózatról (eclipse attack), ahol a node nem a valódi Bitcoin hálózatot látja, hanem egy támadó által épített „fake mirror world”-öt.

A régi IP-bucketing az IP-cím első két oktettje alapján sorolta vödrökbe a peer-eket, de a mai interneten egy entitás (Cloudflare, Google, Amazon) több Autonomous System-et (AS) is birtokolhat, amelyek nem összefüggő IP-tartományokból állnak. Az ASMap célja, hogy a peer-bucketinget IP-cím helyett AS-szinten végezze. Ha két peer IP-címe különböző, de ugyanabba az AS-be tartozik (pl. mindkettő Hetzner, AS24940), akkor az ASMap ugyanabba a bucketbe rakja őket. A Cartograph a valós idejű AS-leképezést generálja: adatokat gyűjt több forrásból (RIPE, ARIN, APNIC routing registry-k, BGP route advertisements), megpróbálja optimálisan összefűzni az adatokat, és a Bitcoin Core által használt bináris formátumba konvertálja az eredményt.

A Cartograph problémája, hogy a BGP (Border Gateway Protocol) az internet routing rétegének protokollja, és a BGP „sucks a lot”. A BGP lehetővé teszi, hogy bármely AS bármilyen IP-tartományt announceljon, és a globális routerek ezt elfogadják. A megoldás felé vezető út a RPKI (Resource Public Key Infrastructure), ahol a regionális registry-k (RIPE, ARIN) PKI-alapú aláírással látják el az AS-ek route jogosultságait. A RPKI a „no solutions, only trade-offs” filozófia egyik tipikus példája: nem oldja meg 100%-osan a BGP-hamisítás problémát, de jelentősen megemeli a támadás költségét.

A reprodukálhatóság a Cartograph egyik legérdekesebb technikai-filozófiai része. A collaborative run gyakorlat: havonta egyszer a közösség megállapodik egy konkrét Unix timestampben, és minden résztvevő ezen a pontos pillanatban indítja el a Cartograph-ot. A tapasztalatok meglepően jók: általában 5-6 futtató részvételével a résztvevők több mint 50%-a ugyanazt a hash-elt kimenetet kapja. Amikor eltérések vannak, azokat „debugolják”. Az, hogy a Bitcoin Core-ba ágyazott ASMap nem egyetlen ember YOLO-zásából származik, hanem több független futtató konszenzusos eredménye, az egy kriptográfiailag ellenőrizhető paper trail.

A Nostr és a decentralizált fejlesztői infrastruktúra a beszélgetés második felében kerül elő. Julien NIP-jei meggyőzték, mert „tisztán, jól átgondolva volt exponálva”, és az Amethyst, a Wisp és a Coop a mindennapi driver-ei. A Zap Store a cohort egyik legfontosabb eredménye, és Jack Buzz projektje a GitHub-ot próbálja Nostr-primitívekre építeni (a nGit és Git Workshop irányába). A hosszabb távú jövőkép: a Bitcoin Core-nak is fokozatosan el kell szakadnia a GitHub-tól, és a social funkciók (követés, star, issue tracking) mind Nostr primitívekre építhetők újra.

A nix-nostr projekt Julien másik nagy projektje, ami a Nostr kliensek reprodukálható buildjeit Nix csomagdefiníciókkal oldja meg. Az inspiráció a nix-bitcoin, de a cél szélesebb: relays, FIPS node-ok, git szerverek, Blossom drive-ok, Cashu mint-ek és más szolgáltatások. Ha az ágensek fognak infrastruktúrát futtatni helyettünk, a deklaratív rendszerek kevésbé ízlés kérdésévé, inkább eszközzé válnak. A nix-nostr tehát a reprodukálható build-ek elvének alkalmazása a Nostr ökoszisztémára, és a Bitcoin Core ASMap projektjének szellemi testvére.

Szakmai párhuzamok és kontextus

A Bitcoin Core ASMap projektje Gleb Naumenko ötletéből indult, és azóta több contributor dolgozott rajta: SIPA (Pieter Wuille), Virtu (Sjors Provoost), Fabian Jahr (a projektvezető), és Julien (a Cartograph karbantartója). A feature Bitcoin Core 20 óta (kb. 2020) része a core kódbázisnak, és a core node-ok tipikusan 4000-50 000 címet tartanak nyilván a peer-térképükben. A Cartograph a K betűs névválasztás a Copyright-ütközés elkerülése, és a Bitcoin Core-ba ágyazott ASMap alapértelmezetten be van kapcsolva, de manuálisan frissíthető.

A RPKI (Resource Public Key Infrastructure) a regionális internet registry-k (RIPE. Európa, ARIN. Észak-Amerika, APNIC. Ázsia) által üzemeltetett PKI-alapú rendszer, amely kriptográfiailag igazolja, hogy egy AS jogosult-e egy adott IP-tartomány hirdetésére. A RPKI ma a globális internet kb. 55%-át fedi le, és a route origin authorizáció (ROA) segítségével egy AS igazolni tudja a jogosultságát. A RPKI a „no solutions, only trade-offs” filozófia egyik tipikus példája, mert nem oldja meg 100%-osan a BGP-hamisítás problémát.

A Nix build rendszer a funkcionális programozás elveit alkalmazza a build rendszerekre, és a reprodukálhatóság, a deklaratív függőség-kezelés, valamint a függőség-izoláció a fő előnyei. A nix-bitcoin a Bitcoin stack reprodukálható buildjeit oldja meg, és a nix-nostr a nix-bitcoin szellemi testvére, amely a Nostr ökoszisztémára alkalmazza ugyanezt az elvet. A NIP-ek (Nostr Improvement Proposals) a Nostr protokoll egyes funkcióit definiálják, és a Zap Store, az Amethyst, a Damus, az Iris, a nak CLI, valamint a Wisp és a Coop a NIP-ekre épülő alkalmazások.

A collaborative run mechanizmus a „konszenzusos output” elvén alapul: a közösség megállapodik egy Unix timestampben, és minden résztvevő ezen a pontos pillanatban indítja el a Cartograph-ot. A tapasztalatok szerint a futtatók több mint 50%-a ugyanazt a hash-elt kimenetet kapja, és az eltérések általában kicsik és magyarázhatók (másodpercekkel eltérő route, nem sikerült minden RPKI szerverhez csatlakozni). A GitHub issue-k a nyilvános bizonyíték, és a commit-and-reveal sémák a jövőbeli fejlesztés irányai.

A Bitcoin Core és a GitHub függetlensége a hosszabb távú jövőkép. A Bitcoin Core-nak van tükör-infrastruktúrája, a CI Linux-on viszonylag gyorsan újraépíthető, de a mailing-listás vita-átállás, a CI, és a social funkciók (követés, star, issue tracking) mind Nostr primitívekre építhetők újra. A NIP-34 (Git cooperation) a Git-over-Nostr alapjait adja, és a NIP-17 (gift wrap) a privát üzenetek protokollja. A Jack Buzz projektje a GitHub-ot próbálja Nostr-primitívekre építeni, és a nGit és a Git Workshop a konkrét kezdeményezések.

Forrás

  • Epizód URL: https://sovereignengineering.io/podcast/33-asmap-nix-and-nix-nostr-w-julien
  • Transcript forrás: OpenAI Whisper ggml-medium.en.bin (whisper.cpp, Metal GPU), saját futtatás 2026-07-26 (1:35:09 → 19 226 szó)
  • No Solutions podcast: https://sovereignengineering.io/podcast
  • Vendég: Julien (Sovereign Engineering, ASMap / Cartograph / nix-nostr karbantartó)
  • Házigazda: Gigi (Sovereign Engineering)
  • Hossz: ~1 óra 35 perc
Vissza a tetejére