Fortsätter serien om de olika sätten man kan lära sig om de tekniska aspekterna av Bitcoin, i den här artikeln kommer vi att fokusera på bra första frågor i Bitcoin Core GitHub-förvaret.
Bitcoin Core är allmänt erkänt som referensimplementering för Bitcoin. Även om namnet “Bitcoin Core” inte användes förrän 2013, klienten själv kan spåra sina rötter ända tillbaka till Satoshi Nakomotos allra första release 2009. Andra Bitcoin-implementeringar som libbitcoin (C ++), bcoin (Javascript) och btcd (Go) skapades senare.
Lär känna GitHub
Bitcoin Core är ett open source-projekt. Koden och dokumentationen kan visas och laddas ner av alla som har en internetanslutning. Bitcoin Core (och många andra mjukvaruprojekt) använder öppen källkod och icke-passande Git-versionskontrollsystem för att spåra ändringar i kodbasen över distribuerade bidragsgivare.
Git utvecklades av skaparen av Linux-kärnan, Linus Torvalds. Däremot tillhandahåller GitHub (nyligen förvärvat av Microsoft) egen programvara som erbjuder praktiska verktyg och sociala funktioner runt Git-protokollet. Bitcoin Core är inte beroende av GitHub för sin pågående överlevnad, men det skulle vara obekvämt och störande om projektet plötsligt flyttades eller hindrades från att använda GitHub-programvara i framtiden.
Under Microsofts förvärv av GitHub fanns det diskussion i Bitcoin-communityn och på andra open source-projekt om de ska övergå från framtida beroende av GitHub. Denna uppfattning blir mer populär när allt fler bidragsgivare och potentiella bidragsgivare blir förbjudna från att använda GitHub-programvaran. Det finns också en möjlighet att Microsoft kan göra det första steget och förbjuda hela projekt om de uppfattas som politiskt kontroversiella. Tiden kommer att visa om Bitcoin Core och andra Bitcoin-implementeringar fortsätter att utnyttja GitHubs riktigt väl utformade, användarvänliga funktioner under de kommande åren.
Hitta ett “Bra första nummer”
En av dessa funktioner är GitHub-problem som används för att meddela och spåra buggar, förbättringar och förfrågningar. Alla GitHub-användare kan skapa ett problem, men det rekommenderas att de först öppnar ett problem efter att ha undersökt det och diskuterat det med befintliga bidragsgivare på IRC. Du behöver inte begära tillstånd för att börja arbeta med ett problem. Men om du gör det uppmuntras du att kommentera frågan för att uppmuntra till samarbete med andra bidragsgivare. Det är också ett bra sätt att begära hjälp om och när du behöver det.
Syftet med “Bra första utgåva” etikett är att markera vilka frågor som är lämpliga för en ny bidragsgivare som kanske inte har en djup förståelse för kodbasen. En bra första utgåva riktar sig inte till nybörjare av programvaruutveckling. Åtminstone behöver du grundläggande Git-färdighet och helst C ++ och / eller Python-färdighet, med tanke på att Bitcoin Core-kodbasen är skriven på dessa språk.
Bra första utgåvor för Bitcoin Core belyser de “användbara färdigheterna” för att ta itu med problemet. Det är en bra idé att lära sig C ++ och / eller Python för att göra kodrelaterade bidrag, men om du inte är skicklig på dessa språk kan du välja att komma igång genom att göra en väsentlig förbättring av dokumentationen eller hitta en bra första utgåva som kräver skalskript, Automake eller CMake erfarenhet.
‘Skrivfel’ kontra ‘riktiga’ frågor
Vissa människor kommer igång med att korrigera grundfel i variabelnamn, kommentarer eller dokumentation. Jeremy Rubin har skämtade att han medvetet lämnar stavfel i sina bidrag så att nya bidragsgivare kan hitta dem och korrigera dem. Även om detta är ett sätt att komma igång som en ny bidragsgivare, är det bättre att fokusera på bra första frågor snarare än att skicka pull-begäranden (PR) för skrivfel.
Bra första utgåvor har markerats som något som saknas och av betydande värde för projektet av befintliga bidragsgivare. De kommer inte att ställas in för att identifiera stavfel, och befintliga bidragsgivare och underhållare föredrar att fokusera sin tid på att granska och slå samman högprioritet för granskning dra förfrågningar. (Pull-begäran är föreslagna ändringar av bidragsgivare som bara slås samman av underhållare efter granskning och när det finns tillräckligt med konsensus för att göra det.)
Det skulle därför vara bättre att korrigera skrivfel som en del av en mer innehållsrik begäran om dragning. Som diskuterats tidigare är det värt att komma ihåg att granska befintliga PR i allmänhet är mer värdefullt än att skicka in nya. John Newbery rekommenderar att en bra tumregel är att granska 5–15 PR för varje PR som du skickar in personligen. I skrivande stund finns det cirka 300 öppna förfrågningar och 700 öppna frågor som kräver testning och granskning.
Massor av möjligheter att öva och lära sig
Fabian Jahr, en ny ny bidragsgivare till Bitcoin Core, har identifierat att den viktigaste färdigheten som ofta saknas i nya bidragsgivare är tillräcklig Git-skicklighet, såsom förmågan att squash begår. Bidragsgivare måste ange Git-kommandon i kommandoraden. Om du är nybörjare på kommandoraden och / eller Git, är det bäst att slutföra självstudier och öva på andra projekt som inte omfattas av resursbegränsningarna i Bitcoin Core.
Det är många Git tutorials online (några av dem gratis) och Justin Moon Mooniversity kurs (betald) hjälper dig också att lära dig förutsättningarna för att interagera med och bidra till Bitcoin Core från kommandoraden. Var inte rädd för att begära hjälp från nya nya bidragsgivare online eller på ditt lokala Socratic Seminar om du behöver ytterligare vägledning.
Fråga efter hjälp
En av utmaningarna med att gå ombord på nya bidragsgivare är att uppgifter som tar en erfaren bidragsgivare en kort tid att slutföra kan ta en ny bidragsgivare mycket längre tid. Detta kräver att nya bidragsgivare fortsätter när de stöter på utmaningar och ber om hjälp vid behov. Nya nya bidragsgivare till Bitcoin Core kan vara en bra första anlöpshamn, eftersom de kanske kan lösa ditt problem; om inte, bör de kunna rikta dig till en lämplig långsiktig bidragsgivare. Du kan också kommentera frågan du arbetar med för att flagga att du behöver hjälp.
I en intervju med Bitcoin Magazine Vlad Costea påminde sig Chaincode Labs-ingenjör Carl Dong om att inrätta en IFTTT e-postvarning som skulle flaggas varje gång det fanns ett nytt “bra första nummer” publicerat av befintliga bidragsgivare. Detta var en av de strategier han använde för att komma igång med Bitcoin-utvecklingen och identifiera några miniprojekt som han hade färdigheterna att bidra till. Dong har sedan dess skapat Twitter-kontot @GoodFirstIssues som alla kan följa för meddelanden om nya bra första utgåvor.
Tack till Jon Atack och Marco Falke för deras bidrag till den här artikeln.