Hier ist, was ich bisher habe:
Das Handy kann einen Bloom-Filter einrichten, sodass einige der enthaltenen Schlüssel nicht von ihm sind?
Wenn der Knoten eine Anfrage erhält, muss er die Blockchain noch einmal scannen, um den Transaktionsverlauf zu erhalten?
Ein Mobiltelefon verbindet sich über rpc mit einem Knoten.
Knoten verbinden sich nicht über RPC. RPC ist für Knotenbesitzer und hat normalerweise ein langes Passwort.
Das Mobiltelefon bittet dann den Knoten, ihm einen Satz von Transaktionen für einen Satz von öffentlichen Schlüsseln zu geben.
Nicht genau. Zunächst einmal haben Block-Header einen Teil namens „Merkle-Root“, mit dem Clients überprüfen können, ob sich eine Transaktion im Block befindet. Theoretisch können SPV-Knoten, wie im Whitepaper beschrieben, Block-Header behalten und andere Knoten um einen Merkle-Beweis ihrer Transaktion bitten. In der Praxis ist es komplizierter. Derzeit verwenden 99 % der SPV-Knoten BIP 37 . Außerdem wird an besseren SPV-Methoden wie BIP 157 und Neutrino geforscht.
Wenn der Knoten eine Anfrage erhält, muss er die Blockchain noch einmal scannen, um den Transaktionsverlauf zu erhalten?
Knoten müssen die gesamte Blockchain nach einer Transaktion scannen, wenn sie ihre Blockhöhe nicht kennen, es sei denn, sie verwenden txindex=1
, usw. ... Wenn sie dies tun, ist der Zugriff darauf trivial.
Kyle Graham
MCCCS
gettxout
. Hier ist, was sie verwenden . Außerdem geben SPVs niemals die öffentlichen Schlüssel heraus, das würde die Privatsphäre verletzen.Kyle Graham
MCCCS
merkleblock
, senden die Knoten [alle Transaktionen in diesen Blöcken] die Hashes. Filteradd teilt den Nodes mit, an welchen Pubkeys das SPV interessiert ist. Wenn der Block den Bloom-Filter nicht bestanden hat, können die Nodes tx-Hashes weglassen und Daten speichern. Kann einige weitere Details geben: bitcoin.stackexchange.com/a/11721/38618Kyle Graham