L’implementazione di riferimento di Bitcoin. Il suo sito pubblica gli annunci delle nuove versioni, gli avvisi di sicurezza e le dichiarazioni del progetto.
I wallet di Bitcoin Core 24.1 cancellano la master key al blocco, così non resta in memoria (#27080), e la corruzione di peers.dat è evitata serializzando una volta sola (#26909). Le code inv-to-send girano più veloci (#27610) e sparisce un segfault REST sugli URI non validi (#27468).
In Bitcoin Core 23.1 deriveaddresses non va più in crash all'indice 2147483647 (#26275) e sparisce un segfault su MacOS 13 causato da alcune notifiche. La GUI ora rifiuta di cifrare i wallet watch-only, e Qt5 passa alla 5.15.3 (#24668).
Il flag -persistmempool da solo vale ora -persistmempool=1 in Bitcoin Core 22.1, mentre prima disattivava per errore la persistenza della mempool (#23061). Il calcolo delle commissioni arrotonda per eccesso per non finire sotto la feerate prevista (#22949), e viene corretto un segfault del wallet legato a external_spk_managers (#23333).
La sincronizzazione degli header guadagna una fase di presync in Bitcoin Core 24.0.1: per prevenire un possibile denial of service, i nodi verificano il lavoro cumulativo di un peer prima di memorizzarne gli header, il che può rallentare la prima sincronizzazione (#25717). Novità anche la RPC sendall e l'opzione mempoolfullrbf, che accetta sostituzioni senza segnalazione BIP125, mentre i wallet passano di default all'opt-in RBF.
CJDNS ottiene il supporto completo in Bitcoin Core 23.0, e cade la vecchia preferenza per i peer sulla porta 8333 (#23542). La stima delle commissioni ora conta le sostituzioni RBF, il parametro di avvio -rescan viene rimosso e i binari Linux includono tracepoint sperimentali.
Nei log di Bitcoin Core 0.20.2 i peer che si comportano male figurano come «discouraged» e non più bannati: possono ancora connettersi ma vengono espulsi per primi, e lo stato si azzera al riavvio. -walletnotify torna a scattare per le transazioni del wallet uscite dalla mempool per un conflitto con un nuovo blocco, e le PSBT riportano sia l'utxo witness sia quello non-witness per gli input segwit.
Bitcoin Core 0.21.2 mette un limite di frequenza agli indirizzi «rumoured» (#22569), e una riga di comando con -noincludeconf=0 non manda più in crash il parser (#22002). Nella GUI, i messaggi di errore sugli URI non ripetono più l'input dell'utente (gui#280).
Il supporto a I2P debutta in Bitcoin Core 22.0, mentre gli indirizzi Tor v2 spariscono ora che la rete Tor stessa li ha abbandonati. Si aggiunge il port mapping NAT-PMP, le RPC esigono Bech32m per gli indirizzi nativi witness versione 1 secondo BIP 350, e i binari ufficiali escono da una build basata su Guix.
I block template di Bitcoin Core 0.21.1 segnalano la disponibilità per taproot per circa tre mesi. Se il 90% dei blocchi di un periodo di retarget da 2016 blocchi la segnala, taproot va in lock-in e questa versione applica i BIP 341 e 342 dal blocco 709.632. Su Windows compare una richiesta in più durante l'installazione, per un problema con il certificato di firma del codice.
Bitcoin Core 0.21.0 introduce le reti di test signet (BIP325) e include le regole di consenso di Taproot previste da BIP341 e BIP342, attive su signet ma non su mainnet. I nodi ottengono anche gli hidden service Tor v3, il wtxid relay BIP339 e la possibilità di servire ai peer i compact filter BIP157.
Addio ai ban automatici in Bitcoin Core 0.20.1, sostituiti da un filtro di scoraggiamento: i peer che si comportano male possono ancora connettersi, ma vengono espulsi di preferenza. Le transazioni in conflitto del wallet tornano ad attivare -walletnotify, funzione che si era rotta nella v0.19, e le PSBT per input segwit riportano ora sia l'UTXO witness sia quello non-witness.
Escono di scena in Bitcoin Core 0.20.0 i messaggi di rifiuto BIP61 e il supporto ai pagamenti BIP70, e il software smette di usare OpenSSL. L'opzione sperimentale -asmap distribuisce le connessioni ai peer tra gli Autonomous System, mentre con rpcwhitelist si può limitare un utente RPC alle chiamate scelte.
Chi usa Tor può ora raggiungere il sito di Bitcoin Core tramite un indirizzo onion, una richiesta che tornava spesso. Lo hidden service aggiunge una strada per aggirare la censura e un percorso di fiducia che non dipende né dalle autorità di certificazione né dal DNS.
Passare due volte -blockfilterindex=basic non provoca più un errore fatale di leveldb in Bitcoin Core 0.19.1, aggiornamento di manutenzione. La versione corregge anche il valore origfee restituito da bumpfee e aggiunge controlli sui limiti di indici e importi nelle PSBT.
Chi scarica la 0.19.0 ottiene in realtà la 0.19.0.1, perché un problema è emerso subito dopo il processo di rc. Novità di questa versione di Bitcoin Core: il flag di wallet avoid_reuse, che può escludere da un'operazione gli indirizzi già usati, la RPC getbalances destinata a sostituire le vecchie chiamate sui saldi e i block filter BIP158 tramite -blockfilterindex.
Un proxy SOCKS malevolo poteva sovrascrivere lo stack del programma di un nodo Bitcoin Core, secondo la divulgazione completa della CVE-2017-18350. Il buffer overflow è entrato con il supporto SOCKS5 nella v0.7.0rc1 ed è stato corretto senza clamore nella 0.15.1; erano esposti solo i nodi configurati per usare un proxy del genere, su sistemi con char con segno.
La versione 0.18.1 di Bitcoin Core corregge l'altezza di pruning restituita da pruneblockchain e fa segnalare a signrawtransactionwithkey un errore quando manca un redeemScript o un witnessScript. Nella GUI viene risolto un bug su Mac nell'apertura del file di configurazione.
I miner che chiamano getblocktemplate senza la regola segwit ricevono ora un errore in Bitcoin Core 0.18.0, perché ometterla riduce i loro ricavi. Si stringe anche la configurazione RPC: rpcallowip non fa più ascoltare il nodo su tutte le interfacce, e un carattere cancelletto in rpcpassword blocca l'avvio.
Tornano le etichette in listtransactions con Bitcoin Core 0.17.1: il parametro account, deprecato e ribattezzato dummy nella 0.17.0, diventa label. Le correzioni riguardano un caso limite di overflow in deserializzazione e un bug nella firma delle PSBT.
In Bitcoin Core 0.17.0 i wallet si possono caricare, creare e scaricare a runtime via RPC, non più solo all'avvio. Il nuovo flag -avoidpartialspends spende insieme le monete ricevute sullo stesso indirizzo, con il possibile costo di commissioni più alte, e un'API per le etichette sostituisce quella deprecata degli account. La CVE-2018-17144 non tocca questa versione.