Sui-Mainnet 1.80.1 bringt Protokoll 137 und einen Konsens-Pool nach Gaspreis
Mysten Labs hat am 23. September Sui mainnet-v1.80.1 veröffentlicht, einen Tag nach dem passenden Testnet-Release. Es enthält die Protokollversion 137, und die Release Notes führen Änderungen am Protokoll, für Validatoren und für die Daten-APIs auf.
Auf Protokollebene wird die Prüfung von Ristretto255-Range-Proofs günstiger, und die Grenze für die Zahl der Commitments mal die Bitlänge des Bereichs steigt von 512 auf 1.024, sodass größere Stapel in einem Aufruf geprüft werden können. Die Anweisung LdConst berechnet Gas jetzt nach der abstrakten Wertgröße einer Konstante statt nach ihrer serialisierten Bytelänge, was laut Notes die Gaskosten für konstantenlastigen Code leicht erhöht. TransactionExpiration::Validity wird jetzt in allen Netzen akzeptiert, sodass eine Transaktion festlegen kann, welche Validatoren sie im Konsens vorschlagen dürfen; zusätzliche Prüfungen beim Signieren weisen strukturell ungültige Transaktionen früher ab; und eine neue Speicherinvarianten-Prüfung deckt die Verwendung von Referenzen und Werten in programmierbaren Transaktionsblöcken ab. Hinzu kommt eine Funktion allowances, und eine Prüfung von Objektmittel-Abhebungen innerhalb der Move-VM ist nur im Devnet aktiv.
Für Validatoren gibt es die optionale Einstellung consensus-transaction-pool. Ist sie aktiv, zieht der Konsens beim Vorschlagen eines Blocks Transaktionen aus einem validatorseitigen, nach Gaspreis sortierten Pool, statt dass die Annahmewarteschlange sie hineinschiebt. Für API-Nutzer gilt: Das JSON-RPC-Feld SuiTransactionBlockEffects.shared_objects kann nun implizit gelesene Systemobjekte enthalten; wer es als Liste der deklarierten gemeinsamen Eingaben behandelt, muss es gegen die Transaktionseingaben filtern.

Was das bedeutet
Den größten Einfluss hat der Pull-Pool. Wenn der Konsens beim Blockbau die bestbezahlten Transaktionen nimmt statt der zuerst eingetroffenen, rückt Sui näher an eine ausdrückliche Reihung nach Gebühr. Vorerst ist das optional - Validatoren und Anwendungsentwickler haben Zeit zu sehen, wie es sich unter Last verhält, bevor es Standard wird.
Für Entwickler verlangen zwei Zeilen Handeln. Die Gasänderung bei LdConst ist klein, aber real, und Verträge mit großen eingebetteten Konstanten sollten neu vermessen werden. Die Änderung an shared_objects ist von der Art, die Indexer still bricht: Code, der annahm, das Feld enthalte nur deklarierte Eingaben, zählt künftig Systemobjekte mit, sobald sie auftauchen - und die Notes sagen das ausdrücklich. Das alte Replay-Werkzeug ist bereits angepasst, ein Hinweis darauf, wo andere nachziehen müssen.