I dag markerer den offisielle utgivelsen av Bitcoin Core 0.14.0, den fjortende generasjonen av Bitcoins opprinnelige programvareklient som ble lansert av Satoshi Nakamoto for åtte å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..

Bitcoin Core 0.14.0 har en betydelig liste over forbedringer. Sammenlignet med noen tidligere utgivelser gjelder imidlertid de fleste av disse “internt” programvare: ytelsesforbedringer som finner sted under panseret, men kanskje ikke særlig merkbare for hverdagsbrukere..

Når det er sagt, her er noen av de mer bemerkelsesverdige endringene.

“Assumevalid” -blokker

Hver gang en ny node starter på nettverket, synkroniserer den hele blockchain. Den laster ned og verifiserer alle blokker som noen gang ble utvunnet, og verifiserer alle transaksjoner i alle disse blokkene. Dessverre kan dette ta ganske lang tid. Selv nye, avanserte bærbare datamaskiner krever ofte mer enn en hel dag for å ta igjen. For eldre eller lavere maskiner tar det enda lenger tid.

“Assumevalid” fremskynder denne prosessen betydelig. I hovedsak antar Bitcoin Core 0.14.0-noder at alle transaksjoner opp til en viss blokk er gyldige. Mens en synkroniseringsnode fremdeles verifiserer beviset på arbeidet for alle blokker, og registrerer hele transaksjonshistorikken, sjekker den ikke lenger signaturer og lignende data for hver enkelt transaksjon.

Antagelsen om hvilken blokk som er gyldig er konfigurerbar. Som standard er det blokk 453354 for Bitcoin Core 0.14.0. Men brukere som ønsker å bekrefte hver eneste transaksjon, selv de som dateres for mange år tilbake, kan fortsatt.

Det er også verdt å merke seg at, i motsetning til et kontrollpunktsystem som fastslår at en spesifikk blokk må være en del av blockchain, er den antatte gyldige blokken ikke nødvendigvis bindende. En Bitcoin Core 0.14.0-node vil lett bytte til en alternativ blockchain uten antatt gyldig blokk, hvis den alternative blockchain er lenger.

Forbedret estimering av gebyr

Ettersom Bitcoin-blokker har blitt fylt opp, spesielt det siste året, passer ikke alle transaksjoner sendt over nettverket inn i den neste blokken. Som et resultat prioriterer gruvearbeidere vanligvis transaksjoner som inkluderer de fleste gebyrene. Transaksjoner som inkluderer flere avgifter har større sjanse for å bli inkludert i den neste blokken eller kort tid etter. Transaksjoner som inkluderer lavere avgifter blir overbudt og det tar lengre tid å bekrefte.

Selvfølgelig trenger ikke alle sine transaksjoner for å bekrefte så raskt. Brukere som sender bitcoins til en børs på grunn av raske prisbevegelser, kan ha det travelt med å få sine transaksjoner bekreftet. I mellomtiden kan brukere som flytter bitcoins mellom sine egne lommebøker være mer tålmodige.

Siden Bitcoin Core 0.10.0 har brukere vært i stand til å justere avgiftene tilsvarende. De kan manuelt inkludere høyere avgifter hvis de har mer rush, og lavere avgifter hvis de ikke er det. Bitcoin Core 0.11.0 og 0.12.0 forbedret begge programvaren for avgiftsestimering, og Bitcoin 0.14.0 inkluderer nå et nytt sett med forbedringer, noe som spesielt gjør algoritmen mer robust i edge case-situasjoner.

I tillegg ble standard bekreftelsesmål redusert fra 25 blokker til 6 blokker; de fleste transaksjoner fra Bitcoin Core bør bekreftes innen en time, selv om brukeren ikke berører gebyrinnstillingene.

Meld deg på Erstatt avgift for sending

I tillegg til den forbedrede estimeringen av gebyrene, har brukere av Bitcoin Core 0.14.0 et annet alternativ for å øke hastigheten på transaksjonene.

Først introdusert for et år siden med utgivelsen av Bitcoin Core 0.12.0, kan Bitcoin-transaksjoner merkes med et “erstatt-av-gebyr” -flagg. Avsendere av en transaksjon kan erstatte den første transaksjonen med en nyere transaksjon som inkluderer et høyere gebyr. Dette lar dem “hoppe over linjen” og få transaksjonen bekreftet raskere.

Frem til dette punktet inkluderte Bitcoin Core bare opt-in erstatt-av-avgift i nodenes oppførsel: den aksepterte og videresendte transaksjoner med utskiftningsflagg (i stedet for å avvise dem som dobbeltbruk). Men Bitcoin Core-brukere kunne ikke bruke opt-in erstattet av avgift for å støte på sine egne avgifter; så langt er det bare brukere av lommebøker som Electrum eller GreenAddress kunne.

Nå har opt-in erstattet avgift blitt lagt til som en alternativ prosedyre samtale (RPC) alternativ i Bitcoin Core 0.14.0. Dette betyr at brukere som arbeider fra kommandolinjen, eller på applikasjoner bygget på Bitcoin Core, også kan benytte erstatningsavgift.

Manuell beskjæring

Bitcoins blockchain er over 100 gigabyte i størrelse og med sin nåværende hastighet vokser det rundt 50 gigabyte hvert år. All den dataen må lagres, noe som kan utgjøre en betydelig belastning for brukere som kjører en full node.

Derfor introduserte Bitcoin Core 0.11.0 blockchain beskjæring. Brukere kan kvitte seg med eldre blokker når de er bekreftet, så å kjøre en full node krever ikke så mye diskplass.

Men inntil nå kunne brukere bare beskjære fra et fast antall blokker. Med beskjæring satt til 1000 blokker, for eksempel, holdt Bitcoin Core nøyaktig de siste 1000 blokker. Hver gang en ny blokk ble lagt til, ble den eldste blokken kastet, for å holde summen på 1000.

Dessverre betydde dette at visse applikasjoner som stole på Bitcoin Core, ikke virkelig kunne bruke beskjæring. For eksempel kan en betalingsbehandlingsapplikasjon – for selgere som vil akseptere bitcoin, men foretrekker å ikke stole på eksterne tjenester som BitPay eller Coinbase – i noen tilfeller trenge å finne ut om en gyldig betaling ble utført i en eldre blokk. Hvis den blokken allerede er beskåret, kan ikke applikasjonen gjøre jobben sin.

Bitcoin Core 0.14.0 muliggjør derfor mer spesifikk beskjæring. I stedet for å beholde et bestemt antall blokker, kan brukere beskjære blockchain fra et bestemt tidspunkt, en bestemt blokkhøyde, og beholde alle blokker som ble opprettet siden.

Kombinert med en annen ny funksjon kalt “importmulti”, kan Bitcoin Core 0.14.0 importere og tidsstemple adresser, for eksempel fra den nevnte betalingsbehandlingsapplikasjonen. Ved å bruke tidsstempel for å fastslå når en spesifikk adresse ble opprettet, vet Bitcoin Core fra hvilket tidspunkt blokker er relevante for applikasjonen, og vil ikke beskjære disse blokkene.

Blokker reléforbedringer

Hver gang en ny blokk utvinnes, overføres den over Bitcoins peer-to-peer-nettverk, til hver node mottok den. Dessverre kan ventetid på dette nettverket være til fordel for samlet gruvedrift så vel som geografiske klynger av gruvearbeidere, noe som stimulerer en mer sentralisert gruvedrift.

Økende spredningshastighet for blokkering har derfor vært et sentralt fokuspunkt for Bitcoin Core-utviklingsteamet i noen år nå, og Bitcoin Core 0.14.0 inkluderer en ny mengde forbedringer.

Kanskje det viktigste, Bitcoin Core 0.14.0 noder fremover blokker til sine jevnaldrende tidligere. Hvor noder tidligere ville verifisere en blokk i sin helhet før de sendes til tilkoblede noder, starter Bitcoin Core 0.14.0 videresendingsprosessen så snart beviset på arbeidet sjekker ut.

Mens mange gruvearbeidere i dag bruker alternative stafettnettverk også, øker hastigheten på Bitcoins peer-to-peer-nettverk avhengigheten av disse nettverkene og fordeler til og med disse relénettverkene der de kobler til peer-to-peer-nettverket.

Og …

Som nevnt er forbedringene nevnt ovenfor egentlig bare toppen av isfjellet. Bitcoin Core 0.14.0 inneholder en liste over ytterligere ytelsesforbedringer, som varierer fra RPC-endringer på lavt nivå, til endringer i det grafiske brukergrensesnittet (GUI) og alt i mellom. For en full oversikt over alle forbedringer, se Utgivelsesmerknader for Bitcoin Core 0.14.0.

Du kan laste ned Bitcoin Core 0.14.0 fra bitcoincore.org eller bitcoin.org.