Paslėpta Bitcoin mazgų duomenų bazė tiesiog susitraukė 40 GB, bet tik tuo atveju, jei bėgikai ją atkuria
„Bitcoin Core“ sujungė pertvarkytą pasirenkamo sandorių indekso dizainą, kuris atėmė apie 40 GB iš duomenų bazės vieno bendraautorio pagrindinio tinklo testo metu. Naudojantys operatoriai -txindex atnaujinti esamus indeksus; Norint užfiksuoti visą įrašymą, reikia iš naujo sukurti duomenų bazę.
Ištraukimo užklausa Nr. 35531, rugpjūčio 15 d. sujungta su pagrindiniu Bitcoin Core filialu, sumažino autoriaus atkurtą pagrindinio tinklo txindex nuo maždaug 66 GB iki 26 GB. Maždaug 61 % sumažinimas apsiriboja šiuo neprivalomu indeksu. Bitcoin blokų grandinė ir likusi mazgo duomenų katalogo dalis lieka už matavimo ribų.
Kodas sujungiamas prieš srovę. Stabilūs dvejetainiai failai atlieka atskirą išleidimo procesą, o Bitcoin Core išleidimo indeksas palieka pirmąją versiją su pakeitimu nenurodyta. Operatoriams reikės leidimo, kuriuo jis pristatomas, perkėlimo pastabų.
Kaip veikia mažesnis indeksas
Bitcoin Core’s -txindex parinktis palaiko duomenų bazę, skirtą operacijoms gauti pagal visą operacijos ID. Senasis formatas saugojo kiekvieną 32 baitų operacijos ID kaip duomenų bazės raktą kartu su operacijos disko padėties duomenimis.
Perprojektuojant saugomas daug trumpesnis paieškos raktas: penkių baitų priešdėlis, gautas iš sūdyto SipHash, po kurio seka šešių baitų priesaga, koduojanti blokų seką ir operacijos poslinkį. Visas operacijos ID vis tiek tikrinamas prieš „Bitcoin Core“ grąžinant atitiktį.
Šis patikrinimo veiksmas apsaugo nuo susidūrimų, kuriuos sukelia trumpesnis priešdėlis. „Bitcoin Core“ nuskaito įrašus, kuriuose naudojamas priešdėlis, per savo blokų indeksą nustato kandidatų blokus, nuskaito kandidatų operacijas iš disko ir palygina visus jų ID. „Bitcoin Optech“ techninėje santraukoje susidūrimai buvo aprašyti kaip papildomas skaitymo ir tikrinimo darbas, atliekant visą ID patikrinimą, užkertantį kelią klaidingoms sandorių atitiktims.
Spektaklis išliko stabilus autoriaus teste. Paieškos užtruko apie 0,2 milisekundės. Pagrindinio tinklo atkūrimas baigtas per 1 valandą 19 minučių, palyginti su 1 valanda 50 minučių naudojant ankstesnį formatą. Aparatinė įranga, saugykla, grandinės aukštis ir programinės įrangos versija gali pakeisti šiuos rezultatus.
Esamos „txindex“ duomenų bazės išlieka skaitomos po atnaujinimo, išvengiant tiesioginio priverstinio atkūrimo. Jų senieji įrašai taip pat išlaiko didesnį plotą, todėl norint sutaupyti visą 40 GB etalono, reikia iš naujo sukurti indeksą.
Vėlesnis versijos sumažinimas apima antrą perkėlimo mokestį. „Bitcoin Core“ sujungtas leidimo pastabos fragmentas sako, kad ankstesni leidimai negali nuskaityti įrašų, parašytų kompaktišku formatu. Grįžus į senesnį leidimą po atkūrimo suaktyvintų kitą txindex atkūrimą senuoju formatu.
Operatoriaus pelnas yra didelis, atsižvelgiant į siaurą taikymo sritį: daug mažesnis pasirenkamas indeksas ir greitesnis atkūrimas pagal bendraautorio testą. Norint jį užfiksuoti, reikia planingai atkurti duomenų bazę ir dar kartą atkurti, jei prireiktų atšaukti.
Konkrečios leidimo pastabos turėtų kontroliuoti tikslią atkūrimo ir atnaujinimo procedūrą, kai pakeitimas pasiekia stabilų „Bitcoin Core“ dvejetainį kodą.
