Weekly Dev Update #81
THORChain Weekly Dev Update for Week 81, 08–15 Feb; V0.20, V0.21, V0.22, Historical USD pricing, ASGARDEX improvements, BEPSwap Improvements.
Summary
The week saw three rapid releases issued to fix live bugs. The first release V0.20 and V0.21 were unrelated, but V0.21 caused a chain halt after the churn, so V0.22 was released to restart the chain. This was the first chain halt seen in a public network, but it restarted without any issues.
Midgard now comes with Historical Pricing in USD for volumes, fees and depths. This will allow more accurate historical charts to be plotted.
ASGARDEX and ASGARD Exchange continue to be worked on, getting closer to supporting all 5 chains.
THORChain V0.20.0
Testnet became stuck in vault migration, the root cause was some nodes started without ETH being fully synced. As a result the new vault was created without ETH support, thus when vault migration was to forward the ERC20 USDT to the next Asgard, it doesn’t know where send it.
release 0.20.0 to multichain testnet
THORChain V0.21.0
Every outbound tx on BTC chain, Bifröst attempted to spend all the UTXOs, but since it had 75 unspent UTXOs, this overloaded the TSS protocol and it kept timing out. The solution was to update Bifröst to cap at 15 UTXOs unless 15 UTXOs are not enough to pay for the outbound tx, then bifrost will spend as much as it need.
In addition THORChain uses 8 decimal precision, however ERC20 USDT only uses 6 decimal precision. Thus precision is lost between sending the transaction then observing it back in. As a result, nodes are accused of stealing assets and banned. The solution was to update Bifröst to report decimal precision of coin to THORChain when the decimal precision is less than 8, and pool will carry the precision as a property, when swap / withdraw, the emit asset will be rounded to the correct precision.
Release 0.21.0 to multichain testnet
THORChain V0.22.0
On version 0.21.0, the network banned some nodes who needed to be added back in. The logic to add them didn’t play nice with a network churn and caused a consensus failure after there was a mix up in who to add. The chain immediately halted. The team pushed a release which was able to restart the chain and fix the bug, in addition to some other minor bugs relating to BTC and ETH Bifrost.
release 0.22.0 to multichain testnet
Multichain Resources
Midgard: https://testnet.midgard.thorchain.info
THORNode: https://testnet.thornode.thorchain.info
RPC: https://testnet.rpc.thorchain.info
Seed Service: https://testnet.seed.thorchain.info
THORNode
Multichain patches, including some updates to Ethereum decimal handling.
- bugfix: Transaction Signed by TSS can’t be broadcast to binance chain
- Resolve “[BUG] FIX ETH gas issue”
- only add tx that had been forward to thorchain into local block meta
- Update logging which cause some key value store issues
- Resolve “[BUG] multichain testnet bug , cause vault stuck at migration”
- Update BTC/BCH/LTC to not spend more than 15 UTXOs at a time
- Resolve “[BUG] ERC20 tokens support less than 8 decimal points cause node to be slashed”
- Resolve “ADD: Dust threshold”
- update ETH observe for tx directly send to asgard, by pass router
- when we use 15 UTXOs , the size is about 1500, so let’s use it as the average…
- don’t remove validators that doesn’t exist
- fix a log entry
- Resolve “[BUG] Allow bifrost of disabled node to start up”
- Resolve “[BUG] bond should be returned to bond address , not the node address”
Midgard
Work continues to update Midgard V2 to handle Multichain requirements.
- Bump version number.
- Fix node parsing for network endpoint
- fix race, centralized pool existence check and prices; websocket updates
- current $ prices
- Historical USD Prices
- Fix bond event parsing
- Test for Websockets & websockets.quit
DevOps
- Add provider integration — Hetzner Cloud (hcloud)
- Switch to AMD from Intel and make use of universal commands — AWS
- Change permission for lock file — hcloud
- release 0.20.0 to multichain testnet
- Release 0.21.0 to multichain testnet
- release 0.22.0 to multichain testnet
XChainJS
Litecoin and BitcoinCash were merged.
Bridges
Actively-developed bridges will be reported here going forward. Bridges are commissioned once a team who can implement is identified and work begins.
Complete
- Bitcoin: Deployed to testnet
- Ethereum: Deployed to testnet
- BitcoinCash: Deployed to testnet
- Litecoin: Deployed to testnet
UTXO Chains
- Dogecoin: Under Implementation — no blockers
- ZCash: Scoped, rain-checked
Cryptonote
- Haven: Under implementation
- Monero: Pending Haven implementation
Custom
- Cardano — Scoping
- Polkadot: Under implementation — some hurdles to cross with bifrost state sync.
- Avalanche: Rain-checked
- Zilliqa: Scoped, rain-checked
EVM Chains
- Binance Smart Chain: Rain-checked
- Ethereum Classic: Rain-checked
- Rootstock: Rain-checked
- Arbitrum: Rain-checked
IBC
Pending IBC integration — Cosmos, Terra, Kava, Secret Network, Injective Protocol, Sifchain, Akash Network
Clients
BEPSwap Client
Numerous UI/UX tweaks based on community feedback
New feature: type pooladdress
in the send screen to automatically allow you to send custom transactions to Asgard.
ASGARDEX Client
Work continues to prepare the client for Multichain Chaosnet. It will be ready within the week. The first build was released, but it has MacOs signing issues. In the meantime, the following pages were implemented:
Community Work
The following tools receive regular updates:
Telegram Bot
Twitter Bot
Delphi Defi Dashboard
Upcoming Release for the Dashboard
https://defi.delphidigital.io/thorchain/chaosnet/network
THORChain Network Explorer
Continual Improvements, now with custom sub-domains for each net:
https://testnet.thorchain.net/
https://multichain-testnet.thorchain.net/
THORChain Official Block Explorer
https://viewblock.io/thorchain
THORChain Dashboard (ViewBlock)
https://dash.viewblock.io/d/thorchain
RUNEData
View historical yield and simulate future yield in pools:
RUNEBalance
View current arbitrage opportunities in the pools. New card-style overviews.
https://www.runebalance.com/#/pools
RUNEStake
RUNEStake can be used to see yield in THORChain liquidity pools.
Trading Leaderboard
View the current leaderboard for traders on THORChain
https://leaderboard.thornode.org/
GrassRootsCrypto Youtube
GrassRootsCrypto consistently puts out great educational videos on THORChain, users should subscribe and bookmark the channel.
https://www.youtube.com/channel/UCuC_PiCEsNIT6HH88r7vCsw/videos
Next Milestones
Multichain support in asgard.exchange and the desktop wallet, continue to stabilise the chain. Help the community transition to Midgard V2. Anticipating chaosnet in 4–6 weeks.
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