Ich möchte eine private Ethereum-Kette für einen bestimmten Zweck verwenden.
Ich möchte, dass Benutzer Verträge ausführen können, die ich erstellt habe oder mit denen ich die Blockchain initialisiert habe, aber ich möchte nicht, dass Benutzer neue Verträge erstellen können.
Gibt es eine Möglichkeit, dies entweder über Einstellungen oder eine einfache Quellcodebearbeitung (insbesondere in Geth) zu tun?
Nur der Knoten, den ich den Benutzern zur Verfügung stelle, die keine neuen Verträge annehmen können, würde ausreichen.
Wie aus dem gelben Papier zitiert:
Es gibt zwei Arten von Transaktionen: solche, die zu Nachrichtenaufrufen führen, und solche, die zur Erstellung neuer Konten mit zugehörigem Code führen (umgangssprachlich als „Vertragserstellung“ bekannt). Beide Typen geben eine Reihe gemeinsamer Felder an (...)
Transaktionen mit Vertragserstellung haben ein spezifisches Feld "init:", das nicht leer ist. Die Mining-Knoten können Transaktionen nach dieser Bedingung filtern.
Alternativ können Sie, wie von Roland Kofler vorgeschlagen, die Gaskosten des Opcodes CREATE sehr hoch festlegen, damit Ihre armen Benutzer nicht dafür bezahlen können. Dies ist vielleicht die einfachste Lösung. Sie können Ihre Miner auch Gaslimit unter den Kosten von CREATE festlegen lassen, damit Sie immer noch einen größeren Block durch Mining erstellen können
Roland Köfler
Deekor