Marktplatz Smart Contracts

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:

  1. Ich gehe davon aus, dass alle Einträge in der Ethereum-Blockchain gespeichert sind. Wenn ja, bedeutet das, dass jeder, der die Listen anzeigen möchte (Clients), den Ethereum-Client auf dem Computer ausführen muss? Gibt es eine Möglichkeit, den Ethereum-Client nicht auf dem Computer laufen zu lassen und die Auflistungen durchsuchen zu können?
  2. Was ist der Unterschied zwischen dem Aufbau eines dezentralisierten Marktplatzes auf Blockchain- vs. P2P-Ansatz?

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

  1. Verwenden Sie Smart Contracts, um einen dezentralen Marktplatz zu erreichen, ist es ein Blockchain-Ansatz oder ein P2P-Ansatz?
  2. Bedeutet das beim P2P-Ansatz, dass Sie sich darauf verlassen, dass Ihr Netzwerk den Knoten betreibt und das System am Laufen hält? Oder kann jeder mit laufendem Ethereum-Knoten dasselbe tun?
  3. Wie erreicht man das „Suchen“, wenn die Daten der Listings dezentral auf der Blockchain gespeichert sind? Ich sehe, Augur und OpenBazzar haben eine Suchfunktion. Wie haben sie das erreicht?
  4. Wenn ich eine API für die Interaktion mit Smart Contracts erstelle, bedeutet das, dass meine API nicht dezentralisiert ist, weil sie auf einem Server wie AWS oder Azure gehostet wird? Wird diese API mit einem der Knoten kommunizieren, die wir selbst gehostet haben?
  5. Wie interagiert ein Webclient mit dem Marktplatz? Der Webclient stellt API-Anforderungen, dann interagiert die API mit Smart Contract auf dem von mir gehosteten Knoten?

Jede Hilfe wird sehr geschätzt!

Antworten (2)

Hier geht's:

  1. 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)

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

  7. 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:

  1. 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.

  2. 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.

  1. Es ist Blockchain, und es ist beides. Intelligente Verträge sind der Code des EVM, genau wie Java oder C# oder jede andere Sprache der Code eines P2P-Netzwerks ist. Die Blockchain selbst ist nichts anderes als ein großes, verteiltes Netzwerk, dessen Zweck es ist, kryptografische Konsensalgorithmen auszuführen. Eine Blockchain ist per Definition P2P, es gibt kein „unter der Haube“. Es ist ein Netzwerk von Zehntausenden von Menschen, die sich nicht kennen, über die ganze Welt verteilt sind und alle dieselbe Software verwenden, um dasselbe Netzwerk am Laufen zu halten, damit Daten zusammengestellt und unwiderruflich, öffentlich und dauerhaft ergänzt werden können das Netzwerk.

Dieses Netzwerk fungiert von Natur aus auch als Hauptbuch aller Transaktionen, die jemals darauf stattgefunden haben.

  1. 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.

  2. 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).

  3. 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.

  1. Es verwendet Codebibliotheken, wie jede andere Software, um Dinge zu erreichen, ohne das Rad neu zu erfinden. Web3.js ist eine gemeinsame Bibliothek, die entwickelt wurde, um den Compiler-Code aus der Blockchain in menschenlesbare und interaktive Anwendungen zu interpretieren.