# Migrating from v0.39 to v0.40 and later using Starport
This tutorial is a guide to migrate your Cosmos SDK application from v0.39 and earlier (Launchpad) to v0.40 and later (Stargate). The Cosmos SDK v0.40 release comes with many features and enhancements, such as IBC, efficiency gains, protobuf support, and more.
We will be using Starport to assist us with the migration.
Install it by entering:
This tutorial migrates the Proof of File existence (PoFE) tutorial from v0.39 and earlier to v0.40 and later (Stargate). The tutorial examples show a migration from Cosmos SDK version
To get the code for the Proof of File Existence (PoFE) application, clone the pofe repo (opens new window).
This tutorial regularly references the App and Modules Migration (opens new window) documentation that contains crucial information about how to migrate a module and application from v0.39 to v0.40 and later (Stargate).
The modular and composable design of Cosmos SDK applications simplifies the migration process by copying modules from v0.39 to a boilerplate Stargate v0.40 and later application and then updating the commands. This tutorial uses Starport to scaffold new files that are used as a baseline for migrating your application logic.
# Boilerplate application
In this tutorial, you move the logic from the
launchpad application to the
stargate application to make your blockchain Stargate-ready.
- Put the v0.39 PoFE application in a
- Create an adjacent
The directory structure should look like this:
Once you have your application ready, we will be using Starport to assist us with the migration to Stargate.
Start off by scaffolding your application using the following command.
Once this is done, you should have a folder called
pofe with your boilerplate Stargate application.
# Directory Structure
By taking a look at the directory structure, you can determine that there have been a few changes in the overall directory structure.
The first key change in the application is that
pofecli no longer exists, and all of its functionality has been consolidated into
pofed. You will still be able to access commands from
The second notable change in the app structure is the integration of protobufs. Protobufs are a compiled form of messaging and therefore more performant than their JSONRPC counterparts.
The directory includes
pofe/proto folders and the regex
Now you have a better understanding of the differences in your application and are prepared to migrate your application from v0.39 to v0.40 and later (Stargate).