Senden eines Ereignisses an ein bestimmtes Benutzerkonto

Ich versuche, eine Benachrichtigung an einen Benutzer über eine Aktivität zu senden. Ich habe versucht, Ereignisse zu verwenden, aber wenn ein Ereignis ausgelöst wird, geht es an alle Benutzerkonten, die derzeit im Netzwerk aktiv sind. Gibt es eine andere Möglichkeit, dasselbe in Ethereum zu tun?

Soweit mir bekannt ist, ist dies noch nicht verwendbar, aber ich denke, dass Flüstern github.com/ethereum/wiki/wiki/Whisper das ist, wonach Sie suchen

Antworten (2)

Nein, da ist kein. Ethereum ist ein öffentliches Hauptbuch. Das bedeutet a) alles, was Sie tun, ist öffentlich, jeder sieht alles, was Sie tun. b) Alles ist ziehen. Wenn ein Benutzer etwas sehen möchte, kann er die Blockchain abfragen, Sie können etwas nicht an eine bestimmte Adresse pushen.

Natürlich könnten Sie etwas Ähnliches erstellen. Aber solche Lösungen wären immer noch öffentlich und würden von der Client-Implementierung abhängen. Die ganze Idee der Blockchain ist jedoch die Unabhängigkeit von zentralen Zwischenhändlern und Client-Implementierung

Wenn Sie so etwas implementieren möchten: Erstellen Sie ein Mapping, das Adresse -> Ihre Nachricht im Vertrag abbildet. Der Client kann dann regelmäßig nach Aktualisierungen in diesem Mapping suchen.

Sie können Themen in Ihren Protokollen erstellen, indem Sie bestimmte Felder in Ihrem Ereignis indizieren

event BidPlaced(address indexed bidder, uint amount);

Sie können dann nach diesen Ereignissen anhand der indizierten Felder in Ihrem Frontend filtern und nur relevante Benachrichtigungen für den Benutzer anzeigen

var contract = web3.eth.contract(abi).at(contractAddress);
contract.BidPlaced({ bidder: "0x0000..." }).get(console.log);