Die Entwicklung einer Bitcoin-Anwendung ist sehr einfach, auch wenn Sie von Hand programmieren müssen, sofern Sie über grundlegende Programmierkenntnisse verfügen. Wenn etwas kompliziert ist, dann ist es zu verstehen, welche Teile wie ins Spiel kommen. Der Rest ändert sich nicht übermäßig im Vergleich zu anderen Arten von Anwendungen, bei denen Sie innerhalb weniger Stunden etwas voll funktionsfähiges haben können.
In diesem Artikel wird nicht Schritt für Schritt beschrieben, wie eine APP erstellt wird, sondern vielmehr wird ein mentales Diagramm der Teile präsentiert, aus denen eine grundlegende APP besteht, und wie sie interagieren.
Natürlich ist es ratsam, die Grundlagen von Bitcoin zu verstehen.
Lasst uns anfangen. Wir müssen modular denken. Da ist zum einen unsere Anwendung und zum anderen Bitcoin.
Die Interaktion mit Bitcoin kann auf zwei Arten erfolgen: Installieren Sie Ihren eigenen Bitcoin-Knoten oder verwenden Sie den Knoten einer anderen Person. In beiden Fällen interagieren Sie dann über eine API. Manchmal werden einfachere APIs verwendet, z. B. RESTful-APIs, und andere, die etwas umständlicher sind JSON-RPC. Glücklicherweise verfügen Programmierer jedoch bereits über wiederverwendbare Bibliotheken. Open-Source- um beide Fälle zu vereinfachen, falls gewünscht.
Stellen wir uns in diesem Fall vor, dass wir die etwas komplexere Version verwenden, die auf der Verwendung Ihres eigenen Bitcoin-Knotens basiert, was mehr Autonomie bietet und zu einem besseren Verständnis der Funktionsweise von Bitcoin führt.
Bitcoin-Knoten
Ein Bitcoin-Knoten besteht aus drei wesentlichen Teilen:
- Der „Dämon“: Er ist mit anderen verbunden Knoten, was die Erstellung ermöglicht rot P2P Dabei werden alle Ereignisse, die im Netzwerk auftreten, über Sockets ausgetauscht.
- Blockchain: die Datenbank, die Ereignisse lokal auf jedem Knoten aufzeichnet. Ihre Anwendung verwendet nicht diese Datenbank, sondern bei Bedarf eine andere.
- API: Ereignisse werden in eine JSON-Antwort umgewandelt und über einen Port übertragen, der möglicherweise für externe Listener geschützt ist oder nicht.
Der Knoten kann auf einem Unix- oder Windows-Computer installiert werden und kann jederzeit über den dafür vorgesehenen Port angerufen oder abgehört werden, mit oder ohne Authentifizierung (je nach Geschmack), da er ein Kanal für bidirektionale Kommunikation ist: Sie können in Echtzeit empfangen was im Knoten passiert und Sie können ihm Informationen senden, um Dinge zu tun oder Sie über Dinge zu informieren. So richten Sie Ihren Bitcoin-Knoten in weniger als 10 Minuten ein.
Anwendung
Natürlich können Sie die Anwendung in der von Ihnen gewünschten Sprache entwickeln und müssen nicht unbedingt allzu viel über die Funktionsweise des Bitcoin-Knotens wissen.
Eine einfache Anwendung besteht aus einem Backend, einer Datenbank und einem Frontend. Bisher nichts Neues. Sie können eine API hinzufügen oder nicht ... wie immer. Das Backend können Sie jederzeit aufrufen, wenn Sie mit dem Bitcoin-Netzwerk interagieren möchten API-RPC des Knotens oder hören Sie ihm zu, um Entscheidungen zu treffen.
Wir fügen die Teile zusammen: Anwendung + Bitcoin-Knoten
Stellen wir uns vor, wir möchten einen Blockchain-Explorer erstellen. Wir müssen lediglich unser Backend so einstellen, dass es alle Ereignisse abhört, die in unserem Knoten auftreten (was uns darüber informiert, was im Netzwerk passiert) und die Informationen, die der Knoten an uns weitergibt, in unserer Datenbank für spätere Anfragen von vorne speichern wo wir zeigen, wonach ich gefragt habe.
Es ist zu beachten, dass die Entwicklung einer APP, die Blockchain.info ähnelt, einem Blockchain-Explorer, mit einer eigenen RESTful-API im privaten oder öffentlichen Modus zur Interaktion mit Ihrer Anwendung, nur wenige Minuten dauert Open-Source- namens BitPay-Einblick.
Weitere Details
Auch das Senden einer Zahlung an das Netzwerk ist sehr einfach, denn sobald die Transaktion im Backend vorbereitet ist, wird der Vorgang über das Netzwerk an den Knoten gesendet JSON-RPC-API so dass es es an die übrigen Knoten weiterleitet, diese wiederum an andere und so weiter, bis es sich im gesamten Netzwerk ausbreitet. Aus diesem Grund ist es wichtig, dass die Knoten gut aufeinander abgestimmt sind und qualitativ hochwertige Peers vorhanden sind, da dadurch sichergestellt wird, dass eine Transaktion sehr schnell im gesamten Netzwerk erneut übertragen wird und Transaktionen früher bestätigt werden.
Adressen und Transaktionen werden vorbereitet Offline-Bereich.. Das heißt, der Knoten wird hierfür nicht benötigt, sondern lediglich zum Erhalten der Informationen. Anschließend wird die Transaktion vorbereitet und bereits verschlüsselt an das Netzwerk gesendet.
Logischerweise gibt es für fast alle Sprachen bereits Bibliotheken, die alles vereinfachen und deren Methoden es Ihnen nach dem Import ermöglichen, dasselbe zu tun, aber mit weniger Code.
Im Backend werden normalerweise zwei Bibliotheken verwendet (je nach Bibliothek können sich jedoch auch beide in einer befinden). Der erste kommuniziert mit dem Bitcoin-Knoten und der zweite ist für die Generierung von Adressen oder die Vorbereitung von Transaktionen verantwortlich.
Dies ist ein einfaches Beispiel und ein Blick aus der Vogelperspektive auf eine typische einfache Organisation, aber ihre Nutzung und Kreativität, die hier ins Spiel kommen, ermöglichen die Schaffung neuer Anwendungsfälle.
In fast allen Kryptowährungen ist Ihr Knoten und die Art und Weise, wie Sie mit ihm auf Schemaebene interagieren, sehr ähnlich. Das Einrichten einer Kryptowährungsbörse (wie Coinbase oder OKCoin) ist nicht weit von den Prinzipien entfernt, die hier dargelegt wurden, ja, alles zu replizieren: ausgewogene Backends, mehrere Knoten jeder Kryptowährung für den Fall, dass einer ausfällt oder veraltet ist ...
Ein Tipp: Wenn Sie zum ersten Mal mit Bitcoin entwickeln, ist es am besten, einen Server zu mieten (z. B. einen von OVH von 5 € / Monat), es ist eine kleine Investition und Sie erhalten eine spezielle Maschine, die Sie so oft wie nötig „einfahren“ können. Darüber hinaus wird das Herunterladen der Blockchain dort viel schneller und komfortabler sein. Dann können Sie Ihre entwickeln APP lokal und nutzen Sie die API des Bitcoin-Knotens der gemieteten Maschine.
Damit haben Sie alles, was Sie brauchen, um im Kopf zu skizzieren, wo Sie mit der Erstellung Ihrer Bewerbung beginnen sollen. Abhängig von der Sprache, die Sie verwenden möchten, müssen Sie nur nach den erforderlichen Bibliotheken suchen. Zum Beispiel, z KnotenJS Sie können verwenden Bitcore, die alles, was Sie brauchen, in derselben Bibliothek enthält. Auch BitcoinJS, obwohl hier nur der Arbeitsteil im Vordergrund steht Offline-Bereich. von Bitcoin (Adressen erstellen, Transaktionen vorbereiten...).