Heim  >  Artikel  >  Backend-Entwicklung  >  So beginnen Sie, einen Beitrag zu Utreexo zu leisten

So beginnen Sie, einen Beitrag zu Utreexo zu leisten

PHPz
PHPzOriginal
2024-08-22 20:36:32645Durchsuche

Sind Sie schon einmal auf ein spannendes Open-Source-Projekt gestoßen, zu dem Sie gerne einen Beitrag leisten würden, wissen aber nicht, wie Sie anfangen sollen? Oder sind Sie vielleicht ein relativ erfahrener Entwickler (oder einfach jemand, der sich mit Open Source besser auskennt) und möchten zu einem spannenden Open-Source-Projekt beitragen? Nun, ich habe eine Antwort auf Ihre Frage zum Thema „Wie fange ich an, zu Open Source beizutragen?“
Technisch gesehen werde ich diese Frage nicht im allgemeinen Sinne beantworten. Dieser Artikel konzentriert sich eher auf ein bestimmtes Open-Source-Projekt, Utreexo. Ich denke, dieser Beitrag zielt eher darauf ab, die Frage zu beantworten: „Wie fange ich an, einen Beitrag zu Utreexo zu leisten?“.

Was wäre, wenn überhaupt Utreexo?

Nun, wenn Sie hier sind, gehe ich davon aus, dass Sie irgendwo von Utreexo gehört haben oder zumindest wissen, dass es sich um ein Projekt im Zusammenhang mit Bitcoin handelt. Wenn Sie jedoch noch nie davon gehört haben, ist das trotzdem in Ordnung. Ich werde versuchen, es genauer aufzuschlüsseln und auch relevante Links bereitzustellen. Es wird jedoch dringend empfohlen, über fundierte Kenntnisse über die Funktionsweise von Bitcoin zu verfügen, um es besser zu verstehen diesen Artikel.

Wie auch immer, um die obige Frage zu beantworten, geben wir zunächst einen kleinen Hintergrund darüber, was Utreexo erreichen möchte.
Das Bitcoin-Netzwerk, wie wir es kennen (oder ... noch nicht kennen), speichert Aufzeichnungen aller Transaktionen in einem digitalen Hauptbuch, der sogenannten Blockchain. Dieses Hauptbuch enthält Aufzeichnungen aller Transaktionen, die jemals im Netzwerk durchgeführt wurden. Der aktuelle Status des Netzwerks enthält jedoch nicht unbedingt den Verlauf aller Ereignisse, die jemals im Netzwerk passiert sind, sondern besteht aus der Menge aller nicht ausgegebenen Transaktionsausgaben (UTXO-Satz). Dieses Set enthält Informationen darüber, „welches Wallet was hat“. Einfacher ausgedrückt enthält das UTXO-Set im Grunde nur Aufzeichnungen darüber, wie viel Bitcoin ein Bitcoin-Wallet auf seinem Konto hat. Nun, der letzte Satz ist nicht sehr genau, da unsere Bitcoin-Wallets normalerweise mehrere nicht ausgegebene Transaktionsausgaben aufweisen, die zusammengenommen unseren Wallet-Saldo und die zur Verfügung stehenden Ausgaben widerspiegeln.
Das Problem besteht darin, dass dieser Bitcoin-Status mit zunehmender Anzahl von Transaktionen im Netzwerk schneller und größer wird. Dies stellt ein erhebliches Skalierbarkeitsproblem dar, da die größere Größe größere Hardwareressourcen erfordert, was neben anderen Nachteilen einige Leute davon abhalten kann, Bitcoin-Knoten zu betreiben.
Hier kommt Utreexo ins Spiel.

Also fragen wir noch einmal: „Was ist Utreexo?“. Nun, Utreexo ist eine Methode zur erheblichen Reduzierung des Speicherbedarfs für den Betrieb eines vollständig validierenden Knotens, indem ein Hash-basierter dynamischer kryptografischer Akkumulator vorgeschlagen und ein kompakter Zustandsknoten eingeführt wird, der nur eine Akkumulatordarstellung des Zustands speichert. Diese Knoten benötigen zusätzliche Inklusionsnachweise vom Absender, bevor sie Transaktionen verifizieren können,

Mit Utreexo wird der aktuelle Zustand des Netzwerks in einer deutlich kleineren Größe dargestellt, was weniger Ressourcenverbrauch bedeutet, was dann so gut wie jeden dazu ermutigt, bequem einen Knoten zu betreiben. Sie können mehr über Utreexo in den folgenden Ressourcen lesen: ELI5: Utreexo – Eine Skalierungslösung, oder Verbesserung des Bitcoin-Netzwerks mit Utreexo, oder laden Sie das Utreexo-Whitepaper hier herunter.

Einrichten Ihrer Entwicklungsumgebung
Nachdem wir nun ein wenig mehr über Utreexo wissen, beginnen wir mit der Einrichtung unserer Entwicklungsumgebung.

Utreexo ist in Go geschrieben, daher sind Grundkenntnisse und Verständnis der Programmiersprache Go ein zusätzlicher Vorteil. Wenn Sie jedoch neu bei Go sind, können Sie sich diese Ressourcen ansehen, um mehr über die Sprache zu erfahren und ein paar Grundkonzepte der Sprache zu verstehen: Effective Go, Learn Go.

Ich verwende für diesen Beitrag Visual Studio-Code, Sie können aber auch einen beliebigen Texteditor Ihrer Wahl verwenden.
Zunächst müssen wir die Programmiersprache Go installieren. Die Installationsschritte werden hier nicht behandelt, aber Sie können diesen Artikel lesen, in dem detailliert beschrieben wird, wie Sie Go-Programme installieren und ausführen. Laden Sie Go herunter und installieren Sie es. Sobald Sie die Installation von Go gemäß dem Artikel abgeschlossen und sichergestellt haben, dass alles funktioniert, überprüfen Sie die Ausgabe von

Go-Version

Wir können mit dem Klonen der Codebasis fortfahren. Grundkenntnisse in Git sind hier von Vorteil. Zuerst muss Git auf unserem Computersystem installiert sein. Um zu überprüfen, ob Git installiert ist, können Sie ein neues Terminal- oder Powershell-Fenster öffnen und

eingeben

git –version

Wenn Git installiert ist, wird eine Ausgabe mit der Versionsnummer angezeigt. Wenn nicht, müssen Sie mit der Installation von Git fortfahren und dabei die Anweisungen aus „Git installieren“ verwenden.
Anschließend können Sie den Befehl

ausprobieren

git –version

schon wieder. Wenn Git erfolgreich installiert wurde, können wir nun mit dem Forken und Klonen des Repositorys fortfahren.
Das Forken des Repositorys bedeutet im Grunde das Erstellen einer Kopie des Repositorys auf unseren persönlichen GitHub-Konten. Änderungen, die wir danach vornehmen, werden in unser gespaltenes Repository übertragen, und dann können wir eine Pull-Anfrage senden.

Um das Repository zu klonen, navigieren wir zum gewünschten Speicherort und öffnen es im Terminal. Oder wir navigieren direkt über das Terminal.
Nehmen wir zum Beispiel an, wir haben auf unserem Desktop einen Ordner mit dem Namen „Projekte“, in dem sich unser Utreexo-Code befinden soll. Wir navigieren einfach zum Desktop, öffnen den Ordner „Projekte“ und klicken dort mit der rechten Maustaste und nehmen ihn „Im Terminal öffnen“ für Windows und Ubuntu. Oder wir können direkt in unserem Terminalfenster navigieren

Stellen Sie zunächst sicher, dass wir uns im Stammverzeichnis unseres Systems befinden, indem wir dorthin navigieren.

CD ~

Und dann

cd Desktop/Projekte

Wenn wir hier sind, müssen wir das Repository klonen. Hier muss eine kleine Überlegung angestellt werden. Wenn Sie die Hauptorganisation von utreexo auf GitHub besuchen, haben wir mehrere Repositories. Eines davon ist das utreexo-Repo, das die eigentliche dynamische Akkumulator-Implementierung enthält, und dann gibt es das utreexod-Repo, eine Bitcoin-Vollknotenimplementierung, die Utreexo unterstützt. Wir werden uns auf Letzteres konzentrieren, also auf die Bitcoin-Vollknotenimplementierung mit Utreexo-Unterstützung. Fahren wir mit der Verzweigung fort und klonen Sie dann das Repository

Um das Repository zu forken, gehen wir zur Utreexod-Repo-Github-Seite und ganz rechts finden wir die Schaltfläche „Fork“.

How to start contributing to Utreexo
Wir müssen darauf klicken und den Anweisungen auf dem Bildschirm folgen. Sobald dies erledigt ist, verfügen unsere persönlichen Github-Konten über dieselbe Kopie dieses Repositorys.
Jetzt können wir mit dem Klonen des Repositorys von unserem persönlichen Konto aus fortfahren

Git-Klon https://github.com/yourgithubusername/utreexod.git

Wenn es fertig ist, können wir den Ordner mit unserem Texteditor öffnen und mit der Installation aller Abhängigkeiten fortfahren, wie in der Beschreibung des GitHub-Repos beschrieben. Jetzt sind wir dabei.

Von hier aus möchten wir etwas Zeit damit verbringen, die verschiedenen Abschnitte der Codebasis zu verstehen und herauszufinden, wofür jeder Abschnitt verantwortlich ist. Sobald Sie eine grobe Vorstellung von der Codebasis haben, können Sie im Abschnitt „Probleme“ des Repositorys nach einem Problem suchen, das Sie gerne angehen würden, oder vielleicht nach einem Funktionsvorschlag.
Sobald wir sie identifiziert haben, erstellen wir einen neuen Zweig und benennen ihn richtig

git branch feature1
git checkout feature1

Hier ist „feature1“ der Name der Funktion, an der wir arbeiten werden. Geben Sie ihm einen aussagekräftigeren Namen.
Sobald wir mit der Arbeit an unserem Feature fertig sind und das Gefühl haben, dass es bereit ist, verpflichten wir uns, pushen es an Github und stellen dann eine Pull-Anfrage.

Zur Festschreibung stellen wir zunächst die vorgenommenen Änderungen mit

bereit

git add .

Und fahren Sie dann mit der Verpflichtung fort

git commit -m „Nachricht festschreiben“

Die Commit-Nachricht sollte eine kurze Beschreibung der vorgenommenen Änderungen enthalten und wie oben erwähnt in Anführungszeichen stehen.
Wenn Sie vscode verwenden, vereinfacht die Git-Erweiterung alle diese Prozesse wirklich.

Wenn Sie weitere Ressourcen zum Festschreiben Ihrer Änderungen und zum anschließenden Pushen an Github benötigen, sehen Sie sich diese Ressource an. Informationen zum Erstellen einer Pull-Anfrage finden Sie auch hier.

Nachdem unsere Pull-Anfrage gestellt wurde, warten wir auf Updates von den Betreuern, und sobald alles sortiert ist und wahrscheinlich weitere Änderungen angefordert wurden, wird die Pull-Anfrage zusammengeführt, und … los geht's. Sie haben erfolgreich zu Utreexo beigetragen

Open-Source-Beiträge wie dieser sind eine treibende Kraft für wichtige Software. Es ist sehr wichtig, Beiträge zu Open-Source zu leisten, da Sie Änderungen an Software vornehmen, die von Zehntausenden von Benutzern verwendet wird. Dieser Beitrag bringt ein hohes Maß an Zufriedenheit mit sich. Von hier aus ist es ratsam, weiterhin Beziehungen zu anderen Community-Mitgliedern und Betreuern aufzubauen und weiterhin regelmäßig zur Software beizutragen.

Das obige ist der detaillierte Inhalt vonSo beginnen Sie, einen Beitrag zu Utreexo zu leisten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn