Kusaini katika Bitcoin Core 26.2 hakuchukulii tena kuwa TapMiniscript ni sane (#29853), getnetworkhashps inatoa kosa kwa vigezo batili (#28554), na setmocktime imewekewa kiwango cha juu kinachotekelezwa (#29869). Build pia zinafanya kazi na miniupnpc 2.2.8.
Ujumbe unaopokelewa ungeweza kufikia 32 MiB kabla ya Bitcoin Core 0.10.1, hivyo mshambuliaji angeweza kulazimisha kutengwa kwa RAM kiasi hicho kwa kila muunganisho na pengine kuiangusha nodi. Mtumiaji wa Bitcointalk Evil-Knievel aliiripoti; #5843 ilishusha kikomo hadi 2 MiB, kilichopandishwa baadaye hadi 4 MB kwa ajili ya Segwit. Ufichuzi uliotangazwa kwa 2015 uliahirishwa, na maelezo yakatoka mwaka 2024.
IPv6 ilifanya iwe rahisi kuvimbisha orodha ya marufuku ya Bitcoin Core isiyo na kikomo, na kila ujumbe wa GETADDR kisha ulilazimisha kuipitia orodha hiyo kwa kila anwani inayorudishwa, hadi anwani 2500. Dosari hii ya ukali wa juu, yaani kuanguka kwa kumbukumbu na kumalizwa kwa CPU, ilirekebishwa na #19219, iliyotoka katika 0.20.1 na 0.21.0.
Hitilafu mbili katika ushughulikiaji wa ujumbe wa version, signed-integer overflow na kosa la mantiki la abs64, zilimruhusu mshambuliaji kupotosha adjusted time ya mwathirika hadi akakataa bloku mpya kwa madai kuwa ziko mbali mno mbele kwa wakati. Mshambuliaji alilazimika kuwa miongoni mwa peer 200 za kwanza kuunganishwa. Dosari hii ya ukali wa kati ilirekebishwa katika Bitcoin Core 0.21.0.
Kufungua kiungo hasidi cha malipo cha BIP72 kungeweza kuiangusha Bitcoin-Qt: kigezo chake cha r kingeweza kuelekeza kwenye faili kubwa mno, na programu ingejaribu kutenga kumbukumbu kwa ajili yake huku upakuaji ukiendelea kimyakimya nyuma. Hitilafu hii ya ukali wa kati ilitoweka pale #17165 ilipoondoa usaidizi wa BIP70, mabadiliko yaliyotoka katika 0.20.0.
Miamala ya orphan iliyotengenezwa kwa hila, batili lakini ghali kuthibitisha, ingeweza kusimamisha nodi kwa saa kadhaa, kwa sababu kila muamala mpya uliokubaliwa ulianzisha utafutaji wa quadratic katika cache ya orphan. #15644 ya Pieter Wuille inakatisha kazi hiyo ili kushughulikia ujumbe mpya mara tu unapopatikana unaolingana. Marekebisho haya ya ukali wa juu yaliwafikia watumiaji katika Bitcoin Core 0.18.0.
Ujumbe mbovu wa GETDATA ungeweza kuiacha thread ya net_processing ikizunguka kwa 100% ya CPU katika matoleo ya Bitcoin Core kabla ya 0.20.0, na kuongeza 1.5 MB ya kumbukumbu kwa kila peer inayoshambulia. Peer nyingine ziliendelea kuhudumiwa, ndiyo sababu ya ukali wa chini. John Newbery aligundua hitilafu hiyo na kuirekebisha katika #18808.
Headers zilizojengwa moja kwa moja juu ya genesis block, zikihitaji ugumu 1 tu, zilipenya mantiki ya checkpoints tangu Bitcoin Core 0.12.0 hadi 0.15.0, hivyo mtumaji spam angeweza kukuza mapBlockIndex bila kikomo na pengine kuiangusha nodi kwa kuishiwa kumbukumbu. Cory Fields aliripoti hitilafu hii ya ukali wa kati mwaka 2017, na #11028 iliifunga.
INV moja iliyosheheni vipengee 50,000 vya bloku ingeweza kuifanya nodi ipange foleni ya majibu 50,000 ya getheaders yenye takriban 1 kB kila moja, na peer inayokataa kuyasoma iliiweka buffer hiyo ya utumaji ya 50 MB ikiwa imejaa. #18962 ya John Newbery, iliyopendekezwa kama njia ya kuokoa bandwidth, ilituma GETHEADERS moja kwa kila INV na kutoka katika 0.20.0.
Kwa kuzuia majibu ya GETDATA, kisha kutuma spam ya matangazo bandia ili kuutoa muamala kwenye ramani ya g_already_asked_for yenye nafasi 50,000, mshambuliaji angeweza kuutangaza tena na tena na kumzuia mwathirika asiuombe kwa mtu mwingine yeyote. John Newbery alifichua hitilafu hii ya ukali wa kati; #19988 ya Pieter Wuille iliirekebisha katika Bitcoin Core 0.21.0.
Buffer overflow ya pili katika miniupnpc, iliyogunduliwa na Wladimir J. Van Der Laan, ilivujisha data na ingeweza kuunganishwa na CVE-2015-6031 kufikia utekelezaji wa msimbo kwa mbali, jambo alilolionyesha kwenye miniupnpc 1.6-precise ya Ubuntu. Exploit yake haikuhamia moja kwa moja kwenye Bitcoin Core, na toleo la 0.12 lilikuja na marekebisho mnamo Februari 2016.
Marekebisho ya hitilafu ndiyo yanayojaza Bitcoin Core 27.1: kuongeza ada kwa miamala isiyosainiwa kwenye GUI kumerekebishwa, sehemu ya IP ya proxy haikubali tena port, na GetAddedNodeInfo() sasa inatambua peer za CJDNS za addnode (#30085). Ushughulikiaji wa TapMiniscript wakati wa kusaini pia unabadilika (#29853).
Transport ya BIP324 v2 inawashwa kwa chaguomsingi katika Bitcoin Core 27.0, na algoriti mpya ya CoinGrinder inatafuta seti nyepesi zaidi ya inputs kwa viwango vya ada vya 30 sat/vB na zaidi. Network-adjusted time inaondoka kwenye msimbo wa consensus na muda wa mfumo unachukua nafasi yake, hivyo saa sahihi zinakuwa muhimu zaidi kwa waendeshaji. libbitcoinconsensus imetangazwa deprecated na imepangwa kuondolewa katika v28.
Nodi za Bitcoin Core 25.2 zinaacha kuchakata mutated blocks (#29412). Sasisho hilo pia linarekebisha segfault ya getrawtransaction (#29003), use-after-free katika WalletBatch::EraseRecords (#29176) na kuanguka kwa GUI wakati wa kuchagua “Mask values”.
Vikao vya I2P katika Bitcoin Core 26.1 vinatumia usimbaji fiche wa ECIES-X25519 na ElGamal pamoja (#29200), na nodi sasa huandika logi ya maendeleo wakati wa kupakia mempool. Miongoni mwa marekebisho ni kukataa kuchakata mutated blocks (#29412) na pochi inayoruka coin selection ya BnB wakati SFFO imewashwa (#28994).
Transport ya majaribio ya BIP324 v2 inaanza katika Bitcoin Core 26.0, ikiwa imezimwa kwa chaguomsingi na kuwashwa kwa -v2transport. RPC mpya ya loadtxoutset inapakia snapshots za assumeutxo, na kutoa nodi inayotumika ndani ya dakika chache huku chainstate ya asili ikimaliza uthibitishaji chinichini, nayo submitpackage inapeleka miamala ghafi kwenye mempool kama kifurushi.
Makadirio ya ada yaliyopitwa na wakati hayatolewi tena na Bitcoin Core 24.2 (#27622), na RPC sasa inashughulikia kwa usahihi anwani batili za bech32 (#27727). Mabadiliko mengine mengi yanagusa mfumo wa build na CI, ikiwemo marekebisho ya kujenga kifurushi cha Qt cha macOS kwa linker ya Xcode 15 (#28543).
Upakuaji sambamba wa compact blocks unawasili katika Bitcoin Core 25.1 (#27626). Marekebisho mengine yanahusu kuanguka kwa REST kwenye /deploymentinfo (#27853), kuzimwa kwa server baada ya mteja wa mbali kukatika (#28551) na uhamishaji wa pochi, ambao sasa unakataa script batili (#28125).
Rescan za descriptor wallets zinakuwa za kasi zaidi katika Bitcoin Core 25.0 pale vichujio vya compact block vya BIP158 vinapopatikana kupitia -blockfilterindex=1, na RPC mpya ya scanblocks inatafuta katika vichujio hivyo. Sera ya relay sasa inakubali miamala kuanzia baiti 65 zisizo za witness. Chini ya -blocksonly, kumbukumbu ya juu ya mempool inashuka kutoka 300MB hadi 5MB.
Mabadiliko matatu ya P2P ndiyo kiini cha Bitcoin Core 23.2: uharibifu wa peers.dat umekoma (#26909), hali ya upakuaji ya peer nyingine haifutwi mapema (#27608) na foleni za inv-to-send zinakwenda kasi zaidi (#27610). Yaliyobaki ni kazi ya build na CI, kama kukusanya bdb kwa clang-16 kwenye aarch64.