I dag markerer den officielle frigivelse af Bitcoin Core 0.15.0, den femtende generation af Bitcoins originale softwareklient, der blev lanceret af Satoshi Nakamoto for næsten ni år siden. Overvåget af Bitcoin Core hovedopretholder Wladimir van der Laan, blev denne seneste store frigivelse udviklet af næsten 100 bidragydere over en periode på seks måneder med store bidrag gennem Chaincode Labs, Blockstream og MIT’s Digital Currency Initiative.
Bitcoin Core 0.15.0 tilbyder betydelige forbedringer af ydeevnen og anvendeligheden i forhold til tidligere versioner af softwareimplementeringen. Det introducerer også flere nye funktioner for bedre at kunne håndtere den aktuelle status på netværket.
Dette er nogle af de mere bemærkelsesværdige ændringer.
Chainstate Database Restrukturering
En af de største ændringer i forhold til tidligere versioner af softwaren involverer, hvordan tilstanden til Bitcoins blockchain lagres. Denne “chainstate” eller “UTXO-set” gemmes i en dedikeret database, mens den tidligere var blevet kategoriseret pr. Transaktion. Hvis en transaktion sendte bitcoins til flere output (“adresser”), blev disse forskellige output gemt som en enkelt databaseindgang, der henviste til den ene transaktion.
Med Bitcoin Core 0.15.0 gemmes disse output i stedet i en enkelt databaseindgang hver. Hvis en enkelt transaktion sender bitcoins til forskellige output, gemmes hver output separat. Selv om denne metode kræver mere diskplads, kræver den mindre beregningsressourcer, hvis en af disse output bruges senere.
Den mest konkrete fordel ved denne nye datastruktur er, at den indledende synkroniseringstid for nye noder reduceres med ca. 40 procent. Det introducerer også enklere kode, reducerer hukommelsesforbrug og mere. Derudover løser det en fejl, der teoretisk kunne kollidere Bitcoin Core-noder, kontroversielt afsløret på sidste weekend’s Breaking Bitcoin-konference i Paris.
Forbedret skøn over gebyrer
Da Bitcoin-blokke er blevet fyldt op i løbet af det sidste år eller to, passer ikke alle transaktioner i den første blok, der udvindes. I stedet prioriterer minearbejdere typisk de transaktioner, der inkluderer de fleste gebyrer. Hvis en bruger ønsker at få sin transaktion bekræftet hurtigt, skal han inkludere et højt gebyr. Hvis han ikke har travlt, skal et lavere gebyr være tilstrækkeligt.
Imidlertid beskæftiger Bitcoin-netværket sig med iboende uforudsigelighed med hensyn til den hastighed, hvormed blokke findes, eller antallet af transaktioner, der til enhver tid transmitteres. Dette gør det svært at medtage det rigtige transaktionsgebyr.
Bitcoin Core 0.15.0 mindsker denne gebyrusikkerhed: Den nyeste version af softwaren inkluderer betydeligt bedre gebyrestimeringsalgoritmer. Dette skyldes for det meste, at softwaren tager flere data i betragtning, når de foretager estimaterne, såsom gebyrer inkluderet i ældre bekræftede transaktioner samt gebyrer i ubekræftede transaktioner – de gebyrer, der viste sig utilstrækkelige.
Derudover kan brugerne nyde mere fleksibilitet. For det første tillader Bitcoin Core 0.15.0 for første gang brugere at inkludere gebyrer, der kan tage deres transaktioner op til en uge at bekræfte. Og også nyligt introduceret kan brugerne vælge at acceptere mere eller mindre risiko for, at deres transaktion kan blive forsinket på grund af en pludselig tilstrømning af transaktioner.
Udskift efter gebyr i brugergrænsefladen
Selv med forbedret gebyrestimering er det muligt, at brugerne stadig bliver nødt til at vente længere, end de vil have på, at deres transaktioner skal bekræftes, måske fordi der pludselig er travlt med transaktioner på netværket, eller måske fordi en bruger ombestemte sig og foretrækker at få en transaktion til at bekræfte hurtigere end oprindeligt betalt for eller af andre grunde.
I disse tilfælde lader nogle tegnebøger brugerne tilføje et “udskiftningsgebyr” -tag til deres transaktioner. Med et sådant mærke ved noder og minearbejdere på netværket, at afsenderen måske vil erstatte den transaktion med en nyere transaktion, der inkluderer et højere gebyr. Dette giver brugerne effektivt mulighed for at bumpe transaktionen i kø for at få den bekræftet hurtigere.
Bitcoin Core-noder har understøttet udskiftningsgebyr i godt over et år nu: De erstatter allerede “udskiftningsgebyr” -mærket transaktioner, hvis den nye transaktion inkluderer flere gebyrer. Men det var aldrig let at bruge til brugerne af Bitcoin Core-tegnebog.
Indtil nu.
Bitcoin Core 0.15.0-tegnebogen introducerer en udskiftningsafgift i sin brugergrænseflade. Dette giver brugerne mulighed for at inkludere det relevante tag, så de let kan øge gebyrerne på deres transaktioner senere.
Multi-wallet support (kun klient og RPC)
Bitcoin Core 0.15.0 giver brugerne mulighed for at oprette flere tegnebøger for første gang. Disse tegnebøger har alle deres egne separate Bitcoin-adresser, private nøgler og derfor midler. Brugere kan bruge de forskellige tegnebøger til forskellige formål; for eksempel kan en tegnebog bruges til personlige daglige køb, en anden til forretningsrelaterede transaktioner og en tredje kun til handel.
Brug af flere tegnebøger kan give en række fordele. For eksempel gør det bogføring lettere og mere praktisk. Derudover kan brugere lettere drage fordel af øget privatliv, da de forskellige tegnebøger ikke kan linkes til hinanden ved blockchain-analyse. Det er også muligt at bruge forskellige tegnebøger til specifikke applikationer og mere.
For øjeblikket er understøttelse af flere tegnebøger endnu ikke tilgængelig for almindelige tegnebogbrugere; kun avancerede brugere, der opererer fra kommandolinjen eller gennem tilsluttede applikationer, kan bruge funktionen.
Andre forbedringer
Bortset fra de ovennævnte bemærkelsesværdige ændringer inkluderer Bitcoin Core 0.15.0 en række yderligere ydelsesforbedringer, som de fleste nye større Bitcoin Core-udgivelser gør. Konkret fremskynder disse ændringer, hvor hurtigt blokke downloades fra netværket, de lader noder starte hurtigere, og opdaterede noder vil være i stand til at validere nye blokke hurtigere, hvilket igen drager fordel af netværksforplantningstid.
Endelig er det værd at nævne, at Bitcoin Core 0.15.0 afbryder forbindelsen til BTC1-jævnaldrende på netværket. Dette betyder, at Bitcoin-netværket vil opleve mindre forstyrrelser, hvis SegWit2x-hårde gaffel deler netværket, da begge typer noder lettere kan finde kompatible jævnaldrende. Selvom denne ændring har fået medieopmærksomhed, bør denne ændring ikke rigtig være synlig.
Tak til Chaincode Labs-udvikler John Newbery for feedback og forslag. For flere detaljer om, hvad der er nyt i Bitcoin Core 0.15.0, se udgivelses noter, eller se Bitcoin Core-bidragyder Gregory Maxwells “dybe dyk” præsentation ved møde i San Francisco Bitcoin-udviklere.