
Explore the fundamentals of blockchain technology and the evolution of its use cases. Learn the Cosmos SDK architecture, its main components and modules, and the interchain ecosystem.
Explore blockchain fundamentals, including a decentralized distributed ledger, cryptographic hash functions, and asymmetric keys, and learn how consensus models enable secure, trustless networks.
Explore how the Cosmos SDK enables sovereign, interoperable blockchains by composing a flexible state machine, modules, and IDC-based interchain communication with commit BFT and ABCI.
Review blockchain evolution, basic concepts, and use cases; introduce the Cosmos SDK architecture with its main components, modules, and the interchain ecosystem, preparing for the next module.
Set up the development environment by installing and configuring a Cosmos SDK chain, creating a minimal app base, and then explore Ignite CLI and Cosmos JS tools.
Install and configure a cosmos-sdk chain by meeting prerequisites, cloning the minimal chain repo, building the Pzd binary, updating your path, and initializing a one-node genesis for development.
Explore other development tools for the Cosmos SDK, including Ignite CLI for bootstrapping chains and IBC transactions, and Custom.js for JavaScript client solutions and faucet tooling.
Explore Cosmos SDK basics and concepts, from the architecture and key components of a Cosmos SDK application to transaction and query lifecycles, accounts, addresses, and the key ring.
Explore the cosmos sdk structure, from the node client and the core app.go to the context, multi-store, modules, application interface, and keepers, plus app codec, dependencies, and the makefile.
Build and broadcast transactions with the cli, signing them and managing gas and fees. Explore how queries access the store, balances, and the finalized block.
Explore how accounts derive from a public key and a private key, via mnemonic seed and hierarchical derivation, in a keyring with acp 256 k1, ssp 256 r1, ed25519 addresses.
Explore the Cosmos SDK anatomy, its key components, and their roles, then examine transaction and query lifecycles, accounts, and key ring concepts to craft your first custom module.
Explore the Cosmos-SDK's built-in modules, including accounts, balances, governance, staking, and upgrades, and learn how to compose custom modules with a keeper, module store, and protobuf services.
Build a Cosmos SDK custom module PS rock paper scissors, configure protobufs, define state, messages, queries, events, and governance-ready params, and wire the module into the app.
learn how to scaffold a cosmos-sdk custom module by adding boilerplate code in types, keeper, genesis, and app module wiring, including codec, params, genesis state, and dependency injection.
Build a custom cosmos-sdk module implementing a rock paper scissors game: keeper state, game map, next game number, validation of rounds moves and scores, and genesis setup.
Build a custom module by implementing a private message server in the keeper, validate and save new games, handle makemove, and wire the cli service for creating a game.
Implement a query server in the module keeper, supporting get game and get params, and wire it to the CLI and gRPC gateway for HTTP access.
Emit module events during state transitions in a custom cosmos-sdk module, including create game, make move, and end game, via the sdk context and event manager.
Learn to manage software versioning in blockchain projects, devise strategies for smooth upgrades, and apply them to your own chain, plus maintenance best practices including node monitoring and patches.
Understand semantic versioning for blockchain upgrades, including major, minor, and patch changes, and follow a governance-driven process with upgrade handlers and Cosmos Visor for automated upgrades.
Learn how to create a v1.0.0 release by implementing versioning and upgrades with Cosmos SDK governance and upgrade keepers, integrating modules, configuring genesis, and tagging the release.
Implement a commit-reveal protocol in a cosmos-sdk module by hashing moves with sha256 and salt, introducing reveal move, TTL, and expiration height for game expiry.
Add an active games queue keyed by expiration height and game id, and implement an end blocker that cancels expired in-progress games and prunes the queue each block.
Implement a v2 rc1 release by migrating the module store for the new expiration height, wiring the upgrade handler, and scheduling the upgrade through governance.
Draft and vote a software upgrade proposal to perform a scheduled upgrade to v2 rc1 at a set height on a cosmos-sdk blockchain, validating migrations via the upgrade keeper.
Enable telemetry in the Cosmos SDK to expose application, consensus, and networking metrics via in-memory and Prometheus. Use indexers, Dependabot for updates, and security advisories to stay production-ready.
Capture module five's takeaways on versioning and upgrades in blockchain, detailing strategies for smooth upgrades, maintenance best practices, and ongoing monitoring, support, updates, and patches.
Learn to write unit and end-to-end tests, then apply debugging techniques using tools and best practices to identify and fix issues in blockchain development with Cosmos sdk.
Learn to write unit tests for a cosmos-sdk game module, using table-driven go tests to validate is revealed, and add and reveal moves, plus keeper, message, and query tests.
Set up a client library with Custom.js, generate protobuf type definitions, and create end-to-end tests with Jest to sign and submit Cosmos-SDK transactions.
Explore advanced end-to-end testing by broadcasting and signing transactions in one block with the Stargate client, simulating a game between Alice and Bob with commitment and reveal moves.
Learn practical debugging techniques for Cosmos-SDK based apps using VSCode breakpoints, debug tests, and remote debugging with non-optimized builds and launch configuration.
Module six recap covers writing and running unit tests for components, creating end-to-end tests with a client-side library, debugging techniques including remote debugging of the node, and upcoming IBC.
Explore inter-blockchain communication in cosmos sdk by examining the cross-chain protocol and the role of ibc, then implement and enable ibc on your cosmos sdk chain and build ibc-compatible modules.
Explore how IBC enables secure, permissionless cross-blockchain communication via channels, light clients, and relay proofs, enabling token transfers, swaps, and cross-chain smart contracts within the Cosmos ecosystem.
Learn to implement IBC in the Cosmos-SDK by refactoring app wiring without dependency injection, wiring up keepers, modules, and IPC order, comparing old and dependency-injection approaches.
Implement IBC in Cosmos-SDK by wiring IPC transfers on the PS chain, adding capability, ABC, and transfer keepers, configuring memory stores, routers, and middleware, and testing with a relayer.
Connect our chain to the Atmos testnet via IBC, set up a relayer (go or Hermes), configure chains and keys, open an IBC path, and relay a test transfer.
Implement an IBC middleware in the Cosmos-SDK PS module to process game actions via packet memo parsing, converting cross-chain messages into PS transactions like create game, make move, or reveal.
Demonstrate implementing IBC in Cosmos-SDK through cross-chain transactions on the Atmos testnet, using IPC middleware, relayers, and cross-chain game creation across chains.
Explore IBC fundamentals and cross-chain communication in the Cosmos ecosystem, then enable IBC in a Cosmos SDK chain and build an IBC middleware for interchain rock, paper and scissors.
Celebrate completing this course by applying Cosmos-SDK concepts to build a production-ready, interoperable blockchain, covering setup, basics, modules, testing, upgrades, and inter-blockchain communication.
Embark on a comprehensive journey into the world of blockchain development with our in-depth course, "Building Production-Ready Blockchains with Cosmos-SDK." Designed for developers, blockchain enthusiasts, and curious minds, this course provides a robust framework to explore and master decentralized application development.
Starting with an introduction to blockchain technology, you'll explore foundational concepts, the evolution of blockchain, and various use cases. The course then dives into the Cosmos-SDK framework, where you'll understand its architecture, core components, and interoperability features, setting the stage for advanced development.
In the second module, you will learn to set up a complete development environment, including configuring Go, Cosmos-SDK, Docker, and other essential tools. This ensures you have a solid technical base to build and deploy your blockchain projects.
Moving forward, the course delves into the intricacies of the Cosmos-SDK, unraveling its structure, key components, and transaction lifecycles. You'll gain hands-on experience creating custom modules, defining their state and logic, and implementing messages, handlers, and events tailored to your blockchain's needs.
One of the course highlights is mastering Inter-Blockchain Communication (IBC), which enables seamless interaction between different blockchain networks. You'll configure and develop IBC-compatible modules, enhancing your blockchain's interoperability.
Security is a crucial aspect of blockchain development, and the course covers both protocol and network security best practices, equipping you to prevent and mitigate common vulnerabilities and attacks.
Additionally, you will learn testing and debugging techniques, ensuring your applications are robust and error-free. The course also emphasizes monitoring and optimizing performance to achieve efficient and scalable blockchain solutions.
Finally, you'll explore strategies for managing versioning and upgrades, ensuring your blockchain network remains current and well-maintained. The course culminates in a final project where you'll apply all the concepts learned, with an evaluation and certification of completion for successful participants.
Through engaging exercises and real-world examples, this course transforms theoretical knowledge into practical skills, preparing you to build and maintain production-ready blockchain networks with confidence.