With this release we are shifting to a new CLI design:
in the past, Cosmovisor was designed to act as a wrapper for a Cosmos App. An admin could link it and use it instead of the Cosmos App. When running it will pass all options and configuration parameters to the app. Hence the only way to configure the Cosmovisor was through environment variables.
now, we are moving to a more traditional model, where Cosmovisor has it's own command set and is a true supervisor.
New commands have been added:
run will start the Cosmos App and pass remaining arguments to the app (similar to npm run)
help will display Cosmovisor help
version will display both Cosmovisor and the associated app version.
The existing way of starting an app with Cosmovisor has been deprecated (cosmovisor [app params]) and will be removed in the future version. Please use cosmovisor run [app pararms] instead.
New Features
We added a new configuration option: DAEMON_BACKUP_DIR (as env variable). When set, Cosmovisor will create backup the app data backup in that directory (instead of using the app home directory) before running the update. See the README file for more details.
Bug Fixes
Fixed cosmovisor version output when installed using 'go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0'.
This is the first major release of Cosmovisor. It changes the way Cosmovisor is searching for an upgrade event from an app. Instead of scanning standard input and standard output logs, the Cosmovisor observes the $DAEMON_HOME/upgrade-info.json file, that is produced by the x/upgrade module. The upgrade-info.json files is created by the x/upgrade module and contains information from the on-chain upgrade Plan record. Using the file based approach solved many outstanding problems: freezing when logs are too long, race condition with the x/upgrade handler, and potential exploit (if a chain would allow to log an arbitrary message, then an attacker could produce a fake upgrade signal and halt a chain or instrument a download of modified, hacked binary when the auto download option is enabled).
Auto downloads
Cosmovisor v1.0 supports auto downloads based on the information in the data/upgrade-info.json. In the Cosmos SDK < v0.44, that file doesn't contain upgrade.Plan.Info, that is needed for doing auto download. Hence Cosmovisor v1.0 auto download won't work with Apps updating from v0.43 and earlier.
NOTE: we don't recommend using auto download functionality. It can lead to potential chain halt when the upgrade Plan contains a bad link or the resource with the binary will be temporarily unavailable. We are planning on adding a upgrade verification command which can potentially solve this issue.
Other updates
Changed default value of DAEMON_RESTART_AFTER_UPGRADE to true.
Added version command, which prints both the Cosmovisor and the associated app version.
Added help command, which prints the Cosmovisor help without passing it to the associated version. This is an exception, because normally, Cosmovisor passes all arguments to the associated app.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps cosmossdk.io/math from 1.0.0-rc.0 to 1.1.3-rc.0.
Release notes
Sourced from cosmossdk.io/math's releases.
Commits
aaf68cd
build(deps): Bump gotest.tools/v3 from 3.5.0 to 3.5.1 (#17777)267cd15
fix(math): revert to correct version of ApproxRoot from a former state breaki...6615ff4
refactor!: deprecate blocktime on context (#17738)8df065b
feat: Optimistic Execution (#16581)ddcb37c
chore: fix deprecation annotations (#17784)d40a708
chore(tools/hubl): upgradeclient/v2
in hubl (#17742)167b702
build(deps): Bump cosmossdk.io/api from 0.7.1-0.20230820170544-1bd37053e0c0 t...9da9a23
chore(client/v2): explain breaking change v0.50 / v0.51 autocli (#17764)a0bd4e9
feat(client/v2): AddclientCtx
to commands in autocli (#17709)c7e0bd7
docs: update links for removed and re-added file (#17761)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show