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 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/errors from 1.0.0-beta.7 to 1.0.0.
Release notes
Sourced from cosmossdk.io/errors's releases.
Changelog
Sourced from cosmossdk.io/errors's changelog.
... (truncated)
Commits
d21f58c
feat(log): wire logger filtering (#15601)f3110e9
build(deps): Bump github.com/cosmos/gogoproto from 1.4.6 to 1.4.7 (#15617)bbaa535
style: second round of linting (#15607)68cd9c5
chore: check spelling in linter (#15611)1f2875d
style: gofumpt linting (#15605)24344fb
refactor!: use store service in x/nft (#15588)a7b80d5
feat(log): add NewTestLogger{Info,Error} constructors (#15604)ed2eb6f
build(deps): Bump cosmossdk.io/x/tx from 0.4.0 to 0.5.0 in /tests (#15599)4e337c3
chore: add label and title to issue templates (#15595)cb30586
chore: pass argument to linter script (#15592)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 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)