第3課

Erstellen und Verwalten von Smart Contracts in Vyper

Mit Abschluss dieses Kurses haben Sie eine solide Grundlage für die Blockchain-Programmierung mit Vyper geschaffen. Sie verfügen jetzt über ein solides Verständnis von Ethereum, intelligenten Verträgen und deren Erstellung in der Remix-IDE mit Vyper. Dieses Verständnis eröffnet eine Welt voller Möglichkeiten für die Entwicklung dezentraler Anwendungen und die Teilnahme am Blockchain-Ökosystem.

Einführung

Willkommen zu Lektion 3! In dieser Lektion konzentrieren wir uns auf die Anwendung der Konzepte und der Syntax, die wir aus den vorherigen Lektionen gelernt haben, um Ethereum-Smart-Verträge mithilfe von Vyper und der Remix-IDE zu entwickeln. Wir erstellen, implementieren und interagieren mit einfachen Smart Contracts und vermitteln Ihnen praktische Erfahrungen mit Vyper und Ethereum. Der erste Vertrag wird ein einfacher Datenspeichervertrag sein, während der zweite ein einfaches Abstimmungssystem simulieren wird.

SimpleStorage: Eine Einführung in Smart Contracts

Der erste Vertrag, den wir bereitstellen werden, ist SimpleStorage. Bei diesem Vertrag handelt es sich, wie der Name schon sagt, um einen einfachen Datenspeichervertrag, der eine einzelne Nummer speichert. SimpleStorage besteht aus einer Variablen storedData und den beiden Funktionen set “ und „ get. Mit der set Funktion kann ein Benutzer eine Nummer speichern, und mit der get Funktion kann jeder diese Nummer abrufen.

Bereitstellung und Interaktion mit SimpleStorage

Wir werden die Schritte zur Bereitstellung und Interaktion mit dem SimpleStorage -Vertrag auf der Ethereum-Blockchain durchgehen. Bei der Bereitstellung eines Vertrags in der Ethereum-Blockchain werden der Bytecode und die ABI des Vertrags an das Ethereum-Netzwerk übertragen, von wo aus er aufgerufen und ausgeführt werden kann. Sobald ein Vertrag bereitgestellt wird, erhält er eine eindeutige Adresse, unter der er erreichbar ist.

Hier ist der Code für SimpleStorage:

Python 
 # @title SimpleStorage 
 gespeicherte Daten: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

In diesem Vertrag definieren wir eine öffentliche Ganzzahlvariable storedData, eine öffentliche Funktion set(x: int128) zum Festlegen des Werts von „ storedData und eine öffentliche Konstantenfunktion get() -> int128 zum Abrufen des aktuellen Werts von storedData“.

Hier ist eine Schritt-für-Schritt-Anleitung zur Bereitstellung dieses Vertrags mit Remix:

  1. Öffnen Sie Ihren Webbrowser und navigieren Sie zu Remix Ethereum IDE.

  2. Aktivieren Sie das Vyper-Plugin

  3. Stellen Sie die Umgebung im Abschnitt Deploy & Run Transactions auf Injected Web3 um. Dadurch wird Remix mit Ihrem MetaMask-Wallet verbunden.

  4. Klicken Sie im Abschnitt File Explorer auf das + -Symbol, um eine neue Datei zu erstellen. Nennen Sie es SimpleStorage.vy.

  5. Fügen Sie den SimpleStorage Vertragscode in diese neue Datei ein.

  6. Gehen Sie nun zur Registerkarte „VyperCompile und wählen Sie den SimpleStorage Vertrag aus.

  7. Wechseln Sie zur Registerkarte Deploy & Run Transactions und klicken Sie dann auf die Schaltfläche Deploy .

  8. MetaMask öffnet ein Popup zur Transaktionsbestätigung. Bestätigen Sie die Transaktion.

  9. Nachdem die Transaktion bestätigt wurde, wird der bereitgestellte SimpleStorage Vertrag im Abschnitt Deployed Contracts angezeigt.

  10. Sie können nun mit dem Vertrag interagieren. Um beispielsweise eine Nummer zu speichern, geben Sie die Nummer in die set Funktion ein und klicken Sie auf transact. Um die gespeicherte Nummer abzurufen, klicken Sie auf get.

SimpleVoting: Ein komplexerer Vertrag

Nachdem wir uns mit SimpleStorage vertraut gemacht haben, gehen wir zu etwas etwas Komplexerem über: SimpleVoting. Der SimpleVoting Vertrag simuliert ein einfaches Abstimmungssystem. Wir erhalten eine Liste mit Kandidaten, die jeweils als String dargestellt werden. Benutzer können für diese Kandidaten stimmen und wir verfolgen die Anzahl der Stimmen, die jeder Kandidat erhalten hat. Der Vertrag bietet Funktionen zum Hinzufügen eines Kandidaten, zum Abstimmen für einen Kandidaten und zum Abrufen der Gesamtstimmen, die ein Kandidat erhalten hat.

Bereitstellung und Interaktion mit SimpleVoting

Der SimpleVoting Vertrag ist etwas komplexer als SimpleStorage. In SimpleVoting verfügen wir über eine Liste von Kandidaten, die jeweils durch eine Zeichenfolge dargestellt werden.

Hier ist der Code für SimpleVoting:

Python 
 # Vyper Voting Contract 

 # Deklarieren Sie eine Statusvariable „votes“ als HashMap, um die Stimmen für jeden Kandidaten zu speichern.
votes: HashMap[bytes32, uint256] 

 @external 
 def vote(candidate: bytes32): 
 """ 
 Geben Sie eine Stimme für einen Kandidaten ab.

    Argumente: 
 Kandidat: bytes32 – Die Kennung des Kandidaten, für den gestimmt werden soll.
    „““ 
 # Erhöhen Sie die Stimmenzahl für den angegebenen Kandidaten.
    self.votes[Kandidat] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 Ermittelt die Gesamtzahl der Stimmen für einen Kandidaten.

    Argumente: 
 Kandidat: bytes32 – Die Kennung des Kandidaten, für den Stimmen abgerufen werden sollen.

    Rückgabe: 
 uint256 – Die Gesamtzahl der Stimmen, die der Kandidat erhalten hat.
    „““ 
 return self.votes[candidate]

Dieser Vertrag ist recht einfach und enthält keine Vorkehrungen gegen doppelte oder unbefugte Stimmabgaben. In der Praxis müssten Sie Verfahren einführen, um diese Schwierigkeiten zu verhindern, wie z. B. eine Wählerregistrierung und eine Überprüfung, um sicherzustellen, dass jede Adresse nur einmal wählen kann.

Fazit und nächste Schritte

Mit Abschluss dieses Kurses haben Sie eine solide Grundlage für die Blockchain-Programmierung mit Vyper geschaffen. Sie verfügen jetzt über ein solides Verständnis von Ethereum, intelligenten Verträgen und deren Erstellung in der Remix-IDE mit Vyper. Dieses Verständnis eröffnet eine Welt voller Möglichkeiten für die Entwicklung dezentraler Anwendungen und die Teilnahme am Blockchain-Ökosystem.

Um Ihre Fähigkeiten und Kenntnisse weiter zu verbessern, sollten Sie die Erkundung der folgenden Bereiche in Betracht ziehen:

  1. Erweiterte Solidity-Programmierung: Solidity ist eine weitere beliebte Programmiersprache für Ethereum-Smart-Contracts. Das Erlernen von Solidity erweitert Ihre Fähigkeit, mit bestehenden Verträgen zu arbeiten und einen Beitrag zur Ethereum-Community zu leisten. Schauen Sie sich unseren Kurs hier an: [Link zum Solidity-Kurs einfügen, wenn online]

  2. Entwicklung dezentraler Anwendungen (DApp): Tauchen Sie tiefer in die Entwicklung vollständiger dezentraler Anwendungen ein, indem Sie Smart Contracts mit Front-End-Entwicklung mithilfe von Frameworks wie Web3.js, React oder Vue.js kombinieren. Dadurch können Sie interaktive Benutzeroberflächen erstellen, die mit Ihren Smart Contracts interagieren.

  3. Sicherheit und Prüfung: Entdecken Sie Best Practices für die Sicherung intelligenter Verträge und die Durchführung gründlicher Code-Prüfungen. Das Verständnis potenzieller Schwachstellen und die Minderung von Risiken gewährleisten die Zuverlässigkeit und Sicherheit Ihrer Smart Contracts.

  4. Blockchain-Interoperabilität: Untersuchen Sie die Integration verschiedener Blockchain-Netzwerke und -Protokolle. Erfahren Sie mehr über kettenübergreifende Kommunikation und die Entwicklung interoperabler Smart Contracts, die mit mehreren Blockchains interagieren können.
    Denken Sie daran, dass sich die Blockchain-Technologie ständig weiterentwickelt und es wichtig ist, über die neuesten Fortschritte auf dem Laufenden zu bleiben. Treten Sie mit der Blockchain-Community in Kontakt, beteiligen Sie sich aktiv an Diskussionen und erkunden Sie neue Konzepte und Technologien, um informiert und auf dem neuesten Stand zu bleiben.

免責聲明
* 投資有風險,入市須謹慎。本課程不作為投資理財建議。
* 本課程由入駐Gate Learn的作者創作,觀點僅代表作者本人,絕不代表Gate Learn讚同其觀點或證實其描述。
目錄
第3課

Erstellen und Verwalten von Smart Contracts in Vyper

Mit Abschluss dieses Kurses haben Sie eine solide Grundlage für die Blockchain-Programmierung mit Vyper geschaffen. Sie verfügen jetzt über ein solides Verständnis von Ethereum, intelligenten Verträgen und deren Erstellung in der Remix-IDE mit Vyper. Dieses Verständnis eröffnet eine Welt voller Möglichkeiten für die Entwicklung dezentraler Anwendungen und die Teilnahme am Blockchain-Ökosystem.

Einführung

Willkommen zu Lektion 3! In dieser Lektion konzentrieren wir uns auf die Anwendung der Konzepte und der Syntax, die wir aus den vorherigen Lektionen gelernt haben, um Ethereum-Smart-Verträge mithilfe von Vyper und der Remix-IDE zu entwickeln. Wir erstellen, implementieren und interagieren mit einfachen Smart Contracts und vermitteln Ihnen praktische Erfahrungen mit Vyper und Ethereum. Der erste Vertrag wird ein einfacher Datenspeichervertrag sein, während der zweite ein einfaches Abstimmungssystem simulieren wird.

SimpleStorage: Eine Einführung in Smart Contracts

Der erste Vertrag, den wir bereitstellen werden, ist SimpleStorage. Bei diesem Vertrag handelt es sich, wie der Name schon sagt, um einen einfachen Datenspeichervertrag, der eine einzelne Nummer speichert. SimpleStorage besteht aus einer Variablen storedData und den beiden Funktionen set “ und „ get. Mit der set Funktion kann ein Benutzer eine Nummer speichern, und mit der get Funktion kann jeder diese Nummer abrufen.

Bereitstellung und Interaktion mit SimpleStorage

Wir werden die Schritte zur Bereitstellung und Interaktion mit dem SimpleStorage -Vertrag auf der Ethereum-Blockchain durchgehen. Bei der Bereitstellung eines Vertrags in der Ethereum-Blockchain werden der Bytecode und die ABI des Vertrags an das Ethereum-Netzwerk übertragen, von wo aus er aufgerufen und ausgeführt werden kann. Sobald ein Vertrag bereitgestellt wird, erhält er eine eindeutige Adresse, unter der er erreichbar ist.

Hier ist der Code für SimpleStorage:

Python 
 # @title SimpleStorage 
 gespeicherte Daten: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

In diesem Vertrag definieren wir eine öffentliche Ganzzahlvariable storedData, eine öffentliche Funktion set(x: int128) zum Festlegen des Werts von „ storedData und eine öffentliche Konstantenfunktion get() -> int128 zum Abrufen des aktuellen Werts von storedData“.

Hier ist eine Schritt-für-Schritt-Anleitung zur Bereitstellung dieses Vertrags mit Remix:

  1. Öffnen Sie Ihren Webbrowser und navigieren Sie zu Remix Ethereum IDE.

  2. Aktivieren Sie das Vyper-Plugin

  3. Stellen Sie die Umgebung im Abschnitt Deploy & Run Transactions auf Injected Web3 um. Dadurch wird Remix mit Ihrem MetaMask-Wallet verbunden.

  4. Klicken Sie im Abschnitt File Explorer auf das + -Symbol, um eine neue Datei zu erstellen. Nennen Sie es SimpleStorage.vy.

  5. Fügen Sie den SimpleStorage Vertragscode in diese neue Datei ein.

  6. Gehen Sie nun zur Registerkarte „VyperCompile und wählen Sie den SimpleStorage Vertrag aus.

  7. Wechseln Sie zur Registerkarte Deploy & Run Transactions und klicken Sie dann auf die Schaltfläche Deploy .

  8. MetaMask öffnet ein Popup zur Transaktionsbestätigung. Bestätigen Sie die Transaktion.

  9. Nachdem die Transaktion bestätigt wurde, wird der bereitgestellte SimpleStorage Vertrag im Abschnitt Deployed Contracts angezeigt.

  10. Sie können nun mit dem Vertrag interagieren. Um beispielsweise eine Nummer zu speichern, geben Sie die Nummer in die set Funktion ein und klicken Sie auf transact. Um die gespeicherte Nummer abzurufen, klicken Sie auf get.

SimpleVoting: Ein komplexerer Vertrag

Nachdem wir uns mit SimpleStorage vertraut gemacht haben, gehen wir zu etwas etwas Komplexerem über: SimpleVoting. Der SimpleVoting Vertrag simuliert ein einfaches Abstimmungssystem. Wir erhalten eine Liste mit Kandidaten, die jeweils als String dargestellt werden. Benutzer können für diese Kandidaten stimmen und wir verfolgen die Anzahl der Stimmen, die jeder Kandidat erhalten hat. Der Vertrag bietet Funktionen zum Hinzufügen eines Kandidaten, zum Abstimmen für einen Kandidaten und zum Abrufen der Gesamtstimmen, die ein Kandidat erhalten hat.

Bereitstellung und Interaktion mit SimpleVoting

Der SimpleVoting Vertrag ist etwas komplexer als SimpleStorage. In SimpleVoting verfügen wir über eine Liste von Kandidaten, die jeweils durch eine Zeichenfolge dargestellt werden.

Hier ist der Code für SimpleVoting:

Python 
 # Vyper Voting Contract 

 # Deklarieren Sie eine Statusvariable „votes“ als HashMap, um die Stimmen für jeden Kandidaten zu speichern.
votes: HashMap[bytes32, uint256] 

 @external 
 def vote(candidate: bytes32): 
 """ 
 Geben Sie eine Stimme für einen Kandidaten ab.

    Argumente: 
 Kandidat: bytes32 – Die Kennung des Kandidaten, für den gestimmt werden soll.
    „““ 
 # Erhöhen Sie die Stimmenzahl für den angegebenen Kandidaten.
    self.votes[Kandidat] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 Ermittelt die Gesamtzahl der Stimmen für einen Kandidaten.

    Argumente: 
 Kandidat: bytes32 – Die Kennung des Kandidaten, für den Stimmen abgerufen werden sollen.

    Rückgabe: 
 uint256 – Die Gesamtzahl der Stimmen, die der Kandidat erhalten hat.
    „““ 
 return self.votes[candidate]

Dieser Vertrag ist recht einfach und enthält keine Vorkehrungen gegen doppelte oder unbefugte Stimmabgaben. In der Praxis müssten Sie Verfahren einführen, um diese Schwierigkeiten zu verhindern, wie z. B. eine Wählerregistrierung und eine Überprüfung, um sicherzustellen, dass jede Adresse nur einmal wählen kann.

Fazit und nächste Schritte

Mit Abschluss dieses Kurses haben Sie eine solide Grundlage für die Blockchain-Programmierung mit Vyper geschaffen. Sie verfügen jetzt über ein solides Verständnis von Ethereum, intelligenten Verträgen und deren Erstellung in der Remix-IDE mit Vyper. Dieses Verständnis eröffnet eine Welt voller Möglichkeiten für die Entwicklung dezentraler Anwendungen und die Teilnahme am Blockchain-Ökosystem.

Um Ihre Fähigkeiten und Kenntnisse weiter zu verbessern, sollten Sie die Erkundung der folgenden Bereiche in Betracht ziehen:

  1. Erweiterte Solidity-Programmierung: Solidity ist eine weitere beliebte Programmiersprache für Ethereum-Smart-Contracts. Das Erlernen von Solidity erweitert Ihre Fähigkeit, mit bestehenden Verträgen zu arbeiten und einen Beitrag zur Ethereum-Community zu leisten. Schauen Sie sich unseren Kurs hier an: [Link zum Solidity-Kurs einfügen, wenn online]

  2. Entwicklung dezentraler Anwendungen (DApp): Tauchen Sie tiefer in die Entwicklung vollständiger dezentraler Anwendungen ein, indem Sie Smart Contracts mit Front-End-Entwicklung mithilfe von Frameworks wie Web3.js, React oder Vue.js kombinieren. Dadurch können Sie interaktive Benutzeroberflächen erstellen, die mit Ihren Smart Contracts interagieren.

  3. Sicherheit und Prüfung: Entdecken Sie Best Practices für die Sicherung intelligenter Verträge und die Durchführung gründlicher Code-Prüfungen. Das Verständnis potenzieller Schwachstellen und die Minderung von Risiken gewährleisten die Zuverlässigkeit und Sicherheit Ihrer Smart Contracts.

  4. Blockchain-Interoperabilität: Untersuchen Sie die Integration verschiedener Blockchain-Netzwerke und -Protokolle. Erfahren Sie mehr über kettenübergreifende Kommunikation und die Entwicklung interoperabler Smart Contracts, die mit mehreren Blockchains interagieren können.
    Denken Sie daran, dass sich die Blockchain-Technologie ständig weiterentwickelt und es wichtig ist, über die neuesten Fortschritte auf dem Laufenden zu bleiben. Treten Sie mit der Blockchain-Community in Kontakt, beteiligen Sie sich aktiv an Diskussionen und erkunden Sie neue Konzepte und Technologien, um informiert und auf dem neuesten Stand zu bleiben.

免責聲明
* 投資有風險,入市須謹慎。本課程不作為投資理財建議。
* 本課程由入駐Gate Learn的作者創作,觀點僅代表作者本人,絕不代表Gate Learn讚同其觀點或證實其描述。