top of page
  • Joacim Petersson

Den öppna källkoden

Inlägget skrivet Johanna Hultén, det första i en serie kring protokollet och hur systemet fungerar.


Bitcoin är i grunden ett protokoll, inte kod eller datorprogram. Protokollet/konceptet för Bitcoin har sedan implementerats i kod, något som är absolut nödvändigt när det rör sig om en digital valuta. Men det finns ingen enda sanning för hur implementationen måste se ut, bara alla regler i protokollet följs.


Det finns flertalet implementation av just Bitcoin protokollet, men en av dessa implementationer är speciell och är känd som ”Bitcoin Core” och finns på GitHub, den största hemsidan för öppen källkod. Vill du själv titta på Bitcoin Core hittar du den här https://github.com/bitcoin/bitcoin. Bitcoin Core ses som den officiella versionen av Bitcoin och den plats det reglerna för Bitcoin skapas. På GitHub har koden funnits sedan 30 augusti 2009. Viktigt att notera är att koden alltså inte har funnits där sedan början av Bitcoin (första blocket kom till den 3 januari 2009). Däremot vet vi att Satoshi Nakamoto gav över koden under 2010.


Många bidrar

Idag när jag skriver detta har 774 individer (egentligen konton) bidragit på något sätt till källkoden. Tre individer har bidragit betydligt med ändringar av koden än resterande konton, i genomsnitt tre gånger fler förändringar än individ nummer fyra på listan. Många av de som bidragit har gjort några enstaka förändringar i koden eller dokumentationen och inte mer.


Koden

Bitcoin Core är implementerat i programmeringsspråket C++. Men exempelvis är alla integrations- och regressionstester av koden skrivna i Python. Utöver det så finns det ett litet antal filer skrivna i andra språk, så som C och Makefile för att kunna bygga koden exempelvis. I skrivande stund (2021-01-19) finns där 471 990 rader kod för Bitcoin, uppdelat över 1824 olika filer. Utöver dessa rader kod finns det också väldigt många rader kommentarer. Se bilden nedan.


Bild över filerna och raderna kod i BitcoinCore repostiory från commit 43f3ada27 (2021-01-19).

Nästan hälften av alla raderna kod är kodat i språket Qt Linguist, som gissningsvis används för att koda ”BitcoinQT graphical user interface (GUI)”. Så alla dessa rader kod har väldigt lite med Bitcoin som sådant att göra, utan skapar ett användargränssnitt.


C++ koden med 127 298 rader är däremot det som är koden för Bitcoin, tillsammans med koden i C/C++ Header. Alltså kan vi förenklat säga att Bitcoin idag är ganska precis 166 000 rader kod. Men för att denna koden ska vara tillförlitlig, Bitcoin gå att använda på ett bra sätt, och koden exempelvis ska gå att bygga krävs all denna kod utöver själva kärnan.


Många har sin egen version på Github

På GitHub kan man göra en så kallad ”fork” av ett repository. Det är att skapa en egen kopia av koden som man sedan själv kan ändra på och spara utan att det stör andra. 27 000 användare på GitHub har gjort en gen fork av Bitcoin Core.


Att bidra till Bitcoin Core

Det står alla som vill fritt att använda och bidra till Bitcoin Core. I deras repository finns det dokumenterat hur man kan använda koden (bygga och testa). Exempel på hur man som individ kan bidra är så klart att vidareutveckla själva koden, på GitHub finns där ärenden (issues) märkta med en etikett ”good first issue” för att hjälpa till. De säger själva att de behöver mer hjälp med testning och många av dessa ”good first issues” är just relaterat till testning. Även dokumentation och översättning brukar generellt vara saker som det behövs hjälp med, som få faktiskt hjälper till med, och kanske inte kräver lika djupa kunskaper om programmering med god förståelse om själva koden och hur det fungerar.


Exempel på andra versioner av Bitcoin kod

Vill man se andra exempel på både implementeringar av Bitcoin och användning av Bitcoin och dess teknologi kan man gå in på GitHub och helt enkelt söka på ”Bitcoin” eller följa länken https://github.com/search?q=bitcoin&type=Repositories

2 kommentarer

Senaste inlägg

Visa alla
Post: Blog2_Post
bottom of page