Smart Contract Transaction Listener

Ich habe einige Zweifel bezüglich der Smart Contracts . Zunächst einmal weiß ich, dass, wenn ich einen Smart Contract bereitstelle, dieser eine Adresse haben wird. Wir können davon ausgehen, dass ich den Smart Contract auf Blockchain eingesetzt habe. Also meine Fragen sind:

  1. Stimmt es, dass ein Smart Contract nur aufgerufen werden kann, wenn ein Benutzer eine Transaktion mit der Smart Contract-Adresse durchführt?

  2. Wenn ein Benutzer A eine Transaktion mit Benutzer B oder C usw. durchführt, kann der Smart Contract dann selbst ausgeführt werden? (Achtung, die Transaktion bezieht sich nicht auf den Smart Contract selbst).

  3. Kann ein Smart Contract wie ein Listener bei allen Blockchain-Transaktionen arbeiten und sich selbst ausführen, wenn alle notwendigen Bedingungen zu seiner Aktivierung vorliegen?

Antworten (1)

  1. Richtig. Es gibt 2 Arten von Konten in der Blockchain. Das eine ist EOA (External Owned Accounts) und das andere sind Verträge. Verträge können durch Verträge oder durch EOAs erstellt werden, aber alle Transaktionen müssen von EOAs stammen. EOAs können jedoch Verträge aufrufen, die andere Verträge aufrufen.

  2. Ein Smart Contract kann nicht ausgeführt werden, es sei denn, ein Benutzer oder Smart Contract ruft ihn direkt an. Eine Möglichkeit, Ihre ursprüngliche Sache zu tun, wäre, dass der Vertrag ein Proxy-Vertrag ist, der neben dem, was der ursprüngliche Benutzer tun wollte, auch noch etwas anderes tat. Der Benutzer würde dann die Funktion für den Vertrag aufrufen.

  3. Auch hier kann ein Smart Contract nur durch externe Transaktionen oder durch einen anderen Smart Contract ausgelöst werden (der von einer externen Transaktion aufgerufen werden muss). Was Sie in diesem Fall tun könnten, ist ein Skript, das die Blockchain überwacht, um diese Bedingungen zu erfüllen, wonach Ihr Skript eine Transaktion zum Smart Contract erstellen würde.

Könnte die Transaktion von den Validatoren mit einem Konsensprotokoll wie PoS, PoW, PoA validiert werden? Oder ist der Smart Contract selbst ein Konsensmechanismus?
Transaktionen werden von den Minern/Validatoren validiert. Verträge sind nicht der Konsensmechanismus.
Ok, also könnte ich die oben genannten Konsensmechanismen verwenden, oder?
Was meinst du? Wenn Sie eine Transaktion an das Ethereum-Netzwerk senden, wird sie von Nodes validiert und von einem Miner abgebaut. Sie müssen die Transaktion nicht selbst validieren, es sei denn, Sie müssen Daten validieren, die mit einem Funktionsaufruf gesendet wurden.
Ja, ich stimme Ihnen zu, aber ich meine, dass eine Transaktion im Grunde genommen durch die Verwendung eines Konsensmechanismus wie PoS, PoW oder PoA abgebaut wird, daher ist es wichtig, den angenommenen Konsensmechanismus anzugeben
Ich bin immer noch nicht sicher, was die Frage ist. Wenn Sie gerade das Ethereum-Mainnet verwenden, ist dies der PoW-Konsens. In etwa einem Jahr wird es wahrscheinlich PoS sein.