الدرس رقم 1

Überblick über einen dezentralen Marktplatz und eine Remix-IDE

In dieser Lektion erfahren wir zunächst, was ein dezentraler Marktplatz ist und wie er funktioniert. Anschließend machen wir uns mit der Remix-IDE vertraut und schreiben einen einfachen Solidity-Vertrag.

Dezentrale Marktplätze verstehen

Auf traditionellen E-Commerce-Marktplätzen wie Amazon und eBay erleichtert eine zentrale Behörde die Transaktionen zwischen Käufern und Verkäufern. Diese zentrale Behörde kontrolliert die Transaktionen, pflegt die Produktlisten und verwaltet die Streitbeilegung. Dieses zentralisierte Modell hat zwar seine Vorteile, aber auch einige Nachteile, darunter das Risiko der Zensur, hohe Gebühren und die Abhängigkeit von Vertrauen.

Andererseits nutzt ein dezentraler Marktplatz die Blockchain-Technologie, um Peer-to-Peer-Transaktionen ohne Zwischenhändler zu ermöglichen. Dadurch entfällt die Notwendigkeit von Vertrauen, da Transaktionen für alle Teilnehmer der Blockchain transparent und überprüfbar sind. Beispiele für dezentrale Marktplätze sind OpenBazaar und Origin Protocol.

Einführung in die Remix-IDE

Remix IDE (Integrated Development Environment) ist ein leistungsstarkes Open-Source-Tool, das speziell für die Entwicklung intelligenter Ethereum-Verträge entwickelt wurde. Es läuft direkt in Ihrem Webbrowser, sodass Sie nichts auf Ihrem Computer installieren müssen.

Sie können auf die Remix-IDE unter https://remix.ethereum.org zugreifen. Wenn Sie Remix in Ihrem Browser öffnen, finden Sie drei Bereiche:

  1. Linker Bereich: Hier können Sie Ihre Solidity-Dateien erstellen, importieren und verwalten. Es enthält außerdem verschiedene Plugins zum Kompilieren, Testen, Debuggen und Bereitstellen Ihrer Verträge.

  2. Zentrales Panel: Dies ist Ihr Code-Editor. Hier schreiben und bearbeiten Sie Ihren Solidity-Code.

  3. Rechtes Panel: Dieses Panel bietet verschiedene Tools zum Zusammenstellen Ihrer Verträge, zum Bereitstellen im Ethereum-Netzwerk (entweder in einem echten Ethereum-Netzwerk oder in einer JavaScript-VM-Simulation) und zum Interagieren mit Ihren bereitgestellten Verträgen.

Ihr erster Solidity-Vertrag: „Item“-Vertrag

In diesem Teil werden wir unseren ersten Solidity-Vertrag schreiben. Dieser Vertrag stellt einen grundlegenden „Artikel“ auf unserem Marktplatz dar.

Erstellen Sie zunächst eine neue Datei in Remix, indem Sie auf das zweite Symbol von oben im linken Bereich (das Dateisymbol) klicken. Im zentralen Bereich wird ein neuer Dialog angezeigt. Geben Sie Item.sol als Dateinamen ein und klicken Sie auf „OK“.

Jetzt können wir mit der Vertragserstellung beginnen:

Solidity 
 // SPDX-License-Identifier: MIT 
 Pragma Solidity ^0.8.6; 

 Contract Item { 
 // Definieren Sie ein Ereignis, das ausgelöst wird, wenn ein neues Element erstellt wird 
 event NewItem(uint itemId, string itemName, uint itemPrice); 

 // Jeder Artikel hat eine ID, einen Namen und einen Preis 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Array zur Aufnahme aller Artikel 
 ItemStruct[] public items; 

 // Funktion zum Erstellen eines neuen Artikels 
 function createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Lassen Sie uns die verschiedenen Teile dieses Vertrags erklären:

  1. SPDX-Lizenzkennung: Dies ist eine Standardmethode zum Ausdrücken der Vertragslizenz. Die Zeile // SPDX-License-Identifier: MIT gibt an, dass unser Vertrag die freizügige MIT-Lizenz verwendet.

  2. Pragma-Richtlinie: pragma solidity ^0.8.6; Gibt an, dass der Vertrag in Solidity Version 0.8.6 geschrieben ist. Das ^ -Symbol bedeutet, dass es auch mit allen neueren Versionen bis einschließlich Version 0.9.0 kompatibel ist.

  3. Vertragsdefinition: contract Item {...} definiert einen neuen Vertrag mit dem Namen Item. Hier schreiben wir die Zustandsvariablen und Funktionen des Vertrags.

  4. Ereignisdefinition: event NewItem(uint itemId, string itemName, uint itemPrice); definiert ein Ereignis, das wir immer dann ausgeben können, wenn ein neues Element erstellt wird. Ereignisse sind eine Möglichkeit für Smart Contracts, Aktivitäten zu protokollieren, die externe Parteien abhören können.

  5. Strukturdefinition: struct ItemStruct {...} definiert einen neuen Datentyp ItemStruct, der einen Artikel mit einem name und einem price darstellt.

  6. Statusvariable: ItemStruct[] public items; deklariert eine Statusvariable items , die ein Array von ItemStructs enthält. Das Schlüsselwort public erstellt automatisch eine Getter-Funktion, die es jedem ermöglicht, auf die Liste der Elemente zuzugreifen.

  7. Funktionsdefinition: function createItem(string memory _name, uint _price) public {...} definiert eine öffentliche Funktion, die jeder aufrufen kann, um ein neues Element zu erstellen. Die Funktion nimmt einen Namen und einen Preis entgegen, erstellt eine neue ItemStruct, fügt sie dem items Array hinzu und gibt ein NewItem Ereignis aus.
    Um diesen Vertrag zu erstellen, gehen Sie zum rechten Bereich und klicken Sie auf das dritte Symbol von oben (das Solidity-Logo). Hier können Sie den Vertrag zusammenstellen. Klicken Sie auf die Schaltfläche „Kompilieren“. Wenn keine Fehler vorliegen, wird Ihr Vertrag erfolgreich zusammengestellt.

Möglicherweise erscheint im linken Bereich eine Frage:

Bei der Frage zu Swarm oder IPFS geht es um die Methode, die Remix zum Speichern der Metadaten Ihres Vertrags verwendet. Gehen wir sie durch:

  1. IPFS: Das InterPlanetary File System (IPFS) ist ein Protokoll zur Erstellung eines permanenten und dezentralen Webs. Es ist wie ein einzelner BitTorrent-Schwarm, der Objekte innerhalb eines Git-Repositorys austauscht.

  2. Swarm: Swarm ist eine verteilte Speicherplattform und ein Content-Verteilungsdienst, der im Ethereum Web3-Stack integriert ist. Es ermöglicht einem Netzwerk von Peers, Daten zu speichern und zu verteilen.
    Wenn Sie einen Vertrag kompilieren, generiert der Solidity-Compiler eine JSON-Datei, die unter anderem sein Application Binary Interface (ABI) und seinen Bytecode enthält. Dies werden die Metadaten des Vertrags genannt. Durch die Speicherung dieser Metadaten in einem dezentralen Speichernetzwerk wird sichergestellt, dass sie dauerhaft verfügbar sind, und sie können zur Überprüfung des Quellcodes des Vertrags nützlich sein.

Für Ihren Lernzweck und wenn Sie nicht vorhaben, den Vertrag auf Etherscan oder einem anderen Block-Explorer zu überprüfen, können Sie jedoch entweder Swarm oder IPFS wählen oder es einfach ignorieren und mit den nächsten Schritten Ihres Lernens fortfahren. Denken Sie daran, dass das Hauptaugenmerk in dieser Phase darauf liegt, zu verstehen, wie der Vertrag geschrieben, kompiliert und bereitgestellt wird.

إخلاء المسؤولية
* ينطوي الاستثمار في العملات الرقمية على مخاطر كبيرة. فيرجى المتابعة بحذر. ولا تهدف الدورة التدريبية إلى تقديم المشورة الاستثمارية.
* تم إنشاء الدورة التدريبية من قبل المؤلف الذي انضم إلى مركز التعلّم في Gate. ويُرجى العلم أنّ أي رأي يشاركه المؤلف لا يمثّل مركز التعلّم في Gate.
الكتالوج
الدرس رقم 1

Überblick über einen dezentralen Marktplatz und eine Remix-IDE

In dieser Lektion erfahren wir zunächst, was ein dezentraler Marktplatz ist und wie er funktioniert. Anschließend machen wir uns mit der Remix-IDE vertraut und schreiben einen einfachen Solidity-Vertrag.

Dezentrale Marktplätze verstehen

Auf traditionellen E-Commerce-Marktplätzen wie Amazon und eBay erleichtert eine zentrale Behörde die Transaktionen zwischen Käufern und Verkäufern. Diese zentrale Behörde kontrolliert die Transaktionen, pflegt die Produktlisten und verwaltet die Streitbeilegung. Dieses zentralisierte Modell hat zwar seine Vorteile, aber auch einige Nachteile, darunter das Risiko der Zensur, hohe Gebühren und die Abhängigkeit von Vertrauen.

Andererseits nutzt ein dezentraler Marktplatz die Blockchain-Technologie, um Peer-to-Peer-Transaktionen ohne Zwischenhändler zu ermöglichen. Dadurch entfällt die Notwendigkeit von Vertrauen, da Transaktionen für alle Teilnehmer der Blockchain transparent und überprüfbar sind. Beispiele für dezentrale Marktplätze sind OpenBazaar und Origin Protocol.

Einführung in die Remix-IDE

Remix IDE (Integrated Development Environment) ist ein leistungsstarkes Open-Source-Tool, das speziell für die Entwicklung intelligenter Ethereum-Verträge entwickelt wurde. Es läuft direkt in Ihrem Webbrowser, sodass Sie nichts auf Ihrem Computer installieren müssen.

Sie können auf die Remix-IDE unter https://remix.ethereum.org zugreifen. Wenn Sie Remix in Ihrem Browser öffnen, finden Sie drei Bereiche:

  1. Linker Bereich: Hier können Sie Ihre Solidity-Dateien erstellen, importieren und verwalten. Es enthält außerdem verschiedene Plugins zum Kompilieren, Testen, Debuggen und Bereitstellen Ihrer Verträge.

  2. Zentrales Panel: Dies ist Ihr Code-Editor. Hier schreiben und bearbeiten Sie Ihren Solidity-Code.

  3. Rechtes Panel: Dieses Panel bietet verschiedene Tools zum Zusammenstellen Ihrer Verträge, zum Bereitstellen im Ethereum-Netzwerk (entweder in einem echten Ethereum-Netzwerk oder in einer JavaScript-VM-Simulation) und zum Interagieren mit Ihren bereitgestellten Verträgen.

Ihr erster Solidity-Vertrag: „Item“-Vertrag

In diesem Teil werden wir unseren ersten Solidity-Vertrag schreiben. Dieser Vertrag stellt einen grundlegenden „Artikel“ auf unserem Marktplatz dar.

Erstellen Sie zunächst eine neue Datei in Remix, indem Sie auf das zweite Symbol von oben im linken Bereich (das Dateisymbol) klicken. Im zentralen Bereich wird ein neuer Dialog angezeigt. Geben Sie Item.sol als Dateinamen ein und klicken Sie auf „OK“.

Jetzt können wir mit der Vertragserstellung beginnen:

Solidity 
 // SPDX-License-Identifier: MIT 
 Pragma Solidity ^0.8.6; 

 Contract Item { 
 // Definieren Sie ein Ereignis, das ausgelöst wird, wenn ein neues Element erstellt wird 
 event NewItem(uint itemId, string itemName, uint itemPrice); 

 // Jeder Artikel hat eine ID, einen Namen und einen Preis 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Array zur Aufnahme aller Artikel 
 ItemStruct[] public items; 

 // Funktion zum Erstellen eines neuen Artikels 
 function createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Lassen Sie uns die verschiedenen Teile dieses Vertrags erklären:

  1. SPDX-Lizenzkennung: Dies ist eine Standardmethode zum Ausdrücken der Vertragslizenz. Die Zeile // SPDX-License-Identifier: MIT gibt an, dass unser Vertrag die freizügige MIT-Lizenz verwendet.

  2. Pragma-Richtlinie: pragma solidity ^0.8.6; Gibt an, dass der Vertrag in Solidity Version 0.8.6 geschrieben ist. Das ^ -Symbol bedeutet, dass es auch mit allen neueren Versionen bis einschließlich Version 0.9.0 kompatibel ist.

  3. Vertragsdefinition: contract Item {...} definiert einen neuen Vertrag mit dem Namen Item. Hier schreiben wir die Zustandsvariablen und Funktionen des Vertrags.

  4. Ereignisdefinition: event NewItem(uint itemId, string itemName, uint itemPrice); definiert ein Ereignis, das wir immer dann ausgeben können, wenn ein neues Element erstellt wird. Ereignisse sind eine Möglichkeit für Smart Contracts, Aktivitäten zu protokollieren, die externe Parteien abhören können.

  5. Strukturdefinition: struct ItemStruct {...} definiert einen neuen Datentyp ItemStruct, der einen Artikel mit einem name und einem price darstellt.

  6. Statusvariable: ItemStruct[] public items; deklariert eine Statusvariable items , die ein Array von ItemStructs enthält. Das Schlüsselwort public erstellt automatisch eine Getter-Funktion, die es jedem ermöglicht, auf die Liste der Elemente zuzugreifen.

  7. Funktionsdefinition: function createItem(string memory _name, uint _price) public {...} definiert eine öffentliche Funktion, die jeder aufrufen kann, um ein neues Element zu erstellen. Die Funktion nimmt einen Namen und einen Preis entgegen, erstellt eine neue ItemStruct, fügt sie dem items Array hinzu und gibt ein NewItem Ereignis aus.
    Um diesen Vertrag zu erstellen, gehen Sie zum rechten Bereich und klicken Sie auf das dritte Symbol von oben (das Solidity-Logo). Hier können Sie den Vertrag zusammenstellen. Klicken Sie auf die Schaltfläche „Kompilieren“. Wenn keine Fehler vorliegen, wird Ihr Vertrag erfolgreich zusammengestellt.

Möglicherweise erscheint im linken Bereich eine Frage:

Bei der Frage zu Swarm oder IPFS geht es um die Methode, die Remix zum Speichern der Metadaten Ihres Vertrags verwendet. Gehen wir sie durch:

  1. IPFS: Das InterPlanetary File System (IPFS) ist ein Protokoll zur Erstellung eines permanenten und dezentralen Webs. Es ist wie ein einzelner BitTorrent-Schwarm, der Objekte innerhalb eines Git-Repositorys austauscht.

  2. Swarm: Swarm ist eine verteilte Speicherplattform und ein Content-Verteilungsdienst, der im Ethereum Web3-Stack integriert ist. Es ermöglicht einem Netzwerk von Peers, Daten zu speichern und zu verteilen.
    Wenn Sie einen Vertrag kompilieren, generiert der Solidity-Compiler eine JSON-Datei, die unter anderem sein Application Binary Interface (ABI) und seinen Bytecode enthält. Dies werden die Metadaten des Vertrags genannt. Durch die Speicherung dieser Metadaten in einem dezentralen Speichernetzwerk wird sichergestellt, dass sie dauerhaft verfügbar sind, und sie können zur Überprüfung des Quellcodes des Vertrags nützlich sein.

Für Ihren Lernzweck und wenn Sie nicht vorhaben, den Vertrag auf Etherscan oder einem anderen Block-Explorer zu überprüfen, können Sie jedoch entweder Swarm oder IPFS wählen oder es einfach ignorieren und mit den nächsten Schritten Ihres Lernens fortfahren. Denken Sie daran, dass das Hauptaugenmerk in dieser Phase darauf liegt, zu verstehen, wie der Vertrag geschrieben, kompiliert und bereitgestellt wird.

إخلاء المسؤولية
* ينطوي الاستثمار في العملات الرقمية على مخاطر كبيرة. فيرجى المتابعة بحذر. ولا تهدف الدورة التدريبية إلى تقديم المشورة الاستثمارية.
* تم إنشاء الدورة التدريبية من قبل المؤلف الذي انضم إلى مركز التعلّم في Gate. ويُرجى العلم أنّ أي رأي يشاركه المؤلف لا يمثّل مركز التعلّم في Gate.