GitTorrent: decentralizált GitHub

Címkék

Chris Ball blogján saját, GitTorrent nevű projektjéről ír, amely nem más, mint Git repók peer-to-peer hálózata BitTorrent-en keresztül megosztva. A kód megtalálható a GitHub-on. MIT licenc feltételei szerint használható, másolható, módosítható stb. Az elképzelésről részletesen itt lehet olvasni.

Hozzászólások

Ez azért elég cool! :)

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

Nem rágtam át magam rajta, de mi garantálja azt, hogy valaki a magánál lévő repot nem módosítja ártalmas kóddal? Ez nem jelenthet veszélyt? Nem használok torrentet, így bocs, ha láma a kérdés.

A .torrent fájl tartalmaz valamiféle ellenőrzőkódot, crc-t, így ha valaki módosít, akkor az a blokkhalmaz érvénytelenné válik.
Persze az ellen nem véd hogy a saját magánál lévő cuccot ne módosítsa, de gondolom arra vagy kíváncsi, hogy ez eljuthat-e másokhoz. Amíg a .torrent fájl megbízható, addig elvileg nem.

Nincs torrent fájl, DHT van, a commit hash alapján keresi a commitot. Ha a hash stimmel akkor (hash ütközés erejéig) biztos lehetsz benne hogy jó kommitláncot kaptál. Ha a tulajdonosban is biztos akarsu lenni akkor nincs más, git signolni kell.

Egyébként engem nem győzött meg. Elképesztő mennyiségű commit van, nehéz elképzelni hogy a világon nem lesz soha 2 azonos hash, és kész a probléma. A másik meg hogy hash ütközéses támadást is láttunk már. Szóval érdekes, ha nincs pénz szerverre jó is lehet itt-ott, de nem komolyan vehető alternatíva szerintem.

Azt nem hiszem hogy szándékosan "rossz" kóddal támadható lesz, attól viszont tartanék ha ez elterjedne hogy miliárdos commitrengetegben (ami az összes torrenten tárolt git repó valaha volt összes commitjét jelenti) nem lesz-e valahol véletlenül két egyforma? Mert akkor az a két repó meghalt. Oké a matematikai esélye elenyészően kicsi, de ha mégis akkor semmit nem tudok tenni ellene.

Tudod, annak, hogy a fejedre hullik egy meteor, a matematikai eselye elenyeszoen kicsi, de ha megis, akkor semmit sem tudsz ellene tenni. Tessek 10 km mely fold alatti bunkerban lakni.

Egyebkent pedig a hash collisionnak a Git termeszetebol adodoan egy repon belul kell bekovetkeznie.
--
Blog | @hron84
Üzemeltető macik

A klasszikus git esetében igen, a gittorrent bekeveri az összes kommitet egyetlen óriás DHT-be és a repót lényegében csak a legfrissebb kommiton végigszaladva visszafelé "fejti ki". (Ezt szépen részletezi a cikk)

A meteorhoz meg: Ha nem kell hogy valaki (bárki) garantálni tudja azt hogy megy a repo akkor persze, a cikkben említett gittorrent egy igencsak kiváló módszer, és mindig működni is fog.

De ha igény hogy valaki garantálhassa a működést akkor nem alternatíva. Ha felhívnak hogy miért állunk, és közlöm hogy bezuhant egy meteor és lezúzta az egész szervertermet, akkor egy ez van lesz a válasz. Ha közlöm hogy hát beütött egy hash ütközés aminek annyi volt az esélye mint hogy egy meteor lezúzza a szervertermet, akkor ... tutira ki vagyok rúgva.

De igazából nagyon elkanyarodtunk, csak arra akartam felhívni a figyelmet hogy amíg a klasszikus torrentben 1 tracker + 1 seed garantálni tudja az üzemet, addig itt (gittorrent) hiába töröd magad, garantálni azt nem tudod. Persze, a torrent linkek is elég faszán működnek, pedig ott sincs garancia - itt kb azzal azonos a helyzet csak az ütközés esélye 1-2 nagyságrenddel nagyobb. Persze, igen, még így is elképesztően kicsi.

"Elképesztő mennyiségű commit van, nehéz elképzelni hogy a világon nem lesz soha 2 azonos hash"

Ha a Fold mind a 7 milliard lakoja masodpercenkent kommitol 1-et 1000 even at szunet nelkul, az kb. 2^68 db kommit. Ez az SHA-1 2^160-as ertekkeszletenek 0.000000000000000000000000002%-a.

--
"You're NOT paranoid, we really are out to get you!"

Nem csak a commitokat, hanem a tageket, treeket és blobokat is SHA-1 azonosítja, így pl a kernel mai master commitja egymaga elhasznál 52362-t a lehetséges 2^160-ból. Szóval a fent említett sok-sok nullától azért valamivel kevesebb van, de még így se kell túlzottan aggódni, főleg, hogy egy hash ütközés magában még nem elég ahhoz, hogy tervezetten gonosz dolgot lehessen véghez vinni.