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/protocolpool
module - The
x/epochs
module - 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
CommunityPoolSpend
FundCommunityPool
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.