Releases: 0xProject/0x-mesh
Version 10.0.0
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
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
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
Version 9.3.0
Summary
Features ✅
- Mesh now ensures on startup that the chain ID of your Ethereum RPC endpoint matches
config.EthereumChainID
#733.
Bug fixes 🐞
Version 9.2.1
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
Summary
Features ✅
Version 9.1.0
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
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
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
toWS_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 tolocalhost:60556
). (#658)
Bug fixes 🐞
- Fixed some of the browser typescript bindings to be consistent with the Go and smart contract implementations (#697).