Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a few helper command lines to help schedule and review network settings upgrades #3822

Closed
MonsieurNicolas opened this issue Jul 9, 2023 · 4 comments · Fixed by #4088
Closed
Assignees

Comments

@MonsieurNicolas
Copy link
Contributor

Right now we have very little tooling to assist with common tasks related to network settings:
it would require writing custom code using one of the SDKs and query & preflight using soroban-RPC.

We should not have to depend on third party libraries and systems in this particular case (see below for a few reasons).

This will be useful in at least the following places:

  • test environments
    • core CI, load gen/simulations (where we need to increase limits) - we can't really have a dependency on other systems in this flow because this would create a circular dependency (where we need downstream dependencies updated to use latest core when we try to certify latest core)
    • quickstart image
  • validators
    • testnet automation, when rebuilding testnet for example. When rebuilding testnet, we need to rebuild validators first before allowing other systems to come online, so having no dependency on Soroban-RPC is important
    • public network coordination. Regular vote and emergency votes (in which case, similar to testnet reset, we want to limit the number of moving parts involved in restoring service)

Commands to help review proposed network settings.

  • Command to output current network settings in human readable format (like json)
  • Command that, given a key (as passed to network upgrades), outputs in human readable format the corresponding settings (same syntax than the previous command as to allow diffs).

Commands to help with the creation of proposal of new network settings.

  • Command that takes as input a human readable file in the same format than what the "review command" above outputs, and outputs a payload usable in the context of transaction building (see below)
  • Commands to craft a well formed transaction (with footprints, resource utilization, fees etc):
    • to install a minimalist "network helper contract"
    • to invoke the helper to setup contract data usable by network upgrades (and also output the argument needed to use this in the context of network setting upgrades), tasking as input the payload generated by the other command

The transaction can then be signed using the signtx command.

@sisuresh
Copy link
Contributor

@anupsdf this issue should be used to track doing upgrades without RPC and the python sdk.

@sisuresh
Copy link
Contributor

This issue blocks -

I currently have a WIP branch built on top of rc2.1 that adds a new command line option to stellar-core. It dumps the transactions that need to be submitted to core to do an upgrade.

@sisuresh
Copy link
Contributor

sisuresh commented Nov 6, 2023

@leighmcculloch has released a version of quickstart using the WIP settings PR, so this is no longer a p0 item. The linked PR should still be merged in soon to avoid bitrotting.

@leighmcculloch
Copy link
Member

@leighmcculloch has released a version of quickstart using the WIP settings PR

This sounds a little like the quickstart image is using an unreleased version of stellar-core, but to be clear I released a version of quickstart that is using stellar-core v20.0.0-rc.2.2 which was a patch release containing the logic in this PR. The quickstart image is not using an unreleased version of stellar-core.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants