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

CI: Minor releases should sync through more blocks pre-release #2295

Closed
Tracked by #4616
ValarDragon opened this issue Aug 4, 2022 · 5 comments
Closed
Tracked by #4616

CI: Minor releases should sync through more blocks pre-release #2295

ValarDragon opened this issue Aug 4, 2022 · 5 comments

Comments

@ValarDragon
Copy link
Member

Background

Currently we have a CI workflow that runs epoch block + 1000 blocks on every commit to latest release branch. This is great for testing!

We should also have a CI flow that we can use pre-release that syncs through every available block on that branch. (So we make a snapshot of state at a height slightly after upgrade or upgrade directly)

This will increase our pre-release mainnet sync's battery of tests, from 1000 blocks (+ simulator after #2267 ) to all available blocks. The degree to which we can depend on this will depend on whats the syncing advantage factor, what degree we can parallelize the syncs, etc.

Suggested Design

Make a CI workflow we can use to try syncing a node with a given branch, from pre-configured start height for that release (e.g. first block of v11 based on a snapshot) to some set end block OR latest block.

This can be something we manually require before tagging any minor or patch version

@niccoloraspa
Copy link
Member

niccoloraspa commented Aug 4, 2022

Hey @ValarDragon, thanks for the issue. I like the idea of running the check for more extended periods before a release.

I had a more basic approach to addressing this problem:
What I had in mind was to have a CI that would spin up a node from the latest snapshot and leave it up for a certain amount of time (e.g., 24h hours), setting a halt-time in the config.toml.

This is simpler to implement as it is only a tiny variation of our current CI, and we would not need to have a post-upgrade snapshot. At the same time:

  • it would only process a portion of the blocks and not all the vX blocks
  • it would "freeze" the release for the testing time

What I like about this though, it's that the CI offers node-as-service and it can be used to test any branch/commit for longer period of time and is not necessarily limited to a release.

If it's okay with you, we can start with this solution first and then modifying to begin at earlier block heights.
The main reason for adding this intermediate step it's that we would need to extend our self-hosted architecture to allow a node to run for an extended period of time.

@faddat
Copy link
Member

faddat commented Nov 25, 2022

#3507

Does anyone other than myself have a state sync script?

I favor Dev's approach, and use it widely on other chains. It is a safe way to check for app hash errors. It requires linking a physical machine into ci because otherwise it takes forever and a day.

@czarcas7ic
Copy link
Member

@niccoloraspa is there any updates on the path we are looking to go with this?

@niccoloraspa
Copy link
Member

I have moved this task to our board.
We could close this issue here.

@niccoloraspa
Copy link
Member

It's tracked here for reference: https://github.com/osmosis-labs/osmosis-ci/issues/13

@p0mvn p0mvn closed this as completed Mar 29, 2023
@github-project-automation github-project-automation bot moved this from Needs Triage 🔍 to Done ✅ in Osmosis Chain Development Mar 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

5 participants