Derzeit hat blockchain.info über 1.900 Knoten, die mit ihrem Bitcoin-Client verbunden sind.
Ich habe einen m1.small Ubuntu 12.04-Server und Bitcoin seit ~ 4 Tagen ohne Neustarts ausgeführt. Mein Bitcoin-Client zeigt immer noch nur maximal ~60 Verbindungen an, wenn er einen "./bitcoind getinfo"-Befehl ausführt.
Wie kann ich mehr als 1.000 Verbindungen zu meinem Bitcoin-Client erreichen? Und ist es Ihrer Meinung nach „es wert“?
BEARBEITEN: Ich habe meinen Bitcoin-Client mit den Parametern -maxconnections=1000 und -timeout=15000 neu gestartet, aber nach ~12 Stunden Bitcoin-Betrieb beträgt die Anzahl der Verbindungen nur bis zu ~40. Und ich scheine meine CPU, meinen Arbeitsspeicher oder meine Bandbreite noch nicht auszuschöpfen.
BEARBEITEN 2: Ich habe in der von blockchain.info bereitgestellten Liste keine "Verbindungszeit" über 8 Stunden gesehen , was mir sagt, dass sie ihren Server etwa alle 8 Stunden neu starten müssen. Entweder das, oder die Verbindungen werden unterbrochen und nach 8 Stunden aktualisiert? Ich fange an zu glauben, dass blockchain.info IP-Adressen verfolgt, auf denen Bitcoin in einer Art Datenbank ausgeführt wird ... und sich bei jedem Neustart von Bitcoin foreful mit ihnen verbindet. Habe ich recht?
Der Bitcoin-Client verfügt über eine maxconnections-Konfigurationsoption. Der mit -maxconnections=N gestartete Client erlaubt den gleichzeitigen Aufbau von bis zu N eingehenden Verbindungen.
Möglicherweise müssen Sie das Verbindungs-Timeout für so viele Verbindungsversuche von einem einzelnen (möglicherweise leistungsschwachen) Knoten erhöhen. Stellen Sie es vielleicht auf 15 Sekunden (15000 ms) ein.
-timeout= Verbindungstimeout in Millisekunden angeben (Standard: 5000)
[Bearbeiten: Die Antwort von Pieter Wuille bringt Sie weiter. -addnode lässt Sie neue ausgehende Verbindungen zu Knoten erzwingen, wenn Sie ihre IP-Adressen haben.]
Bitcoin stellt standardmäßig nicht mehr als 8 ausgehende Verbindungen her und -maxconnections
steuert nur, wie viele eingehende Verbindungen Sie zulassen. Fühlen Sie sich frei, dies höher einzustellen, aber es wird einige Zeit dauern, bis sich andere in großer Zahl mit Ihnen verbinden.
Bitte ändern Sie dies nicht, da dies nicht erforderlich ist. Anschließbare Peers im Netzwerk sind eine knappe Ressource und für die Dezentralisierung unerlässlich. Wenn die Leute versuchen, sich mit allen zu verbinden, wie es einige Websites tun, werden wir sehr schnell ausgehen.
Falls Sie ein Händler oder Miner sind, möchten Sie vielleicht ein paar feste Verbindungen zu vertrauenswürdigen anderen einrichten (siehe -addnode
Befehlszeilen-/Konfigurationsoption), aber mehr Verbindungen zu haben, bedeutet nicht eine stärkere Überprüfung (der Referenzclient überprüft immer alles). oder noch schnelleres Weiterleiten (da Sie langsamer werden, indem Sie neue Blöcke und Transaktionen an alle Ihre Kollegen verteilen). Es geht hauptsächlich darum, einen Dienst für das Netzwerk bereitzustellen.
Die gegebenen Antworten beantworten die Frage nicht. Auch wenn es vielleicht keinen Sinn macht, tausend Verbindungen zu erreichen, hier ist, wie man das unter Debian macht. Sie möchten einige geringfügige Änderungen im Code vornehmen und Bitcoin neu kompilieren:
Erforderliche Pakete zum Kompilieren abrufen:
$ aptitude install git make build-essential libssl-dev libboost-all-dev libdb-dev libdb++-dev libminiupnpc-dev
Klonen Sie das Git-Repository (stellen Sie sicher, dass die Version die neueste Verzweigung ist ):
$ cd /usr/src
$ sudo git clone -b 0.8.4 https://github.com/bitcoin/bitcoin
$ cd bitcoin/src
Bearbeiten Sie die net.cpp-Datei:
@@ -27,7 +27,7 @@
using namespace std;
using namespace boost;
-static const int MAX_OUTBOUND_CONNECTIONS = 8;
+static const int MAX_OUTBOUND_CONNECTIONS = 1000;
bool OpenNetworkConnection(const CAddress& addrConnect, CSemaphoreGrant *grantOutbound = NULL, const char *strDest = NULL, bool fOneShot = false);
@@ -1533,7 +1533,7 @@
OpenNetworkConnection(CAddress(vserv[i % vserv.size()]), &grant);
MilliSleep(500);
}
- MilliSleep(120000); // Retry every 2 minutes
+ MilliSleep(5000); // Retry every 5 seconds
}
}
1.) Indem Sie MAX_OUTBOUND_CONNECTIONS ändern, wird der Client weiter verbinden, bis er 1000 proaktive Verbindungen erreicht.
2.) Durch Ändern des Sleep-Timeouts werden häufiger neue Verbindungen versucht.
Bitcoin kompilieren und installieren:
$ sudo make -f makefile.unix
$ sudo mv bitcoind /usr/bin
Vergessen Sie nicht, die maxconnections in bitcoin.conf festzulegen:
maxconnections=1000
Bitcoin starten und fertig. Der Client stellt sehr schnell viele Verbindungen her.
Haftungsausschluss: Wie Pieter Wuille betonte, kann es dem Netzwerk schaden, einen modifizierten Client wie diesen auszuführen. Bitte verwenden Sie diese Lösung nur zu Forschungszwecken und nicht als dauerhafte Lösung.
Da es anscheinend niemand erwähnt hat, werde ich es für zukünftige Referenzen einbringen. Wenn sich Ihr Bitcoin-Knoten hinter einem Router/NAT befindet, können Sie sich nur mit anderen verbinden, sie können sich nicht mit Ihnen verbinden. Nehmen wir an, die meisten Menschen befinden sich in dieser Situation, wodurch die meisten Knoten (zumindest direkt) nicht verbunden werden können. Wenn Sie Ihren Knotenport auf Ihrem Router öffnen, kann jeder Bitcoin-Knoten da draußen eine Verbindung zu Ihnen herstellen, wenn er dies wünscht, anstatt dass Ihr Knoten nur eine Verbindung zu anderen herstellen kann, die ihren Port geöffnet haben. Gleiches gilt für Bittorrent und andere P2P-Systeme.
Warum brauchen Sie mehr als 1.000 Verbindungen?
Standardmäßig kann Bitcoin nicht mehr als 125 Verbindungen haben. Sie müssen bitcoind mit dem Parameter -maxconnections=<n>
oder set maxconnections=<n>
in bitcoin.conf starten, um sich mit mehr Peers verbinden zu können.
Um zu überprüfen, ob Sie eingehende Verbindungen zulassen, verwenden Sie diese: https://bitnodes.21.co Es gibt eine Schaltfläche, um Ihre IP zu überprüfen, und wenn sie grün angezeigt wird, können Sie eine eingehende Verbindung haben. Sobald Sie das haben, wurde mir gesagt, dass Sie mehr ausgehende Verbindungen haben können. Viel Glück.
Benutzer418
Benutzer3145
Großwolf
-maxoutconnections
, mit der Sie ausgehende Verbindungen zu Peers erhöhen können. Es ist standardmäßig auf,8
aber Sie können es auf etwas Höheres setzen, ohne den Knoten aus einer geänderten Quelle neu kompilieren zu müssen.lifeofguenter
-maxconnections
etwas hoch einstelle, erhalte ich die folgende Fehlermeldung: > Warning: Reducing -maxconnections from 4096 to 865, due of system limiteds. also scheint es, als könne man nicht einmal mit eingehenden Verbindungen super hoch gehen?Benutzer10603
Großwolf
foba