The latest installment in the Wavelet series. After nearly two months of clean-up and production testing we are proud to release Wavelet v0.2.0.
Based on our internal discussion and community feedback, various important features and fixes were implemented in Wavelet v0.2.0, including transaction fee restructuring and staking rewards, HTTPS support for the API, syncing and voting have been streamlined
New features and major fixes
- Set the genesis block to the testnet genesis (#249)
- Add auto-updater (#247)
- Ignore transaction error caused by adding transactions with too low depth (#243)
- Change transaction fee and reward calculations (#239)
- Allow setting log level via CLI parameters (#229)
- Change vote counting for finalization process (#218)
- Optimize saving memory of contract snapshot (#202)
- Apply contracts to VM in same order as they came in (#187)
- Automatically restart process to recover from various kinds of runtime failures (#184)
- Memory-efficient syncing (#177)
Transaction Fee Restructuring and Staking Rewards
Prior to Wavelet v0.2.0, transaction fees were a fixed cost and rewards were delivered to a single lucky winner in a round. After a significant amount of analysis we decided that a more fair fee is based on the size of the transaction and should be paid by the creator of the transaction. Additionally, because the current reward scheme encouraged sending low-value transactions to increase the odds that a sender would be a lucky winner, we have changed the reward scheme such that all senders are rewarded proportional to the amount of tokens staked during the round, relative to other senders.
HTTPS Support for the API
Prior to Wavelet v0.2.0 the API only supported HTTP. This had several bad effects for running the Wavelet test network. Many HTTP User Agents required HTTPS to access the API from another HTTPS page, so we added an HTTPS proxy for the test network using CloudFlare, however it did not permit long-lived WebSocket connections. To address this we added HTTPS support directly into the Wavelet core in v0.2.0. It will use Let's Encrypt to automatically fetch an HTTPS certificate and uses the TLS-ALPN-01
challenge so that only a single port needs to be exposed in HTTPS mode, port 443/tcp.
Syncing and Voting have been Streamlined
As discussed in the Wavelet v0.1.1 release notes, syncing support was lacking -- it has been significantly improved and tested. The Wavelet consensus mechanism has also been improved to deal with varying round results due to high traffic and latency. Additionally, many connectivity issues that Wavelet will experience in the real life have been operated on via an extensive global simulator and this has led to many fundamental improvements.
What's coming soon?
- Bug fixes and cleanup
- A surprise
A lot of work by the dedicated Wavelet team has gone into this release and I am proud of their effort and results.
Notes
The Windows/amd64 v0.2.0-testnet binary was generated from the v0.2.0 release with an additional patch (3baf2e8) to fix build-time issues on Windows/amd64.