cosmos-sdk

module
v0.46.0-beta1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2022 License: Apache-2.0

README

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.

Directories

Path Synopsis
api module
grpc/reflection
Package reflection is a reverse proxy.
Package reflection is a reverse proxy.
grpc/tmservice
Package tmservice is a reverse proxy.
Package tmservice is a reverse proxy.
rpc
tx
legacy
Package legacy contains a global amino Cdc which is deprecated but still used in several places within the SDK.
Package legacy contains a global amino Cdc which is deprecated but still used in several places within the SDK.
types
Package types defines a custom wrapper for google.protobuf.Any which supports cached values as well as InterfaceRegistry which keeps track of types which can be used with Any for both security and introspection
Package types defines a custom wrapper for google.protobuf.Any which supports cached values as well as InterfaceRegistry which keeps track of types which can be used with Any for both security and introspection
unknownproto
unknownproto implements functionality to "type check" protobuf serialized byte sequences against an expected proto.Message to report: a) Unknown fields in the stream -- this is indicative of mismatched services, perhaps a malicious actor b) Mismatched wire types for a field -- this is indicative of mismatched services Its API signature is similar to proto.Unmarshal([]byte, proto.Message) in the strict case if err := RejectUnknownFieldsStrict(protoBlob, protoMessage, false); err != nil { // Handle the error.
unknownproto implements functionality to "type check" protobuf serialized byte sequences against an expected proto.Message to report: a) Unknown fields in the stream -- this is indicative of mismatched services, perhaps a malicious actor b) Mismatched wire types for a field -- this is indicative of mismatched services Its API signature is similar to proto.Unmarshal([]byte, proto.Message) in the strict case if err := RejectUnknownFieldsStrict(protoBlob, protoMessage, false); err != nil { // Handle the error.
container module
cosmovisor module
hd
Package hd provides support for hierarchical deterministic wallets generation and derivation.
Package hd provides support for hierarchical deterministic wallets generation and derivation.
keyring
Package keys provides common key management API.
Package keys provides common key management API.
keys/internal/ecdsa
Package ECDSA implements Cosmos-SDK compatible ECDSA public and private key.
Package ECDSA implements Cosmos-SDK compatible ECDSA public and private key.
keys/secp256k1/internal/secp256k1
Package secp256k1 wraps the bitcoin secp256k1 C library.
Package secp256k1 wraps the bitcoin secp256k1 C library.
keys/secp256r1
Package secp256r1 implements Cosmos-SDK compatible ECDSA public and private key.
Package secp256r1 implements Cosmos-SDK compatible ECDSA public and private key.
db module
depinject module
errors module
conv
Package conv provides internal functions for convertions and data manipulation
Package conv provides internal functions for convertions and data manipulation
db
log module
math module
orm module
The commands from the SDK are defined with `cobra` and configured with the `viper` package.
The commands from the SDK are defined with `cobra` and configured with the `viper` package.
api
cmd
grpc/gogoreflection
Package gogoreflection implements gRPC reflection for gogoproto consumers the normal reflection library does not work as it points to a different singleton registry.
Package gogoreflection implements gRPC reflection for gogoproto consumers the normal reflection library does not work as it points to a different singleton registry.
grpc/reflection/v2alpha1
Package v2alpha1 is a reverse proxy.
Package v2alpha1 is a reverse proxy.
mock
nolint
nolint
params
Package params defines the simulation parameters in the simapp.
Package params defines the simulation parameters in the simapp.
Package std defines all the common and standard inter-module Cosmos SDK types and definitions modules and applications can depend on.
Package std defines all the common and standard inter-module Cosmos SDK types and definitions modules and applications can depend on.
mem
tools/ics23 Module
tests module
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
mocks/db
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
cli
network
Package network implements and exposes a fully operational in-process Tendermint test network that consists of at least one or potentially many validators.
Package network implements and exposes a fully operational in-process Tendermint test network that consists of at least one or potentially many validators.
rest
Package rest provides HTTP types and primitives for REST requests validation and responses handling.
Package rest provides HTTP types and primitives for REST requests validation and responses handling.
testdata_pulsar
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
bech32/legacybech32
Deprecated: The module provides legacy bech32 functions which will be removed in a future release.
Deprecated: The module provides legacy bech32 functions which will be removed in a future release.
errors
Package errors provides a shared set of errors for use in the SDK, aliases functionality in the github.com/cosmos/cosmos-sdk/errors module that used to be in this package, and provides some helpers for converting errors to ABCI response code.
Package errors provides a shared set of errors for use in the SDK, aliases functionality in the github.com/cosmos/cosmos-sdk/errors module that used to be in this package, and provides some helpers for converting errors to ABCI response code.
kv
module
Package module contains application module patterns and associated "manager" functionality.
Package module contains application module patterns and associated "manager" functionality.
tx
Package tx is a reverse proxy.
Package tx is a reverse proxy.
Package version is a convenience utility that provides SDK consumers with a ready-to-use version command that produces apps versioning information based on flags passed at compile time.
Package version is a convenience utility that provides SDK consumers with a ready-to-use version command that produces apps versioning information based on flags passed at compile time.
x
auth/migrations/v034
Package v034 is used for legacy migration scripts.
Package v034 is used for legacy migration scripts.
auth/migrations/v038
Package v038 is used for legacy migration scripts.
Package v038 is used for legacy migration scripts.
auth/migrations/v043
Package v043 creates in-place store migrations for fixing tracking delegations with vesting accounts.
Package v043 creates in-place store migrations for fixing tracking delegations with vesting accounts.
auth/types
Package types is a reverse proxy.
Package types is a reverse proxy.
authz
Package authz is a reverse proxy.
Package authz is a reverse proxy.
bank/migrations/v036
Package v036 is used for legacy migration scripts.
Package v036 is used for legacy migration scripts.
bank/migrations/v038
Package v038 is used for legacy migration scripts.
Package v038 is used for legacy migration scripts.
bank/migrations/v040
Package v040 is copy-pasted from: https://github.com/cosmos/cosmos-sdk/blob/v0.41.0/x/bank/types/key.go
Package v040 is copy-pasted from: https://github.com/cosmos/cosmos-sdk/blob/v0.41.0/x/bank/types/key.go
bank/types
Package types is a reverse proxy.
Package types is a reverse proxy.
distribution
Package distribution implements a Cosmos SDK module, that provides an implementation of the F1 fee distribution algorithm.
Package distribution implements a Cosmos SDK module, that provides an implementation of the F1 fee distribution algorithm.
distribution/migrations/v034
Package v034 is used for legacy migration scripts.
Package v034 is used for legacy migration scripts.
distribution/migrations/v036
Package v036 is used for legacy migration scripts.
Package v036 is used for legacy migration scripts.
distribution/migrations/v038
Package v038 is used for legacy migration scripts.
Package v038 is used for legacy migration scripts.
distribution/migrations/v040
Package v040 is copy-pasted from: https://github.com/cosmos/cosmos-sdk/blob/v0.41.0/x/distribution/types/keys.go
Package v040 is copy-pasted from: https://github.com/cosmos/cosmos-sdk/blob/v0.41.0/x/distribution/types/keys.go
distribution/types
Package types is a reverse proxy.
Package types is a reverse proxy.
evidence
Package evidence implements a Cosmos SDK module, per ADR 009, that allows for the submission and handling of arbitrary evidence of misbehavior.
Package evidence implements a Cosmos SDK module, per ADR 009, that allows for the submission and handling of arbitrary evidence of misbehavior.
evidence/migrations/v038
Package v038 is used for legacy migration scripts.
Package v038 is used for legacy migration scripts.
evidence/types
DONTCOVER Package types is a reverse proxy.
DONTCOVER Package types is a reverse proxy.
feegrant
Package feegrant provides functionality for authorizing the payment of transaction fees from one account (key) to another account (key).
Package feegrant provides functionality for authorizing the payment of transaction fees from one account (key) to another account (key).
genutil
Package genutil contains a variety of genesis utility functionality for usage within a blockchain application.
Package genutil contains a variety of genesis utility functionality for usage within a blockchain application.
gov
gov/migrations/v034
Package v034 is used for legacy migration scripts.
Package v034 is used for legacy migration scripts.
gov/migrations/v036
Package v036 is used for legacy migration scripts.
Package v036 is used for legacy migration scripts.
gov/migrations/v040
Package v040 is copy-pasted from: https://github.com/cosmos/cosmos-sdk/blob/v0.41.0/x/gov/types/keys.go
Package v040 is copy-pasted from: https://github.com/cosmos/cosmos-sdk/blob/v0.41.0/x/gov/types/keys.go
gov/types/v1
Package v1 is a reverse proxy.
Package v1 is a reverse proxy.
gov/types/v1beta1
Package v1beta1 is a reverse proxy.
Package v1beta1 is a reverse proxy.
group
Package group is a reverse proxy.
Package group is a reverse proxy.
group/internal/math
Package math provides helper functions for doing mathematical calculations and parsing for the ecocredit module.
Package math provides helper functions for doing mathematical calculations and parsing for the ecocredit module.
group/internal/orm
Package orm is a convenient object to data store mapper.
Package orm is a convenient object to data store mapper.
mint/types
Package types is a reverse proxy.
Package types is a reverse proxy.
nft
Package nft is a reverse proxy.
Package nft is a reverse proxy.
params
Package params provides a namespaced module parameter store.
Package params provides a namespaced module parameter store.
params/migrations/v036
Package v036 is used for legacy migration scripts.
Package v036 is used for legacy migration scripts.
params/types
To prevent namespace collision between consumer modules, we define a type Subspace.
To prevent namespace collision between consumer modules, we define a type Subspace.
params/types/proposal
Package proposal is a reverse proxy.
Package proposal is a reverse proxy.
simulation
Package simulation implements a full fledged Cosmos SDK application used for executing simulation test suites.
Package simulation implements a full fledged Cosmos SDK application used for executing simulation test suites.
slashing/migrations/v040
Package v040 is copy-pasted from: https://github.com/cosmos/cosmos-sdk/blob/v0.41.0/x/slashing/types/keys.go
Package v040 is copy-pasted from: https://github.com/cosmos/cosmos-sdk/blob/v0.41.0/x/slashing/types/keys.go
slashing/types
noalias DONTCOVER Package types is a reverse proxy.
noalias DONTCOVER Package types is a reverse proxy.
staking/migrations/v034
Package v034 is used for legacy migration scripts.
Package v034 is used for legacy migration scripts.
staking/migrations/v036
Package v036 is used for legacy migration scripts.
Package v036 is used for legacy migration scripts.
staking/migrations/v038
Package v038 is used for legacy migration scripts.
Package v038 is used for legacy migration scripts.
staking/migrations/v040
Package v040 is taken from: https://github.com/cosmos/cosmos-sdk/blob/v0.40.1/x/staking/types/genesis.pb.go by copy-pasted only the relevants parts for Genesis.
Package v040 is taken from: https://github.com/cosmos/cosmos-sdk/blob/v0.40.1/x/staking/types/genesis.pb.go by copy-pasted only the relevants parts for Genesis.
staking/types
Package types is a reverse proxy.
Package types is a reverse proxy.
upgrade
Package upgrade provides a Cosmos SDK module that can be used for smoothly upgrading a live Cosmos chain to a new software version.
Package upgrade provides a Cosmos SDK module that can be used for smoothly upgrading a live Cosmos chain to a new software version.
upgrade/migrations/v038
Package v038 is used for legacy migration scripts.
Package v038 is used for legacy migration scripts.
upgrade/types
Package types is a reverse proxy.
Package types is a reverse proxy.
circuit Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL