Bitcoin Core
# Bitcoin Core

Bitcoin Core ist die Open-Source-Referenzimplementierung der Bitcoin-Kryptowährung. Sie wurde ursprünglich von Satoshi Nakamoto unter dem Namen Bitcoin veröffentlicht und später in Bitcoin Core umbenannt. Die Referenzsoftware validiert die gesamte Blockchain mitsamt allen jemals getätigten Transaktionen. Zudem hat sie standardmäßig eine Geldbörse aktiviert, mit welcher der Benutzer Transaktionen durchführen kann. Bitcoin Core besteht aus den Implementierungen bitcoin-qt (GUI, basierend auf Qt) und bitcoind (Bitcoin Client ohne GUI).

## Entstehungsgeschichte

Das Bitcoin-Netzwerk entstand am 3. Januar 2009 mit der Schaffung der ersten 50 Bitcoins. Einige Tage später wurde unter dem Pseudonym Satoshi Nakamoto auch die erste Version der Bitcoin-Referenz-Software Bitcoin Core auf derselben Mailingliste veröffentlicht, wie schon das Whitepaper, bei SourceForge und im Internet-Diskussionsforum der P2P Foundation. Die erste Version von Bitcoin Core ist in der Programmiersprache C++ geschrieben, verwendet die Programmbibliotheken wxWidgets, OpenSSL, Berkeley DB und Boost und enthält neben Programmdateien für Windows auch Quellcode unter der MIT-Lizenz. Ende 2009 portierte der Finne Martti Malmi die Bitcoin-Core-Software auf GNU/Linux und unterstützte Nakamoto bei der Entwicklung. Später stießen weitere Entwickler aus der Open-Source-Gemeinschaft hinzu. Einige der Entwickler, wie beispielsweise Jeff Garzik, sind auch mit Beiträgen am Linux-Kernel beteiligt. Ende 2010/Anfang 2011 zog sich Nakamoto aus der Entwicklung zurück und übergab die Projektleitung an Gavin Andresen. Heute erfolgt die Entwicklung über Git, die Kommunikation zu Änderungen findet auf GitHub statt. Viele der heutigen Entwickler sind bei den Unternehmen Blockstream oder Chaincode Labs angestellt.

## Entwicklung

Bitcoin Core wird von einer großen Gemeinschaft entwickelt. Im August 2019 zählte das Projekt über 638 Contributor. Jeder hat die Möglichkeit Code, Übersetzung, Tests, Bugs oder andere Verbesserungen als Pull Request auf GitHub einzureichen. Diese werden dann diskutiert. Jeder hat das Recht entweder mit Concept ACK/NACK und Approach ACK/NACK abzustimmen. Diese Begriffe stammen aus dem Netzjargon. Bekommt eine Pull-Request genügend Unterstützung, wird sie von einem der sechs Maintainer in den Code gemerged.

## Abspaltungen

Wegen großer Uneinigkeit der Community über die Skalierung von Bitcoin gibt es mehrere Abspaltungen der Software. Diese haben bzw. hatten das Ziel, das Blockgrößen-Limit zu erhöhen, um mehr Transaktionen pro Zeit zu ermöglichen. Die Abspaltungen Bitcoin XT, Bitcoin Unlimited und Bitcoin Classic haben aufgrund zu geringer Unterstützung durch Miner den Schwellenwert zur Aktivierung des Hard Forks nicht erreicht. Am 1. August 2017 wurde durch Bitcoin Cash der erste umstrittene Fork („contentious fork“) der Blockchain durchgeführt. Bitcoin Cash hat das Blockgrößen-Limit auf 8 MB erhöht. Mit Bitcoin SegWit2x bzw. BTC1 war ein weiterer Hard Fork geplant. Segwit2x erhöht das Blockgrößen-Limit auf 2 MB. Der Hard Fork wurde am 8. November 2017 auf unbestimmte Zeit verschoben, da es keinen Konsens gab.

