Ethereum Tutorial - Ein tieferer Blick in Ethereum!

Dieses Ethereum-Tutorial erklärt Ethereum unter architektonischen Gesichtspunkten und wie es die beste Plattform für die Erstellung von DAPPS und DAOs darstellt.

Äther Lernprogramm:

In diesem Ethereum-Tutorial-Blog erkläre ich die Funktionsweise der Architektur des Ethereum und zeige Ihnen die Implementierung des Ethereum anhand eines einfachen kluger Vertrag .

Ich sehe Ethereum als programmierbare Blockchain, die in Zukunft einen Großteil der B2C-Unternehmen bedienen wird. Ethereum gewährt Entwicklern die Freiheit, komplexe Modelle zu erstellen, die in der Blockchain ausgeführt werden sollen, anstatt sie auf vordefinierte Operationen wie die Bitcoin-Blockchain zu beschränken.



Mit diesem Ansatz hat sich Ethereum zu einer Plattform für eine Vielzahl von dezentralen Anwendungen und Organisationen entwickelt, zu denen unter anderem Kryptowährungen gehören.

In diesem Blog zum Thema 'Ethereum-Tutorial' werde ich eine Vielzahl von Themen ausführlich behandeln. Diese Themen umfassen:

Sie können diese Aufzeichnung des Ethereum-Tutorials durchgehen, in der unsere Kursleiter die Themen ausführlich mit erklärt haben das wird Ihnen helfen, dieses Konzept besser zu verstehen.

Ethereum Tutorial | Ethereum Smart Contracts | Edureka

Ethereum-Tutorial: Ethereum-Konten

Das Ethereum-Netzwerk verfügt über zwei Arten von Konten:

  • Externe Konten
  • Vertragskonten

Diese externen und vertraglichen Konten werden als 'Statusobjekte' bezeichnet und umfassen den 'Status' des Ethereum-Netzwerks. Jedes Zustandsobjekt hat einen genau definierten Zustand. Bei externen Konten besteht der Status aus dem Kontostand, während bei Vertragskonten der Status durch die Speicherung und den Kontostand definiert wird.

Ich bezeichne externe Konten einfach als Konten. Diese Konten sind Eigentum von externen Agenten des Netzwerks, zu denen jeder normale Benutzer, Bergleute, automatisierte Agenten usw. gehören.

Diese Konten werden im Allgemeinen mithilfe von Kryptografiealgorithmen mit öffentlichem Schlüssel wie RSA gesteuert. Der Hauptzweck externer Konten besteht darin, Benutzern als Medium für die Interaktion mit der Ethereum-Blockchain zu dienen.

Vertragskonten hingegen sind eine Sammlung von Code, der sich in der Blockchain an einer bestimmten Adresse befindet. Diese Verträge werden von externen Konten oder von anderen Verträgen über eine bestimmte Call-to-Action-Funktion aufgerufen. Diese Verträge sind in hochrangigen Skriptsprachen wie Solidity, Serpent oder LLL verfasst. Jeder Vertrag, der sich in der Ethereum-Blockchain befindet, wird in einem bestimmten Format gespeichert, das als EVM-Bytecode (Ethereum Virtual Machine) bezeichnet wird und ein Ethereum-spezifisches Binärformat ist.

Es wird nur fair sein, dass ich EVM jetzt erkläre, nachdem ich Ihnen von EVM-Bytecode erzählt habe.

Ethereum-Tutorial: Virtuelle Maschine von Ethereum

Ethereum definiert auf rustikale Weise eine Reihe verallgemeinerter Protokolle, die zu den Säulen der Entwicklung dezentraler Anwendungen geworden sind. Im Zentrum steht die virtuelle Maschine von Ethereum. Die folgende Abbildung erläutert die Architektur:

Ethereum-Architektur - Ethereum-Tutorial - Edureka

Generieren Sie eine zufällige Zeichenfolge in Java

Es ist wichtig zu beachten, dass die virtuelle Maschine von Ethereum nicht nur vollständig sandboxed, sondern auch vollständig isoliert ist. Dies bedeutet, dass Code, der derzeit auf dem EVM ausgeführt wird, keinen Zugriff auf das Netzwerk oder das Dateisystem hat und sparsam auf andere Verträge zugreifen kann.

Nachdem wir den Kern der Plattform verstanden haben, werfen wir einen genaueren Blick auf die Netzwerkknoten.

Ethereum-Tutorial: Das Ethereum-Netzwerk

Das Ethereum-Netzwerk ist ein öffentliches Blockchain-Netzwerk. Es bildet die Grundlage aller dezentralen Peer-to-Peer-Anwendungen und -Organisationen, die im Netzwerk ausgeführt werden. Das Netzwerk besteht aus zwei Arten von Knoten, nämlich Vollknoten und Leichtknoten.

Volle Knoten enthalten die gesamte Transaktionshistorie seit dem Genesis-Block. Sie sind ein vollwertiger Beweis für die Integrität des Blockchain-Netzwerks. Vollständige Knoten müssen jede Transaktion enthalten, die gemäß den in den Ethereum-Spezifikationen festgelegten Regeln überprüft wurde.

Leichte Knoten Auf der anderen Seite enthält nur eine Teilmenge der gesamten Blockchain. Diese Knotentypen werden hauptsächlich in E-Wallets verwendet, die von Natur aus leicht sein müssen und daher nicht die gesamte Blockchain auf ihnen speichern können. Im Gegensatz dazu überprüfen diese Knoten nicht jeden Block oder jede Transaktion und verfügen möglicherweise nicht über eine Kopie des aktuellen Blockchain-Status. Sie sind auf vollständige Knoten angewiesen, um fehlende Details zu erhalten (oder es fehlt ihnen einfach eine bestimmte Funktionalität). Der Vorteil von Light Nodes besteht darin, dass sie viel schneller einsatzbereit sind, auf Geräten mit mehr Computer- / Speicherbeschränkung ausgeführt werden können und nicht annähernd so viel Speicherplatz verbrauchen.

Jeder öffentlichen Blockchain ist eine Währung zugeordnet. Ethereum ist nicht anders. Werfen wir einen genaueren Blick auf die Kryptowährung von Ethereum.

Ethereum Tutorial: Äther und Gas

Ether ist der Name der Kryptowährung, mit der Transaktionen im Ethereum-Netzwerk bezahlt werden. Neben der Bezahlung allgemeiner Transaktionen und Dienstleistungen wird Ether auch zum Kauf von Gas verwendet, das wiederum zur Bezahlung der Berechnung innerhalb des EVM verwendet wird.

Ether ist die metrische Einheit und hat viele Stückelungen, die helfen, Transaktionen und Gas genau zu bezahlen. Die kleinste Stückelung a.k.a Basiseinheit heißt Wei. Die Bezeichnungen mit ihren spezifischen Namen sind in der folgenden Tabelle aufgeführt:

EinheitenWei WertWei
wei1 weiein
Kwei1e3 wei1.000
Mwei1e6 wei1.000.000
Stricken1e9 wei1.000.000.000
microEther1e12 wei1.000.000.000.000
milliEther1e15 wei1.000.000.000.000.000
Äther1e18 wei1.000.000.000.000.000.000

Wie bereits erwähnt, wissen wir, dass EVM für die Ausführung von Code verantwortlich ist, der in seinem Netzwerk bereitgestellt wird. Was hindert jemanden daran, eine Endlosschleife auf dem EVM auszuführen und seinen Speicher vollständig zu überlasten? Hier kommt das Konzept von Gas ins Spiel.

Gas wird als Metrik für die Bezahlung von Rechenressourcen im Netzwerk verwendet. Jeder Vertrag im Netzwerk verfügt über eine festgelegte maximale Gasmenge, die für seine Berechnungen verwendet werden kann. Dies ist bekannt als die “ Gasgrenze Andere damit verbundene Gasbegriffe lauten wie folgt:

  • Gaspreis : Dies sind die Kosten für Gas in Form von Token wie Ether und seinen anderen Stückelungen. Um den Wert von Gas zu stabilisieren, ist der Gaspreis ein variabler Wert, sodass sich der Gaspreis ändert, wenn die Kosten für Token oder Währung schwanken, um den gleichen realen Wert beizubehalten.
  • Gasgebühr : Dies ist effektiv die Menge an Gas, die für die Ausführung einer bestimmten Transaktion oder eines bestimmten Programms (Vertrag genannt) gezahlt werden muss.

Wenn also jemand versucht, einen Code auszuführen, der für immer ausgeführt wird, überschreitet der Vertrag möglicherweise sein Gaslimit und die gesamte Transaktion, die den Vertrag aufgerufen hat, wird auf den vorherigen Status zurückgesetzt.


Nachdem wir die Währung kennen, werfen wir einen Blick auf den Prozess, der neue Währungen generiert.

Ethereum Tutorial: Bergbau

Ethereum gewährleistet, ähnlich wie andere öffentliche Blockchain-Technologien, die Sicherheit durch ein anreizbasiertes Modell. Dies wird als Proof-of-Work-Mechanismus bezeichnet. Die folgende Abbildung zeigt, wie der Ethereum-Abbau funktioniert:

Aus technischer Sicht heißt der verwendete Proof-of-Work-Algorithmus Ethash, ein Hashing-Algorithmus, der vom Dagger-Hashimoto-Algorithmus inspiriert ist.

Nachdem wir die Arbeitsarchitektur des Ethereum gesehen und seine wesentlichen Elemente erörtert haben, wollen wir uns ein reales Problem und den Ethereum-Ansatz ansehen, um dasselbe zu lösen.

Ethereum-Tutorial: Anwendungsfall für dezentrale Crowdfunding

Problemstellung : Eine gute Idee ist in der heutigen Welt nicht alles, um ein erfolgreiches Unternehmen zu gründen. Es ist viel Geld und Mühe erforderlich, um eine Idee umzusetzen. Hier kommen Organisationen wie „Kickstarter“ ins Spiel. Sie bieten Projekten die öffentliche Aufmerksamkeit, die für Spenden für ihr Projekt erforderlich ist, um es zum Laufen zu bringen, aber die zentralisierte Architektur eines solchen Motivs hat ihre Nachteile, hauptsächlich in der Art und Weise, wie mit den Belohnungen umgegangen wird. Da die zentralisierte Behörde alle Entscheidungen trifft, unterliegen Systeme Regeln wie:

  • Wer die Frist für die Kampagne verpasst hat, kann nicht mehr teilnehmen
  • Jeder Spender, der seine Meinung geändert hat, kann nicht raus

Ansatz ::

Wir verwenden eine dezentrale Methode, um das Problem zu lösen, wie im folgenden Bild erläutert:

Lösung ::

Hier ist der Solidity Smart-Vertrag für die obige Problemstellung.

Pragma Solidität ^ 0.4.16 Schnittstellentoken {Funktionsübertragung (Adressempfänger, Uint-Betrag)} Vertrag Crowdsale {Adresse öffentlicher Begünstigter uint öffentliche FinanzierungZiel uint öffentlicher Betrag Erhöhte Uint öffentliche Frist uint öffentlicher Preis Token öffentlicher Token Belohnungszuordnung (Adresse => uint256) öffentlicher SaldoOf Bool finanzierungGoalReached = false bool CrowdsaleClosed = falsches Ereignis GoalReached (Adressempfänger, uint totalAmountRaised) Ereignis FundTransfer (Adress-Backer, uint-Betrag, bool isContribution) / ** * Constrctor-Funktion * * Richten Sie den Eigentümer ein * / function Crowdsale (Adresse ifSuccessfulSendTo // die Adresse des Eigentümers, wenn die Finanzierung erfolgreich ist uint FinanzierungGoalInEthers // Zielbetrag zur Erhöhung der uint-DauerInMinuten // gegebene Zeit uint etherCostOfEachToken // Eigenkapitalkosten in Etheradresse addressOfTokenUsedAsReward // Token-Adresse) {Begünstigter = ifSuccessfulSendTo FundingGoal = FundingGoalInEthers * 1 ether + DauerInMinuten * 1 Minuten Preis = etherCostOfEachToken * 1 Äther zu kenReward = token (addressOfTokenUsedAsReward)} / ** * Fallback-Funktion * * Die Funktion ohne Namen ist die Standardfunktion, die aufgerufen wird, wenn jemand Geld an einen Vertrag sendet * / function () zahlbar {require (!rowdsaleClosed) uint Betrag = msg. value balanceOf [msg.sender] + = Betragbetrag erhöht + = Betrag tokenReward.transfer (msg.sender, Betrag / Preis) FundTransfer (msg.sender, Betrag, true)} Modifikator afterDeadline () {if (now = FundingGoal) {FundingGoalReached = true GoalReached (Begünstigter, Betrag erhöht)} CrowdsaleClosed = true} / ** * Geld abheben * * Überprüft, ob das Ziel oder das Zeitlimit erreicht wurde und wenn ja, und das Finanzierungsziel erreicht wurde, * sendet den gesamten Betrag an den Begünstigten. Wenn das Ziel nicht erreicht wurde, kann jeder Mitwirkende * den Betrag abheben, den er beigetragen hat. * / function safeWithdrawal () afterDeadline {if (! FinanzierungGoalReached) {uint Betrag = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (Betrag> 0) {if (msg.sender.send (Betrag)) { FundTransfer (msg.sender, Betrag, falsch)} else {balanceOf [msg.sender] = Betrag}}} if (FinanzierungGoalReached && Begünstigter == msg.sender) {if (Begünstigter.send (BetragRaised)) {FundTransfer (Begünstigter, amountRaised, false)} else {// Wenn wir die Mittel nicht an den Begünstigten senden, entsperren Sie die GeldgebersaldofinanzierungGoalReached = false}}}}

Wenn Sie daran interessiert sind, Solidität zu lernen, lesen Sie unseren Blog unter , die für die Entwicklung verwendet wirdpersonalisiertSmart-Verträge.

Wenn Sie Blockchain lernen und eine Karriere in Blockchain-Technologien aufbauen möchten, lesen Sie unsere Dies beinhaltet ein von Lehrern geführtes Live-Training und praktische Projekterfahrung. Dieses Training wird Ihnen helfen, Blockchain gründlich zu verstehen und das Thema zu beherrschen.

Hast du eine Frage an uns? Bitte erwähnen Sie es in den Kommentaren und wir werden uns so schnell wie möglich bei Ihnen melden.