الدرس رقم 1

Einführung in die dezentrale Abstimmungs- und Remix-IDE

Willkommen zur ersten Lektion unseres Kurses zum Aufbau eines dezentralen Abstimmungssystems. In dieser Lektion werden wir das Konzept der dezentralen Abstimmung untersuchen und die Vorteile verstehen, die es für den Abstimmungsprozess mit sich bringt. Wir stellen Ihnen auch Remix IDE vor, ein leistungsstarkes Tool zur Entwicklung und Bereitstellung von Ethereum-Smart-Verträgen.

Dezentrale Abstimmung

Unter dezentraler Abstimmung versteht man ein Abstimmungssystem, das auf einer Blockchain läuft. Die Schlüsselidee besteht darin, die Transparenz, Sicherheit und Unveränderlichkeit der Blockchain-Technologie zu nutzen, um ein Abstimmungssystem aufzubauen, das schwer zu manipulieren und leicht zu überprüfen ist.

In einem dezentralen Abstimmungssystem ist jede Stimme eine Transaktion auf der Blockchain, die für alle Teilnehmer sichtbar ist, aber nur vom Wähler geändert werden kann, bis die Stimme abgegeben wird. Sobald eine Stimme abgegeben wurde, wird sie in der Blockchain aufgezeichnet und kann nicht verändert werden, wodurch ein transparenter und manipulationssicherer Abstimmungsmechanismus bereitgestellt wird.

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 Smart Contract

Beginnen wir mit einem einfachen „Wähler“-Vertrag. Dieser Vertrag wird die Wähler in unserem System verfolgen.

Gehen Sie in der Remix-IDE zum „Datei-Explorer“ und klicken Sie auf das „+“-Symbol, um eine neue Datei zu erstellen. Nennen Sie es Voter.sol.

Beginnen wir nun mit dem Schreiben unseres Vertrags:

Solidity 
 // SPDX-License-Identifier: GPL-3.0 
 Pragma Solidity >=0.7.0 <0.9.0; 

 Vertrag Wähler { 
 // Eine Struktur zur Darstellung einer Person 
 Struktur Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Eine Zuordnung zur Verfolgung aller Wähler 
 Zuordnung (Adresse => Person) öffentliche Wähler; 

 // Eine Funktion zum Registrieren eines Wählers 
 function registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. SPDX-Lizenzkennung: Die Zeile // SPDX-License-Identifier: GPL-3.0 gibt an, dass unser Vertrag die GNU General Public License v3.0 verwendet. Dies ist eine häufig verwendete Lizenz für freie Software, die Endbenutzern die Freiheit garantiert, die Software auszuführen, zu studieren, zu teilen und zu ändern.

  2. Pragma-Direktive: Die pragma solidity >=0.7.0 &lt;0.9.0; Die Anweisung gibt an, dass der Vertrag in einer Version von Solidity geschrieben ist, die größer oder gleich 0.7.0 und kleiner als 0.9.0 ist. Dadurch wird verhindert, dass der Vertrag mit einer neueren, inkompatiblen Compilerversion kompiliert wird.

  3. Vertragsdefinition: Der Block contract Voter {...} definiert einen neuen Vertrag mit dem Namen Voter. Hier legen wir die Zustandsvariablen und Funktionen des Vertrags fest.

  4. Strukturdefinition: Innerhalb des Vertrags definieren wir eine Struktur Person , die eine Person in unserem Abstimmungssystem darstellt. Jede Person verfügt über einen booleschen Wert „ voted “, der angibt, ob sie bereits abgestimmt hat, und über eine Ganzzahl vote “, die den Vorschlag verfolgt, für den sie gestimmt hat.

  5. Zustandsvariable: Die mapping(address => Person) public voters; Die Anweisung deklariert eine Zustandsvariable voters , die eine Verknüpfung zwischen einer Ethereum-Adresse und einer Person herstellt. Dadurch können wir nachverfolgen, wer im System wahlberechtigt ist und welche Stimme sie abgegeben haben. Das Schlüsselwort public erstellt automatisch eine Getter-Funktion für voters.

  6. Funktionsdefinition: Der function registerVoter() public {...} definiert eine öffentliche Funktion, die es Benutzern ermöglicht, sich selbst als Wähler im System zu registrieren. Die voters[msg.sender].voted = false; Die Anweisung setzt den voted des neuen Wählers auf false.
    Das war's mit diesem Vertrag! Im Laufe des Kurses werden wir diesen Vertrag erweitern, indem wir weitere Funktionen für den Abstimmungsprozess hinzufügen. Denken Sie daran, Ihren Code regelmäßig zu kompilieren und zu testen, um sicherzustellen, dass alles wie erwartet funktioniert. In der Remix-IDE können Sie Ihren Vertrag kompilieren, indem Sie auf das Solidity-Compiler-Symbol in der linken Seitenleiste (das dritte von oben) und dann auf die Schaltfläche „Kompilieren“ klicken.

In der nächsten Lektion lernen wir, wie man registrierten Wählern die Stimmabgabe ermöglicht und wie man die Logik für ein Wahlsystem implementiert. Aber spielen Sie zunächst einmal mit dem Vertrag herum und machen Sie sich mit der Remix-Umgebung vertraut. Sie haben gerade Ihren ersten Schritt in die Welt der intelligenten Vertragsentwicklung gemacht!

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

Einführung in die dezentrale Abstimmungs- und Remix-IDE

Willkommen zur ersten Lektion unseres Kurses zum Aufbau eines dezentralen Abstimmungssystems. In dieser Lektion werden wir das Konzept der dezentralen Abstimmung untersuchen und die Vorteile verstehen, die es für den Abstimmungsprozess mit sich bringt. Wir stellen Ihnen auch Remix IDE vor, ein leistungsstarkes Tool zur Entwicklung und Bereitstellung von Ethereum-Smart-Verträgen.

Dezentrale Abstimmung

Unter dezentraler Abstimmung versteht man ein Abstimmungssystem, das auf einer Blockchain läuft. Die Schlüsselidee besteht darin, die Transparenz, Sicherheit und Unveränderlichkeit der Blockchain-Technologie zu nutzen, um ein Abstimmungssystem aufzubauen, das schwer zu manipulieren und leicht zu überprüfen ist.

In einem dezentralen Abstimmungssystem ist jede Stimme eine Transaktion auf der Blockchain, die für alle Teilnehmer sichtbar ist, aber nur vom Wähler geändert werden kann, bis die Stimme abgegeben wird. Sobald eine Stimme abgegeben wurde, wird sie in der Blockchain aufgezeichnet und kann nicht verändert werden, wodurch ein transparenter und manipulationssicherer Abstimmungsmechanismus bereitgestellt wird.

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 Smart Contract

Beginnen wir mit einem einfachen „Wähler“-Vertrag. Dieser Vertrag wird die Wähler in unserem System verfolgen.

Gehen Sie in der Remix-IDE zum „Datei-Explorer“ und klicken Sie auf das „+“-Symbol, um eine neue Datei zu erstellen. Nennen Sie es Voter.sol.

Beginnen wir nun mit dem Schreiben unseres Vertrags:

Solidity 
 // SPDX-License-Identifier: GPL-3.0 
 Pragma Solidity >=0.7.0 <0.9.0; 

 Vertrag Wähler { 
 // Eine Struktur zur Darstellung einer Person 
 Struktur Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Eine Zuordnung zur Verfolgung aller Wähler 
 Zuordnung (Adresse => Person) öffentliche Wähler; 

 // Eine Funktion zum Registrieren eines Wählers 
 function registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. SPDX-Lizenzkennung: Die Zeile // SPDX-License-Identifier: GPL-3.0 gibt an, dass unser Vertrag die GNU General Public License v3.0 verwendet. Dies ist eine häufig verwendete Lizenz für freie Software, die Endbenutzern die Freiheit garantiert, die Software auszuführen, zu studieren, zu teilen und zu ändern.

  2. Pragma-Direktive: Die pragma solidity >=0.7.0 &lt;0.9.0; Die Anweisung gibt an, dass der Vertrag in einer Version von Solidity geschrieben ist, die größer oder gleich 0.7.0 und kleiner als 0.9.0 ist. Dadurch wird verhindert, dass der Vertrag mit einer neueren, inkompatiblen Compilerversion kompiliert wird.

  3. Vertragsdefinition: Der Block contract Voter {...} definiert einen neuen Vertrag mit dem Namen Voter. Hier legen wir die Zustandsvariablen und Funktionen des Vertrags fest.

  4. Strukturdefinition: Innerhalb des Vertrags definieren wir eine Struktur Person , die eine Person in unserem Abstimmungssystem darstellt. Jede Person verfügt über einen booleschen Wert „ voted “, der angibt, ob sie bereits abgestimmt hat, und über eine Ganzzahl vote “, die den Vorschlag verfolgt, für den sie gestimmt hat.

  5. Zustandsvariable: Die mapping(address => Person) public voters; Die Anweisung deklariert eine Zustandsvariable voters , die eine Verknüpfung zwischen einer Ethereum-Adresse und einer Person herstellt. Dadurch können wir nachverfolgen, wer im System wahlberechtigt ist und welche Stimme sie abgegeben haben. Das Schlüsselwort public erstellt automatisch eine Getter-Funktion für voters.

  6. Funktionsdefinition: Der function registerVoter() public {...} definiert eine öffentliche Funktion, die es Benutzern ermöglicht, sich selbst als Wähler im System zu registrieren. Die voters[msg.sender].voted = false; Die Anweisung setzt den voted des neuen Wählers auf false.
    Das war's mit diesem Vertrag! Im Laufe des Kurses werden wir diesen Vertrag erweitern, indem wir weitere Funktionen für den Abstimmungsprozess hinzufügen. Denken Sie daran, Ihren Code regelmäßig zu kompilieren und zu testen, um sicherzustellen, dass alles wie erwartet funktioniert. In der Remix-IDE können Sie Ihren Vertrag kompilieren, indem Sie auf das Solidity-Compiler-Symbol in der linken Seitenleiste (das dritte von oben) und dann auf die Schaltfläche „Kompilieren“ klicken.

In der nächsten Lektion lernen wir, wie man registrierten Wählern die Stimmabgabe ermöglicht und wie man die Logik für ein Wahlsystem implementiert. Aber spielen Sie zunächst einmal mit dem Vertrag herum und machen Sie sich mit der Remix-Umgebung vertraut. Sie haben gerade Ihren ersten Schritt in die Welt der intelligenten Vertragsentwicklung gemacht!

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