Economics
Emission Curve
Status: implemented
The Emission Curve will target 2% after 10 years.
https://gitlab.com/thorchain/bepswap/thornode/blob/master/constants/constants.go
Bond and Pool Rewards
Status: drafted
Bonders will be paid 2 / 3rds and Stakers will be paid 1 / 3rd of the System Income, defined as block rewards and block liquidity fees.
https://gitlab.com/thorchain/bepswap/thornode/tree/emissionCurve
Slashing/Penalties
Status: under review
Nodes will be penalised if they fail to make witness transactions or sign delegated transactions. The penalty is a time-offset which reduces their Bond Rewards. Nodes will be slashed if they steal funds (defined as making any un-authorised transaction from a Yggdrasil vault) to the amount of the stolen funds.
[ADD] slash node accounts not observing inbound txs
Node Mechanics
Churn
Status: implemented
Nodes are churned every 3 days on schedule, or 6 hours after they request to leave. The highest bonded standby Node is chosen to enter. On schedule, the oldest Node and the “baddest” Node are alternated to leave, defined as having the highest penalty offset.
Add:”Allow active node accounts to leave”
Asynchronous Liquidity Delegation
Status: implemented
Asgard is a vault with all Nodes, whilst Yggdrasil are made up of 2 of 3
TSS committees, chosen randomly. Yggdrasil vaults are funded up to 50% of the bonded assets. Yggdrasil vaults are given 100 blocks to sign an outgoing transaction.
202-issue Don’t fund yggdrasil pool if we have less than MinimumNodesForYggdrasil
Governance
Status: finalised
Nodes have no ability to change any part of the network whilst they are running. They download a binary which contains a hard-coded constants.go
file with the global parameters. The only way to change the parameters is for 67% of the Nodes to choose to run an updated binary with the same parameters.
205-issue remove validator related setting from admin config, use const instead
Bifröst
Observer
Status: finalised
The Observer makes witness transactions on connected chains. Assets are reported in the CHAIN.SYMBOL-XXX
format. The Observer receives addresses to monitor from THORChain. The Observer maintains local purgeable state on the chain height and monitored addresses.
Signer
Status: finalised
The Signer prepares transaction payloads discovered in THORChain as corresponding to them in single-asset transfer format, before passing to the TSS module. The Signer maintains local purgeable state on the last signed height of each chain. The Signer broadcasts final signed transactions to a connected node.
TSS
Status: under re-implementation
The TSS receives transaction payloads from the local Signer and participates in signing ceremonies, before emitting the final signed transaction back to the Signer. The TSS is being re-implemented in the Binance Chain go-TSS library for better compatibility with the rest of the stack.
Liquidity
Swaps
Status: implemented
Users can swap any supported asset, including to a recipient.
Staking
Status: implemented
Users can stake (symmetrically or asymmetrically) any asset. Asymmetrical withdrawals was removed from the ChaosNet feature list since it needs more user research. Accordingly, internal arbitrage was also removed because it creates some edge cases not previously thought of.
New Pools
Status: implemented
New pools are listed every 50,000 blocks based on Rune depth. Anyone can create a new listing.
Next Steps
The codebase is now in a single binary “THORNode”, containing all aspects necessary. Nodes will be deployed by a simple docker image, and will be hands-off the entire time for Operators.
The codebase will be refactored to remove unnecessary modules, as well as being cleaned up and optimised.
Testing
The codebase currently goes through the following tests:
- Lint and Unit Tests
- Integration Tests
- Mocked Smoke Tests
- Live Smoke Tests
Mocked Smoke Tests simulate a local Binance Node with transactions, whilst Live Smoke Tests use real testnet assets on the Binance Chain testnet. Around 35 different transaction events are currently tested and scanned for 100% compliance. More transaction events and scenarios will be added.
Audit
The team will conduct an internal audit of the code in December before tabbing an external service provider to independently verify the codebase. Since nothing like THORChain has been built before and it operates on some new fundamentals, this may take some time, but will be done prior to Mainnet.
New Testnet
A stable testnet environment is being targeted in the next few weeks, which will correspond with the front-end design refresh. This will be announced to the community.
THORChain Update
THORChain team are on track for feature freeze this week, then moving into testing and validation.
To keep up to date with the upcoming Public Alpha, please monitor community channels, particularly Telegram and Twitter:
- Twitter: https://twitter.com/thorchain_org
- Telegram Community: https://t.me/thorchain_org
- Telegram Announcements: https://t.me/thorchain
- Reddit: https://reddit.com/r/thorchain
- Github: https://github.com/thorchain
- Medium: https://medium.com/thorchain