Open source

Uit BitcoinWiki.nl
(Doorverwezen vanaf Bitcoin Core Developing)

Open source of open bron beschrijft de praktijk die in productie en ontwikkeling vrije toegang geeft tot de bronmaterialen (de source) van het eindproduct.

Software kan op een Open source manier worden ontwikkeld. Veel bitcoinsoftware wordt op een Open source manier ontwikkeld. De tegenhanger van open source software is gesloten propriëtaire software.

Voordelen en eigenschappen van open source software:

  • Iedereen kan bekijken en controleren wat software doet, wat leidt tot meer vertrouwen.
  • Iedereen is vrij* om software aan te passen, te verbeteren, of zelfs eigen versies van de software te beginnen.
  • De hele wereld kan meehelpen aan verbeteringen aan software.

*Licentie-afhankelijk, sommige Open source software staat geen adaptaties toe

Bijdragen aan Bitcoin[bewerken | brontekst bewerken]

Bitcoin is een Open Source project. Ontwikkelen voor Bitcoin Core vereist een grondige kennis van zowel Bitcoin als de programmeertaal C++.

Het proces begint meestal met het opzetten van de ontwikkelomgeving. Dit houdt in dat je de broncode van Bitcoin Core kloont van de officiële GitHub-repository en de vereiste afhankelijkheden installeert. Vervolgens compileer je de code op je lokale machine.

Veel ontwikkelaars gebruiken een Linux-systeem, omdat dit vaak de meeste compatibiliteit biedt met de tools en bibliotheken die nodig zijn. Het is ook belangrijk om bekend te zijn met Git voor versiebeheer, aangezien de Bitcoin Core-community sterk afhankelijk is van pull requests en code reviews om wijzigingen te beheren en te integreren.

Na het opzetten van de ontwikkelomgeving, begin je met het schrijven en testen van je code. Dit kan variëren van het verbeteren van de bestaande functionaliteit, het oplossen van bugs, tot het toevoegen van nieuwe features.

Gedetailleerde kennis van het Bitcoin-protocol en de interne werking van Bitcoin Core is essentieel, aangezien zelfs kleine wijzigingen grote gevolgen kunnen hebben voor de veiligheid en stabiliteit van het netwerk. Testen is een cruciaal onderdeel van het ontwikkelproces en omvat unit tests, integration tests en functional tests om ervoor te zorgen dat je wijzigingen correct functioneren zonder ongewenste bijwerkingen.

Zodra je tevreden bent met je werk, dien je een pull request in en doorloopt het een rigoureus beoordelingsproces door andere ontwikkelaars in de community voordat het wordt opgenomen in de hoofdcodebase.