Gibt es eine Möglichkeit, die Vertragserstellung in einem privaten Netzwerk zu deaktivieren?

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.

Eine Möglichkeit wäre, den Gaspreis für die Vertragserstellung auf einen sehr hohen Betrag zu toppen und Sie sind der einzige, der so reich ist. Oder Sie forken nach Vertragserstellung und deaktivieren den Opcode
Fragen Sie sich dasselbe, haben Sie eine Lösung gefunden?

Antworten (1)

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

meine Antwort bearbeitet
Jetzt kannst du überall kommentieren ;)