Agieren als passiver Knoten und nicht als aktiver mit Bitcoin

Ich habe derzeit eine Bitcoin-Version: 80500, die auf einem VPS ausgeführt wird. Ich bin daran interessiert, damit nur Transaktionen für mich zu verifizieren, ähnlich wie blockchain.info es tut.

Ist es möglich, Bitcoin dafür auszuführen? Ich denke, die beste Analogie dazu wäre, als Leecher zu agieren. Oder fungiert es immer als aktiver Knoten, der Transaktionen usw. übergibt?

Dies ist möglicherweise nicht ganz das, was Sie wollen. aber was ist mit dem Auschecken von Elektron?
Es gibt keine Möglichkeit, einen Knoten so zu konfigurieren, dass er keine Transaktionen weiterleitet, da dies dem Netzwerk schaden würde. Sie müssten stark modifizieren, bitcoindum dies zu verwalten, und es gibt keinen großen Grund, warum Sie dies jemals wollen sollten. Was denkst du, wirst du erreichen, wenn du nichts weitergibst? Es ist nicht das, was Sie oder das Netzwerk wollen.
Der Grund dafür ist, Bandbreite und CPU-Zyklen zu sparen
Wie viel CPU und Bandbreite verbraucht es denn jetzt?
Das Weiterleiten von Transaktionen erfordert wirklich überhaupt keinen Aufwand, und wenn Sie nicht zuhören, wird niemand von Ihnen synchronisieren und große Mengen an Bandbreite beanspruchen. Die CPU-Auswirkung einer bitcoindeinmal synchronisierten ist vernachlässigbar.
Ich vermute, dass die Weiterleitung von Transaktionen von eingehenden zu ausgehenden Transaktionen erfolgt, ist das richtig? Nur so als Gedankenspiel: Kann man die Blockchain einfach beobachten, ohne an ihren Transaktionen teilzunehmen?
Ja, es ist möglich, die Blockchain einfach durch öffentliche Dienste zu beobachten. Siehe Option 1 meiner Antwort unten.

Antworten (1)

Was Sie verlangen, ist mit einer unveränderten Version von Bitcoin nicht möglich. Also werde ich Ihre Frage so interpretieren, warum nicht und wie man etwas Ähnliches erreichen kann.

Bitcoin-Knoten zu haben, die Transaktionen nicht weiterleiten, ist eine Gefahr für Bitcoin: Wenn Knoten anfangen, sich so zu verhalten, gehen wir nicht nur einen winzigen Schritt weiter in Richtung des Risikos, dass Transaktionen hängen bleiben, weil jemand, der eine Transaktion sendet, sie überhaupt nicht weitergeleitet bekommt, sondern Noch wichtiger ist, dass Mining-Exploits wie der im Preprint Majority is not enough: Bitcoin Mining is Vulnerable beschriebene Schritt vom eher Theoretischen zum Praktischen gehen. Tatsächlich könnte jemand, der versucht, diesen Exploit zu implementieren, ziemlich genau die gleiche Frage stellen wie Sie!

Was hält Sie also davon ab, es trotzdem mit einer modifizierten Version von Bitcoin zu tun? Eigentlich nichts, außer dass es ein bisschen selbstzerstörerisch wirkt. Denken Sie daran, sobald andere anfangen, es als ausreichend lästig zu empfinden (und das sollten sie aus Gründen der Fairness und Sicherheit!), werden wir eine Änderung vornehmen, die erfordert, dass Sie zumindest einige Transaktionen weiterleiten oder Transaktionen nicht weiterleiten du selbst. Oder bleiben Sie mit nur ähnlich egoistischen Knoten hängen, mit denen Sie sich verbinden können. Das ist genau das Gegenteil von dem, was Sie mit der Überprüfung von Transaktionen erreichen möchten. Denken Sie nur daran, dass Sie möglicherweise nur diese Transaktionen sehen werden, die eher nicht bis zu den Mining-Pools weitergegeben werden!

Welche Optionen haben Sie also, um die Bandbreite zu begrenzen (ich bezweifle sowieso, dass Sie viel CPU-Zeit sparen können)? Hier sind Ihre Optionen:

  1. Sie kennen bereits die radikalste Antwort: Keine eigene Kopie von Bitcoin ausführen und stattdessen die öffentlichen APIs von blockchain.info und blockexplorer.com (oder eine kommerzielle Lösung) verwenden. Ich nehme an, Sie sind nicht glücklich damit, sich auf kostenlose externe Dienste zu verlassen, aber in Anbetracht der Redundanz (entweder um einzelne Ausfallzeiten zu bewältigen oder mehr als eine Bestätigung zu erhalten). Daher ist dieser Ansatz mit extrem niedriger Bandbreite (zumindest für wenige aktiv zu überwachende Transaktionen) möglicherweise nicht ganz so schlimm, wie es zunächst klingen muss.

  2. Begrenzen Sie die Anzahl der Knoten, mit denen sich Ihr Bitcoin verbindet. Das ist leider ein zweischneidiges Schwert. Es begrenzt gleichzeitig die Daten, die Sie senden (weniger Peers!) und die Daten, die Sie erhalten. Daher haben Sie eine größere Chance, eine Transaktion zu spät zu sehen, wenn sie aus irgendeinem Grund die wenigen (einen?) anderen Knoten, mit denen Sie verbunden sind, nicht erreicht hat, oder weil nur wenige Peers bedeuten, dass Sie einem erhöhten Risiko ausgesetzt sind, gleichzeitig die Verbindung zu verlieren an alle, kurzzeitig vom Bitcoin-Netzwerk abgeschnitten zu sein.

  3. Modifizieren Sie Ihren Client sinnvoll. Vielleicht können Sie damit leben, neue Transaktionen weiterzuleiten, aber Massendownloads der gesamten Blockchain zu drosseln? Dies könnte möglicherweise einen enormen Einfluss auf Ihre ausgehende (und gesamte) Bandbreite haben und bietet gleichzeitig das Potenzial für ein sehr vernünftiges Gesamtverhalten. Bedenken Sie, dass es sogar für die Mainline-Bitcoin sinnvoll sein könnte, wenn alternative Mittel zum Massendownload der Blockchain implementiert werden könnten – und solange wir Mirrors für sie finden, sollte dies machbar sein. In der Tat könnten Sie es tun, indem Sie einen „Blockchain-Mirror“-Teil Ihrer Website hinter ein kostenloses Cloudflare- Konto stellen, um statische Inhalte kostenlos bereitzustellen!

Darf ich vorschlagen, dass Option 3 der richtige Weg sein könnte? Wenn die notwendigen Änderungen an Bitcoin ein Problem für Sie sind, könnte ich helfen (oder sogar alles erledigen), obwohl es mir leid tut, sagen zu müssen, dass ich es wahrscheinlich nicht kostenlos tun könnte.

Das Protokoll unterstützt keine Art von Signalisierung, dass sie nicht auf eine Bestandsanforderung für Blöcke reagieren möchten. Zum jetzigen Zeitpunkt ist die einzige Reaktion eines Clients ein Absturz. Wenn Sie Ihre ausgehende Verbindung drosseln, versuchen Tarpit-Clients, sich von Ihnen zu synchronisieren, was äußerst schädlich ist.
Ja, es reicht nicht aus, nur langsamer beim Senden alter Transaktionen zu werden. Sie müssten auf andere Weise begrenzen (drosseln). Danke für den Hinweis auf dieses Problem. Ich hatte den Eindruck, dass z. B. das Erfüllen nur einer begrenzten Anzahl von Anfragen für sehr alte Blöcke und das anschließende Ablehnen (z. B. durch Trennen von diesem bestimmten Client) keine ernsthaften Störungen verursachen sollte, außer dass die Synchronisation verlangsamt wird, da ähnliche Trennungen bei Bitcoin natürlich sind Netzwerk mit einigen nicht dauerhaft eingeschalteten Knoten. Ich würde den Quellcode natürlich noch einmal überprüfen, bevor ich damit beginne.
Mein Ziel wäre es, einen Knoten zu haben, der nur die aktuelle Blockchain speichert. Wer weiß, vielleicht betreibe ich auch einige Relaisknoten da draußen! Aber bitte, Stack-Tausch ist eine technische Frage und Antwort, keine ethische. Trotzdem danke für eine Klarstellung.
@robbywashere Wenn Sie andere Knoten negativ beeinflussen, werde ich es ansprechen. So einfach ist das. Es ist sowohl ein technisches als auch ein ethisches Problem. Nur weil Sie andere Knoten betreiben, heißt das nicht, dass die Clients, die Sie mit Ihrem gimped verbunden haben, Monate brauchen, um die benötigten Blöcke zu erhalten.
@pyramids Wenn Sie das tun, werden Sie ständig Gleichgesinnte durchlaufen. Keiner meiner Kollegen synchronisiert, aber ich erhalte trotzdem mindestens alle 10 Minuten eine Blockierungsanfrage. Ganz ehrlich, zahlen Sie 5 $ pro Monat für einen dedizierten bitcoindKnoten und ersparen Sie sich die Mühe. Dann bist du wenigstens kein so schlechter Netzbürger.
@nonymous Ich denke, hier liegt ein Missverständnis vor. Ich hatte nicht die Absicht, einen Client zu trennen, der die Weiterleitung eines einzelnen Blocks anfordert. Ich habe nur versucht zu argumentieren, dass es eine Möglichkeit geben könnte, zu verhindern, dass sie zur primären Quelle der gesamten Blockchain werden, z. , und erst nachdem sie genug (etwa hundert?) gesendet haben, damit sie ihre Synchronisierung weiter vorantreiben können, und erst, nachdem alternative Mittel dafür bereitgestellt wurden (z. B. Download von einer Mirror-Site).