SNS testing before launch
Before SNS creation, it is advisable to thoroughly test the process.
Testing on a local machine
Developers can test on a local machine. The sns-testing repository contains scripts that help developers test the SNS creation process. They can deploy the dapp in a local canister development environment and run through the stages of decentralizing their dapp.
The main intent of the sns-testing
repo is for a developer to test the actual process of decentralizing their dapp.
Among other things, developers can use the sns-testing
repo to:
- Initiate proposals.
- Pass proposals.
- Start decentralization swaps.
- Upgrade the dapp via DAO voting.
sns-testing
is just one form of testing the SNS process locally. Developers should feel free to use others, fork/modify sns-testing
, or create their own.
Testing on the mainnet
Once a developer has tested the process of an SNS, it is highly recommended they do an "SNS testflight" on mainnet. An SNS test flight is when a developer deploys their dapp (to the mainnet) and hands control of it to a mock SNS (on the mainnet).
The main intent of performing an SNS test flight is for developers to experience how a dapp works after it has been decentralized, so developers can make sure their dapp is ready for decentralization. It does not test the actual process of decentralizing it.
A test flight is not a repository or a set of tools but an activity (deploying a dapp and handing control of it to a mock SNS), so the instructions for testing on mainnet utilize various tools, but developers can of course use any tools they wish.
Among other things, here are some examples of issues developers find when running an SNS test flight:
- They need a better pipeline for creating proposals to update a dapp.
- They may have decentralized prematurely and need to fix some things.
- They may need better monitoring before decentralizing.
The mock SNS used in an SNS test flight gives developers the ability to see what the post-decentralization lifecycle of a dapp looks like but still provides a way for a developer to keep control of their dapp. Therefore, developers are encouraged to run and perform an SNS test flight on the mainnet, potentially for multiple days or weeks, to ensure that all aspects have been covered.