Smart Contract-Ereignisse

Ich entwickle eine Dapp, die eine Benachrichtigung zwischen zwei Benutzern enthält. Zum Beispiel :

  • Benutzer 1 (Student): Senden Sie eine Transaktion, die zu bestätigende Daten enthält.

  • Benutzer 2 (Professor): Erhalt einer Benachrichtigung zur Validierung der Studentendaten.

  • Benutzer 1 (Student): erhält eine Benachrichtigung über die Antwort des Professors.

ist es nicht möglich, diesen Anwendungsfall mit intelligenten Vertragsereignissen zu implementieren? Ich habe mir web3.shh angesehen, aber es scheint, als würde die Dokumentation fehlen

Antworten (1)

Sie können dies tun, indem Sie Ihr Ereignis in Ihrem Smart Contract wie folgt erstellen:

event StudentData(address indexed _professorAddr, string indexed _studentData)

Dann können Sie mit der Web3-API diese Ereignisse beobachten/hören, indem Sie beispielsweise nach der Professoradresse filtern, und jede Aktion auslösen, z. B. eine Benachrichtigung, wenn das Ereignis eintritt

Siehe Dokumentation zum Abhören von Ereignissen.

danke für deine schnelle antwort. aber wie lange kann ein event leben? Nehmen wir an, der Professor öffnet die App nach 3 Wochen nach der Einreichung des Studenten?
Laut Solidity Documentation über Ereignisse scheint es, dass Ereignisprotokolle in der Blockchain gespeichert werden, sodass die Ereignisse so lange am Leben bleiben, wie die Blockchain meiner Meinung nach am Leben ist. Also in Ihrem Fall, wenn der Professor die Dapp öffnet, beginnt die Watch for Event-Funktion, vom ersten Block bis zum letzten zuzuhören und Ihnen alle zu zeigen.
Zitieren der Solidity-Dokumente: „Diese Protokolle sind mit der Adresse des Vertrags verknüpft, werden in die Blockchain aufgenommen und bleiben dort, solange ein Block zugänglich ist (ab sofort für immer, aber dies könnte sich mit Serenity ändern)“.