This doc outlines the current engineering priorities for the Infrastructure team of Terraform Labs for Q1 2021. Main changes will be prepping for the Columbus-5 mainnet upgrade, as well as improvements on ecosystem tools such as finder and station.
Dev roadmap for application projects such as Anchor and Mirror are not included in this document, and may be published separately.
Make the following changes for Columbus-5. Tentative ship date: March EOM
- Simplify treasury module logic: Adjusting Terra seigniorage distribution - #14 by dokwon
Dividend swap fees instead of burning them to faithful oracles
- recent rise in Luna prices have lowered staking yield to below a dollar
- without making assumptions about increase in payments txn volume, the only way to make sure the ecosystem captures value well (linear to AUM) is to dividend swap fees instead of burning them
- this will only result in ~2% less burn happening, while staking yield will increase above 10%
- this further creates incentives for validators to not submit “abstain” votes for oracles
Upgrade SDK ver to Stargate
- CosmosSDK@v0.40.x(stargate) and CosmWasm@v0.13.x (email@example.com)
- Hold off on IBC support until other networks prove stability (maybe 3 months?) → maybe we can “darkflight” this feature, so we can enable IBC via a governance feature after launch
- Upgrade module to be included s.t. no manual upgrades ever have to happen again
basepoolsize to be set proportional to stablecoin supply
- Right now, swaps are limited by a governance set parameter “basepool” which is denominated in absolute value of TerraSDR. This means that as UST supply gets larger and larger, the basepool supply has to be manually updated by governance each time, leading to excessive overhead
- Basepool size should be a proportion of AUM (e.g. 10% of UST supply). This would mean the system would become more conservative in swaps as the economy shrinks, and become more agressive as the economy expands.
- Removes governance overhead
Optimize gas efficiency of oracle votes
- Submitting prevotes and votes for 15 fx pairs every 5 blocks is expensive - we should find a way to optimize this
- Item 1 should make it easier for oracles to shoulder costs
- (Optional) Prioritize transaction ordering in the mempool to cope with transaction flooding.
- Mimic Ethereum mempool logic
- This can be added later without fork
- Charge gas cost for the log size from the contract
- Now there is no way to restrict contract log size, so it is very easy to occupy the node operator’s local storage by emitting huge contract event logs.
- We currently allow a node operator to specify the whitelist contract addresses for logging.
- If we charge gas cost to the contract log, we can prevent storage spamming and also can remove contract whitelist feature
- (Optional) Change genesis export & import way from json to other way
- Minimize genesis encoding & decoding cost
Luna economics improvements (application layer)
Buyback and unify staking rewards (Station)
- “Withdraw rewards” requires buys for Luna on Terraswap for all stablecoin rewards accumulated (buyback and dividend similar to mirror)
- This will make it easier for service providers to offer Luna staking
- Mechanism to be implemented as a smart contract and included as a part of docs.terra.money for folks looking to implement Luna staking
Station swaps to favor Luna economics
- UST → Luna swaps uses terraswap (buys Luna)
- Luna → UST swaps uses layer 1 swap (burns Luna)
Ecosystem (Station, Bridge, Finder)
[New Feature] Bridge.terra.money
- A unified interface to send and receive Terra assets on the interchain
- front end interface that sits on Wormhole, Axelar and Shuttle
- station supports the ability to receive & send assets in all supported networks
- Retire shuttle, migrate existing Ethereum integrations to wormhole
- Station web to allow signin from station extension
- [New Product] Station mobile
- Contracts need to become more legible on Finder → on-going