Wie werden Codeänderungen (z. B. neue Funktionen) an Anwendungen wie Bitcoin bereitgestellt und wie wird die Kompatibilität aufrechterhalten?

Wie stellt Bitcoin neue Funktionen bereit und verwaltet die Kompatibilität verschiedener Versionen?

Wenn beispielsweise eine neue Funktion zu Bitcoin hinzugefügt wird, wie wird diese dann bereitgestellt und verwaltet? Das heißt, wie wird nicht jeder im Netzwerk gezwungen, ein Upgrade durchzuführen, wenn eine neue Version verfügbar ist?

Wenn ein Upgrade/Update nicht erzwungen wird, wie verwaltet Bitcoin verschiedene Versionen von Bitcoin im Netzwerk? Gibt es eine erforderliche Mindestversion, die irgendwie im Netzwerk verteilt ist?

Antworten (2)

Normalerweise wird der Code geschrieben, getestet und in das Release gemergt und dann ausgeschaltet bereitgestellt . Abhängig von der Änderung kann es dann an einem bestimmten Datum, Block, aktiviert werden, wenn das Netzwerk einen Konsens hat (ein bestimmter Prozentsatz der Personen stimmt der Implementierung zu) oder wenn x Anzahl der abgebauten Blöcke die neue Änderung unterstützen.

Code kann Hard- oder Soft-Fork sein, und die Entwickler versuchen, Änderungen so weit wie möglich abwärtskompatibel zu machen, um Client-Probleme zu vermeiden.

Gelegentlich können inkompatible Clients ungerade Blöcke generieren (z. B. einen aktuellen 1,01-MB-Block), die verwaisen oder vom Rest des Netzwerks verworfen werden. Oder sogar eine Kette von mehreren Blöcken, die verwaisen. Dies ist einer der Gründe, warum Sie nach der Überweisung auf mehr als eine erfolgreiche Bestätigung warten sollten.

Fast alle Änderungen, die bisher am Bitcoin-Protokoll vorgenommen wurden, waren abwärtskompatibel, da sie nur den Regelsatz des akzeptablen Verhaltens im Netzwerk einschränkten. Wenn die neuen Regeln von einer Mehrheit der aktuellen Hashrate durchgesetzt würden, würde daher jede ältere Software auf derselben Blockchain folgen, da die Regeln, von denen sie erwartet haben, dass sie befolgt werden, eine Obermenge des derzeit erzwungenen Verhaltens ermöglichen.

Die Hauptidee ist also, dass nur eine Version des Protokolls gleichzeitig durchgesetzt wird.