Ist web3 eine echte verteilte Anwendung?

Die web3.js ist die einfachste und vielleicht die Standardmethode der DAPP-Erstellung. Ab sofort sind zwei Anbieter möglich, HttpProvider und IPCProvider. Der HttpProvider nimmt die Adresse, unter der der Server läuft, das kann so etwas sein

             var Web3 = require('web3');
             var web3 = new Web3();
             web3.setProvider(new web3.providers.HttpProvider("http://localhost:8545"));
                                               // or it can be http://m.n.k.l:8545

Meine Frage ist, ob der Server-Hosting/Knoten ausgefallen ist, wie kann der Client darauf zugreifen? In solchen Fällen ist die gesamte dapp ausgefallen. Was ist dann der Sinn, es Dapp zu nennen?

Ist mein Verständnis richtig, einen einzelnen Server als Anbieter zu haben?

Nicht alle Dapp-Ersteller hosten ihren eigenen Server / einen Knoten, der in RPC läuft. Wie würde der Ersteller in solchen Fällen eine Knotenadresse kennen?

In einer dezentralen Anwendung gibt es keinen Server. Der Anbieter sollte in den meisten Fällen localhost sein und sich mit dem Benutzerknoten verbinden.
@5chdn wie ist das wieder dezentralisiert?
@niksmac Willkommen bei Ethereum Stack Exchange, wenn Sie eine weitere Frage haben, stellen Sie diese bitte in einem separaten Thread. :-P Wenn sich jeder Benutzer nicht mit einem zentralen Server verbindet, sondern mit seiner dezentralen P2P-App, die auf seinem Localhost läuft, ist es per Definition dezentral, wenn nicht gar verteilt.
@5chdn danke :-P danke für deine Freundlichkeit, in einem Kommentar zu antworten. :D

Antworten (2)

Das localhost:8545in Ihrem Beispiel zeigt an, dass die DApp Anforderungen an einen Knoten sendet, der lokal auf dem Computer des Benutzers ausgeführt wird. Oft besteht das Paradigma darin, nach einem lokalen RPC-Server zu suchen und, falls dieser nicht vorhanden ist, einen öffentlichen Knoten als Fallback zu verwenden (vorausgesetzt, die DApp führt die Schlüsselverwaltung im Browser durch – andernfalls benötigen Sie einen lokalen Knoten, um die Schlüssel zu speichern). .

Wie würde ein Entwickler einen öffentlichen Knoten erkennen? und seine Adresse?

web3.js oder andere Clients kommunizieren mit einem Knoten, den Sie eingerichtet haben. In diesem Fall wird der Knoten ausgeführt localhost:8545und die App kommuniziert mit diesem Port, um Daten in diesem Knoten abzurufen. Jeder Knoten hat die gleiche Kopie der Daten, daher gibt es keinen zentralen Server und überhaupt keine Ausfallzeiten (das ist der springende Punkt der Blockchain).

Wenn Sie sich Sorgen über die Ausfallzeit eines einzelnen Servers machen, müssen Sie möglicherweise aus Ihrer Anwendungsperspektive denken. Sie können zwei oder mehr Knoten einrichten, um Ausfallzeiten und andere infrastrukturbezogene Probleme zu vermeiden.

In meinem Fall habe ich beispielsweise 3 Linux-VMs für die Geth-Instanz und einen Windows-Server für das Anwendungshosting und andere DB-bezogene Aktivitäten eingerichtet.

Dann ist es verteilt und nicht dezentral.
Ich bin mir nicht sicher, wie es dezentraler sein könnte. Es gibt die öffentliche Blockchain, die von einer beliebigen Anzahl von Personen, einschließlich vieler Heimcomputer mit GPUs, abgebaut wird, und es gibt Benutzer des dap, die Javascript lokal ausführen, das mit ihrem lokalen Ethereum-Knoten kommuniziert, der mit der öffentlichen Blockchain kommuniziert.