Ist web3.js langsam? Soll ich es benutzen?

Ich wollte web3.js in den Browsern meiner Benutzer ausführen. Die Aufgaben reichen vom Extrahieren des Tokennamens und Tokensymbols aus der Tokenadresse bis zum Bereitstellen von Verträgen.

Aber zum Beispiel Ethereum Wallet startet langsam. Ich gehe davon aus (richtig?), dass web3.js auch langsam laden würde.

Welche Möglichkeiten gibt es, dieses Problem zu überwinden? Soll ich einen Node (welche Software macht das?) auf meinem Server ausführen? Wenn ja, kann ich meinen Knoten so einstellen, dass er nur meinen Clients dient (nicht jedem im Netz), um nicht langsam zu werden?

Oder macht das oben beschriebene Problem die Verwendung von web3.js überhaupt nicht möglich? Sollte ich stattdessen mit dem Benutzer über Python (meine primäre Programmiersprache für das Projekt) AJAX ohne web3.js interagieren?

Antworten (2)

Web3.js lädt keine Kettendaten, daher ist es beim Synchronisieren der Kette nicht langsam wie ein Ethereum Wallet. Sie konfigurieren web3.js so, dass es auf einen vertrauenswürdigen Ethereum-Knoten verweist.

Vielleicht möchten Sie einen Dienst wie Infura ausprobieren, wenn Sie keinen eigenen Knoten hosten möchten.

BEARBEITEN:

Zeigt ein Beispiel-Timing für eine grundlegende Get-Operation von Metamask (zeigt auf Infura).

Geben Sie hier die Bildbeschreibung ein

Wie viel Zeit (in Sekunden) würde es dauern, um den Tokennamen und die Tokensymbole für eine bestimmte Adresse zu erhalten?
@porton weniger als 1 Sekunde. Ich habe meine Antwort mit Beispiel-Timings für eine grundlegende Get-Operation (über Metamask) für die Knoten von Infura bearbeitet.

Nico hat Recht - Sie zeigen einfach web3 auf einen Knoten (lokal oder entfernt). Normalerweise geschieht dies durch die Konfiguration von MetaMask. Die Wahl zwischen lokal und remote hängt von Ihrem Vertrauensmodell ab.

  • Remote : Wenn Sie etwas Leichtes wollen, richten Sie MetaMask auf den Standard-Infura-Knoten. Das bedeutet, dass Sie keinen lokalen Knoten ausführen oder die Blockchain überhaupt herunterladen müssen.
  • Lokal : Wenn Sie einem entfernten Knoten (z. B. Infura) nicht vertrauen möchten, laden Sie Ihre eigene Kopie der Blockchain herunter, führen Sie einen Knoten aus und richten Sie Ihre Metamaske stattdessen auf Ihren lokalen Knoten.

Web3 funktioniert mit dem, was Sie wählen.

Wie viel Zeit (in Sekunden) würde es mit einem typischen Remote-Knoten dauern, um Token-Namen und Token-Symbole für eine bestimmte Adresse zu erhalten?
Super schnell. Metamask fragt den entfernten Knoten alle 1 Sekunde ab.