Skip to content

Releases: 0xProject/0x-mesh

Version 10.0.0

23 Sep 17:35
ea7d799
Compare
Choose a tag to compare

v10.0.0

Breaking changes 🛠

  • Reject orders that have taker addresses that are non-zero and are not whitelisted. #896
  • Removed support for Coordinator orders. #895
  • The JSON-RPC is no longer supported by Mesh nodes. Only a GraphQL API is supported. #858

Features ✅

  • Implemented GraphQL for Browser nodes. #918
  • Upgraded to Go 1.15, which contains several WebAssembly performance improvements #911
  • Made MAX_BYTES_PER_SECOND configurable for non-bootstrap Mesh nodes. #879
  • Added the ability for ordersync requestors to track the progress of individual ordersync connections in case connection is broken temporarily. #877
  • Implemented parallelization of ordersync requests. #848
  • Optimized the computation of optimal eth_call batch sizes for order validation. #846
  • Implemented more aggressive pruning for "removed" orders when database utilization is high #839
  • Optimizes conversions from Golang to Javascript. #820
  • Implemented new database solutions for both standalone and browser nodes. #793

Bug fixes 🐞

  • Implemented log rotation for telemetry deployments. This fixed an issue that would cause nodes with telemetry to crash after running out of disk space. #887
  • Stopped emitting STOPPED_WATCHING events for orders that were already stored. #881
  • Fixed an issue that caused ordersync responses of zero orders to be treated as unsuccessful. #875
  • Fixed a bug that would cause browser nodes to crash if "getOrdersAsync" was called before any orders were received. #842

Version 9.4.2

01 Aug 03:08
8123878
Compare
Choose a tag to compare

v9.4.2

Bug fixes 🐞

  • Fixes a bug that would cause Mesh nodes to crash upon receiving requests from legacy Mesh nodes #888.

Version 9.4.1

28 Jul 18:47
c163356
Compare
Choose a tag to compare

Summary

Bug fixes 🐞

  • Fixed a problem in the filtered pagination subprotocols of ordersync that caused the nodes to use the wrong orderfilter #882

Version 9.4.0

28 May 21:14
ee19434
Compare
Choose a tag to compare

Summary

Features ✅

  • Improved the performance of validating order filters in the browser #809.

Version 9.3.0

20 Apr 18:30
555bbc1
Compare
Choose a tag to compare

Summary

Features ✅

  • Mesh now ensures on startup that the chain ID of your Ethereum RPC endpoint matches config.EthereumChainID #733.

Bug fixes 🐞

  • Fixed a compatibility issue in @0x/mesh-browser-lite for Safari and some other browsers #770.
  • Fixes an issue that would allow expired orders to be returned in GetOrders 773
  • Fixed a rare bug where ERC721 approval events could be missed #782

Version 9.2.1

18 Mar 22:10
8afe758
Compare
Choose a tag to compare

Summary

Bug fixes 🐞

  • Fixed a critical bug in the ordersync protocol which resulted in only 50% of existing orders being shared when a new peer joins the network. New orders are shared separately and were unaffected. #760.

Version 9.2.0

17 Mar 20:36
016178b
Compare
Choose a tag to compare

Summary

Features ✅

  • Greatly reduced latency for propagating orders, especially for browser nodes #756.
  • Added support for checkGasPrice StaticCall asset data #744

Version 9.1.0

05 Mar 22:28
14c2521
Compare
Choose a tag to compare

Summary

This release includes some major improvements under the hood for peer discovery and order propagation. These improvements are 100% backwards-compatible and do not require any changes to your code.

Version 9.1.0 also introduces a new way to run Mesh in the browser via the @0x/mesh-browser-lite package. The differences between @0x/mesh-browser and @0x/mesh-browser-lite are explained in our updated Browser Guide. Relatedly, this is the first release to include a main.wasm file (found below), which is required when using @0x/mesh-browser-lite.

Features ✅

  • Improved speed and efficiency of peer discovery, especially when using custom order filters #729.
  • Added a lightweight package to use for loading Mesh's Wasm binary in a streaming manner #707.

Bug fixes 🐞

  • Fixed an issue where incoming orders could sometimes be dropped by peers #732.

Version 9.0.1

21 Feb 00:55
1a4a775
Compare
Choose a tag to compare

Summary

This release fixes a bug that has been present since version 8.0.0. As a side-effect of this fix, Mesh may take longer to startup the first time after upgrading from an older version. You may see the warning "Removing outdated block headers in database (this can take a while)". After the first startup, subsequent startups should be just as fast as before.

If you don't want to wait for Mesh to remove outdated block headers, you can remove the database directory manually when upgrading from an older version. This will cause Mesh to forget about any existing orders it had previously stored, which may be undesirable for some users.

Bug fixes 🐞

  • Fix bug where we weren't enforcing that we never store more than miniHeaderRetentionLimit block headers in the DB. This caused issue #667 and also caused the Mesh node's DB storage to continuously grow over time. (#716)

Version 9.0.0

19 Feb 21:49
ccec0f3
Compare
Choose a tag to compare

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).