Zum Hauptinhalt springen

Richten Sie web3.js ein, um die Ethereum-Blockchain in JavaScript zu verwenden

web3.js
JavaScript
Anfänger
jdourlens
11. April 2020
3 Minuten Lesezeit

In diesem Tutorial werden wir sehen, wie man mit web3.js (opens in a new tab) beginnt, um mit der Ethereum-Blockchain zu interagieren. Web3.js kann sowohl in Frontends als auch in Backends verwendet werden, um Daten aus der Blockchain zu lesen oder Transaktionen durchzuführen und sogar Smart Contracts bereitzustellen.

Der erste Schritt besteht darin, web3.js in Ihr Projekt aufzunehmen. Um es auf einer Webseite zu verwenden, können Sie die Bibliothek direkt über ein CDN wie JSDeliver importieren.

1<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>

Wenn Sie es vorziehen, die Bibliothek für die Verwendung in Ihrem Backend oder einem Frontend-Projekt, das Builds verwendet, zu installieren, können Sie sie über npm installieren:

npm install web3 --save

Um Web3.js dann in ein Node.js-Skript oder ein Browserify-Frontend-Projekt zu importieren, können Sie die folgende JavaScript-Zeile verwenden:

1const Web3 = require("web3")

Nachdem wir die Bibliothek in das Projekt aufgenommen haben, müssen wir sie initialisieren. Ihr Projekt muss in der Lage sein, mit der Blockchain zu kommunizieren. Die meisten Ethereum-Bibliotheken kommunizieren mit einem Blockchain-Knoten über RPC-Aufrufe. Um unseren Web3-Anbieter (Provider) zu initiieren, instanziieren wir eine Web3-Instanz und übergeben dem Konstruktor die URL des Anbieters. Wenn Sie einen Blockchain-Knoten oder eine Ganache-Instanz auf Ihrem Computer ausführen (opens in a new tab), sieht das so aus:

1const web3 = new Web3("http://localhost:8545")

Wenn Sie direkt auf einen gehosteten Blockchain-Knoten zugreifen möchten, finden Sie Optionen unter Blockchain-Knoten als Dienstleistung (Nodes as a Service).

1const web3 = new Web3("https://cloudflare-eth.com")

Um zu testen, ob wir unsere Web3-Instanz richtig konfiguriert haben, versuchen wir, die neueste Blocknummer mit der Funktion getBlockNumber abzurufen. Diese Funktion akzeptiert einen Callback als Parameter und gibt die Blocknummer als Ganzzahl zurück.

1var Web3 = require("web3")
2const web3 = new Web3("https://cloudflare-eth.com")
3
4web3.eth.getBlockNumber(function (error, result) {
5 console.log(result)
6})

Wenn Sie dieses Programm ausführen, wird einfach die neueste Blocknummer ausgegeben: die Spitze der Blockchain. Sie können auch await/async-Funktionsaufrufe verwenden, um verschachtelte Callbacks in Ihrem Code zu vermeiden:

1async function getBlockNumber() {
2 const latestBlockNumber = await web3.eth.getBlockNumber()
3 console.log(latestBlockNumber)
4 return latestBlockNumber
5}
6
7getBlockNumber()

Sie können alle auf der Web3-Instanz verfügbaren Funktionen in der offiziellen web3.js-Dokumentation (opens in a new tab) einsehen.

Die meisten Web3-Bibliotheken sind asynchron, da die Bibliothek im Hintergrund JSON-RPC-Aufrufe an den Blockchain-Knoten durchführt, der das Ergebnis zurücksendet.

Wenn Sie im Browser arbeiten, injizieren einige Wallets direkt eine Web3-Instanz, und Sie sollten versuchen, diese wann immer möglich zu verwenden, insbesondere wenn Sie planen, mit der Ethereum-Adresse des Benutzers zu interagieren, um Transaktionen durchzuführen.

Hier ist das Snippet, um zu erkennen, ob ein MetaMask-Wallet verfügbar ist, und zu versuchen, es zu aktivieren, falls dies der Fall ist. Es wird Ihnen später ermöglichen, das Guthaben des Benutzers zu lesen und es ihm zu ermöglichen, Transaktionen zu validieren, die Sie ihn auf der Ethereum-Blockchain durchführen lassen möchten:

1if (window.ethereum != null) {
2 state.web3 = new Web3(window.ethereum)
3 try {
4 // Kontozugriff anfordern, falls nötig
5 await window.ethereum.enable()
6 // Konten sind nun offengelegt
7 } catch (error) {
8 // Benutzer hat den Kontozugriff verweigert...
9 }
10}
Alle anzeigen

Alternativen zu web3.js wie Ethers.js (opens in a new tab) existieren und werden ebenfalls häufig verwendet. Im nächsten Tutorial werden wir sehen, wie man einfach auf neue eingehende Blöcke auf der Blockchain hört und sieht, was sie enthalten (opens in a new tab).

Letzte Aktualisierung der Seite: 21. August 2025

War dieses Tutorial hilfreich?