সই করার সময় TapMiniscript-কে আর সঠিক বলে ধরে নেয় না Bitcoin Core 26.2 (#29853), অবৈধ প্যারামিটারে getnetworkhashps ত্রুটি দেখায় (#28554), আর setmocktime-এ বাধ্যতামূলক ঊর্ধ্বসীমা বসেছে (#29869)। miniupnpc 2.2.8-এর সঙ্গেও এখন বিল্ড হয়।
Bitcoin Core 0.10.1-এর আগে প্রাপ্ত বার্তা হতে পারত 32 MiB পর্যন্ত, ফলে হামলাকারী প্রতি সংযোগে ততটা RAM বরাদ্দ করিয়ে নোড ক্র্যাশ করাতে পারত। জানিয়েছিলেন Bitcointalk ব্যবহারকারী Evil-Knievel; #5843 সীমা নামায় 2 MiB-তে, পরে Segwit-এর জন্য তা বেড়ে হয় 4 MB। 2015 সালে ঘোষিত প্রকাশ পিছিয়ে যায়, বিস্তারিত সামনে আসে 2024-এ।
IPv6-এর কল্যাণে Bitcoin Core-এর সীমাহীন ব্যান তালিকা ফোলানো হয়ে উঠেছিল সস্তা, আর প্রতিটি GETADDR বার্তায় ফেরত দেওয়া প্রতিটি ঠিকানার জন্য, 2500টি পর্যন্ত, ওই তালিকা ঘাঁটতে হতো। উচ্চ মাত্রার এই সমস্যার মেমরি ক্র্যাশ ও CPU অপচয় দুটোই সারিয়েছে #19219, যা এসেছে 0.20.1 ও 0.21.0-তে।
version বার্তা সামলানোর দুটি বাগের (signed integer ওভারফ্লো ও abs64-এর যুক্তি-ত্রুটি) সুযোগে হামলাকারী লক্ষ্য নোডের অ্যাডজাস্টেড টাইম এতটাই সরিয়ে দিতে পারত যে নতুন ব্লককে সে ভবিষ্যতের তারিখের বলে ফিরিয়ে দিত। হামলাকারীকে থাকতে হতো প্রথম 200 পিয়ারের মধ্যে। মাঝারি মাত্রার ত্রুটিটি সারানো হয় Bitcoin Core 0.21.0-তে।
জাল BIP72 পেমেন্ট লিংক খুললেই Bitcoin-Qt ক্র্যাশ করতে পারত: এর r প্যারামিটার কোনো বিশাল ফাইলের দিকে দেখাতে পারত, আর অ্যাপটি তার জন্য মেমরি বরাদ্দের চেষ্টা করত, পেছনে নীরবে চলত ডাউনলোড। মাঝারি মাত্রার বাগটি বিদায় নেয় #17165 BIP70 সমর্থন তুলে দিলে, যা এসেছে 0.20.0-এ।
সাজানো অরফান লেনদেন, যা অবৈধ অথচ যাচাই করতে ব্যয়বহুল, নোডকে কয়েক ঘণ্টা অচল রাখতে পারত, কারণ প্রতিটি নতুন গৃহীত লেনদেন অরফান ক্যাশে একটি দ্বিঘাত অনুসন্ধান শুরু করত। Pieter Wuille-এর #15644 মিল পাওয়ামাত্র ওই কাজ থামিয়ে নতুন বার্তা সামলাতে যায়। উচ্চ মাত্রার এই সংশোধন ব্যবহারকারীদের কাছে পৌঁছায় Bitcoin Core 0.18.0-তে।
জেনেসিস ব্লকের ওপর সরাসরি গড়া হেডার, যার ডিফিকাল্টি লাগে মাত্র 1, Bitcoin Core 0.12.0 থেকে 0.15.0 পর্যন্ত চেকপয়েন্ট যুক্তি এড়িয়ে যেত; ফলে স্প্যামার mapBlockIndex সীমাহীনভাবে বাড়াতে পারত, এমনকি মেমরি ফুরিয়ে নোড ক্র্যাশও সম্ভব ছিল। মাঝারি মাত্রার বাগটি 2017 সালে জানান Cory Fields, বন্ধ করে #11028।
50,000 ব্লক আইটেমে ঠাসা একটি INV নোডকে দিয়ে প্রায় 1 kB করে 50,000 getheaders উত্তর সারিতে বসাতে পারত, আর পড়তে নারাজ পিয়ার সেই 50 MB সেন্ড বাফার ভরা রাখত। ব্যান্ডউইথ সাশ্রয়ের নামে আনা John Newbery-র #18962 প্রতি INV-এ একটি GETHEADERS পাঠায়; এটি এসেছে 0.20.0-তে।
GETDATA-র উত্তর আটকে রেখে, তারপর ভুয়া ঘোষণার স্প্যামে 50,000 এন্ট্রির g_already_asked_for ম্যাপ থেকে লেনদেন সরিয়ে দিয়ে হামলাকারী সেটি বারবার ঘোষণা করতে পারত; ভুক্তভোগী আর অন্য কারও কাছে লেনদেনটি চাইত না। মাঝারি মাত্রার বাগটি প্রকাশ করেন John Newbery, Bitcoin Core 0.21.0-তে সারিয়েছে Pieter Wuille-এর #19988।
miniupnpc-তে দ্বিতীয় একটি বাফার ওভারফ্লো পান Wladimir J. Van Der Laan, যা ডেটা ফাঁস করত এবং CVE-2015-6031-এর সঙ্গে জুড়ে দূর থেকে কোড চালানো যেত; Ubuntu-র miniupnpc 1.6-precise-এ তিনি তা দেখিয়েও দেন। তাঁর এক্সপ্লয়েট সরাসরি Bitcoin Core-এ খাটেনি, আর 2016 সালের ফেব্রুয়ারিতে 0.12 সংস্করণে সমাধান আসে।
Bitcoin Core 27.1 জুড়ে শুধুই বাগ সংশোধন: GUI-তে আনসাইনড লেনদেনের ফি বাম্প ঠিক হয়েছে, প্রক্সি IP ঘরে আর পোর্ট নেয় না, আর GetAddedNodeInfo() এখন addnode করা CJDNS পিয়ার শনাক্ত করে (#30085)। সই করার সময় TapMiniscript সামলানোতেও পরিবর্তন এসেছে (#29853)।
BIP324 v2 ট্রান্সপোর্ট ডিফল্টে চালু হলো Bitcoin Core 27.0-এ, আর প্রতি vB-তে 30 sat ও তার বেশি ফি-রেটে সবচেয়ে হালকা ইনপুট সেট খোঁজে নতুন CoinGrinder অ্যালগরিদম। কনসেনসাস কোড থেকে নেটওয়ার্ক-সমন্বিত সময় সরে গিয়ে এসেছে সিস্টেম টাইম, তাই অপারেটরদের জন্য ঘড়ির নির্ভুলতা এখন বেশি জরুরি। libbitcoinconsensus অপ্রচলিত ঘোষিত, v28-এ সরানোর পরিকল্পনা।
মিউটেটেড ব্লক আর প্রক্রিয়া করে না Bitcoin Core 25.2-এর নোড (#29412)। সারানো হয়েছে getrawtransaction-এর segfault (#29003), WalletBatch::EraseRecords-এর use-after-free (#29176) এবং GUI-তে “Mask values” বাছলে হওয়া ক্র্যাশও।
Bitcoin Core 26.1-এর I2P সেশনে ECIES-X25519 ও ElGamal দুই এনক্রিপশনই চলে (#29200), আর মেমপুল লোডের অগ্রগতি এখন লগে দেখা যায়। সংশোধনের তালিকায় মিউটেটেড ব্লক প্রক্রিয়া করতে অস্বীকৃতি (#29412) এবং SFFO চালু থাকলে BnB কয়েন সিলেকশন এড়িয়ে যাওয়া ওয়ালেট (#28994)।
পরীক্ষামূলকভাবে BIP324 v2 ট্রান্সপোর্ট এল Bitcoin Core 26.0-এ, ডিফল্টে বন্ধ, চালু হয় -v2transport দিয়ে। নতুন loadtxoutset RPC assumeutxo স্ন্যাপশট লোড করে; কয়েক মিনিটেই নোড ব্যবহারযোগ্য হয়ে ওঠে, আর মূল chainstate পেছনে যাচাই সারতে থাকে। submitpackage কাঁচা লেনদেন প্যাকেজ আকারে মেমপুলে পাঠায়।
পুরোনো ফি অনুমান আর দেয় না Bitcoin Core 24.2 (#27622), আর অবৈধ bech32 ঠিকানা RPC-তে সামলানো শুধরেছে (#27727)। বাকি পরিবর্তনের বেশিরভাগ বিল্ড সিস্টেম ও CI নিয়ে, যার মধ্যে Xcode 15 লিংকারে macOS Qt প্যাকেজ বিল্ডের সংশোধন (#28543)।
কমপ্যাক্ট ব্লকের সমান্তরাল ডাউনলোড এল Bitcoin Core 25.1-এ (#27626)। অন্য সংশোধনগুলো /deploymentinfo-তে REST ক্র্যাশ (#27853), রিমোট ক্লায়েন্ট সংযোগ কাটার পর সার্ভার বন্ধ হওয়া (#28551) এবং ওয়ালেট মাইগ্রেশন নিয়ে, যা এখন অবৈধ স্ক্রিপ্ট প্রত্যাখ্যান করে (#28125)।
ডেসক্রিপ্টর ওয়ালেটের রিস্ক্যান দ্রুত হলো Bitcoin Core 25.0-এ, যদি -blockfilterindex=1 দিয়ে BIP158 কমপ্যাক্ট ব্লক ফিল্টার পাওয়া যায়; ওই ফিল্টারে খোঁজার জন্য এসেছে নতুন scanblocks RPC। রিলে নীতি এখন 65 নন-উইটনেস বাইট থেকে শুরু করে লেনদেন গ্রহণ করে। -blocksonly-তে মেমপুলের সর্বোচ্চ মেমরি 300MB থেকে নেমে 5MB।
তিনটি P2P পরিবর্তনই Bitcoin Core 23.2-এর মূল কথা: peers.dat আর নষ্ট হয় না (#26909), অন্য পিয়ারের ডাউনলোড অবস্থা অসময়ে মোছে না (#27608), inv-to-send সারি চলে দ্রুত (#27610)। বাকিটা বিল্ড ও CI-র কাজ, যেমন aarch64-এ clang-16 দিয়ে bdb কম্পাইল।