Ich bin neu in der Blockchain- und Smart-Contract-Technologie.
Ich möchte den Gesamtablauf verstehen, wie dezentralisierte Marktplätze funktionieren. Nehmen wir an, wir haben einen dezentralen Marktplatz, der mit intelligenten Verträgen für die Erstellung von Listen, Treuhand usw. erstellt wurde. Fragen:
Ein Ansatz ist die direkte Verwendung einer Blockchain. Diese Märkte platzieren Produktlisteninformationen direkt in einer Blockchain, sodass Käufer auf die Blockchain verweisen und von dort aus kaufen können. Eine andere Methode besteht darin, ein Netzwerk von Knoten zu erstellen, die alle direkt miteinander kommunizieren und nicht auf eine Blockchain verweisen, ähnlich wie bei BitTorrent. Originaler Artikel
Jede Hilfe wird sehr geschätzt!
Hier geht's:
Wenn Sie sich nicht besonders beim Client authentifizieren und nur die Daten sehen möchten, könnte sich Ihr Ethereum-Client auf einem Website-Backend-System befinden - auf diese Weise surfen Sie lokal nur im Internet (und tatsächlich könnten Sie sich bei Ihrem authentifizieren auch Webseite)
Wenn Sie die Marktdaten über ein P2P-Protokoll teilen, möchten Sie ziemlich schnell ein Transaktionssystem, mit dem Sie Konsistenz (siehe CAP-Theorem) zwischen Ihren Knoten und einen Konsens darüber herstellen können, was passiert ist / wer etwas zu verkaufen hat, das noch nicht war verkauft usw. An diesem Punkt können Sie genauso gut eine Blockchain verwenden.
Intelligente Verträge, wie sie heute sind, benötigen eine Blockchain, auf der sie ausgeführt werden können. Und die meisten Blockchains verwenden P2P-Protokolle unter der Haube.
P2P und Ethereum würden eine Netzwerkkonnektivität benötigen. Aber alle diese Protokolle sind ziemlich resistent gegen Aussetzer / Offline sein. Wenn Sie längere Zeit offline waren, würden sie einige Zeit brauchen, um aufzuholen, bevor Sie sich wieder voll engagieren können.
Sie können entweder die gesamte Blockchain bei jeder Suche parsen (langsam) oder einige spezielle Knoten haben, deren Aufgabe es ist, die Kette ständig zu parsen und die interessierenden Transaktionen auszuwählen (und wahrscheinlich auch eine Validierung durchzuführen), diese Knoten könnten lokale Suchen durchführen ihre gekürzte Liste von Transaktionen.
Ihr Smart Contract kann selbst als API betrachtet werden („Hier ist das Regelwerk für die Interaktion mit mir“). Oder Sie können eine API-Schicht über der Schnittstelle einer anderen Person entwerfen, die sie erweitert, um Ihnen einige Blockchain-Funktionen zu bieten, und sie veröffentlichen, damit der Drittanbieter sie in ihr System einfügt. Ihre API wird wahrscheinlich mit mindestens einem der Blockchain-Knoten interagieren (über einen intelligenten Vertrag oder durch Analysieren der Kettendaten), um die interessanten Teile zu erledigen
Ja, der Webclient kann mit einer API für eine Funktion kommunizieren, die Sie oder jemand anderes hostet, die weiß, wie sie mit den Smart Contracts der Blockchain interagieren muss. Oder sie können einfach direkt zum Smart Contract gehen (vorbehaltlich eines geeigneten Identitätssystems usw.).
Sie fragen: "Wie funktioniert Blockchain?" ohne zu fragen: "Wie funktioniert Blockchain?" Um Ihre Frage zu beantworten, ist eine buchstäbliche Lektion darüber erforderlich, wie Ethereum funktioniert. Es ist klar, dass Sie sich nicht die Zeit genommen haben, die Grundlagen von Blockchains oder Netzwerkdesign zu verstehen. Wenn Sie Blockchains ernsthaft verstehen oder entwickeln möchten, empfehle ich Ihnen dringend, sich daran zu gewöhnen, die GESAMTE Dokumentation zu lesen, bevor Sie irgendwelche Fragen stellen. Dies ist noch eine neuartige Technologie. Beginnen Sie mit dem weißen und gelben Papier und lesen Sie dann die gesamte Dokumentation auf ihrer Website, wenn Sie sich wirklich dafür interessieren. Ich beantworte dies nur, weil ich einen Artikel über die Erstellung eines zu 100 % auf Ethereum basierenden Marktplatzes schreibe und die meisten Informationen kopieren und einfügen kann. Ich würde sie als minderwertig kennzeichnen, was ich nicht oft tue.
Was hast du versucht? Welche Ressourcen haben Sie bereits gelesen? In welchem Kontext stellst du die Frage? Welche Informationen wollen Sie gewinnen?
Ich empfehle immer noch, die gesamte offizielle Ethereum-Dokumentation zu lesen, zu überlegen, wie viel Zeit die Leute gebraucht haben, um sie zusammenzustellen, und darüber nachzudenken, bevor sie vage Fragen stellen.
Ihre Antworten, Sir/Madam/Zer/Zim/Non-Binary/Astral/Zoological/oder fluid-gender Mitglied der menschlichen Spezies:
Stellen Sie sich für den Kontext Ihrer Frage das Ethereum-Netzwerk wie die Back-End-Software eines beliebigen Programms (in diesem Fall DApps) vor. Dieses Back-End ist die Ethereum Virtual Machine (EVM), die von Nodes betrieben wird; Sie sind dafür verantwortlich, sicherzustellen, dass die durch die EVM geleiteten Daten gültig sind, aber Sie benötigen keine, um das Netzwerk zu verwenden. Benutzer interagieren mit Code auf dem EVM mithilfe von Softwareclients, die Codebibliotheken wie Web3.js verwenden, um mit der Blockchain zu „sprechen“. Es ist wie das Ausführen von API-Aufrufen, mit einigen Unterschieden. Sehen Sie sich MetaMask als gutes Beispiel für einen Ethereum-Client an.
Ein dezentraler Marktplatz ist ein P2P-Markt, aber ein P2P-Markt muss kein dezentraler Marktplatz sein. Der Unterschied besteht darin, dass ein allgemeiner P2P-Markt jeden beliebigen Software-Stack verwenden kann, um das Endergebnis zu erzielen. Solange die Client-Software Daten mit anderen Instanzen der Software kommunizieren kann und es keinen Mittelsmann gibt (Peers interagieren direkt miteinander), haben Sie ein P2P-Netzwerk.
Ein dezentraler Blockchain-Marktplatz hat spezifische Anforderungen. Änderungen jeglicher Art innerhalb des Marktes (Hinzufügen eines Produkts, Akzeptieren von Zahlungen, Hinzufügen von Administratoren, Hinzufügen von Benutzerkonten, Preisänderungen, Bestandsprüfungen usw. usw.) erfordern jeweils einen Smart Contract, um den Prozess abzuwickeln. Smart-Contract-Aufrufe sind wie API-Aufrufe, mit einem großen Unterschied: Um Knoten dazu anzuregen, die von Ihnen gesendeten Daten zu übernehmen, datenintensive Berechnungen durchzuführen, um sie zu verifizieren, und sie der Blockchain hinzuzufügen, haben alle Vertragsaufrufe eine zugehörige Gasgebühr ( Menge an ETH). Je höher die Gasgebühr, desto mehr Anreiz hat ein Node, diese Transaktion einzubeziehen, da die Gebühr an ihn geht. Diese Gasgebühr kann vom Benutzer geändert werden (erhöht, um die Einnahme lukrativer zu machen, oder verringert, wenn die Zeit nicht begrenzt ist). Indem verlangt wird, dass jede Aktion einen Vermögenswert mit realem Wert kostet,
Es gibt jeweils Vor- und Nachteile. Beispielsweise könnte eine 100-prozentige Ethereum-Blockchain beispielsweise jeden ERC-20-Token als Zahlungsmittel verwenden. Die Daten sind aufgrund der Größe des Netzwerks und der verwendeten Konsensalgorithmen sicher. Ein Hacker kann nicht einfach eine Lücke im Ethereum-Netzwerk selbst finden und Probleme verursachen, wie er es könnte, wenn der Markt eine Web-App oder ein Desktop-Client wäre. Dieser Vorteil ist auch der Hauptnachteil, jede Aktion muss bezahlt werden. Wenn die ETH teuer ist (1200 $ zum Zeitpunkt des Schreibens) und die Verträge intensiv sind und viel Gas erfordern, können die Dinge teuer werden.
Zum Beispiel kostet derzeit ein einfacher Anruf , nur um dem EVM mitzuteilen, dass ich einen Smart Contract zur Nutzung meiner Vermögenswerte in einer DApp mit passivem Einkommen autorisiere, ETH im Wert von über 12 $, um dies in weniger als 10 Minuten zu erreichen. Sobald dies erledigt ist, muss ich einen noch komplexeren Aufruf zu einem Vertrag machen, der meine Mittel zuweist. Dies wird wahrscheinlich fast 50 US-Dollar betragen, wenn ich möchte, dass es schnell erledigt wird.
Dieses Netzwerk fungiert von Natur aus auch als Hauptbuch aller Transaktionen, die jemals darauf stattgefunden haben.
P2P ist so breit gefächert, dass es mit jedem Tech-Stack durchgeführt werden kann. Du brauchst keinen Knoten. Sie können einen Server haben, eine Webanwendung erstellen, die Benutzer verbindet, und sie wie eine normale Website ausführen, und es ist immer noch P2P. Sie können einen Client erstellen, der auf einem bestimmten Port mit einem bestimmten Protokoll ausgeführt wird, damit Benutzer P2P-Aktionen ausführen können. Ob es sich um Ethereum (Knoten) oder eine Web-App (das Internet) handelt, um das System am Laufen zu halten, hängt davon ab, für welches System es gebaut wurde. Ethereum ist nur ein Netzwerk wie das Internet, das eine andere Konsensmethode zur Validierung von Daten verwendet.
Blockchains sind öffentlich. Immer wenn Daten von einem Knoten validiert werden, werden sie einem Block hinzugefügt. Sofern Sie keinen Knoten ausführen und die Abfragen in die Konsole eingeben können, benötigen Sie eine Client-App oder Benutzeroberfläche. Knotenbetreiber können Rohdaten von ihren Computern abrufen. Die meisten Benutzer benötigen eine Website oder ein Programm, das mit einer Codebibliothek entwickelt wurde, die mit der Blockchain interagieren kann. Auch hier ist eine Blockchain nur ein Netzwerk. Eine Suchmaschine jeglicher Art benötigt drei Dinge: Eine Suchfunktion wie ein Feld oder Filter in der Benutzeroberfläche, eine Quelle für Rohdaten wie ein Netzwerk-Backend oder eine Blockchain und eine Codebibliothek, die die beiden verbindet (eine API oder bei Blockchains ABI).
Der Smart Contract ist die API (eigentlich ABI). Es ist dezentralisiert. Die Software, die die Leute verwenden, um mit den Verträgen zu interagieren, ist es nicht. Wenn Sie die Blockchain nicht ausführen, werden Sie niemals direkt mit einem Knoten sprechen. Um auf einer Blockchain nach Daten suchen zu können, müssen diese irgendwann in der Vergangenheit von den Nodes validiert worden sein. Wenn Sie den Smart Contract anrufen, spricht er mit dem gesamten Netzwerk. Die Nodes arbeiten hinter den Kulissen, sie validieren die Daten.
Sicher, Sie könnten technisch gesehen ein Protokoll erstellen, das einen bestimmten ETH-Knoten findet, überprüft, welche Transaktionen es zusammenstellt, um es in einen Block aufzunehmen, und sich das ansehen. Es wird Ihnen nicht nur nichts nützen, weil es möglicherweise nicht einmal der Knoten ist, um den Block zu lösen, und daher bleiben alle Transaktionen, die es in einen Block aufnehmen wollte, ausstehend oder wurden von einem anderen Knoten validiert, aber es ist ein Thema, das es erfordert ein Kapitel in einem Lehrbuch vollständig zu verstehen.