Mit einem Provider verbinden
RPC und Wallets
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.
JsonRpcProviderverbindet sich mit einer RPC-URL;BrowserProviderverpackt Wallet-Injektionen.getSignergibt 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
.envauf, niemals im Code.
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
- Mit einem Provider verbinden
- Contract-Daten lesen
- Transaktionen senden
- Events abonnieren