`network settings` outputs `frozen_ledger_keys` and `freeze_bypass_txs`, which can't be used in a `ConfigUpgradeSet`

Aperta Adatta ai principianti
#2,887 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
cli

Direzione di ricerca

Inizia da cmd/soroban-cli/src/commands/network/settings.rs, in particolare dal match che decide quali valori di ConfigSettingId includere. Verifica come --internal controlla le impostazioni non aggiornabili e consulta il comportamento di CAP-77 descritto nell’issue. Aggiorna la selezione in modo che l’output possa essere usato come ConfigUpgradeSet, quindi verifica che frozen_ledger_keys e freeze_bypass_txs siano esclusi dall’output predefinito.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug
What version are you using?

stellar-cli 30.0.1 (the relevant code is the same in 28.1.0).

What did you do?

I fetched testnet's config settings so that I could apply them to a local network as a config upgrade, which is what quickstart does to keep its local network's limits in sync with testnet:

stellar network settings --network testnet --output json \
  | jq -r '.updated_entry[] | keys[0]'
What did you expect to see?

Only the settings that a config upgrade can set. The --output help describes the output as the ConfigUpgradeSet XDR type, and settings that can't be upgraded (live_soroban_state_size_window, eviction_iterator) are already left out unless --internal is given, so I expected the output to be usable as a ConfigUpgradeSet as is.

What did you see instead?

The output also includes frozen_ledger_keys and freeze_bypass_txs. CAP-77 says these can't be upgraded by the regular mechanism that overwrites the whole entry, only through their frozen_ledger_keys_delta and freeze_bypass_txs_delta settings, so stellar-core rejects a ConfigUpgradeSet that contains them.

Quickstart works around this by stripping them out with jq before encoding the ConfigUpgradeSet: https://github.com/stellar/quickstart/blob/cb64aee580f1589c79264a98eaad839628074cd8/.scripts/update-config-settings#L56-L60

Thoughts

The command chooses which settings to fetch in cmd/soroban-cli/src/commands/network/settings.rs, and only LiveSorobanStateSizeWindow and EvictionIterator are gated behind --internal. Every other ConfigSettingId falls through to a catch-all arm whose comment says "All other configs can be modified by network upgrades and are always output": https://github.com/stellar/stellar-cli/blob/f2a7b74175c34585f3b30a1abf42a2d41cbcc390/cmd/soroban-cli/src/commands/network/settings.rs#L84-L91

The CAP-77 settings presumably landed in the catch-all when they were added to the XDR, so they're output even though that comment doesn't hold for them. Perhaps they could be treated the same as the other non-upgradeable settings and only output with --internal. Replacing the catch-all with an explicit match over every variant might also be worth considering, so that each setting added in a future protocol needs a decision about whether it can be upgraded.

Lingua principale
Rust
Stelle
129
Fork
153
Merge medio
1g 14h
PR unite (30g)
11

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di stellar/stellar-cli

Tutte le issue di stellar/stellar-cli

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.