Warum wäre es nicht gut, viele Daten in Ethereum-Protokollen anstelle von Smart Contracts zu speichern?

Ich bin neugierig, wo man Big Data speichern kann. Ich möchte es nicht in meiner privaten Datenbank und nicht in ipfs speichern. Ich möchte, dass es auf der Blockchain sichtbar ist. Es ist also auf Blockchain Etherscan sichtbar, wenn ich Daten in Protokollen speichern würde.

Frage 1) Ist es die beste Lösung, große Datenmengen in Protokollen zu speichern? Ich will nicht woanders hin. es muss auf der Blockchain sichtbar sein

Frage 2) Warum sollte ich den Smart Contract von eos zum Smart Contract von Ethereum wählen? Ich weiß, es ist kostenlos. aber es hat immer noch einen Einsatz, und was ist, wenn ich es nach einiger Zeit nicht mehr eingesetzt habe und der Wert von eos auf 0,5 $ stieg, als ich es für jeweils 5 $ kaufte? Dann habe ich noch verloren und es war überhaupt nicht kostenlos

Frage 3) funktionieren Eos-Logs so wie die Logs von Ethereum? kann ich sie filtern, während ich sie bekomme? oder irgendeine Art von Daten in Protokollen suchen? Bei Ethereum ist es einfach.

Danke schön.

Antworten (1)

Die Schlüsselfrage hier ist, wie viel Gas Sie zahlen werden, um Ihre Daten zu speichern. Wenn Sie danach suchen, werden Sie auf eine andere StackOverflow-Frage verwiesen: Was ist billiger – Vertragsspeicherung | Protokolldaten | Transaktionseingang? , was Ihnen sagen würde, dass die billigste Option darin besteht, es in Ereignisprotokolle aufzunehmen. Beachten Sie, dass andere Smart Contracts nicht auf Ereignisprotokolle zugreifen können, also gehen wir davon aus, dass Sie diese Daten nur für Menschen benötigen, die die Kette inspizieren. In diesem Fall betragen Ihre Kosten:

  • 375 Gas für LOG-Anruf
  • 375 * 4 = 1500 Gas für die Aufnahme von vier 32-Byte-Themen
  • 8 * (Anzahl Bytes) für Zusatzdaten

Dies kommt auf viel weniger als 20.000 Gas pro 32 Bytes im Smart Contract Storage hinaus, wird aber immer noch teuer. Ihre wirklichen Einschränkungen sind, wie viel Ethereum Sie haben und wie Sie Ihr Protokoll an das Gaslimit anpassen. Bei einem Blockgaslimit von ~8M würde Ihr Protokoll maximal sein

8M gas in transaction / 8 gas per byte = 1MB per block

Sie würden auch ganze Blöcke selbst füllen, sodass Sie wahrscheinlich hohe Transaktionsgebühren zahlen müssten. Alles, damit Sie jeweils 1 MB Daten speichern können.

Es könnte sich lohnen, Blockchain für Ihren Anwendungsfall zu überdenken oder vielleicht eine Funktion der Daten (wie einen Validierungs-Hash) zu speichern, anstatt Big Data direkt zu speichern. Blockchain ist einfach nicht für Big-Data-Anwendungen ausgelegt.

Da Sie kein Experte für EOS sind, müssen Sie Ihre eigenen Nachforschungen in deren Dokumenten/Quellen anstellen, um festzustellen, ob sie irgendwelche dieser Implementierungsdetails geändert haben.