Bleiben Ethereum-Kontrakte aktiv, wenn sie auf das Eintreten einer Bedingung warten müssen? Wie wird das TIME-Element in Smart Contracts berücksichtigt? [Duplikat]

Ich habe noch keinen Vertrag geschrieben, würde aber gerne wissen, ob dies etwas ist, was getan werden kann. Nehmen wir an, ich schreibe einen intelligenten Vertrag, um jemanden zu bezahlen, wenn seine Ethereum-Adresse unter einen bestimmten Betrag fällt, sagen wir weniger als 1 Ether.

Ich verstehe, dass der Smart Contract den Geldbetrag auf dem Konto erkennen kann, aber die Frage ist, muss der Vertrag den Adressensaldo kontinuierlich ausführen/überprüfen?

Was ist, wenn ich dem Vertrag sage, dass er 365 Tage lang jeden Tag den Kontostand überprüfen soll? Das sind 365 Gasgebühren, richtig? Und wenn ich diese Gebühr bezahle, läuft der Vertrag dann nicht immer ein ganzes Jahr? Was ist, wenn ich keine Ether-Adresse, sondern eine Bitcoin-Adresse überprüfen möchte?

Ich bin nur neugierig, wie Ethereum mit TIME-basierten Verträgen umgeht, die eine Bedingung erfordern, die in Zukunft erfüllt werden muss. Ich verstehe nicht, wie dies skaliert werden kann, wenn 1000 Verträge darauf warten, dass eine Bedingung eintritt. Bitte jemand erklären.

Antworten (1)

Wenn Sie möchten, dass Funktionen innerhalb eines Vertrags automatisch ausgelöst werden, können Sie den Ethereum-Wecker verwenden . Beachten Sie, dass dies keine Kernfunktion von Ethereum ist, sondern ein Markt, auf dem Personen dafür bezahlt werden, einen geplanten Anruf auszuführen, und daher gibt es keine Garantie dafür, dass Ihre Funktion aufgerufen wird.

Es gibt also keine Kernfunktion, bei der Sie sagen können: "Diesen Vertrag ausführen, wenn er Block 9929 erreicht" ? Sie sagen also, wenn Sie einen Vertrag abschließen, läuft er sofort und berücksichtigt dann keine Zeit?
Verträge sind wie OOP-Objekte. Ihre Funktionen laufen nur, wenn sie aufgerufen werden. Sie können sagen „diese Funktion darf nur aufgerufen werden, wenn es sich um Block 9929 oder zwischen 9:30 und 12:00 Uhr am 3. März 2018 oder was auch immer handelt“, aber etwas muss den Vertrag aufrufen, damit er etwas tut. Oder anders ausgedrückt, es gibt das Konzept der Zeit als unveränderliche globale Variable, aber keine Timer, die Rückrufe auslösen.