Pelajaran 4

FIFO-Vertragserstellung

In dieser Lektion befassen wir uns mit einem komplexeren Beispiel für SmartPy-Verträge: einer FIFO-Warteschlange (First In, First Out). FIFO ist eine Methode zum Organisieren und Bearbeiten eines Datenpuffers, bei der der älteste (erste) Eintrag oder „Kopf“ der Warteschlange zuerst verarbeitet wird.

Theorie

In einer FIFO-Datenstruktur wird das erste zur Warteschlange hinzugefügte Element auch als erstes entfernt. Dies entspricht der Anforderung, dass nach dem Hinzufügen eines neuen Elements alle zuvor hinzugefügten Elemente entfernt werden müssen, bevor das neue Element entfernt werden kann.

Quelle: Invostopedia

Im Zusammenhang mit Smart Contracts kann die Implementierung einer FIFO-Warteschlange für viele Szenarien nützlich sein, beispielsweise für ein faires Warteschlangensystem, bei dem jeder in der Reihenfolge bedient (oder verarbeitet) wird, in der er eintrifft.

Praktisch

Lassen Sie uns einen FIFO-Vertrag schreiben. Die Hauptoperationen für unseren Vertrag sind push, um Elemente zur Warteschlange hinzuzufügen, und pop, um Elemente aus der Warteschlange zu entfernen.

Der Vertrag speichert die Warteschlange in einer Liste in seinem Speicher, und jede push Operation hängt ein Element an das Ende der Liste an, während jede pop Operation ein Element vom Anfang der Liste entfernt.

So könnte der Vertrag aussehen:

Python 
 import smartpy as sp 


 @sp.module 
 def main(): 
 # Die Fifo-Klasse definiert einen einfachen Vertrag, der Push- und Pop-Anweisungen 
 # nach dem First-In-First-Out-Prinzip verarbeitet.

    Klasse SimpleFifo(sp.Contract): 
 def __init__(self): 
 self.data.first = 0 
 self.data.last = -1 
 self.data.saved = {} 

 @sp.entrypoint 
 def pop(self): 
 affirm self.data.first < self.data.last 
 del self.data.saved[self.data.first]
            self.data.first += 1 

 @sp.entrypoint 
 def push(self, element): 
 self.data.last += 1 
 self.data.saved[self.data.last] = Element 

 @sp.onchain_view 
 def head(self): 
 return self.data.saved[self.data.first]


wenn „Vorlagen“ nicht in __name__: 

 @sp.add_test(name="Fifo") 
 def test(): 
 Szenario = sp.test_scenario(main)
        Szenario.h1("Einfach Fifo-Vertrag") 
 c1 = main.SimpleFifo() 
 Szenario += c1 
 c1.push(4) 
 c1.push(5) 
 c1.push(6) 
 c1.push(7) 
 c1.pop( ) 
 scene.verify(sp.View(c1, "head")() == 5)

So testen Sie den FIFO-Vertrag:

Schritt 1: Kopieren Sie den Vertragscode und fügen Sie ihn in die SmartPy-IDE ein.

Schritt 2: Klicken Sie oben rechts auf die Schaltfläche Run , um den Vertrag zu kompilieren und zu simulieren.

Schritt 3: Überprüfen Sie die rechte Seite der IDE, um die Simulationsergebnisse anzuzeigen. Nach jedem Vorgang sehen Sie den Status des Vertragsspeichers.

Schritt 4: Experimentieren Sie, indem Sie die Reihenfolge der Operationen ändern oder neue Operationen hinzufügen.

Sie haben jetzt gelernt, wie Sie einen FIFO-Vertrag auf der Tezos-Blockchain erstellen! In der nächsten Lektion gehen wir weiter auf rekursive Ansichten ein, eine leistungsstarke Funktion von SmartPy, die es Verträgen ermöglicht, ihre eigenen Ansichten aufzurufen. Entdecken Sie weiter und viel Spaß beim Programmieren!

Pernyataan Formal
* Investasi Kripto melibatkan risiko besar. Lanjutkan dengan hati-hati. Kursus ini tidak dimaksudkan sebagai nasihat investasi.
* Kursus ini dibuat oleh penulis yang telah bergabung dengan Gate Learn. Setiap opini yang dibagikan oleh penulis tidak mewakili Gate Learn.
Katalog
Pelajaran 4

FIFO-Vertragserstellung

In dieser Lektion befassen wir uns mit einem komplexeren Beispiel für SmartPy-Verträge: einer FIFO-Warteschlange (First In, First Out). FIFO ist eine Methode zum Organisieren und Bearbeiten eines Datenpuffers, bei der der älteste (erste) Eintrag oder „Kopf“ der Warteschlange zuerst verarbeitet wird.

Theorie

In einer FIFO-Datenstruktur wird das erste zur Warteschlange hinzugefügte Element auch als erstes entfernt. Dies entspricht der Anforderung, dass nach dem Hinzufügen eines neuen Elements alle zuvor hinzugefügten Elemente entfernt werden müssen, bevor das neue Element entfernt werden kann.

Quelle: Invostopedia

Im Zusammenhang mit Smart Contracts kann die Implementierung einer FIFO-Warteschlange für viele Szenarien nützlich sein, beispielsweise für ein faires Warteschlangensystem, bei dem jeder in der Reihenfolge bedient (oder verarbeitet) wird, in der er eintrifft.

Praktisch

Lassen Sie uns einen FIFO-Vertrag schreiben. Die Hauptoperationen für unseren Vertrag sind push, um Elemente zur Warteschlange hinzuzufügen, und pop, um Elemente aus der Warteschlange zu entfernen.

Der Vertrag speichert die Warteschlange in einer Liste in seinem Speicher, und jede push Operation hängt ein Element an das Ende der Liste an, während jede pop Operation ein Element vom Anfang der Liste entfernt.

So könnte der Vertrag aussehen:

Python 
 import smartpy as sp 


 @sp.module 
 def main(): 
 # Die Fifo-Klasse definiert einen einfachen Vertrag, der Push- und Pop-Anweisungen 
 # nach dem First-In-First-Out-Prinzip verarbeitet.

    Klasse SimpleFifo(sp.Contract): 
 def __init__(self): 
 self.data.first = 0 
 self.data.last = -1 
 self.data.saved = {} 

 @sp.entrypoint 
 def pop(self): 
 affirm self.data.first < self.data.last 
 del self.data.saved[self.data.first]
            self.data.first += 1 

 @sp.entrypoint 
 def push(self, element): 
 self.data.last += 1 
 self.data.saved[self.data.last] = Element 

 @sp.onchain_view 
 def head(self): 
 return self.data.saved[self.data.first]


wenn „Vorlagen“ nicht in __name__: 

 @sp.add_test(name="Fifo") 
 def test(): 
 Szenario = sp.test_scenario(main)
        Szenario.h1("Einfach Fifo-Vertrag") 
 c1 = main.SimpleFifo() 
 Szenario += c1 
 c1.push(4) 
 c1.push(5) 
 c1.push(6) 
 c1.push(7) 
 c1.pop( ) 
 scene.verify(sp.View(c1, "head")() == 5)

So testen Sie den FIFO-Vertrag:

Schritt 1: Kopieren Sie den Vertragscode und fügen Sie ihn in die SmartPy-IDE ein.

Schritt 2: Klicken Sie oben rechts auf die Schaltfläche Run , um den Vertrag zu kompilieren und zu simulieren.

Schritt 3: Überprüfen Sie die rechte Seite der IDE, um die Simulationsergebnisse anzuzeigen. Nach jedem Vorgang sehen Sie den Status des Vertragsspeichers.

Schritt 4: Experimentieren Sie, indem Sie die Reihenfolge der Operationen ändern oder neue Operationen hinzufügen.

Sie haben jetzt gelernt, wie Sie einen FIFO-Vertrag auf der Tezos-Blockchain erstellen! In der nächsten Lektion gehen wir weiter auf rekursive Ansichten ein, eine leistungsstarke Funktion von SmartPy, die es Verträgen ermöglicht, ihre eigenen Ansichten aufzurufen. Entdecken Sie weiter und viel Spaß beim Programmieren!

Pernyataan Formal
* Investasi Kripto melibatkan risiko besar. Lanjutkan dengan hati-hati. Kursus ini tidak dimaksudkan sebagai nasihat investasi.
* Kursus ini dibuat oleh penulis yang telah bergabung dengan Gate Learn. Setiap opini yang dibagikan oleh penulis tidak mewakili Gate Learn.