Samstag, 1. März 2014

Bitcoin Client nach wie vor in Arbeit

Vor 2 1/2 Wochen habe ich angekündigt einen Bitcoin Client zu programmieren. Da das schon eine Weile her ist, will ich kein kurzes Update geben.

Was wurde bereits Programmiert?

Mittlerweile wurde das Protokoll soweit implementiert, sodass man alle Pakete erstellen kann, um sich zu einem Node zu verbinden. Technisch gesehen: Alle Pakete, die für den Handshake benötigt werden. Jedoch müssen die selben Pakete auch gelesen werden können und das fehlt in der Implementierung noch. Das hört sich nach wenig ist, jedoch muss man dazu sämtliche Grundlagen programmieren, beispielsweise die Umwandlung in die verschiedenen Zahlen, Zeichenketten oder IP Adresse im Protokoll. Jedes Paket hat zudem gewisse Header, was zu diesem Zeitpunkt schon implementiert werden muss.

Wird auch getestet?

Das Ganze implementiere ich mittels TDD (=Test Driven Development). TDD heißt, bevor ich etwas implementiere, wird zunächst der Test geschrieben. Dieser muss erst fehlschlagen, da es noch nicht implementiert wurde (der Test wird damit getestet). Danach wird die Unterfunktion programmiert und der Test gestartet. Schlägt der Test fehl, dann stimmt etwas entweder im Test oder in der Implementierung nicht. Das macht die Entwicklung langsamer, da mehr programmiert werden muss aber dafür deutlich sicherer.

Ein anderer Vorteil von TDD ist, dass man nach einer Optimierung testen kann, ob noch alles funktioniert. Schleicht sich irgendwo ein Fehler ein und ein Unterprogramm liefert falsche Ergebnisse, dann kann man durch Erweiterung der Tests sicherstellen, dass das nie wieder passiert.

Wie lange dauerts denn jetzt noch?

Vor Ende April schaffe ich einen Podcast nicht mehr. Anfang bis Mitte April kann ich es aber schaffen, einen Blogeintrag zu erstellen. Ein Podcast bedeutet mehr Aufwand, und deshalb benötige ich dafür mehr Zeit.

Was kann die erste Version

In der Version soll lediglich die Aktivität des Bitcoins gesnifft werden. Das bedeutet, die erste Version soll sich mit einem Node verbinden, den Handshake erfolgreich durchführen und anschließend die empfangenen Pakete soweit es geht anzeigen.

Also in kurz

  • Fertige Programmierung des Handshakes: Anfang April
  • Blogeintrag zur Version: Anfang bis Mitte April
  • Podcast: Wahrscheinlich Ende April

Happy Bitcoining! Und lasst euch nicht vom Gox stressen!

Endlich CCC Mitglied!

Heute ist ein super Tag! Einer der besten Tage seit langem, denn heute ist das passiert, was ich seit Jahren schon wollte: Ich bin Mitglied im Münchner Chaos Computer Club!

Mir ist klar, dass dieser Post niemanden etwas nutzt aber ich freu mich gerade wie ein Schnitzel und deshalb poste ich das in allen verfügbaren Kanälen :P