Weekly Dev Update #15
THORChain Weekly Dev Update for Week 29–04 Nov 2019

Recent Changes
Some recent changes to the logic of the statechain:
Ragnarök
Ragnarök (Norse for a battle of good and evil) will be built into the protocol to allow a graceful shutdown. The requirements for this are when all THORNodes elect to leave. At this point, all stakers will be refunded, all bonded assets returned and the statechain purged. This process can theoretically be done in around 5 seconds and is a remarkable characteristic of THORChain’s tightly-coupled design.
Bifröst
Bifröst (Norse for the bridge between the world of humans and gods), will be the new name for the co-mingled Observer and Signer binary. The benefit of which is to detect liveness in the Signer, (important for TSS), as well as sharing common code and logically grouping data flow.
Asymmetric Withdrawals
This was discussed heavily during the week and written up in a blog, but will allow stakers to enter and exit a pool without needing to hold Rune. Counter-intuitively, this actually drives more value into the Rune token than symmetrical staking, since asymmetic staking and withdrawals creates arbitrage and volume.
Single Operator Key
Instead of maintaining separate keys for each chain, the Node Operator will now only hold one key, from which a single secp256k1
public key will be derived. From this key, addresses can be encoded for almost all blockchains, and can be used across TSS in a uniform way.
BEPSwap Development
The team are working on 4 parallel streams of effort. Cross-chain infrastructure has now been merged into a single repo called “THORNode”.
- THORChain
- Threshold Signature Scheme implementation
- Front-end Integration for BEPSwap
- Chain Service
THORChain
Work continued in building in cross-chain support, including the basics for cross-chain staking and unstaking. More systems-wide testing is being completed, uncovering some small implementation errors in the statechain’s handling of integers and decimals. The statechain will be updated to only work with Cosmos Uint and Dec types. The start of the TSS integration has begun, which required some tweaks in how the two protocols worked together. Additionally, sscli
and ssd
(hangover since the June hackathon when it was called “swapservice”) have been renamed to thorcli
and thord
to comply with the branding.
- maintain a list of supported chains; Cross chain staking/unstaking
- Resolve “FIX : Asymmetrical staking of RUNE does not work as expected”
- Issue162 — integrate tss signer into statechain
- Issue164 — change pool address to pubKey
- rename ssd ==> thord; fix to JP test suite, Trying to fix gitlab CI being broken :(
- Update the memo used for staking against the statechain.
- issue178 update node account status since to block height
- Expose the NET environment variable to the container.
TSS
TSS code is now available publicly here:
The TSS implementation continues to build to a generalised purely p2p system that receives key-generation and key-signing requests from THORNodes and outputs the expected results. Key-generation logic, as well as transaction payload preparation and broadcasting is now handled from the signerd
module.
Chain Service
The Chain Service has been re-specced after the first round of testing on testnet and is being built to a versioned /v1
implementation. The new version borrows heavily from UniSwap standards. It is expected to be available next week for public review, and final integration into the refresh front-end.
The updated API tracks far more metrics, and in a much more concise way with standardised semantics around “buy” and “sell” side. Additionally, more metrics were added to allow stakers to calculate their profit and loss on certain pools.

Frontend
Work continues with the latest design refresh and is mostly complete.
- Resolve “Update stake list view page”
- Resolve “Create components for stake pages”
- Resolve “Build stake detail page layout”
- Resolve “Update tab component and Add page routing for view and detali pages”
- Resolve “Build stake pages”
- Resolve “Implement stake detail page for wallet connection status”
- Resolve “Implement stake detail page for wallet connection status”
- Resolve “Update confirmation modals”
- Resolve “Responsiveness on swap view and detail pages.”
- Resolve “Responsiveness on stake pages”

Whats Next?
To ship mainnet, the team are aiming for this:
Frontend:
Feature complete with excellent swapping and staking experience.
Chain Service:
Feature complete public RESTful API.
Statechain:
Feature complete with 22 of 33
Asgard, weekly churn, 2 of 3
satellite pools, asynchronous liquidity delegation and cross-chain support.
Timelines
The team are working for these milestones.
Other Development:
- RUNEVault: July 2019
shipped
- Telegram Bot: August 2019
shipped
- Bep2Bot: August 2019
shipped
BEPSwap:
- Testnet: August 2019
shipped
- Community Testing:
shipped
THORChain:
- Code Freeze: 20 November 2019
on-time
- Audit: 20 December 2019
on-time
- Genesis: 03 January 2020
on-time
Community
To keep up to date, 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