Pensierino: sapete se e' già venuta in mente a qualcuno l'idea di inserire ad ogni nuova relase del client ufficiale una sorta di "chiodo" che analogamente a come funziona il genesis block impone il passaggio della catena in quel blocco ad una determinata altezza?
In questo modo si eviterebbe l'inconveniente di trovarsi la chain errata dopo tantissimo tempo.
Inoltre sarebbe interessante che la chain contenesse anche il codice c++ (mi pare ci sia) e tutte le sue patch (magari ci sono ...).
C'è stato un mandatory tra la versione 0.6 e la 0.7 se non ricordo male, ovvero intorno al blocco 180.000 e ce ne sarà un'altro pilotato quando si decideranno in maniera definitiva sull' aumento della grandezza delle TX.
Riguardo la chain, a che pro ?
FaSan
Per chi fosse interessato, nel file
chainparams.cpp (che è uno dei file sorgenti di Bitcoin Core) si trovano tutti i checkpoint integrati direttamente nel software. Al momento sono questi 13 (l'ultimo si riferisce a un blocco minato circa 1 anno fa):
( 11111, uint256S("0x0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d"))
( 33333, uint256S("0x000000002dd5588a74784eaa7ab0507a18ad16a236e7b1ce69f00d7ddfb5d0a6"))
( 74000, uint256S("0x0000000000573993a3c9e41ce34471c079dcf5f52a0e824a81e7f953b8661a20"))
(105000, uint256S("0x00000000000291ce28027faea320c8d2b054b2e0fe44a773f3eefb151d6bdc97"))
(134444, uint256S("0x00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe"))
(168000, uint256S("0x000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763"))
(193000, uint256S("0x000000000000059f452a5f7340de6682a977387c17010ff6e6c3bd83ca8b1317"))
(210000, uint256S("0x000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e"))
(216116, uint256S("0x00000000000001b4f4b433e81ee46494af945cf96014816a4e2370f11b23df4e"))
(225430, uint256S("0x00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932"))
(250000, uint256S("0x000000000000003887df1f29024b06fc2200b55f8af8f35453d7be294df2d214"))
(279000, uint256S("0x0000000000000001ae8c72a0b0c301f67e3afca10e819efa9041e458e9bd7e40"))
(295000, uint256S("0x00000000000000004d9b4ef50f0f9d686fd69db2e03af35a100370c64632a983"))
Da quello che ho capito (non ne sono sicuro al 100%) servono soprattutto ad evitare che qualcuno, reiniziando a minare dal blocco 1, inondi la rete di molti blocchi inutili e quindi occupi con catene-spazzatura gli hard disk dei nodi. Con i checkpoint si velocizza la sincronizzazione alla catena principale "corretta" scartando subito le catene che non passano per questi checkpoint.
Ovviamente come molti in rete hanno osservato in questo modo si introduce un elemento di consenso deciso da pochi - gli sviluppatori del codice - contrario alla filosofia decentralizzata a cui si ispira il sistema Bitcoin.