v0.50.x to v0.53.x.
This guide includes one required change and three optional features.
After completing this guide, applications will have:
- The
x/protocolpoolmodule - The
x/epochsmodule - Unordered Transaction support
Table of Contents
- App Wiring Changes (REQUIRED)
- Adding ProtocolPool Module (OPTIONAL)
- Adding Epochs Module (OPTIONAL)
- Enable Unordered Transactions (OPTIONAL)
- Upgrade Handler
App Wiring Changes REQUIRED
Thex/auth module now contains a PreBlocker that must be set in the module manager’s SetOrderPreBlockers method.
Adding ProtocolPool Module OPTIONAL
Using an external community pool such as
x/protocolpool will cause the following x/distribution handlers to return an error:QueryServiceCommunityPool
CommunityPoolSpendFundCommunityPool
x/distribution, please update them to use either x/protocolpool or your custom external community pool alternatives.Manual Wiring
Import the following:DI Wiring
Note: as long as an external community pool keeper (here,x/protocolpool) is wired in DI configs, x/distribution will automatically use it for its external pool.
First, set up the keeper for the application.
Import the protocolpool keeper:
Adding Epochs Module OPTIONAL
Manual Wiring
Import the following:DI Wiring
First, set up the keeper for the application. Import the epochs keeper:Enable Unordered Transactions OPTIONAL
To enable unordered transaction support on an application, thex/auth keeper must be supplied with the WithUnorderedTransactions option.
Note that unordered transactions require sequence values to be zero, and will FAIL if a non-zero sequence value is set.
Please ensure no sequence value is set when submitting an unordered transaction.
Services that rely on prior assumptions about sequence values should be updated to handle unordered transactions.
Services should be aware that when the transaction is unordered, the transaction sequence will always be zero.
SigVerifyOptions field in x/auth's ante.HandlerOptions.
Upgrade Handler
The upgrade handler only requires adding the store upgrades for the modules added above. If your application is not addingx/protocolpool or x/epochs, you do not need to add the store upgrade.