O‘zgarish master’ga birlashtirilgan, lekin operatorlar joyni tejashni olish uchun ixtiyoriy indeksni qayta qurishi va pasaytirish (downgrade)dan keyin yana bir qayta qurishni rejalashtirishi kerak.
itcoin Core o‘z ixtiyoriy tranzaksiyalar indeksini qayta loyihalashni birlashtirdi va bitta hissa qo‘shuvchining mainnet testida ma’lumotlar bazasidan taxminan 40 GBni qisqartirdi. -txindex’dan foydalanadigan operatorlar yangilanish orqali mavjud indekslarini saqlab qoladi; to‘liq tejashni olish uchun ma’lumotlar bazasini qayta yaratish kerak.
#35531 pull request Bitcoin Core’ning master branch’iga 15-avgustda birlashtirildi va muallif qayta qurgan mainnet txindex hajmini taxminan 66 GB’dan 26 GB’gacha kamaytirdi. Taxminan 61% qisqarish faqat shu ixtiyoriy indeksga tegishli. Bitcoin’ning blokcheyni va tugunning ma’lumotlar katalogining qolgan qismi o‘lchovdan tashqarida qoladi.
Kod yuqoriga (upstream) birlashtirilgan. Barqaror binarlar esa alohida chiqarish jarayonidan o‘tadi va Bitcoin Core’ning reliz indeksi o‘zgarishni o‘z ichiga olgan birinchi versiyani nomayyan (aniq ko‘rsatilmagan) qoldiradi. Operatorlar uni yuboradigan reliz uchun migratsiya eslatmalarini olishlari kerak.
Qayta dizayn yanada qisqaroq qidiruv kalitini saqlaydi: tuzlangan SipHash asosida olingan besh baytli prefiks, keyin blok ketma-ketligi va tranzaksiya ofsetini kodlovchi olti baytli qo‘shimcha (suffix). To‘liq tranzaksiya ID-si Bitcoin Core moslikni qaytarguncha hali ham tekshiriladi.
Bu tekshiruv qadami qisqaroq prefiks tufayli yuzaga keladigan to‘qnashuvlarni (collisions) himoya qiladi. Bitcoin Core prefiks bir xil bo‘lgan yozuvlarni ko‘rib chiqadi, blok indeksidan nomzod bloklarni topadi, diskdan nomzod tranzaksiyalarni o‘qiydi va ularning to‘liq ID-larini solishtiradi. Bitcoin Optech’ning texnik xulosasida to‘qnashuvlar qo‘shimcha o‘qish va tekshiruv ishini talab qilishi aytilgan; to‘liq-ID tekshiruvlari tranzaksiyalar bo‘yicha noto‘g‘ri mosliklarning oldini oladi.
Muallifning testi davomida ishlash barqaror saqlandi. Qidiruvlar taxminan 0.2 millisekundni oldi. Mainnet rekonstruksiyasi avvalgi formatdagi 1 soat 50 daqiqaga nisbatan 1 soat 19 daqiqada yakunlandi. Natijalar apparat, saqlash (storage), zanjir balandligi (chain height) va dasturiy ta’rif versiyasiga qarab o‘zgarishi mumkin.
Mavjud txindex ma’lumotlar bazalari yangilanishdan keyin ham o‘qilishi mumkin bo‘lib qoladi, darhol majburiy qayta qurilishni oldini oladi. Ularning eski yozuvlari esa katta hajmni saqlab qoladi, shuning uchun 40 GB benchmarkdagi to‘liq tejashni amalga oshirish uchun indeksni qayta yaratish kerak.
Keyingi pasaytirish qo‘shimcha ikkinchi migratsiya xarajatini keltirib chiqaradi. Bitcoin Core’ning birlashtirilgan chiqarish-eslatma fragmentida oldingi relizlar ixcham formatda yozilgan yozuvlarni o‘qiy olmasligi aytilgan. Qayta qurilgandan keyin eski relizga qaytish, eski formatda yana txindex rekonstruksiyasini ishga tushiradi.
Operator uchun to‘lov tor doirada sezilarli: ancha kichik ixtiyoriy indeks va hissa qo‘shuvchining testida tezroq qayta qurish. Buni amalga oshirish uchun rejalashtirilgan qayta yaratish (database recreation) kerak, shuningdek rollback zarur bo‘lib qolsa yana bir qayta qurish talab qilinadi.
Chiqarilishga xos eslatmalar aniq qayta yaratish va pasaytirish (downgrade) tartibini nazorat qilishi kerak, o'zgarish barqaror Bitcoin Core binari sifatida chiqquncha.
