Web3.js vs. Ethers.js: Vergleich von Web3-Bibliotheken

Veröffentlicht: 2023-05-21

Kryptowährungs- und Blockchain-Entwickler könnten die Wertvorteile zahlreicher programmierbarer Blockchain-Netzwerke nutzen. Eine der am weitesten verbreiteten Plattformen zur Ermöglichung der Programmierbarkeit intelligenter Verträge zur Entwicklung dezentraler Anwendungen ist Ethereum. Entwickler diskutieren immer häufiger über Themen wie web3.js vs. Ethers.js, da die Nachfrage nach Web3-Entwicklung weiter steigt. Die Suche nach JavaScript-Bibliotheken, die bei der Bereitstellung dezentraler Anwendungen hilfreich sein könnten, ist wichtiger denn je. Da Web3-Anwendungen über mehrere Blockchains hinweg bereitgestellt werden müssen, müssen die besten JavaScript-Bibliotheken ausgewählt werden. Die folgende Diskussion bietet einen gründlichen Überblick über jede Bibliothek, um Ihnen bei der Entscheidung zu helfen: „Was ist besser, web3.js vs. ethers.js?“

Darüber hinaus kann Ihnen ein direkter Vergleich der beiden Bibliotheken dabei helfen, die für Ihre Bedürfnisse am besten geeignete Entscheidung zu treffen.

Jede programmierbare Blockchain verfügt über eine Sammlung von Bibliotheken oder SDKs, die die Verbindung zu und die Interaktion mit dieser spezifischen Blockchain erleichtern. Die meisten heute verwendeten Blockchains sind EVM-kompatibel, da sie auf dem Ethereum-Netzwerk basieren. Das bedeutet, dass, wenn eine ETH-Bibliothek entwickelt wird, diese auf jede Blockchain angewendet werden kann, die der EVM entspricht. Das JSON-RPC-Protokoll ermöglicht jedoch die Kommunikation. In diesem Aufsatz werden zwei bekannte ETH-Bibliotheken verglichen.

Hier ist der Vergleich von Web3.js und Ethers.js im Tabellenformat:

Parameter Web3.js Ethers.js
Entwickler Ethereum-Stiftung Ethers.io (Drittorganisation)
Funktionalitäten Umfassende Ethereum-Interaktionen Fokus auf Ethereum 1.0 (mit experimenteller Unterstützung für Ethereum 2.0)
Protokollunterstützung Ethereum 1.0 und Ethereum 2.0 Hauptsächlich Ethereum 1.0 (mit experimenteller Ethereum 2.0-Unterstützung)
Gemeinschaft Größere Gemeinschaft Kleinere Gemeinschaft
Dokumentation Umfangreich Wachsend
Frontend/Backend Sowohl Frontend- als auch Backend-Entwicklung Vor allem für die Frontend-Entwicklung geeignet
API Umfangreich und funktionsreich Entwicklerfreundlich und intuitiv
Sicherheit Standard Betont Sicherheit und Typensicherheit

In Web3.js müssen Sie normalerweise eine Instanz des Vertrags erstellen, indem Sie die ABI (Application Binary Interface) und die Vertragsadresse des Vertrags verwenden, um mit einem Smart Contract zu interagieren. Anschließend können Sie Vertragsmethoden mithilfe der erstellten Instanz aufrufen. Hier ist ein Beispiel:

 // Web3.js const contractInstance = new web3.eth.Contract(abi, contractAddress); contractInstance.methods.myMethod().call() .then(result => { console.log(result); }) .catch(error => { console.error(error); });

Andererseits vereinfacht Ethers.js Vertragsinteraktionen durch die Verwendung einer intuitiveren und prägnanteren Syntax. Sie können direkt mit einem Vertrag interagieren, ohne eine Instanz zu erstellen.

 // Ethers.js const contract = new ethers.Contract(contractAddress, abi, provider); contract.myMethod() .then(result => { console.log(result); }) .catch(error => { console.error(error); });

Ethers.js bietet einen schlankeren und entwicklerfreundlicheren Ansatz für Vertragsinteraktionen, indem es eine einfachere Syntax für den direkten Aufruf von Vertragsmethoden bereitstellt.

Alles über Web3.js

Bevor wir auf die Unterschiede zwischen web3.js und ethers.js eingehen, beginnen wir mit einem Überblick über die einzelnen Bibliotheken. Web3.js, das ursprüngliche Web3-Framework, wäre der erste Herausforderer beim Vergleich von web3.js und ethers.js. Es war die erste Ethereum-JavaScript-API, die die Ethereum Foundation zur Verfügung stellte. Derzeit ist Chainsafe im Auftrag der Ethereum Foundation für die aktive Entwicklung der web3.js-Bibliothek verantwortlich. Im Jahr 2015 kam Web3.js auf den Markt, das sich seitdem zu einem beliebten Ethereum-JavaScript-Framework entwickelt hat.

Im Vergleich dazu wurde web3.js außerdem in eine große Anzahl von Projekten und Paketen integriert. Web3.js hingegen setzt eine Verbindung zwischen einem lokalen Blockchain-Knoten und der Anwendung voraus. Es wird angenommen, dass der lokale Knoten eine Vielzahl von Funktionen unterstützt, darunter Schlüsselspeicherung, Transaktionssignierung und das Lesen des aktuellen Status der Blockchain, mit der er verbunden ist.

Vor- und Nachteile von Web3.js

Web3.js ist eine der ersten JavaScript-Bibliotheken für Web3-Entwickler. Um einen sinnvollen Vergleich von web3.js und ethers.js anzustellen, ist es notwendig, sowohl die Vor- als auch die Nachteile von web3.js zu verstehen. Im Vergleich der web3-Bibliotheken hätte web3.js aufgrund des Gründerteams und seiner weiten Verbreitung zwei wesentliche Vorteile. Die Ethereum Foundation, die mit einem breiten Netzwerk von Mitwirkenden die Wirksamkeit des Designs sicherstellt, hat Web3.js erstellt. Es hat sich jedoch zu einer der am häufigsten verwendeten JavaScript-Bibliotheken für die Erstellung von Blockchain-Anwendungen entwickelt. Die einzige vor 2017 verfügbare Web3-JavaScript-Bibliothek war web3.js. Daraus folgt, dass es in vielen der frühen Web3-Projekte eine bedeutende Rolle spielt.

Auch die Nachteile von web3.js müssen beim Vergleich mit ethers.js berücksichtigt werden. Zunächst einmal haben nicht viele neue Projekte große Verwendung für web3.js gefunden. Auch die Bibliothek ist auf eine Lizenz mit engen Grenzen angewiesen, etwa dem Verbot, den Quellcode zu ändern, ohne die Änderungen der Öffentlichkeit zugänglich zu machen. Die Größe von web3.js, die sich auf die Geschwindigkeit und Leistung einer Web3-Site oder -App auswirken kann, ist möglicherweise der wichtigste Faktor.

Alles über Ethers.js

Die Definition, Vor- und Nachteile von ethers.js müssen auch beim Vergleich von web3.js und ethers.js besprochen werden. Die Ersteller von ethers.js behaupten, dass die Bibliothek, gepaart mit Tools in Typescript und JavaScript, eine vollständige Implementierung einer Ethereum-Wallet sei. Die Antworten auf die Frage „Was ist der Unterschied zwischen web3.js und ethers.js?“ würde auf die weit verbreitete Verwendung der Bibliothek ethers.js hinweisen. Es umfasst verschiedene Funktionen für den Umgang mit Ethereum und anderen Blockchain-Netzwerken, die das EVM unterstützen. Darüber hinaus kann Ethers.js zum Lesen und Ändern des Status von Blockchain-Netzwerken verwendet werden.

Ein kanadischer Softwareentwickler namens Richard Moore entwickelte Ethers.js im Jahr 2015. Das Hauptziel bei der Entwicklung von ethers.js war es, eine kompakte und leistungsfähige Alternative zu web3.js anzubieten. Seit seiner Veröffentlichung erfreut sich ethers.js bei Ethereum- und EVM-Entwicklern einem rasanten Anstieg der Beliebtheit. Die Effizienz der Schlüsselverwaltung und Kommunikation mit dem Blockchain-Netzwerk in ethers.js wäre einer der Hauptunterschiede zwischen web3 und ethers.js. Für die Verwaltung von Schlüsseln und die Interaktion mit der Blockchain stehen Entwicklern zwei unterschiedliche Organisationen zur Verfügung. In ethers.js können Sie über eine Wallet verfügen, um einen privaten Schlüssel zum Signieren von Transaktionen zu verwenden, und ein Knotenanbieter kann Sie bei der Verbindung mit dem Blockchain-Netzwerk unterstützen. Die Verwaltung des Wallets und des Node-Anbieters könnten unabhängig voneinander erfolgen.

Vorteile und Fallstricke von Ethers.js

Die Unterschiede zwischen den beiden Bibliotheken würden auch die Vor- und Nachteile von Ethers.js hervorheben. Indem Sie mehr über die Vor- und Nachteile von ethers.js erfahren, können Sie die Antworten auf die Frage „Was ist besser, web3.js vs. ethers.js?“ untersuchen. Der erste Vorteil von ethers.js wäre die Verfügbarkeit einer freizügigeren Lizenz, die sowohl die kostenlose Nutzung als auch Änderungen ermöglicht. Sie müssen aber auch den Quellcode und alle von Ihnen vorgenommenen Anpassungen zur Verfügung stellen. Die schlanke Bibliothek ethers.js unterstützt die Verwendung von ENS-Domänennamen. Die JavaScript-Bibliothek bietet umfangreiche Testfallunterstützung mit Existenznachweisen für fast 10.000 Testfälle. Im Vergleich zu den Mängeln von web3.js weist ethers.js erkennbare Verbesserungen auf, weist jedoch auch viele Mängel auf. Während ethers.js beispielsweise eine relativ neue Bibliothek ist, haben Entwickler Schwierigkeiten, sie für etabliertere Unternehmen oder Projekte zu verwenden.

Warum sollten Sie Web3.js und Ethers.js vergleichen?

Die Einführung von Web3-Ideen hat die herkömmlichen Methoden zur Erstellung von Anwendungen verändert. Fast alle Web3-Websites und -Apps verwenden Bibliotheken wie web3.js oder ethers.js. Ein entscheidender Schritt bei der Auswahl der Web3-Bibliothek, die Sie verwenden können, ist der Vergleich der verfügbaren Bibliotheken. Welchen Zwecken dienen Bibliotheken? Entwickler können das JSON-RPC-Protokoll verwenden, um mit Ethereum oder anderen EVM-unterstützenden Blockchains zu kommunizieren. JavaScript-Bibliotheken sind hilfreich, um eine Vielzahl von Kernfunktionen in eine dezentrale Anwendung einzuführen. Einige Beispiele sind das Erstellen von Wallets, die Bereitstellung intelligenter Verträge, das Anfordern von Blockchain-Informationen und das Signieren von Transaktionen. Entwickler können diese Vorgänge ausführen, ohne direkte API-Aufrufe an die entsprechende Blockchain durchführen zu müssen.

Jeder Web3-Entwickler sollte die Diskussion zwischen web3.js und ethers.js zur Kenntnis nehmen.

Entwickler machen sich wahrscheinlich Gedanken über die Auswahl der besten JavaScript-Bibliothek für ihre Projekte, bevor sie mit einem Web3-Entwicklungsprojekt beginnen. Jede Bibliothek stellt eine komprimierte und wiederverwendbare Codesammlung bereit, die eine einzelne Funktion oder mehrere eng verwandte Funktionen ausführen kann. Entwickler könnten der Anwendung eine Bibliothek hinzufügen und diese nutzen, um die erforderliche Funktion auszuführen, anstatt dafür neuen Code von Grund auf erstellen zu müssen.

Betrachten Sie den Bau eines Hauses als Beispiel für die Gestaltung einer Anwendung. Nach dem Bau des Hauses überlegen Sie, die Inneneinrichtung durch Möbel aufzuwerten. Würden Sie versuchen, die Möbel von Grund auf neu zu konstruieren? Am praktischsten wäre es, die gewünschten Einrichtungsgegenstände in einem Geschäft zu kaufen. Über das Möbelhaus, das als Bibliothek fungiert, können Sie auf die gewünschten Anwendungsfunktionen – Ihr Zuhause – zugreifen. Daher haben die Diskrepanzen zwischen Web3-Frameworks in letzter Zeit insbesondere bei Entwicklern großes Interesse geweckt. Wenn Sie die Funktionen der einzelnen Bibliotheken kennen, können Sie die beste für Ihre Web3-Anwendung auswählen.

Hauptunterschiede: Web3.js vs. Ethers.js

Die ausführliche Erläuterung der Grundlagen von ethers.js und web3.js vermittelt eine gute Vorstellung davon, welchen Nutzen beide für Entwickler haben. Um die Frage web3.js vs. ethers.js zu beantworten, ist es wichtig, direkte Vergleiche auf der Grundlage verschiedener Kriterien anzustellen. Hier ist eine Liste der verschiedenen Indikatoren, die Ihnen beim effektiven Vergleich von web3.js und ethers.js helfen können.

Entwickler

Bevor ein Projekt oder eine technische Lösung umgesetzt wird, fällt einem als Erstes die Identität der Gründer auf. Die Vertrauenswürdigkeit der Bibliothek kann aus dem Hintergrund der Entwickler abgeleitet werden. Die Ethereum Foundation hat web3.js gegründet, das einen Vorteil gegenüber anderen Web3-Frameworks hat. Entwickler können eine Vielzahl von Funktionalitäten erkunden und dabei darauf vertrauen, dass eine umfassende Organisation oder ein umfassendes Ökosystem die Bibliothek unterstützt. Im Gegensatz dazu entwickelte Richard Moore ethers.js als Ersatz für web3.js.

Leistung

Die Leistung wäre der nächste entscheidende Gesichtspunkt bei der Entscheidung: „Was ist besser, Web3 JS oder Ethers JS?“ Im Vergleich zu web3.js ist Ethers eine deutlich leichtere Bibliothek, die eine bessere Leistung garantiert. Die komprimierte Version von Ethers.js ist nur 77 KB groß, die unkomprimierte Version jedoch 284 KB. Die web3.js-Bibliothek kann gleichzeitig viele Gigabyte Speicherplatz belegen. Bei kleinen dApps wirkt sich der Größenfaktor jedoch auf die Leistung aus. Darüber hinaus wird der Leistungsvorteil der Verwendung von ethers.js gegenüber web3.js in Frage gestellt, da für dieselben Apps nicht genügend Geschwindigkeitstestdaten vorliegen.

Wartung

Ein weiterer Vergleichspunkt zwischen den beiden Bibliotheken ist die Bewertung der Wartungsunterschiede zwischen web3.js und ethers.js. Die Ethereum Foundation unterstützt explizit Web3.js und Chainsafe verfügt über aktive Wartungspläne. Web3.js bietet erhebliche Vorteile für web3.js, mit etwa 304 Github-Mitwirkenden und 4 NPM-Mitarbeitern. Ethers.js hingegen wird von einem freiberuflichen Softwareentwickler gepflegt. Derzeit gibt es nur einen NPM-Mitarbeiter und etwa 15 Github-Mitwirkende. Der Unterschied zwischen web3.js und ethers.js berücksichtigt jedoch Bewertungen und Entwicklerkommentare, um die Wartungseffektivität zu bestimmen. Die Bibliotheken web3.js und ethers.js werden regelmäßig aktualisiert, um Fehler zu beheben und neue Funktionen hinzuzufügen.

Dokumentation

Beim Vergleich von web3.js und ethers.js ist die Verfügbarkeit der Dokumentation ein weiterer wichtiger Faktor dafür, wie einfach der Einstieg in die Bibliotheken ist. Sie können Ihr Web3-Entwicklungsabenteuer mithilfe der ausführlichen Dokumentation beginnen, die in jedem web3-JavaScript-Paket enthalten ist. Auf der anderen Seite bietet ethers.js zusätzliche Ressourcen, darunter einen „Erste Schritte“-Leitfaden und einen „Spielplatz“.

Benutzerfreundlichkeit

Ein weiterer entscheidender Aspekt für den Vergleich der beiden Bibliotheken ist ihre Benutzerfreundlichkeit. Dies gilt sowohl für ethers.js als auch für web3.js. Wallets und Knotenanbieter werden von Web3.js zu einem einzigen Objekt zusammengefasst, um zu funktionieren. Ethers.js hingegen verfügt über zwei separate Einheiten für Wallet- und Node-Anbieter. Dadurch kann ethers.js die erforderliche Flexibilität bieten, um das Signieren und Verwalten privater Schlüssel vom Lesen und Ändern des Blockchain-Status zu trennen. Da Anbieter und Wallets getrennt sind, kann ethers.js ein besseres Entwicklererlebnis gewährleisten. Web3.js ist eine großartige Option für Anfänger, da es ein flexibles Lernen durch Tutorials, Supportmaterialien und Web3-Projekte ermöglicht.

Abschluss

Im Wesentlichen ist Web3.js eine Bibliothek, die es Entwicklern ermöglicht, eine Verbindung zum Ethereum-Netzwerk herzustellen, während Ethers.js eine Bibliothek ist, die bei der Erstellung dezentraler Anwendungen hilft. Beide Bibliotheken sind für die Entwicklung von Ethereum von entscheidender Bedeutung und jede hat Vor- und Nachteile. Die Zusammenfassung der Unterschiede zwischen web3.js- und ethers.js-Bibliotheken zeigt die gleiche Bedeutung beider.

Es ist interessant festzustellen, dass je nach Ihren Anforderungen die Antwort auf die Frage „Was ist besser, Web3 JS oder Ethers JS?“ lautet. kann wechseln. Um beispielsweise die Grundlagen der Verwendung von web3-JavaScript-Bibliotheken zu verstehen, können Anfänger web3.js verwenden. Allerdings bietet ethers.js weitere praktische Anleitungen für die sofortige Verwendung der Bibliothek. So wie web3.js durch seine Größe in Megabyte kompliziert ist, garantiert ethers.js durch seine reduzierte Größe eine höhere Leistung. Je nach Bedarf können Sie für Ihr Web3-Projekt zwischen web3.js und ethers.js wählen.