I dag markeres den offisielle utgivelsen av Bitcoin Core 0.15.0, den femtende generasjonen av Bitcoins opprinnelige programvareklient lansert av Satoshi Nakamoto for nesten ni år siden. Overvåket av Bitcoin Core hovedansvarlig Wladimir van der Laan, ble denne siste store utgivelsen utviklet av nesten 100 bidragsytere over en periode på seks måneder, med store bidrag gjennom Chaincode Labs, Blockstream og MIT’s Digital Currency Initiative.
Bitcoin Core 0.15.0 tilbyr betydelige ytelses- og brukervennlighetsforbedringer i forhold til tidligere versjoner av programvareimplementeringen. Den introduserer også flere nye funksjoner for bedre å håndtere den nåværende statusen til nettverket.
Dette er noen av de mer bemerkelsesverdige endringene.
Chainstate Database Restrukturure
En av de største endringene sammenlignet med tidligere versjoner av programvaren innebærer hvordan tilstanden til Bitcoins blockchain lagres. Denne “chainstate” eller “UTXO-set” er lagret i en dedikert database, mens den tidligere var kategorisert per transaksjon. Hvis en transaksjon sendte bitcoins til flere utganger (“adresser”), ble disse forskjellige utgangene lagret som en enkelt databaseoppføring, med henvisning til den ene transaksjonen.
Med Bitcoin Core 0.15.0 lagres disse utgangene i stedet i en enkelt databaseoppføring hver. Hvis en enkelt transaksjon sender bitcoins til forskjellige utganger, lagres hver utgang separat. Selv om denne metoden krever mer plass på platen, krever den mindre beregningsressurser hvis en av disse utgangene blir brukt senere.
Den mest konkrete fordelen med denne nye datastrukturen er at den første synkroniseringstiden for nye noder reduseres med omtrent 40 prosent. Den introduserer også enklere kode, reduserer minnebruk og mer. I tillegg løser det en feil som teoretisk kan krasje Bitcoin Core-noder, kontroversielt avslørt på forrige helgs Breaking Bitcoin-konferanse i Paris.
Forbedret estimering av gebyr
Ettersom Bitcoin-blokker har blitt fylt opp det siste året eller to, passer ikke alle transaksjoner i den første blokken som blir utvunnet. I stedet prioriterer gruvearbeidere vanligvis transaksjonene som inkluderer de fleste gebyrene. Hvis en bruker ønsker å få bekreftet transaksjonen raskt, bør han inkludere et høyt nok gebyr. Hvis han ikke har det travelt, bør en lavere avgift være tilstrekkelig.
Imidlertid håndterer Bitcoin-nettverket iboende uforutsigbarhet når det gjelder hastigheten som blokker blir funnet eller antall transaksjoner som overføres når som helst. Dette gjør det vanskelig å inkludere riktig transaksjonsgebyr.
Bitcoin Core 0.15.0 senker denne gebyrusikkerheten: Den nyeste versjonen av programvaren inkluderer betydelig bedre avgiftsestimeringsalgoritmer. Dette skyldes for det meste at programvaren tar hensyn til mer data når estimatene foretas, for eksempel avgiftene som er inkludert i eldre bekreftede transaksjoner, samt avgifter i ubekreftede transaksjoner – gebyrene som viste seg å være utilstrekkelige.
I tillegg kan brukerne nyte mer fleksibilitet. For det første tillater Bitcoin Core 0.15.0 brukere for første gang å ta med gebyrer som kan ta transaksjonene opptil en uke å bekrefte. Og også nylig introdusert kan brukere velge å akseptere mer eller mindre risiko for at transaksjonen deres kan bli forsinket på grunn av en plutselig tilstrømning av transaksjoner.
Bytt ut etter avgift i brukergrensesnittet
Selv med forbedret estimering av gebyr, er det mulig at brukerne fortsatt vil trenge å vente lenger enn de vil for at transaksjonene skal bekreftes, kanskje fordi det er et plutselig rush av transaksjoner i nettverket, eller kanskje fordi en bruker ombestemmer seg og foretrekker å få en transaksjon bekrefte raskere enn opprinnelig betalt for, eller av andre grunner.
I disse tilfellene lar noen lommebøker brukere legge til en “bytt ut avgift” -kode i transaksjonene sine. Med en slik tag vet noder og gruvearbeidere på nettverket at avsenderen kanskje vil erstatte den transaksjonen med en nyere transaksjon som inkluderer et høyere gebyr. Dette gjør at brukere effektivt kan støte på transaksjonen i kø for å få den bekreftet raskere.
Bitcoin Core-noder har støttet erstatningsavgift i godt over et år nå: De erstatter allerede “erstatningsavgifts” -merket transaksjoner hvis den nye transaksjonen inkluderer flere avgifter. Men det var aldri lett å bruke for Bitcoin Core-lommebokbrukere selv.
Inntil nå.
Bitcoin Core 0.15.0 lommebok introduserer en bytte for avgift i brukergrensesnittet. Dette lar brukerne inkludere riktig tag, slik at de enkelt kan øke avgiftene på transaksjonene senere.
Støtte for flere lommebøker (kun klient og RPC)
Bitcoin Core 0.15.0 lar brukerne lage flere lommebøker for første gang. Disse lommebøkene har alle sine egne Bitcoin-adresser, private nøkler og derfor midler. Brukere kan bruke de forskjellige lommebøkene til forskjellige formål; for eksempel kan en lommebok brukes til personlige daglige kjøp, en annen til forretningsrelaterte transaksjoner, og en tredje bare for handel.
Å bruke flere lommebøker kan gi en rekke fordeler. For eksempel gjør det regnskap enklere og mer praktisk. I tillegg kan brukere lettere dra nytte av økt personvern, da de forskjellige lommebøkene ikke kan knyttes til hverandre ved blockchain-analyse. Det er også mulig å bruke forskjellige lommebøker til spesifikke applikasjoner og mer.
Foreløpig er støtte for flere lommebøker ennå ikke tilgjengelig for vanlige lommebokbrukere. bare avanserte brukere som opererer fra kommandolinjen eller gjennom tilkoblede applikasjoner kan bruke funksjonen.
Andre forbedringer
Bortsett fra de nevnte bemerkelsesverdige endringene, inkluderer Bitcoin Core 0.15.0 en rekke ytterligere ytelsesforbedringer, slik de fleste nye store Bitcoin Core-utgivelsene gjør. Konkret, disse endringene fremskynder hvor raskt blokker blir lastet ned fra nettverket, de lar noder starte raskere, og oppdaterte noder vil kunne validere nye blokker raskere, i sin tur til fordel for nettverksforplantningstid.
Til slutt er det verdt å nevne at Bitcoin Core 0.15.0 vil koble fra BTC1-jevnaldrende på nettverket. Dette betyr at Bitcoin-nettverket vil oppleve mindre forstyrrelser hvis SegWit2x hard gaffel deler nettverket, da begge typer noder lettere vil finne kompatible jevnaldrende. Selv om denne endringen har fått oppmerksomhet i media, bør denne endringen ikke merkes.
Takk til Chaincode Labs-utvikler John Newbery for tilbakemelding og forslag. For mer informasjon om hva som er nytt i Bitcoin Core 0.15.0, se utgivelsesmerknader, eller se Bitcoin Core-bidragsyter Gregory Maxwells “deep dive” presentasjon på møte i San Francisco Bitcoin-utviklere.