Go to file
Daniel Wedul 16e5d1a47b
feat(types): Deprecate the DBBackend variable in favor of new app-db-backend config entry (#11188)
* [10948]: Add changelog entry.

* [10948]: Deprecate the types.DBBackend variable and the NewLevelDB function. Create a NewDB function to replace them.

* [10948]: Add a DBBackend string to the simulation config and a flag for setting it. Update the simulation setup to use that instead of the compile-time DBBackend variable.

* [10948]: Update the mock app creator to use the NewDB function. Not sure what to do about the db backend in that case though.

* [10948]: Update changelog to reflect new db-backend field name.

* [10948]: Use the tendermint db-backend type for the snapshot db.

* [10948]: Update the last use of NewLevelDB by adding a parameter to openDB and uppdating calls to that to provide the db type to use.

* [10948]: Upddate the NewDB function to also have a default db backend type if an empty string is provided there.

* [10948]: Remove the new TODO in mock.NewApp. After looking through it's uses, there doesn't seem to be any desire to change it, and there's no easy way to communicate it.

* [10948]: Enhance the NewDB defer function to also add info to any err that is being returned.

* [10948]: Add some unit tests for NewDB.

* [10948]: Lint fixes.

* [10948]: Add a changelog entry to the deprecated section.

* [10948]: Update the makefile to no longer set the types.DBBackend value.

* [10948]: Use memdb for the mock app instead of goleveldb. I know it was a goleveldb before, but for a mock app, a memdb feels like a better choice (assuming 'mock' and 'mem' mean what I assume they mean).

* [10948]: Fix the store benchmark tests (had some index-out-of-range issues).

* [10948]: Fix cachekv store bench test calling iter.Key() before checking iter.Valid().

* [10948]: Remove the panic recovery from types.NewDB since dbm.NewDB returns an error now (it didn't originally, when NewLevelDB was first written).

* [10948]: Add changlog entry indicationg an API breaking change due to the DBBackend change.

* [10948]: Get rid of the types.NewDB function in favor of just using the tm-db version of it.

* [10948]: Fix Update the codeql-analysis github action to use go v1.17.

* [10948]: Add config file option for the app db backend type.

* [10948]: Adjust the comment on the app-db-backend config entry to clarify fallback behavior.

* [10948]: Add a default of GoLevelDBBackend to GetAppDBBackend. The old DBBackend variable defaulted to that, and some unit tests assume that behavior still exists.

* [10948]: Add the missing quotes around the app-db-backend value.

* [10948]: Small tweak to the changelog's deprecated entry.

* Add the go version declaration back into the codeql-analysis github action.

* [10948]: Update new use of openDB.

* [10948]: Put a brief delay after closing the test network. Hopefully that helps with address-in-use and non-empty directory errors.

Co-authored-by: Marko <marbar3778@yahoo.com>
2022-03-18 10:26:20 +01:00
.github feat(types): Deprecate the DBBackend variable in favor of new app-db-backend config entry (#11188) 2022-03-18 10:26:20 +01:00
api chore: Rename store/v2 -> store/v2alpha1 (#11392) 2022-03-16 18:30:27 +00:00
baseapp fix: RegisterLegacyAminoCodec should error if Msg name is >39 chars (#11349) 2022-03-16 13:21:00 +00:00
client feat: Modify grpc gateway to be concurrent (#11234) 2022-03-09 13:09:36 +00:00
codec fix: RegisterLegacyAminoCodec should error if Msg name is >39 chars (#11349) 2022-03-16 13:21:00 +00:00
container refactor(container)!: rename Scope -> ModuleKey (#11073) 2022-01-31 17:12:08 +00:00
contrib docs: Improve markdownlint configuration (#11104) 2022-02-10 12:07:01 +00:00
cosmovisor docs: Code blocks in SDK docs are broken (#11189) 2022-02-14 23:39:35 +01:00
crypto build(deps): Bump github.com/cosmos/iavl from 0.17.3 to 0.18.0 (#11363) 2022-03-11 17:42:27 +01:00
db feat: use cosmos/rocksdb rather than replace trick (#10927) 2022-01-11 22:29:53 +00:00
doc docs: Improve markdownlint configuration (#11104) 2022-02-10 12:07:01 +00:00
docs docs: Fix typo in docs/intro/overview (#11394) 2022-03-17 18:36:42 +00:00
errors fix(errors): support wrapped errors with gRPC codes (#11385) 2022-03-16 13:59:49 +00:00
internal feat: ADR-040: Add `RootStore` implementation (#10430) 2021-12-16 13:09:57 +00:00
orm feat(orm): gRPC codes for save errors (#11386) 2022-03-17 18:57:55 +00:00
proto chore: Rename store/v2 -> store/v2alpha1 (#11392) 2022-03-16 18:30:27 +00:00
scripts feat(scripts): wipe API directory before generating (#11342) 2022-03-10 10:29:42 +00:00
server feat(types): Deprecate the DBBackend variable in favor of new app-db-backend config entry (#11188) 2022-03-18 10:26:20 +01:00
simapp feat(types): Deprecate the DBBackend variable in favor of new app-db-backend config entry (#11188) 2022-03-18 10:26:20 +01:00
snapshots feat: ADR-040: add state sync for v2 store (#10794) 2022-03-04 06:05:23 +00:00
std fix: register evidence regression (#10595) 2021-12-14 14:25:31 +00:00
store feat(types): Deprecate the DBBackend variable in favor of new app-db-backend config entry (#11188) 2022-03-18 10:26:20 +01:00
telemetry refactor!: Keyring migration (#9695) 2021-09-20 12:02:15 +00:00
tests feat: ADR-040: Add `RootStore` implementation (#10430) 2021-12-16 13:09:57 +00:00
testutil feat(types): Deprecate the DBBackend variable in favor of new app-db-backend config entry (#11188) 2022-03-18 10:26:20 +01:00
third_party/proto feat: full api module building alongside gogo proto files with buf schema registry support (#10669) 2022-01-06 14:57:55 -05:00
types feat(types): Deprecate the DBBackend variable in favor of new app-db-backend config entry (#11188) 2022-03-18 10:26:20 +01:00
version refactor: Implementing sigs.k8s.io YAML to remove .proto yaml annotations (#9780) 2021-09-24 14:37:34 +00:00
x fix: authz with denylist (#11403) 2022-03-17 19:28:11 +00:00
.build.sh fix library file path (#8301) 2021-01-12 10:08:42 +00:00
.clang-format Fix clang-format to specific version (#7350) 2020-10-27 10:04:34 +00:00
.codecov.yml CI: Fix codecov flag project config (#7994) 2020-11-20 09:13:25 -05:00
.deepsource.toml chore: refactor code quality issues (#8932) 2021-03-22 09:30:27 +00:00
.dockerignore Add basic Dockerfile to build all binaries and export gaiad 2018-04-10 12:39:47 +02:00
.gitattributes Merge PR #6426: Migrate API Server 2020-06-15 13:39:09 -04:00
.gitignore feat: standalone errors go.mod (#10779) 2021-12-17 21:53:08 +00:00
.golangci.yml chore: bump TM to v0.35.0 release candidate (#10210) 2021-11-16 11:24:38 -08:00
.goreleaser.yml ci: automate release post tag push (#6230) 2020-05-25 20:02:08 +02:00
.markdownlint.json docs: Code blocks in SDK docs are broken (#11189) 2022-02-14 23:39:35 +01:00
.markdownlintignore docs: Improve markdownlint configuration (#11104) 2022-02-10 12:07:01 +00:00
.mergify.yml chore: Remove deprecated strict mode from mergify (#10694) 2021-12-08 11:35:28 +01:00
CHANGELOG.md feat(types): Deprecate the DBBackend variable in favor of new app-db-backend config entry (#11188) 2022-03-18 10:26:20 +01:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md (#7381) 2020-09-28 11:28:30 +02:00
CODING_GUIDELINES.md docs: Improve markdownlint configuration (#11104) 2022-02-10 12:07:01 +00:00
CONTRIBUTING.md docs: Code blocks in SDK docs are broken (#11189) 2022-02-14 23:39:35 +01:00
Dockerfile build: Update Dockerfile (#9839) 2021-08-03 09:46:16 -04:00
LICENSE docs: 10180 Fix SDK (#10237) 2021-09-28 19:33:58 +02:00
Makefile feat(types): Deprecate the DBBackend variable in favor of new app-db-backend config entry (#11188) 2022-03-18 10:26:20 +01:00
README.md chore: add meeting list and working groups to contributing doc (#10315) 2021-10-13 13:01:29 +00:00
RELEASE_PROCESS.md docs: Improve markdownlint configuration (#11104) 2022-02-10 12:07:01 +00:00
SECURITY.md docs: Improve markdownlint configuration (#11104) 2022-02-10 12:07:01 +00:00
buf.work.yaml feat: full api module building alongside gogo proto files with buf schema registry support (#10669) 2022-01-06 14:57:55 -05:00
docker-compose.yml build: add remote debugging with delve (#10587) 2021-12-01 12:44:54 +00:00
go.mod feat(types/errors)!: update to latest errors module beta (#11279) 2022-03-13 08:42:40 +00:00
go.sum feat(types/errors)!: update to latest errors module beta (#11279) 2022-03-13 08:42:40 +00:00

README.md

Cosmos SDK

banner

The Cosmos SDK is a framework for building blockchain applications. Tendermint Core (BFT Consensus) and the Cosmos SDK are written in the Golang programming language. Cosmos SDK is used to build Gaia, the first implementation of the Cosmos Hub.

WARNING: The Cosmos SDK has mostly stabilized, but we are still making some breaking changes.

Note: Requires Go 1.17+

Quick Start

To learn how the Cosmos SDK works from a high-level perspective, see the Cosmos SDK High-Level Intro.

If you want to get started quickly and learn how to build on top of Cosmos SDK, visit Cosmos SDK Tutorials. You can also fork the tutorial's repository to get started building your own Cosmos SDK application.

For more information, see the Cosmos SDK Documentation.

Contributing

See CONTRIBUTING.md for details how to contribute and participate in our dev calls. If you want to follow the updates or learn more about the latest design then join our Discord.

Tools and Frameworks

The Cosmos ecosystem is vast. We will only make a few notable mentions here.

  • Tools: notable frameworks and modules.
  • CosmJS: the Swiss Army knife to power JavaScript based client solutions.

Cosmos Hub Mainnet

The Cosmos Hub application, gaia, has moved to its own cosmos/gaia repository. Go there to join the Cosmos Hub mainnet and more.

Inter-Blockchain Communication (IBC)

The IBC module for the Cosmos SDK has moved to its own cosmos/ibc-go repository. Go there to build and integrate with the IBC module.

Starport

Starport is the all-in-one platform to build, launch, and maintain any crypto application on a sovereign and secured blockchain. If you are building a new app or a new module, use Starport to get started and speed up development.

Disambiguation

This Cosmos SDK project is not related to the React-Cosmos project (yet). Many thanks to Evan Coury and Ovidiu (@skidding) for this Github organization name. As per our agreement, this disambiguation notice will stay here.