Antworten>Erfahren Sie mehr über Blockchain-Knoten>Vollknoten vs. Archivknoten
Vollknoten vs. Archivknoten
// Tags
Vollknoten vs. Archivknotenethereum Archivknoten
TL;DR: Ein Full-Node speichert den aktuellen Zustand der Blockchain und validiert alle neuen Transaktionen und Blöcke, löscht jedoch ältere historische Daten, um Speicherplatz zu sparen. Ein Archiv-Node erfüllt alle Aufgaben eines Full-Nodes und bewahrt darüber hinaus den vollständigen historischen Zustand der Blockchain vom Genesis-Block an auf. Welchen Typ Sie benötigen, hängt davon ab, ob Ihre Anwendung aktuelle Daten oder Zugriff auf einen beliebigen historischen Zustand zu einem beliebigen Zeitpunkt erfordert.
Die einfache Erklärung
Jeder Blockchain-Knoten lädt die Kette herunter und überprüft sie, aber nicht jeder Knoten speichert denselben Datenumfang. Man kann sich das wie den Unterschied zwischen einer Bibliothek und einem Archiv vorstellen. Ein Vollknoten ist wie eine Bibliothek: Er verfügt über jedes Buch, das derzeit im Umlauf ist, und kann Ihnen sagen, was gerade in den Regalen steht. Ein Archivknoten ist wie das Nationalarchiv: Er verfügt über jedes Buch, das jemals veröffentlicht wurde, jede Ausgabe und jedes vergriffene Manuskript bis zurück zum ersten Tag.
Bei Ethereum speichert ein Full Node den aktuellen Zustand aller Konten, Guthaben und Smart Contracts sowie einen ausreichend großen Teil der jüngsten Blockhistorie, um die Integrität der Blockchain zu überprüfen. Standardmäßig halten die meisten Ethereum -Clients die letzten 128 Blöcke der Zustandsdaten direkt zugänglich, was etwa die letzten 25 bis 30 Minuten der Netzwerkaktivität abdeckt. Alles, was älter ist, wird gelöscht, um Speicherplatz zu sparen. Der Full Node kann ältere Zustände technisch zwar noch rekonstruieren, indem er Transaktionen ab dem Genesis-Block nachverfolgt, doch dieser Vorgang ist extrem langsam und rechenintensiv.
Ein Archivknoten verzichtet gänzlich auf das Pruning. Er speichert bei jedem einzelnen Block seit Beginn der Blockchain einen Snapshot des gesamten Blockchain-Zustands. Das bedeutet, dass Sie den Kontostand jeder Wallet, den Speicherinhalt jedes Smart Contracts oder den Ausgang jeder Transaktion zu jedem beliebigen Zeitpunkt in der Geschichte der Blockchain abfragen können und sofort eine Antwort erhalten. Ein erneutes Abspielen ist nicht erforderlich. Der Nachteil ist der Speicherbedarf. Ein Vollknoten ( Ethereum ) mit Geth benötigt etwa 1 TB SSD-Speicherplatz. Ein Archivknoten mit Geth benötigt über 12 TB, und diese Zahl wächst täglich. Erigon, ein speichereffizienterer Client, reduziert den Speicherbedarf auf etwa 2 TB, was jedoch immer noch deutlich mehr ist als bei einem „pruned“ Vollknoten.
Was ist der Unterschied zwischen einem Full-Node und einem Archiv-Node?
Beide Knotentypen validieren die Blockchain und speichern den aktuellen Zustand, doch nur ein Archivknoten bewahrt alle historischen Zustands-Snapshots auf. Die folgende Tabelle fasst die praktischen Unterschiede zusammen. Wenn Sie sich noch nicht entschieden haben, welchen Knotentyp Sie betreiben möchten, bieten unsere Übersichten zum Thema „Was ist ein Blockchain-Knoten? “ sowie „Betrieb eines Knotens im Vergleich zur Nutzung eines RPC-Anbieters“ hilfreiche Hintergrundinformationen.
Attribut
Vollknoten
Archivknoten
Historischer Zustand
Nach ca. 128 Blöcken bereinigt
Aus Genesis übernommen
Speicher (Ethereum, Geth)
Etwa 1 TB
Über 12 TB (etwa 2 TB auf Erigon)
Abfragen zum historischen Status
Fehler bei der Rückgabe eines fehlenden Trie-Knotens
Sofort bei jeder Blockhöhe
Synchronisierungszeit
Stunden bis Tage
Tage bis Wochen
Am besten geeignet für
Wallets, Dapps, Zahlungen, Echtzeit-Abfragen
Explorer, Analysen, Prüfungen, Rückverfolgung
Wann Sie einen Full Node benötigen
Vollknoten sind die Arbeitspferde jedes Blockchain-Netzwerks. Sie validieren jeden neuen Block, setzen Konsensregeln durch, lehnen ungültige Transaktionen ab und dienen als Vertrauensanker für Lightweight-Clients, die nicht die gesamte Blockchain speichern. Wenn Sie eine Wallet entwickeln, eine DApp, die nur aktuelle Guthaben und die neuesten Transaktionsdaten benötigt, oder einen Dienst, der Transaktionen an das Netzwerk übermittelt, reicht ein Vollknoten aus.
Die meisten Produktionsanwendungen fallen in diese Kategorie. Eine dezentrale Börse muss die aktuellen Token-Guthaben kennen und Swaps in Echtzeit ausführen. Ein Zahlungsabwickler muss überprüfen, ob eingehende Transaktionen gültig und bestätigt sind. Eine Wallet muss aktuelle Guthaben anzeigen und neue Transaktionen senden. Keiner dieser Anwendungsfälle erfordert die Abfrage, wie hoch das Guthaben eines bestimmten Kontos vor 500.000 Blöcken war. Der aktuelle Stand reicht aus, und ein Full Node liefert diesen mit deutlich geringeren Hardwareanforderungen als ein Archiv-Knoten.
Vollknoten spielen ebenfalls eine entscheidende Rolle für die Stabilität des Netzwerks. Je mehr unabhängige Vollknoten in einer Blockchain laufen, desto dezentraler und widerstandsfähiger wird das Netzwerk. Jeder Vollknoten überprüft die Blockchain eigenständig, sodass kein einzelner Knoten oder keine Gruppe von Knoten die Daten einseitig verändern kann. Der Betrieb eines Vollknotens ist der direkteste Weg, am Sicherheitsmodell einer Blockchain teilzunehmen und dieses zu unterstützen.
Wann Sie einen Archivknoten benötigen
Archivknoten sind unverzichtbar, wenn Ihre Anwendung auf historische Blockchain-Daten angewiesen ist. Wenn Sie einen Block-Explorer entwickeln, mit dem Nutzer beliebige Transaktionen oder Kontostände zu jedem Zeitpunkt in der Geschichte der Blockchain abrufen können, benötigen Sie Zugriff auf das Archiv. Wenn Sie Analysen durchführen, um zu verfolgen, wie sich Token-Bestände, Smart-Contract-Zustände oder DeFi-Protokollmetriken im Laufe der Zeit verändert haben, benötigen Sie Zugriff auf das Archiv. Wenn Sie „ mainnet “ mithilfe von Entwicklungstools wie Hardhat oder Foundry forken, um vergangene Bedingungen für Testzwecke zu simulieren, benötigen Sie Zugriff auf das Archiv.
Auch bestimmte technische Szenarien erfordern Archivknoten. Der Aufruf von `eth_getBalance` oder `eth_call` für eine historische Blocknummer (bei den meisten Clients alles, was älter ist als die letzten 128 Blöcke) erfordert Archivdaten. Das Debuggen einer fehlgeschlagenen Transaktion von vor Wochen durch Nachverfolgung ihrer Ausführung erfordert Archivdaten. Die Rekonstruktion des Zustands eines Kreditprotokolls zu einem bestimmten Block, um ein Liquidationsereignis zu prüfen, erfordert Archivdaten. Ohne einen Archivknoten geben diese Abfragen den Fehler „fehlender Trie-Knoten“ zurück, da die Daten bereinigt wurden.
Die Zielgruppe für Archivknoten ist zwar kleiner, aber von entscheidender Bedeutung: Blockchain-Analyseplattformen, Forensiker, Protokollprüfer, Indizierungsdienste wie „The Graph“ sowie alle Anwendungen, die Fragen zur Vergangenheit und nicht nur zur Gegenwart beantworten müssen.
Warum schlagen historische Abfragen auf einem Full Node fehl?
Ein Full Node bereinigt den Zustand, der älter ist als etwa die letzten 128 Blöcke. Daher führt der Aufruf von `eth_getBalance` oder `eth_call` bei einem älteren Block zu einem Fehler wegen eines fehlenden Trie-Knotens. Der Transaktionsdatensatz existiert zwar noch, aber der Zustand zu diesem Zeitpunkt wurde aus Platzgründen gelöscht. Um ihn wiederherzustellen, ist ein Archivknoten oder ein gespeicherter Datensatz erforderlich – dies ist der Kerngedanke hinter dem Zugriff auf historische Blockchain-Daten. Diese Bereinigung ist auch der Grund dafür, dass für die Abfrage von Blockchain-Daten in großem Umfang oft mehr als ein einzelner Vollknoten benötigt wird.
Wie viel Speicherplatz benötigt jeder Knotentyp?
Der größte praktische Unterschied liegt in der Speicherkapazität, die von der jeweiligen Blockchain und dem Client abhängt. Die Tabelle zeigt typische Werte für „ Ethereum “. Diese Zahlen steigen kontinuierlich an, was ein Grund dafür ist, dass viele Teams historische Zustände stattdessen über einen Provider abfragen, wie im Abschnitt „Echtzeit- vs. historische Blockchain-Daten“ erläutert wird.
Konfiguration
Ungefähre Lagerung
Anmerkungen
Vollknoten (Geth)
Etwa 1 TB
Prunes (früherer Status)
Archivknoten (Geth)
Über 12 TB
Speichert jeden Zustands-Snapshot
Archivknoten (Erigon)
Etwa 2 TB
Speichereffizienterer Client
Die Realität in Bezug auf Speicherplatz und Kosten
Der Betrieb eines eigenen Archivknotens ist eine große Verpflichtung. Abgesehen vom Speicherbedarf von über 12 TB allein für „ Ethereum “ benötigen Sie leistungsstarke SSDs (keine HDDs), um eine akzeptable Abfragegeschwindigkeit zu erreichen, und die Synchronisierung eines Archivknotens von Grund auf kann je nach Hardware und Internetverbindung Wochen dauern. Wenn Ihr Knoten während der anfänglichen Synchronisierung aus dem Takt gerät oder abstürzt, müssen Sie möglicherweise von vorne beginnen. Multiplizieren Sie dies mit jeder Blockchain, die Ihre Anwendung unterstützt, und die Belastung der Infrastruktur steigt schnell an.
Aus diesem Grund verlassen sich die meisten Entwickler und Teams auf Infrastrukturanbieter, anstatt Archivknoten selbst zu betreiben. Quicknode bietet in allen Tarifen Zugriff auf Archivdaten, sodass Sie jeden historischen Zustand auf jeder unterstützten Blockchain abfragen können, ohne den zugrunde liegenden Speicher oder den Synchronisierungsprozess verwalten zu müssen. Ganz gleich, ob Sie die Daten der letzten 10 Minuten oder den vollständigen Verlauf bis zum Genesis-Block benötigen – die Core-API von Quicknode wickelt dies über denselben RPC- endpoint ab. Für Teams, die eine dedizierte, isolierte Infrastruktur benötigen, bieten die Dedicated- Clusters von Quicknode privaten Zugriff auf Archivknoten mit garantierten SLAs zur Verfügbarkeit und vorhersehbarer Leistung.
Kann ein einzelner „ endpoint “ sowohl aktuelle als auch archivierte Daten bereitstellen?
Ja. Viele Anbieter leiten Anfragen zum aktuellen Status an Vollknoten und Anfragen zum historischen Status an Archivknoten hinter einer einzigen URL weiter, sodass Sie nicht zwei verschiedene Konfigurationen verwalten müssen. Aus Sicht der Anwendung handelt es sich lediglich um einen einzigen RPC- endpoint, der sowohl aktuelle als auch historische Abfragen beantwortet.
Nein. Ein Archivknoten führt alle Aufgaben eines Vollknotens aus und speichert darüber hinaus jeden historischen Zustands-Snapshot seit der Genesis. Ein Vollknoten bereinigt alte Zustände, um Speicherplatz zu sparen, und kann daher keine beliebigen Abfragen zu historischen Zuständen beantworten.
Brauche ich einen Archivknoten für meine DApp?
Die meisten Dapps, Wallets und Zahlungs-Apps benötigen lediglich den aktuellen Status, daher reicht ein Full Node aus. Zugriff auf das Archiv benötigen Sie vor allem für Block-Explorer, Analysen, Audits, mainnet Forking und die Rückverfolgung historischer Transaktionen.
Warum schlägt `eth_getBalance` bei einem alten Block fehl?
Da ein Full Node den Zustand für diesen Block bereinigt hat, gibt der Aufruf einen Fehler wegen eines fehlenden Trie-Knotens zurück. Durch Abfrage eines Archiv-Nodes, der jeden Zustands-Snapshot beibehält, lässt sich das Problem beheben.
Wie viel Speicherplatz bietet ein Archivknoten von „ Ethereum “?
Bei Geth sind es etwa 12 TB oder mehr, verglichen mit etwa 1 TB bei einem Full Node. Der speichereffiziente Erigon-Client reduziert den Speicherbedarf für das Archiv auf etwa 2 TB, wobei alle diese Zahlen im Laufe der Zeit steigen.
In welchem Zusammenhang stehen Archivknoten mit der Indizierung?
Indexer lesen häufig historische Daten aus Archivknoten oder nachträglich ergänzten Datensätzen aus, um abfragbare Datenbanken aufzubauen. Wie diese Ebene funktioniert, erfahren Sie unter „Was ist Blockchain-Indexierung?“.