Skip to content

Version 9.0.0

Compare
Choose a tag to compare
@fabioberger fabioberger released this 19 Feb 21:49
· 171 commits to master since this release
ccec0f3

Summary

This release comes with a lot of important new features that improve efficiency and increase versatility in browser environments. We have observed that both CPU and bandwidth usage decreased by at least an order of magnitude.

The biggest contributing factor for reduced resource usage is a new algorithm for sharing existing orders. As a result of this change (and the new custom order filters feature), orders from previous versions of Mesh cannot be shared with nodes running version 9.0.0 or later, and vice versa. Another important side effect to keep in mind is that it might take slightly longer for new peers to receive all the existing orders compared to previous versions. Even this downside can be mitigated over time by tweaking our new algorithm, while retaining the benefit of lower CPU usage and bandwidth.

Breaking changes 🛠

  • As a result of implementing custom order filters, some of the code Mesh uses under the hood to share orders with peers has changed. As a result this version of Mesh cannot share orders with any older versions and vice versa (#630).
  • Implemented a new protocol for sharing existing orders with peers. This will drastically reduce bandwidth and CPU usage and increase the speed at which new orders are propagated. (#692).
  • Rename RPC_ADDR to WS_RPC_ADDR since we now support both WS and HTTP JSON-RPC endpoints. (#658)

Features ✅

  • Implemented custom order filters, which allow users to filter out all but the orders they care about. When a custom order filter is specified, Mesh will only send and receive orders that pass the filter. (#630).
  • Developers can now override the contract addresses for any testnet using the CUSTOM_CONTRACT_ADDRESSES env config (#640).
  • Added getOrdersForPageAsync method to @0x/mesh-rpc-client WS client interface so that clients can paginate through the retrieved orders themselves (#642).
  • Added support for passing in your own Web3 provider when using the @0x/mesh-browser package. (#665).
  • Add support for orders involving Chai ERC20Bridge assetData (#663)
  • Add support for calling JSON-RPC methods over HTTP (env config HTTP_RPC_ADDR defaults to localhost:60556). (#658)

Bug fixes 🐞

  • Fixed some of the browser typescript bindings to be consistent with the Go and smart contract implementations (#697).