Die Referenzimplementierung von Bitcoin. Ihre Website veröffentlicht Ankündigungen neuer Versionen, Sicherheitshinweise und Stellungnahmen des Projekts.
Beim Sperren löschen Wallets in Bitcoin Core 24.1 den Master Key, damit er nicht im Speicher bleibt (#27080), und einmaliges Serialisieren verhindert beschädigte peers.dat-Dateien (#26909). Inv-to-send-Warteschlangen laufen schneller (#27610), ein REST-Segfault bei ungültigen URIs ist beseitigt (#27468).
deriveaddresses stürzt in Bitcoin Core 23.1 am Index 2147483647 nicht mehr ab (#26275), auch ein durch bestimmte Benachrichtigungen ausgelöster Segfault unter MacOS 13 ist verschwunden. Die GUI weigert sich nun, Watch-only-Wallets zu verschlüsseln, Qt5 wechselt auf 5.15.3 (#24668).
Ein bloßes -persistmempool bedeutet in Bitcoin Core 22.1 jetzt -persistmempool=1, bisher schaltete es das Speichern des Mempools versehentlich ab (#23061). Die Gebührenberechnung rundet auf, um nicht unter dem erwarteten Gebührensatz zu landen (#22949), außerdem ist ein Wallet-Segfault im Zusammenhang mit external_spk_managers behoben (#23333).
Die Header-Synchronisierung erhält in Bitcoin Core 24.0.1 eine Presync-Phase: Um einem möglichen Denial-of-Service vorzubeugen, prüfen Knoten die kumulierte Arbeit eines Peers, bevor sie seine Header speichern, was die erste Synchronisierung bremsen kann (#25717). Neu sind auch der RPC sendall und die Option mempoolfullrbf, die Ersetzungen ohne BIP125-Signal annimmt; Wallets nutzen nun standardmäßig Opt-in-RBF.
Volle CJDNS-Unterstützung zieht in Bitcoin Core 23.0 ein, die alte Bevorzugung von Peers auf Port 8333 entfällt (#23542). Die Gebührenschätzung berücksichtigt nun RBF-Ersetzungen, der Startparameter -rescan ist gestrichen, und die Linux-Binaries bringen experimentelle Tracepoints mit.
Peers, die sich danebenbenehmen, erscheinen in den Logs von Bitcoin Core 0.20.2 als „discouraged“ statt als gebannt: Sie dürfen sich weiter verbinden, fliegen aber als Erste raus, und der Zustand verschwindet beim Neustart. -walletnotify löst wieder aus, wenn Wallet-Transaktionen wegen eines Konflikts mit einem neuen Block aus dem Mempool fallen, und PSBTs enthalten für SegWit-Inputs sowohl Witness- als auch Non-Witness-UTXO.
Das Weiterreichen von Adressen drosselt Bitcoin Core 0.21.2 per Rate Limit (#22569), eine Befehlszeile mit -noincludeconf=0 bringt den Parser nicht mehr zum Absturz (#22002). In der GUI geben URI-Fehlermeldungen keine Nutzereingaben mehr wieder (gui#280).
I2P-Unterstützung hält Einzug in Bitcoin Core 22.0, Tor-v2-Adressen fallen weg, nachdem das Tor-Netz sie selbst aufgegeben hat. Hinzu kommt Port-Mapping per NAT-PMP, RPCs verlangen nach BIP 350 Bech32m für native Witness-Version-1-Adressen, und die Release-Binaries entstehen mit einem Guix-basierten Build.
Block-Templates von Bitcoin Core 0.21.1 signalisieren rund drei Monate lang Bereitschaft für Taproot. Signalisieren 90 % der Blöcke einer Retarget-Periode von 2016 Blöcken, folgt der Lock-in von Taproot, und diese Version setzt BIP 341 und 342 ab Block 709.632 durch. Windows-Nutzer bekommen wegen eines Problems mit dem Code-Signing-Zertifikat eine zusätzliche Installationsabfrage.
Signet-Testnetze (BIP325) führt Bitcoin Core 0.21.0 neu ein und liefert die Taproot-Konsensregeln aus BIP341 und BIP342 mit, aktiv auf Signet, nicht aber im Mainnet. Knoten beherrschen zudem Tor-v3-Hidden-Services und wtxid-Relay nach BIP339 und können Peers Compact Filter nach BIP157 bereitstellen.
Statt automatischer Banns gibt es in Bitcoin Core 0.20.1 einen Discouragement-Filter: Auffällige Peers dürfen sich weiter verbinden, werden aber bevorzugt getrennt. In Konflikt geratene Wallet-Transaktionen lösen -walletnotify wieder aus, nachdem das in v0.19 kaputtgegangen war, und PSBTs für SegWit-Inputs tragen jetzt sowohl Witness- als auch Non-Witness-UTXO.
BIP61-Reject-Nachrichten und die BIP70-Zahlungsunterstützung fliegen aus Bitcoin Core 0.20.0, OpenSSL wird ebenfalls nicht mehr genutzt. Die experimentelle Option -asmap verteilt Peer-Verbindungen über Autonome Systeme, und rpcwhitelist-Einstellungen können einen RPC-Nutzer auf ausgewählte Aufrufe beschränken.
Über eine Onion-Adresse erreichen Tor-Nutzer die Website von Bitcoin Core jetzt direkt, nachdem das häufig gewünscht worden war. Der Hidden Service schafft einen weiteren Weg an Zensur vorbei und einen Vertrauenspfad, der weder von Zertifizierungsstellen noch vom DNS abhängt.
Zweimal -blockfilterindex=basic führt in Bitcoin Core 0.19.1 nicht mehr zu einem fatalen leveldb-Fehler. Das Wartungsupdate korrigiert außerdem den von bumpfee gelieferten Wert origfee und ergänzt Bereichsprüfungen für Indizes und Beträge in PSBTs.
Wer 0.19.0 herunterlädt, erhält tatsächlich 0.19.0.1, weil kurz nach dem RC-Prozess ein Problem auftauchte. Neu in dieser Version von Bitcoin Core: das Wallet-Flag avoid_reuse, das bereits verwendete Adressen von einem Vorgang fernhalten kann, der RPC getbalances als Ersatz für ältere Guthaben-Aufrufe und BIP158-Blockfilter über -blockfilterindex.
Ein bösartiger SOCKS-Proxy konnte den Programm-Stack eines Bitcoin-Core-Knotens überschreiben, wie die vollständige Offenlegung von CVE-2017-18350 zeigt. Der Pufferüberlauf kam mit der SOCKS5-Unterstützung in v0.7.0rc1 und wurde in 0.15.1 stillschweigend behoben; gefährdet waren nur Knoten, die einen solchen Proxy nutzten, auf Systemen mit vorzeichenbehaftetem char-Typ.
pruneblockchain meldet in Version 0.18.1 von Bitcoin Core die richtige Prune-Höhe, signrawtransactionwithkey gibt einen Fehler aus, wenn ein redeemScript oder witnessScript fehlt. In der GUI ist ein Mac-Bug beim Öffnen der Konfigurationsdatei behoben.
Wer als Miner getblocktemplate ohne die SegWit-Regel aufruft, bekommt in Bitcoin Core 0.18.0 einen Fehler, denn das Weglassen schmälert die Einnahmen. Auch die RPC-Einrichtung wird strenger: rpcallowip lässt den Knoten nicht mehr auf allen Schnittstellen lauschen, und eine Raute in rpcpassword verhindert den Start.
Labels kehren in Bitcoin Core 0.17.1 zu listtransactions zurück: Der in 0.17.0 als veraltet markierte und in dummy umbenannte Parameter account wird zu label. Die Fixes betreffen einen Grenzfall mit Überlauf bei der Deserialisierung und einen Bug beim PSBT-Signieren.
Wallets lassen sich in Bitcoin Core 0.17.0 zur Laufzeit per RPC laden, anlegen und entladen, nicht mehr nur beim Start. Das neue Flag -avoidpartialspends gibt Coins an dieselbe Adresse gemeinsam aus, womöglich zu höheren Gebühren, und eine Label-API ersetzt die veraltete Account-API. CVE-2018-17144 betrifft diese Version nicht.