Weekly Dev Update #34
THORChain Weekly Dev Update for Week 10–17 Mar 2020
Summary
The team have spent time going through the issues raised by Certik and addressing them in the codebase. They have also enabled both batch and parallel-signing for THORChain TSS. Batch signing is necessary for Ethereum support since Ethereum does not have any protocol support for sending multiple outputs (unlike Binance Chain and Bitcoin). Parallel signing is to allow nodes to participate in multiple TSS committees at the same time.
The team have also begun work on the new Ethereum Bifrost architecture.
THORNode
The team completed a number of merges relating to bug-fixes from issues found in real-world testing, as well as those highlighted in the recent Certik Audit Report. Additionally, batch-signing of transactions has been implemented to allow THORNode to sign multiple messages at once.
An endpoint to facilitate Yggdrasil queries was also built to return data on secondary vaults. An event handler for gas events was also added.
- address a few minor issues mentioned in certik report
- [bugfix] fix vault add funds
- [bugfix] check for zero bond
- [bugfix] wait for waitgroup
- [bugfix] remove sign lock
- [bugfix] mark outhash for yggdrasil transactions
- [bugfix] change observed tx in order
- Resolve “Invalid fee for refund event”
- [bugfix] move transaction check
- [bugfix] Reset leave height when node becomes active
- [bugfix] fix yggdrasil returns
- [bugfix] return ygg funds on churn out
- update go-tss
- Resolve “update bifrost to get latest go-tss”
- 360-issue when we don’t have enough nodes , we just use the members whom…
- [feature] Parallel sign multiple transactions at the same time
- ragnarok pools in reverse order
- [refactor] track pending vault transactions
- [feature] add yggdrasil endpoint
- Move retry logic
- 363-issue fix the ragnarok reserve calculation
- Resolve “Add runeGas to Gas event”
THORChain TSS
The bulk of the work was enabling both batch and parallel-signing for THORChain TSS. Some other tweaks were made to make the overall system more reliable.
- 66-issue enable parallel key sign
- 65-issue update tss-lib to 1.3.0
- Resolve “detach http related feature from TSS, thus it we could remove http interface from bifrost”
- Resolve “duplicated share applied in binance tss”
- Resolve “avoid sending the message head”
- Resolve “Remove “cmd/p2ptest””
- Resolve “Signature Notification to broadcast keysign failure as well”
- 68-issue change blame
- [bugfix] don’t hard code wait signature timeout
- 79-issue when the signature data is nil , return fail to avoid panic
Bifrost
Work has begun on the Ethereum Bifrost. The spec is here:
Midgard
Work on Midgard is primarily to ensure clients can consume the data they need, and any bug-fixes arise from e2e testing of the clients.
- Resolve “Invalid pool depth after refund event”
- Resolve “Invalid rune balance after gas event”
- Resolve “Invalid swagger schema for TxDetails type”
- Resolve “Serialize big numbers as string”
- Resolve “Invalid assetdepth after reward event”
BEPSwap Client
The transaction page has been complete, as well as migrating the tutorial to Typescript. Additionally, a lot of work has been made on a separate branch to convert the codebase to “Big Numbers” which is to ensure the client can handle all number ranges returned from Midgard.
- Resolve “Use `RemoteData` for `txData` state”
- Quick fix: `yarn dev` does not work after upgrading dependencies.
- Resolve “ADD: Transaction API integration”
- Migrate `Status`, `StatusLoader`, `InputNumber`, `CoinInput`, `InputForm`, `CoinButton` into TypeScript
- Fix style of `CoinButton` incl. migration of button components into TypeScript
- Resolve “ADD: skeleton loader for transaction page”
- Migrate all tutorial components and helper functions into TypeScript + refactor routing of `tutorial/x/y/z`
- Resolve “FIX: Transaction API URL from the midgard”
Asgard Wallet
Focus for the week was on migrating to React components to keep the codebase in-line with BEPSwap. The following week will be to update the UI framework to Ant-Design, which is what is used for BEPSwap. This will allow commonality with both codebases allowing features to be easily shared.
- Feature/react component migration
- Migrate blaze to react for wallet import, Related to #106. Other minor fixes Related to #29, #32
- Feature/migrate create react
- Add send funds in react. Related to #32, #101
Bounty Program
There are currently open bounties on Asgard Wallet codebase:
Issues · THORChain / Asgard WalletAsgard WalletAsgard Walletgitlab.com
In addition, the team are working with a number of community developers on some specific tasks.
Audit
Code Review: Complete
Economic Review: Commenced
TSS Audit: expected to begin soon
Next Milestones
The updated testnet is in the final stages of testing. Chaosnet is expected once testnet has been fully-validated in several environments. There currently isn’t any known blockers to Chaosnet release.
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