Bitcoin Core 27.0
Bitcoin Core 27.0, vydaný v dubnu 2024, přinesl řadu důležitých změn zaměřených na bezpečnost, síťovou komunikaci, správu transakcí a vývojářské nástroje. Zde je přehled klíčových novinek:
🔐 Bezpečnost a správa mempoolu
- Nový formát souboru
mempool.dat
: Data o nepotvrzených transakcích jsou nyní ukládána ve formátu, který využívá XOR operace k ochraně před nechtěnými úpravami externím softwarem, jako jsou antiviry. Pro potřeby zpětné kompatibility je k dispozici možnost návratu k původnímu formátu. (Bitcoinist.com)
🌐 Síťová komunikace a P2P protokol
- Implementace BIP324 v2: Nová verze transportního protokolu přináší šifrování spojení mezi uzly, čímž zvyšuje soukromí a bezpečnost komunikace. Tato změna zároveň vyžaduje přesné nastavení systémového času na uzlech, protože síťově upravený čas byl odstraněn z konsenzuálního kódu. (Bitcoinist.com)
🧠 Politika mempoolu a transakční logika
- Zavedení TRUC transakcí: Nová politika „Topologically Restricted Until Confirmation“ omezuje utrácení nepotvrzených výstupů, což zlepšuje spolehlivost nahrazování transakcí s vyššími poplatky (fee bumping). Tato funkce je zatím aktivní pouze v testovacích sítích. (Bitcoinist.com)
⚙️ Vývojářské nástroje a knihovny
- Deprekace
libbitcoinconsensus
: Tato knihovna, používaná téměř deset let, je označena jako zastaralá a bude odstraněna ve verzi 28.0. Její funkce nahradí nová knihovnalibbitcoinkernel
, která nabízí robustnější API pro interakci s UTXO sadou při validaci transakcí a bloků. (Bitcoinist.com) - Požadavek na C++20: Pro sestavení Bitcoin Core je nyní vyžadován překladač podporující standard C++20, což umožňuje využití moderních jazykových funkcí a zlepšuje kvalitu kódu. (Bitcoinist.com)
💼 Vylepšení peněženky
- Optimalizace výběru mincí: Implementace algoritmu CoinGrinder zvyšuje efektivitu výběru mincí při vysokých poplatcích, což vede k úsporám nákladů na transakce. Dále byly upraveny parametry algoritmu Branch and Bound pro lepší přizpůsobení různým strategiím poplatků. (Bitcoinist.com)
Přehled: bitcoin_core

Ve verzi Bitcoin Core 27.0, vydané v dubnu 2024, byl pro sestavení softwaru zaveden požadavek na překladač podporující standard C++20. Tento krok umožnil využití moderních funkcí jazyka C++ ke zlepšení kvality kódu, bezpečnosti a výkonu.
🧩 Využité funkce C++20
Přechod na C++20 umožnil vývojářům Bitcoin Core využít následující nové jazykové prvky:
std::span
: Tato šablona poskytuje bezpečný a efektivní způsob přístupu k sekvencím dat bez nutnosti kopírování. V Bitcoin Core sestd::span
používá například pro bezpečnější manipulaci s kryptografickými klíči, kde je důležité zajistit správnou délku dat.constinit
aconstexpr
: Tyto klíčová slova umožňují inicializaci proměnných při kompilaci, což zvyšuje bezpečnost a výkon kódu tím, že odhalí chyby již během překladu.starts_with
: Nová metoda pro řetězce, která zjednodušuje kontrolu, zda řetězec začíná určitým podřetězcem, což zvyšuje čitelnost a snižuje potřebu psaní vlastních funkcí pro tento účel.- Defaultní inicializace členů bitových polí: C++20 umožňuje přímo inicializovat členy bitových polí při jejich deklaraci, což zjednodušuje kód a snižuje riziko nechtěného neinitializovaného chování.
Tyto změny přispěly k modernizaci kódu Bitcoin Core, zlepšení jeho čitelnosti a údržby, a zároveň umožnily efektivnější využití moderních překladačů.
🔧 Důsledky pro vývojáře
S přechodem na C++20 je nyní pro sestavení Bitcoin Core vyžadován překladač podporující tento standard. Konkrétně:
- GCC: Verze 10 nebo novější
- Clang: Verze 13 nebo novější
Tato změna umožňuje vývojářům využívat moderní funkce jazyka C++ a přispívá k lepší kvalitě a bezpečnosti kódu.
Další informace o požadavcích na překladače a využití C++20 v Bitcoin Core naleznete v diskusi na GitHubu.(GitHub)