wo imelement web3 services: backend oder fronend? [geschlossen]

Ich entwickle eine Social-Media-ähnliche Anwendung, die auf der Ethereum-Blockchain basiert, und einige Anwendungsfälle werden durch Smart Contracts gesteuert. Um also mit Smart Contract zu kommunizieren, muss ich mich mit web3 befassen.

Die Frage ist, ob ich Web3-Dienste auf Frontend-Ebene (Angular) implementieren muss , da dies eine Transaktionsbestätigung und einen Wallet-Zugriff (z. B. Metamaske) erfordert und Off-Chain-Geschäfte im Backend (nodejs) behält, oder ob ich alle Dienste in nodejs implementieren kann .

Antworten (1)

Es hängt wirklich davon ab, welche UX Sie bereitstellen möchten. Grundsätzlich gibt es 3 Vorgehensweisen:

  1. Vollständig dezentralisiert : Eigenständige Javascript-App, die alle Daten von dezentralen Diensten wie Ethereum, Swarm und IPFS abruft.
  2. Semi-dezentraler Ansatz: Ihre Benutzer müssen ihre eigenen Wallets verwalten und Metamask oder andere TX-Unterzeichner mit Javascript-basierter Web3-Interaktion verwenden. Möglicherweise haben Sie auch eine Server-Wallet, die TX serverseitig signiert.
  3. Sie können eine Ethereum-Wallet für Ihre Benutzer verwalten und ihnen eine herkömmliche Anmeldung bereitstellen. Ihre gesamte ( nicht dezentralisierte ) Blockchain-App könnte also serverseitig sein.

In jedem Fall können Sie node.js als Backend-Technologie verwenden oder es einfach als Teil einer Microservice-basierten Backend-Architektur verwenden.

Denken Sie nur daran, dass Sie, sobald Sie eine Brieftasche für Ihren Benutzer hosten, Ihren Server möglicherweise in einen Hacker-Honeypot verwandeln.

Ok, nehmen wir an, ich werde Metmask verwenden, um Brieftaschen zu verwalten. habe ich web3 auf Frontend-Ebene implementiert. und halten Sie andere Off-Chain-Geschäfte auf einem nodejs-Server?
Das klingt für mich richtig. Alle Aktionen zwischen dem Benutzer und der Blockchain sollten durch Front-End-Javascript initiiert und vom Benutzer über die Metamaske abgeschlossen werden.
Sie können auch prüfen, ob Ihre bevorzugte Backend-Technologie über eine gut gewartete Ethereum-Implementierung verfügt. github.com/ethereum/web3.js#other-implementations