Ich habe zwei Laptops A und B mit Bitcoin Testnet verbunden. Ich habe dann manuell B mit A verbunden, indem ich den addnode
Bitcoin-Client verwendet habe.
Ausschnitt getpeerinfo
aus B:
{
"id": 1,
"addr": "172.22.94.40:18333",
"addrlocal": "137.122.81.217:53818",
}
{
"id": 10,
"addr": "54.152.9.182:18333",
"services": "000000000000000
}
Einige Verbindungen haben einen addrlocal
Satz und ihr Port 53818 wird zufällig ausgewählt. Ich habe die Codebase danach durchsucht. Es sieht so aus fInbound
, als würde in A eine Flagge gesetzt. Kann jemand in einfachen Worten erklären, was hier passiert?
Ich weiß, dass ein Socket nicht gleichzeitig zum Abhören und Senden von Daten verwendet werden kann. Hat es damit zu tun?
Wenn 53818 als Port zum Senden von Daten an A ausgewählt wird, warum erfolgt dann keine solche zufällige Auswahl in der Seed-Node-Verbindung? (wie 54.152.9.182 hier im Beispiel)
Ich würde vermuten, dass addrlocal Ihnen Ihren Endpunkt der Verbindung anzeigt, dh Ihre IP-Adresse und Portnummer. Für alle eingehenden Verbindungen wäre dies die gleiche IP-Adresse und der Port, auf dem Sie lauschen, daher wird es nicht angezeigt. In Ihrem Fall höchstwahrscheinlich: 137.122.81.217:8333
Ich bin mir nicht sicher, was passieren würde, wenn der Server multihomed ist.
Guhan S
Jannes
Guhan S