Weekly Dev Update #13
THORChain Weekly Dev Update for Week 15–21 Oct 2019
Trading Page Removed
Trading Page was meant to be shipped last week, but the team has decided to remove it. This was done with lots of feedback from both developers and the support team. The following were the considerations:
Pros
- Community would access 1-click arbitrage.
- Traders could use the page to visually process the information.
Cons
- Trading page was extremely complex and required a backend micro-service to field data.
- Traders will more than likely use bots to process arbitrage.
- Bots would adapt and iterate much faster than a visual interface so traders on the page would quickly get left behind.
- Bots are much better at finding price differentials and manually scanning.
As such, the team have removed the trading page and will instead build and open-source a trading bot in both NodeJs and Golang/Python for the community. At least one bot will be available for the community prior to mainnet. Bots will iterate much faster and will help ensure the pools are correctly priced.
The work the team did into the trading page will be used as the foundations of the bot, since the rules-of-thumbs derived for it are the same.
BEPSwap Development
The team are working on 5 parallel streams of effort to deliver BEPSwap, which remains the primary focus.
- Cosmos-powered SDK StateChain
- Cross-chain infrastructure
- Threshold Signature Scheme implementation
- Front-end Integration for BEPSwap
- Other development activities
StateChain
A lot of new work was merged into the statechain. In summary the big feature was the ability for new service nodes to “bond” a large amount of RUNE in order to become Service Nodes on the network, as well as being able to leave. There is also a new mechanic to challenge-response new pool addresses, fund BNB in old pool addresses for refunds, and proving liveness for a new node. Additionally a scheme for versioning the statechain DB was added for hot-updates, as well as an API rate-limiter for nodes.
- fixbuild empty bond address
- Issue125 — Add challenge-response new pool address
- Issue119 — refund bond to validator when they want to leave
- Resolve “ADD: Rate limit GET Requests”
- issue131 change Apply -> Bond
- issue130 clean up admin config
- On outbound tx, remove a bit for gas to bnb pool
- Versioned db keys
- Issue119 — add leave memo
- Fix issue121 — add set-end-pool sub command
- fix makefile
- Project layout updates, as discussed.
- Add some unit tests , and also fix a refund bug
- Smoke updates.
- issue117 make sure we transfer bond to new pool address
- Issue115 Update a node to ready status only after both observer and signer confirm live
Cross-Chain Infrastructure
Work was done on the Observer to update where it was sourcing block-height information, checking to see if it had been whitelisted on start-up (which is part of the new churn mechanics) as well as observing outgoing churn transactions.
- update dependencies in go mod
- Issue22 — when observer start, we check whether their node account had been whitelist
- Get the block height from Binance.
- Remove the JSON instructions for the start block height.
- issue125 observer need to observe out going transaction with nextpool as memo as well
FrontEnd
More improvements to the staking and swap pages was completed, with now immediate feedback on transaction progress. Tests were specced out and implemented, as well as a refactor to remove unused code. The trade detail page was shipped, but it has now been removed.
- Resolve “Show final fees & slip on swap confirmation”
- Resolve “Show actual values in the staking confirmation”
- Resolve “Trade Detail View”
- Swagger check is checking live file
- Setup Swagger Test
- Resolve “Flesh out further tests in accordance with suggestion from Kai”
- Resolve “Trade Page View”
- Resolve “Refactoring: Remove unnecessary clients for binance, coingecko, chainservice, statechain”
Threshold Signature Scheme implementation
Work was done to allow nodes to converge to an unsigned transaction asynchronously, before signing and sending. The TSS code-base is now being prepared for peer-review.
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 with potentially a stable GraphQL service.
Statechain:
Feature complete with 3 of 4 of 5 weekly rotation, with ability to upgrade client software and potentially KVStore with no hard forks or coordination, including TSS.
Timelines
The team are working for these milestones. These timelines are indicative, but it is important for the team to deliver with high productivity and constant community feedback.
Other Development:
- RUNEVault: July 2019
shipped - Telegram Bot: August 2019
shipped - Bep2Bot: August 2019
shipped
BEPSwap:
- Testnet: August 2019
shipped - Community Testing:
shipped - Mainnet: Q4 2019
on-time
THORChain:
- Testnet: Q1 2020
on-time - Mainnet: Q2-Q3 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