Skip to content

Download (requesting blocks): Was tun, wenn einer der Up-/Downloader alle Circuits verliert? #4

@johnnycrab

Description

@johnnycrab

Die große Problematik liegt darin, dass es nie Bestätigungen für Nachrichten geben kann, da Circuits nicht fütterbar sein können, andere werden probiert etc. Das Frage-Antwort-Spiel mit wechselnden Identifiern funktionier nur so lange, wie es auf jede Frage nur eine Antwort gibt. Verschickt allerdings A an B eine Nachricht und A muss nochmal eine Nachricht schicken (z.B. "ich hab alle Circuits verloren und hab lauter neue"), bevor B antworten kann, gibts ein echtes Problem. Welchen Identifier benutzt man? Dadurch, dass man mehrere Circuits parallel benutzt, und durch die Geschwindigkeitsunterschiede gibt es auch keine Garantie für die Reihenfolge. Hört man auf mehr als eine Nachricht von ein- und demselben Identifier, öffnet man Replay-Attacken Tür und Tor.

Eine Möglichkeit wäre, davon auszugehen, dass zwischen zwei Nachrichten Circuitänderungen maximal n mal vorkommen, und man schickt mit jeder Nachricht eine Liste an n zufälligen Identifiern, die benutzt werden können, um Änderungen an den Circuits zu kommunizieren. Ändern sich alle Circuits von einem Node, schickt er die Änderungsnachricht durch alle Circuits, in der Hoffnung, dass die andere Seite die Nachricht erhält.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions