Lektion 2

Grundlagen von Ethereum und Solidität

Ethereum ist eine Blockchain-basierte Plattform, die Smart Contracts und dezentrale Anwendungen (dApps) unterstützt.

Überblick über Ethereum

Ethereum ist eine Blockchain-basierte, verteilte Open-Source-Softwareplattform, die sich zu einem großen Konkurrenten von Bitcoin entwickelt hat. Ethereum wurde erstmals 2013 vom Kryptowährungsforscher Vitalik Buterin vorgeschlagen, der vorschlug, Bitcoin eine Skriptsprache für die Programmierung hinzuzufügen. Der Start erfolgte am 30. Juli 2015. Die Entwicklung von Ethereum wurde durch einen Online-Crowdsale gefördert, eine Art Crowdsourcing, bei dem Kryptowährungstoken ausgegeben wurden.

Weiterlesen: Was ist Ethereum?

Die native Kryptowährung von Ethereum heißt Ether (ETH) und verfügt über eine Programmiersprache namens Solidity. Blockchain, die zugrunde liegende Technologie von Ethereum, ist ein verteiltes Hauptbuch, das eine permanente, manipulationssichere Liste von Datensätzen führt. Diese dezentrale Architektur ermöglicht es Entwicklern, eine breite Palette dezentraler Anwendungen (dApps) zu erstellen und dabei das robuste Ökosystem und die Vielseitigkeit der Plattform zu nutzen.

Eines der Kernmerkmale von Ethereum ist die Unterstützung von Smart Contracts, bei denen es sich um digitale Verträge handelt, die automatisch auf der Grundlage vordefinierter Bedingungen ausgeführt werden, wie wir in Lektion 1 erwähnt haben. Diese intelligenten Verträge ermöglichen eine vertrauenswürdige Umgebung, in der Transaktionen sicher und transparent durchgeführt werden können, ohne dass Zwischenhändler erforderlich sind. Miner im Ethereum-Netzwerk produzierten Ether-Token, die nicht nur als Währung, sondern auch als Mittel zur Bezahlung der Nutzungsgebühren auf der Plattform dienten; Nach „The Merge“ ist Ethereum zu einem Proof-of-Stake (PoS)-Mechanismus übergegangen, bei dem Validatoren (nicht Miner) Transaktionen validieren und neue Blöcke erstellen. Anstatt Ether-Token zu produzieren, verdienen Validatoren für ihre Teilnahme am Netzwerk Transaktionsgebühren und Blockprämien in Ether. Ether dient weiterhin als Zahlungsmittel für Nutzungsgebühren auf der Plattform, seine Ausgabe und Verteilung unterscheiden sich jedoch vom vorherigen Proof-of-Work (PoW)-Mechanismus.

Die Fähigkeit von Ethereum, dApps und Smart Contracts zu hosten, hat großes Interesse bei Entwicklern und Organisationen geweckt und es zu einer führenden Plattform für die Entwicklung innovativer Lösungen in verschiedenen Branchen gemacht, darunter unter anderem im Finanzwesen, in der Lieferkette und im Gaming. Während sich das Ethereum-Ökosystem weiterentwickelt, bleibt es an der Spitze der Blockchain-Technologie, treibt Innovationen voran und fördert eine blühende Gemeinschaft von Entwicklern und Benutzern gleichermaßen.

Weiterlesen: Was ist die Fusion?

Weiterlesen: Was ist DApp?

Einführung in die Programmiersprache Solidity

Solidity ist eine statisch typisierte Programmiersprache auf hoher Ebene, die speziell für das Schreiben intelligenter Verträge auf der Ethereum-Blockchain entwickelt wurde. Die Syntax von Solidity wurde vom Kernteam von Ethereum entwickelt und ist von JavaScript beeinflusst, wodurch sie einem breiten Spektrum von Entwicklern vertraut und zugänglich ist. Die Sprache ist Turing-vollständig und ermöglicht es Entwicklern, komplexe Logik zu erstellen und verschiedene Funktionalitäten in ihren Smart Contracts zu implementieren. Solidity kompiliert den Bytecode der Ethereum Virtual Machine (EVM), der im Ethereum-Netzwerk ausgeführt wird.

In Solidity können Entwickler unter anderem benutzerdefinierte Datenstrukturen definieren, benutzerdefinierte Funktionen erstellen und Zugriffskontrollmechanismen implementieren. Mit Solidity ist es möglich, eine breite Palette dezentraler Anwendungen zu erstellen, darunter dezentrale Finanzplattformen (DeFi), nicht fungible Token (NFTs), dezentrale autonome Organisationen (DAOs) und mehr.

Struktur eines Solidity-Vertrags: Beispiel

Ein Solidity-Vertrag ist ein in sich geschlossener Code, der unter anderem aus Variablen, Funktionen, Ereignissen und Modifikatoren besteht. Die Grundstruktur eines Solidity-Vertrags ist wie folgt:

  1. Pragma-Direktive: Diese Zeile gibt die kompatible Solidity-Compiler-Version für den Smart Contract an. Zum Beispiel:

    Solidität 
     Pragma Solidität ^0.8.0;
    
  2. Vertragsdefinition: Diese Zeile deklariert den Vertrag und seinen Namen. \
    Zum Beispiel:

    Solidität 
     Vertrag SimpleToken {
    
  3. Statusvariablen: Dies sind Variablen, die den Vertragsstatus auf der Blockchain speichern. Sie können beispielsweise den Gesamtvorrat eines Tokens speichern:

    Solidität 
     uint256 public totalSupply;
    
  4. Funktionen: Funktionen definieren das Verhalten des Vertrags und können von externen Benutzern oder anderen Verträgen aufgerufen werden. Hier ist eine einfache Funktion zum Übertragen von Token:

    Solidity 
     Funktionsübertragung (Adressempfänger, uint256-Betrag) öffentlich {
     // ... transfer logic ...
    }
    
  5. Ereignisse: Ereignisse werden zur Protokollierung bestimmter Aktionen im Vertrag verwendet und können von externen Benutzern oder Verträgen überwacht werden. Zum Beispiel ein Transfer-Ereignis in einem Token-Vertrag:

    Solidity 
     Ereignisübertragung (Adresse indiziert von, Adresse indiziert nach, uint256-Wert);
    
  6. Modifikatoren: Modifikatoren werden verwendet, um das Verhalten von Funktionen zu ändern, normalerweise für die Zugriffskontrolle oder Vorbedingungsprüfungen. Beispielsweise ein Modifikator, um zu prüfen, ob der Absender über genügend Token zum Übertragen verfügt:

    JavaScript 
     Modifikator hasEnoughTokens(uint256 amount) {
     require(balanceOf[msg.sender] >= amount, "Insufficient balance");
     _;
    }
    
  7. Konstruktor: Der Konstruktor ist eine spezielle Funktion, die die Statusvariablen des Vertrags initialisiert, wenn er bereitgestellt wird. Initialisieren Sie beispielsweise den Gesamtvorrat eines Tokens:

    JavaScript 
     Konstruktor (uint256 _totalSupply) {
     totalSupply = _totalSupply;
     balanceOf[msg.sender] = _totalSupply;
    }
    

Alles in allem könnte ein einfacher Solidity-Vertrag für einen Token so aussehen:

TypeScript 
 Pragma-Solidität ^0.8.0; 

 Vertrag SimpleToken { 
 uint256 public totalSupply; 
 Mapping(address => uint256) public balanceOf; 

 Ereignisübertragung (Adresse indiziert von, Adresse indiziert bis, uint256-Wert); 

 Modifikator hasEnoughTokens(uint256 amount) {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        _;
    }
}

Höhepunkte
Ethereum ist eine Blockchain-basierte Plattform, die Smart Contracts und dezentrale Anwendungen (dApps) unterstützt.
Die native Kryptowährung von Ethereum ist Ether (ETH).
Solidity ist eine High-Level-Programmiersprache, die zum Schreiben intelligenter Verträge auf Ethereum verwendet wird.
Intelligente Verträge auf Ethereum werden automatisch basierend auf vordefinierten Bedingungen ausgeführt.
Ethereum ist auf einen Proof-of-Stake (PoS)-Mechanismus zur Validierung von Transaktionen und zur Erstellung neuer Blöcke umgestiegen.
Mit Solidity können Entwickler Datenstrukturen definieren, Funktionen erstellen, Zugriffskontrolle implementieren und mehr.
Das Ökosystem von Ethereum zieht Entwickler und Organisationen aus verschiedenen Branchen an.
Soliditätsverträge bestehen aus Pragmas, Vertragsdefinitionen, Zustandsvariablen, Funktionen, Ereignissen, Modifikatoren und Konstruktoren.
Solidity-Verträge können zum Erstellen von DeFi-Plattformen, NFTs, DAOs und mehr verwendet werden.

Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.
Katalog
Lektion 2

Grundlagen von Ethereum und Solidität

Ethereum ist eine Blockchain-basierte Plattform, die Smart Contracts und dezentrale Anwendungen (dApps) unterstützt.

Überblick über Ethereum

Ethereum ist eine Blockchain-basierte, verteilte Open-Source-Softwareplattform, die sich zu einem großen Konkurrenten von Bitcoin entwickelt hat. Ethereum wurde erstmals 2013 vom Kryptowährungsforscher Vitalik Buterin vorgeschlagen, der vorschlug, Bitcoin eine Skriptsprache für die Programmierung hinzuzufügen. Der Start erfolgte am 30. Juli 2015. Die Entwicklung von Ethereum wurde durch einen Online-Crowdsale gefördert, eine Art Crowdsourcing, bei dem Kryptowährungstoken ausgegeben wurden.

Weiterlesen: Was ist Ethereum?

Die native Kryptowährung von Ethereum heißt Ether (ETH) und verfügt über eine Programmiersprache namens Solidity. Blockchain, die zugrunde liegende Technologie von Ethereum, ist ein verteiltes Hauptbuch, das eine permanente, manipulationssichere Liste von Datensätzen führt. Diese dezentrale Architektur ermöglicht es Entwicklern, eine breite Palette dezentraler Anwendungen (dApps) zu erstellen und dabei das robuste Ökosystem und die Vielseitigkeit der Plattform zu nutzen.

Eines der Kernmerkmale von Ethereum ist die Unterstützung von Smart Contracts, bei denen es sich um digitale Verträge handelt, die automatisch auf der Grundlage vordefinierter Bedingungen ausgeführt werden, wie wir in Lektion 1 erwähnt haben. Diese intelligenten Verträge ermöglichen eine vertrauenswürdige Umgebung, in der Transaktionen sicher und transparent durchgeführt werden können, ohne dass Zwischenhändler erforderlich sind. Miner im Ethereum-Netzwerk produzierten Ether-Token, die nicht nur als Währung, sondern auch als Mittel zur Bezahlung der Nutzungsgebühren auf der Plattform dienten; Nach „The Merge“ ist Ethereum zu einem Proof-of-Stake (PoS)-Mechanismus übergegangen, bei dem Validatoren (nicht Miner) Transaktionen validieren und neue Blöcke erstellen. Anstatt Ether-Token zu produzieren, verdienen Validatoren für ihre Teilnahme am Netzwerk Transaktionsgebühren und Blockprämien in Ether. Ether dient weiterhin als Zahlungsmittel für Nutzungsgebühren auf der Plattform, seine Ausgabe und Verteilung unterscheiden sich jedoch vom vorherigen Proof-of-Work (PoW)-Mechanismus.

Die Fähigkeit von Ethereum, dApps und Smart Contracts zu hosten, hat großes Interesse bei Entwicklern und Organisationen geweckt und es zu einer führenden Plattform für die Entwicklung innovativer Lösungen in verschiedenen Branchen gemacht, darunter unter anderem im Finanzwesen, in der Lieferkette und im Gaming. Während sich das Ethereum-Ökosystem weiterentwickelt, bleibt es an der Spitze der Blockchain-Technologie, treibt Innovationen voran und fördert eine blühende Gemeinschaft von Entwicklern und Benutzern gleichermaßen.

Weiterlesen: Was ist die Fusion?

Weiterlesen: Was ist DApp?

Einführung in die Programmiersprache Solidity

Solidity ist eine statisch typisierte Programmiersprache auf hoher Ebene, die speziell für das Schreiben intelligenter Verträge auf der Ethereum-Blockchain entwickelt wurde. Die Syntax von Solidity wurde vom Kernteam von Ethereum entwickelt und ist von JavaScript beeinflusst, wodurch sie einem breiten Spektrum von Entwicklern vertraut und zugänglich ist. Die Sprache ist Turing-vollständig und ermöglicht es Entwicklern, komplexe Logik zu erstellen und verschiedene Funktionalitäten in ihren Smart Contracts zu implementieren. Solidity kompiliert den Bytecode der Ethereum Virtual Machine (EVM), der im Ethereum-Netzwerk ausgeführt wird.

In Solidity können Entwickler unter anderem benutzerdefinierte Datenstrukturen definieren, benutzerdefinierte Funktionen erstellen und Zugriffskontrollmechanismen implementieren. Mit Solidity ist es möglich, eine breite Palette dezentraler Anwendungen zu erstellen, darunter dezentrale Finanzplattformen (DeFi), nicht fungible Token (NFTs), dezentrale autonome Organisationen (DAOs) und mehr.

Struktur eines Solidity-Vertrags: Beispiel

Ein Solidity-Vertrag ist ein in sich geschlossener Code, der unter anderem aus Variablen, Funktionen, Ereignissen und Modifikatoren besteht. Die Grundstruktur eines Solidity-Vertrags ist wie folgt:

  1. Pragma-Direktive: Diese Zeile gibt die kompatible Solidity-Compiler-Version für den Smart Contract an. Zum Beispiel:

    Solidität 
     Pragma Solidität ^0.8.0;
    
  2. Vertragsdefinition: Diese Zeile deklariert den Vertrag und seinen Namen. \
    Zum Beispiel:

    Solidität 
     Vertrag SimpleToken {
    
  3. Statusvariablen: Dies sind Variablen, die den Vertragsstatus auf der Blockchain speichern. Sie können beispielsweise den Gesamtvorrat eines Tokens speichern:

    Solidität 
     uint256 public totalSupply;
    
  4. Funktionen: Funktionen definieren das Verhalten des Vertrags und können von externen Benutzern oder anderen Verträgen aufgerufen werden. Hier ist eine einfache Funktion zum Übertragen von Token:

    Solidity 
     Funktionsübertragung (Adressempfänger, uint256-Betrag) öffentlich {
     // ... transfer logic ...
    }
    
  5. Ereignisse: Ereignisse werden zur Protokollierung bestimmter Aktionen im Vertrag verwendet und können von externen Benutzern oder Verträgen überwacht werden. Zum Beispiel ein Transfer-Ereignis in einem Token-Vertrag:

    Solidity 
     Ereignisübertragung (Adresse indiziert von, Adresse indiziert nach, uint256-Wert);
    
  6. Modifikatoren: Modifikatoren werden verwendet, um das Verhalten von Funktionen zu ändern, normalerweise für die Zugriffskontrolle oder Vorbedingungsprüfungen. Beispielsweise ein Modifikator, um zu prüfen, ob der Absender über genügend Token zum Übertragen verfügt:

    JavaScript 
     Modifikator hasEnoughTokens(uint256 amount) {
     require(balanceOf[msg.sender] >= amount, "Insufficient balance");
     _;
    }
    
  7. Konstruktor: Der Konstruktor ist eine spezielle Funktion, die die Statusvariablen des Vertrags initialisiert, wenn er bereitgestellt wird. Initialisieren Sie beispielsweise den Gesamtvorrat eines Tokens:

    JavaScript 
     Konstruktor (uint256 _totalSupply) {
     totalSupply = _totalSupply;
     balanceOf[msg.sender] = _totalSupply;
    }
    

Alles in allem könnte ein einfacher Solidity-Vertrag für einen Token so aussehen:

TypeScript 
 Pragma-Solidität ^0.8.0; 

 Vertrag SimpleToken { 
 uint256 public totalSupply; 
 Mapping(address => uint256) public balanceOf; 

 Ereignisübertragung (Adresse indiziert von, Adresse indiziert bis, uint256-Wert); 

 Modifikator hasEnoughTokens(uint256 amount) {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        _;
    }
}

Höhepunkte
Ethereum ist eine Blockchain-basierte Plattform, die Smart Contracts und dezentrale Anwendungen (dApps) unterstützt.
Die native Kryptowährung von Ethereum ist Ether (ETH).
Solidity ist eine High-Level-Programmiersprache, die zum Schreiben intelligenter Verträge auf Ethereum verwendet wird.
Intelligente Verträge auf Ethereum werden automatisch basierend auf vordefinierten Bedingungen ausgeführt.
Ethereum ist auf einen Proof-of-Stake (PoS)-Mechanismus zur Validierung von Transaktionen und zur Erstellung neuer Blöcke umgestiegen.
Mit Solidity können Entwickler Datenstrukturen definieren, Funktionen erstellen, Zugriffskontrolle implementieren und mehr.
Das Ökosystem von Ethereum zieht Entwickler und Organisationen aus verschiedenen Branchen an.
Soliditätsverträge bestehen aus Pragmas, Vertragsdefinitionen, Zustandsvariablen, Funktionen, Ereignissen, Modifikatoren und Konstruktoren.
Solidity-Verträge können zum Erstellen von DeFi-Plattformen, NFTs, DAOs und mehr verwendet werden.

Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.