Go to file
Dev Ojha 78b151dd97
perf: Remove telemetry from wrappings of store (#10077)
## Description

Closes: #10072 

Significantly speeds up all the GasKvStore and CacheKVStore operations. Now Get/Set for these stores no longer even appears on my Osmosis benchmarks, saving ~8% of those benchmark's times. (Only one of the internal methods for setCacheValue appear -- will try to separately get a PR for reducing those memory allocations if #10026 is merged)

Talked to @alexanderbez about this on Discord, and he seemed in agreement with the approach of removing telemetry from these stores.

This does technically change telemetry, but I don't know if this is / should be considered a breaking change?

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification - is there something I should be updating?
- [x] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
2021-09-05 20:07:04 +00:00
.github build(deps): bump actions/setup-go from 2.1.3 to 2.1.4 (#10009) 2021-08-31 07:40:06 +00:00
baseapp refactor!: BaseApp {Check,Deliver}Tx with middleware design (#9920) 2021-08-25 14:40:33 +00:00
client fix!: Remove onlyAminoSigners in sequence check (#10029) 2021-08-30 22:15:21 +00:00
codec test: bring back Marshalling/unmarshalling of a wrapped tx test (#10044) 2021-09-01 13:55:16 +00:00
container feat: add low-level dependency injection container API (#9658) 2021-08-12 09:07:15 -04:00
contrib feat!: change Coin storage model (#9832) 2021-08-05 17:00:28 +00:00
cosmovisor fix: add some logs on the update (#10036) 2021-09-02 08:38:07 -07:00
crypto fix: hardcoded ledger algo on keys add (#9766) 2021-07-28 10:14:40 +00:00
db feat: ADR 040: Implement in-memory DB backend (#9952) 2021-08-31 08:09:37 +00:00
docs feat: generate nft protobuf (#9747) 2021-08-31 11:10:44 +00:00
internal/conv internal/conv: fix wrong string to bytes implementation (#9141) 2021-04-19 14:51:05 +01:00
proto/cosmos docs: Fix GetNodeInfoResponse comment (#10052) 2021-09-02 08:23:30 +00:00
scripts chore: Add script to validate gentxs (#9486) 2021-07-27 09:37:29 +00:00
server refactor!: BaseApp {Check,Deliver}Tx with middleware design (#9920) 2021-08-25 14:40:33 +00:00
simapp fix: use keyring in config for add-genesis-account cmd (#9969) 2021-09-02 16:03:43 +00:00
snapshots snapshots: document use of ioutil.TempDir() (#8508) 2021-02-04 09:54:01 +00:00
std Add ADR 031 BaseApp and codec infrastructure (#7519) 2020-10-15 13:07:59 +00:00
store perf: Remove telemetry from wrappings of store (#10077) 2021-09-05 20:07:04 +00:00
telemetry v043 audit changes for telemetry/ (#9297) 2021-05-11 12:28:47 +00:00
tests test: fix mockgen version (#9127) 2021-05-25 09:18:59 +00:00
testutil refactor!: change GetSigners return type to []sdk.AccAddress (#9915) 2021-08-13 15:34:00 +00:00
third_party/proto Any: update and test String method (#8854) 2021-03-12 12:24:07 +00:00
types refactor!: BaseApp {Check,Deliver}Tx with middleware design (#9920) 2021-08-25 14:40:33 +00:00
version feat: add cosmos-sdk Version (#9429) 2021-06-18 12:56:55 +00:00
x feat: Make group module a standalone go module (#10059) 2021-09-03 09:14:53 +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 docs: fix cosmovisor quickstart (#9730) 2021-07-26 07:51:36 +00:00
.golangci.yml refactor: Rename x/{mod}/legacy to x/{mod}/migrations (#9628) 2021-07-05 14:55:51 +00:00
.goreleaser.yml ci: automate release post tag push (#6230) 2020-05-25 20:02:08 +02:00
.markdownlint.json chore: add markdownlint to lint commands (#9353) 2021-05-27 15:31:04 +00:00
.markdownlintignore chore: add markdownlint to lint commands (#9353) 2021-05-27 15:31:04 +00:00
.mergify.yml chore: Add mergify v0.43 backport (#9591) 2021-06-28 12:23:20 +02:00
buf.yaml refactor: Bring back deprecated proto fields to v1beta1 (#9534) 2021-06-23 13:03:33 +00:00
CHANGELOG.md perf: Remove telemetry from wrappings of store (#10077) 2021-09-05 20:07:04 +00:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md (#7381) 2020-09-28 11:28:30 +02:00
CONTRIBUTING.md docs: update adr section of contributing (#9710) 2021-07-27 21:27:49 -07:00
docker-compose.yml perf: Change localnet CIDR from /16 (65k addresses) to /25 (128 addresses) to reduce docker network conflicts (#9667) 2021-07-12 08:51:36 +00:00
Dockerfile build: Update Dockerfile (#9839) 2021-08-03 09:46:16 -04:00
go.mod fix: Ensure that we do not import multiple, conflicting tendermints (#10062) 2021-09-03 14:29:27 +00:00
go.sum fix: Ensure that we do not import multiple, conflicting tendermints (#10062) 2021-09-03 14:29:27 +00:00
LICENSE Add README.md to Basecoin; Update licenses 2018-01-28 18:17:19 -08:00
Makefile Fix missed renaming from containerProtoImage to protoImageName. (#10055) 2021-09-02 08:13:26 +00:00
README.md chore: add markdownlint to lint commands (#9353) 2021-05-27 15:31:04 +00:00
SECURITY.md chore: add markdownlint to lint commands (#9353) 2021-05-27 15:31:04 +00:00
STABLE_RELEASES.md chore: Update STABLE_RELEASES for 0.43 (#9931) 2021-08-16 09:10:50 -04:00

Cosmos SDK

banner

The Cosmos-SDK is a framework for building blockchain applications in Golang. It is being used to build Gaia, the first implementation of the Cosmos Hub.

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

Note: Requires Go 1.15+

Quick Start

To learn how the SDK works from a high-level perspective, go to the SDK Intro.

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

For more, please go to the Cosmos SDK Docs.

Cosmos Hub Mainnet

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

Interblockchain Communication (IBC)

The IBC module for the SDK has moved to its own repository. Go there to build and integrate with the IBC module.

Starport

If you are starting a new app or a new module you can use Starport to help you get started and speed up development. If you have any questions or find a bug, feel free to open an issue in the repo.

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.