Web3 & DApp Development Fundamentals · Lektion

Mit einem Provider verbinden

RPC und Wallets

Lektion 1 von 413 Schritte

Mit einem Provider verbinden ist eine kostenlose Web3 & DApp Development Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Web3 & DApp Development Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Mit einer Blockchain kommunizieren

Um von JavaScript aus mit Ethereum zu interagieren, benötigen Sie einen Provider – ein Objekt, das eine Verbindung zu einem Node herstellt und Ihnen ermöglicht, Chain-Daten zu lesen und Transaktionen zu senden.

Bibliotheken wie ethers.js und web3.js kapseln das JSON-RPC-Protokoll, das von Nodes verwendet wird.

Provider und Signer

Zwei wichtige Abstraktionen:

  • Provider – schreibgeschützte Verbindung zur Chain (Guthaben, Blöcke, View-Aufrufe).
  • Signer – enthält einen privaten Schlüssel und kann Transaktionen signieren und senden.

Mit einem Provider lesen Sie, mit einem Signer schreiben Sie.

Ein JSON-RPC-Provider

Der am häufigsten verwendete Provider verbindet sich mit einem RPC-Endpunkt wie Infura, Alchemy oder einem lokalen Node:

const { ethers } = require("ethers"); const provider = new ethers.JsonRpcProvider( "https://mainnet.example-rpc.io/KEY" );

Damit können Sie sofort öffentliche Chain-Daten abfragen.

const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider(
  "https://mainnet.example-rpc.io/KEY"
);

Netzwerkinformationen lesen

Sobald die Verbindung hergestellt ist, können Sie grundlegende Informationen zum Netzwerk abfragen:

const network = await provider.getNetwork(); console.log(network.chainId); const block = await provider.getBlockNumber(); console.log("Latest block:", block);

Die chainId gibt an, mit welchem Netzwerk Sie verbunden sind (1 = Mainnet).

const network = await provider.getNetwork();
console.log(network.chainId);

const block = await provider.getBlockNumber();
console.log("Latest block:", block);

Ein Guthaben prüfen

Rufen Sie das ETH-Guthaben eines Kontos über den Provider ab:

const balance = await provider.getBalance("0xAbc..."); console.log(ethers.formatEther(balance), "ETH");

Der Rohwert wird in Wei angegeben (als BigInt); formatEther wandelt ihn in einen für Menschen lesbaren ETH-String um.

const balance = await provider.getBalance("0xAbc...");
console.log(ethers.formatEther(balance), "ETH");

Browser-Wallets

In einer Browser-dApp injiziert das Wallet (z. B. MetaMask) unter window.ethereum einen Provider. Verpacken Sie ihn mit einem BrowserProvider:

const provider = new ethers.BrowserProvider(window.ethereum);\nawait provider.send("eth_requestAccounts", []);

Der Aufruf von eth_requestAccounts fordert den Benutzer auf, eine Verbindung herzustellen.

const provider = new ethers.BrowserProvider(window.ethereum);
await provider.send("eth_requestAccounts", []);

Einen Signer abrufen

Rufen Sie über einen Browser-Provider den Signer des verbundenen Kontos ab:

const signer = await provider.getSigner();\nconsole.log("Connected as:", await signer.getAddress());

Dieser Signer kann nun vom Benutzer in seinem Wallet genehmigte Transaktionen senden.

const signer = await provider.getSigner();
console.log("Connected as:", await signer.getAddress());

Wallet aus einem Private Key

Auf einem Backend können Sie aus einem Private Key einen Signer erstellen. Verbinden Sie ihn mit einem Provider, damit er Transaktionen übertragen kann:

const wallet = new ethers.Wallet(\n process.env.PRIVATE_KEY,\n provider\n);

Speichern Sie Private Keys niemals direkt im Quellcode – laden Sie sie aus Umgebungsvariablen.

const wallet = new ethers.Wallet(
  process.env.PRIVATE_KEY,
  provider
);

Vergleich mit web3.js

web3.js ist die ältere Alternative. Die Verbindung sieht folgendermaßen aus:

const { Web3 } = require("web3");\nconst web3 = new Web3("https://mainnet.example-rpc.io/KEY");\nconst block = await web3.eth.getBlockNumber();

Die Konzepte sind sehr ähnlich, aber ethers.js trennt Provider und Signer klarer.

const { Web3 } = require("web3");
const web3 = new Web3("https://mainnet.example-rpc.io/KEY");
const block = await web3.eth.getBlockNumber();

Secrets sicher aufbewahren

RPC-Keys und Private Keys sind vertrauliche Daten:

  • Speichern Sie sie in .env, niemals in der Versionsverwaltung.
  • Verwenden Sie im Frontend Code Provider mit Nur-Lese-Zugriff.
  • Private Keys gehören ausschließlich auf sichere Backends oder in das Wallet des Benutzers.

Standard- und Fallback-Provider

ethers kann mehrere Backends für eine höhere Zuverlässigkeit kombinieren. Ein Fallback-Provider fragt mehrere Endpunkte ab und verwendet ein Ergebnis, auf das sie sich einigen:

const provider = ethers.getDefaultProvider("mainnet", {\n alchemy: process.env.ALCHEMY_KEY,\n infura: process.env.INFURA_KEY,\n});

Wenn ein Backend ausfällt, halten die anderen Ihr Programm weiterhin funktionsfähig.

const provider = ethers.getDefaultProvider("mainnet", {
  alchemy: process.env.ALCHEMY_KEY,
  infura: process.env.INFURA_KEY,
});

Kurzer Test

Testen Sie Ihr Verständnis von Providern und Signern.

Zusammenfassung

Sie haben gelernt, eine Verbindung zu einer Blockchain herzustellen.

  • Ein Provider liest Blockchain-Daten; ein Signer sendet Transaktionen.
  • JsonRpcProvider verbindet sich mit einer RPC-URL; BrowserProvider verpackt Wallet-Injektionen.
  • getSigner gibt das verbundene Konto zurück; new Wallet(key, provider) signiert auf einem Backend.
  • Werte werden in Wei angegeben; verwenden Sie formatEther, um sie anzuzeigen.
  • Bewahren Sie RPC- und Private Keys in .env auf, niemals im Code.
Kostenlos starten

Lerne Web3 & DApp Development Fundamentals mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
29
Lektionen
105

Häufig gestellte Fragen

Ist die Lektion „Mit einem Provider verbinden“ kostenlos?

Ja — der vollständige Text von „Mit einem Provider verbinden“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Web3 & DApp Development Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Mit einem Provider verbinden“?

RPC und Wallets Du übst Web3 & DApp Development Fundamentals mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Web3 & DApp Development Fundamentals zu starten?

Keine Vorkenntnisse erforderlich. Web3 & DApp Development Fundamentals auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Mit einem Provider verbinden“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Web3 & DApp Development Fundamentals-Lektion Code schreiben und ausführen?

Ja. Jede Web3 & DApp Development Fundamentals-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Mit einem Provider verbinden
  2. Contract-Daten lesen
  3. Transaktionen senden
  4. Events abonnieren
← Zurück zu Web3 & DApp Development Fundamentals