Go to file
Cuong Manh Le d3769b2fbc
internal/conv: fix wrong string to bytes implementation (#9141)
UnsafeStrToBytes is currently not safe for -d=checkptr=2, since when it
cast from smaller struct (string) to bigger struct ([]byte). That causes
checkptr complains as the casting straddle multiple heap objects.

To fix this, we have to get the string header first, then use its fields
to construct the slice.

New implementation performs the same speed with the old (wrong) one.

name                old time/op    new time/op    delta
UnsafeStrToBytes-8    25.7ns ± 1%    25.7ns ± 3%   ~     (p=0.931 n=10+17)

name                old alloc/op   new alloc/op   delta
UnsafeStrToBytes-8     7.00B ± 0%     7.00B ± 0%   ~     (all equal)

name                old allocs/op  new allocs/op  delta
UnsafeStrToBytes-8      0.00           0.00        ~     (all equal)

While at it, also simplify UnsafeBytesToStr implementation, since when
we can pass the slice directly to unsafe.Pointer, instead of getting the
slice header first.
2021-04-19 14:51:05 +01:00
.github build(deps): bump codecov/codecov-action from v1.3.2 to v1.4.0 (#9136) 2021-04-19 09:30:17 +00:00
baseapp cosmos-reflection: extend to support writing by reflection clients (#8965) 2021-04-07 00:33:54 +01:00
client Set proper default command output (#8628) 2021-04-17 00:21:32 +00:00
codec Remove bech32 PubKey support (#7477) 2021-03-25 14:53:22 +00:00
contrib fix rosetta-test 2021-04-09 13:32:14 -04:00
cosmovisor cosmovisor: move binrary to UpgradeBin from directory (fix #8494) (#8497) 2021-04-10 16:20:33 +00:00
crypto Update ledger bech32 tests (#8981) 2021-03-26 10:20:46 +00:00
docs docs: uml hotfix (#9124) 2021-04-16 07:59:21 +00:00
internal/conv internal/conv: fix wrong string to bytes implementation (#9141) 2021-04-19 14:51:05 +01:00
proto/cosmos Merge branch 'master' into powerreduction_param 2021-04-10 16:26:50 -04:00
scripts scripts: indent multiline commands (#8706) 2021-02-25 20:57:41 +00:00
server Set proper default command output (#8628) 2021-04-17 00:21:32 +00:00
simapp Set proper default command output (#8628) 2021-04-17 00:21:32 +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 bump tendermint core (#9081) 2021-04-08 20:22:00 +01:00
telemetry Minor Code Cleanup - gRPC queries (#6862) 2020-07-28 12:53:35 +00:00
tests Add in-place store migrations (#8485) 2021-02-10 17:49:31 +00:00
testutil Merge branch 'master' into powerreduction_param 2021-04-10 16:26:50 -04:00
third_party/proto Any: update and test String method (#8854) 2021-03-12 12:24:07 +00:00
types Minor docs update to sdk.Int (#9126) 2021-04-16 08:43:49 +00:00
version Set proper default command output (#8628) 2021-04-17 00:21:32 +00:00
x Set proper default command output (#8628) 2021-04-17 00:21:32 +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 All Makefile proto commands use Docker (#7931) 2020-11-13 16:36:58 +00:00
.golangci.yml build(deps): bump github.com/otiai10/copy from 1.5.0 to 1.5.1 (#9077) 2021-04-09 14:09:25 +00:00
.goreleaser.yml ci: automate release post tag push (#6230) 2020-05-25 20:02:08 +02:00
.mergify.yml Update mergify (#8784) 2021-03-05 12:45:18 +00:00
CHANGELOG.md Set proper default command output (#8628) 2021-04-17 00:21:32 +00:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md (#7381) 2020-09-28 11:28:30 +02:00
CONTRIBUTING.md Update CONTRIBUTING.md Point Release Procedure (#7999) 2020-12-11 01:50:07 +00:00
Dockerfile remove plantuml install in docker (#9059) 2021-04-06 19:04:00 +00:00
LICENSE Add README.md to Basecoin; Update licenses 2018-01-28 18:17:19 -08:00
Makefile Use Docker to generate swagger files (#9064) 2021-04-07 10:31:39 +00:00
README.md Remove IBC from the SDK (#8735) 2021-03-04 13:11:34 +00:00
SECURITY.md Adding disclosure process to security.md (#9086) 2021-04-13 07:21:51 +00:00
STABLE_RELEASES.md Stable Releases: Definition and Process (#6394) 2020-07-14 10:28:53 +02:00
buf.yaml x/upgrade: remove support for time based upgrades (#8849) 2021-03-14 01:03:01 +00:00
docker-compose.yml buildsystem: simplify Makefile and ci automation (#7189) 2020-08-31 15:39:05 +02:00
go.mod build(deps): bump github.com/tendermint/tendermint (#9119) 2021-04-15 02:07:35 -04:00
go.sum build(deps): bump github.com/tendermint/tendermint (#9119) 2021-04-15 02:07:35 -04:00

README.md

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.