core

module
v1.0.0-alpha.3 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2024 License: Apache-2.0

README

Cosmos SDK Core

The cosmossdk.io/core Go module defines essential APIs and interfaces for the Cosmos SDK ecosystem. It serves as a foundation for building modular blockchain applications.

Key features and principles:

  1. Provides stable, long-term maintained APIs for module development and app composition.
  2. Focuses on interface definitions without implementation details.
  3. Implementations are housed in the runtime(/v2) or individual modules.
  4. Modules depend solely on core APIs for maximum compatibility.
  5. New API additions undergo thorough consideration to maintain stability.
  6. Adheres to a no-breaking-changes policy for reliable dependency management.
  7. Aimed to only depend on schema, ensuring a lightweight and self-contained foundation.

The core module offers the appmodule and appmodule/v2 packages that include APIs to describe how modules can be written. Additionally, it contains all core services APIs that can be used in modules to interact with the SDK, majoritarily via the appmodule.Environment struct. Last but not least, it provides codecs and packages for the Cosmos SDK's core types (think of, for instance, logger, store interface or an address codec).

Developers and contributors approach core API design with careful deliberation, ensuring that additions provide significant value while maintaining the module's stability and simplicity.

Directories

Path Synopsis
Package appmodule defines what is needed for an module to be used in the Cosmos SDK (runtime).
Package appmodule defines what is needed for an module to be used in the Cosmos SDK (runtime).
v2
Package appmodule defines what is needed for an module to be used in the Cosmos SDK (runtime/v2).
Package appmodule defines what is needed for an module to be used in the Cosmos SDK (runtime/v2).
Package branch contains the core branch service interface.
Package branch contains the core branch service interface.
Package comet defines the Comet Service interface and BlockInfo types which applications should use in order to get access to the current block's evidence, validators hash, proposer address.
Package comet defines the Comet Service interface and BlockInfo types which applications should use in order to get access to the current block's evidence, validators hash, proposer address.
Package event provides a basic API for app modules to emit events.
Package event provides a basic API for app modules to emit events.
Package gas provides a basic API for app modules to track gas usage.
Package gas provides a basic API for app modules to track gas usage.
package genesis is used to define appmodule.HasGenesisAuto experimental auto genesis.
package genesis is used to define appmodule.HasGenesisAuto experimental auto genesis.
Package header defines a generalized Header type that all consensus & networking layers must provide.
Package header defines a generalized Header type that all consensus & networking layers must provide.
Server Defines types and interfaces which are shared between Consensus, Appmanager and Stf This package is not meant to be used directly by modules instead if an advanced user would like to create a custom server or replace a component in the server they will need to use the app package.
Server Defines types and interfaces which are shared between Consensus, Appmanager and Stf This package is not meant to be used directly by modules instead if an advanced user would like to create a custom server or replace a component in the server they will need to use the app package.
Package store provides a basic API for modules to interact with kv-stores independently of any implementation of that functionality.
Package store provides a basic API for modules to interact with kv-stores independently of any implementation of that functionality.
testing module

Jump to

Keyboard shortcuts

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