Releases: wavesplatform/matcher
Version v2.3.5
In this release
- Added an information about matches in address subscription:
"o": [ // Orders { "i": "89CyqyWeQmqG9QRdoXnYUGrV27eTNjy6HEDy3jBq8zDU", // order id // ... "m": [ // information about transactions { "i":"CWWDEpgMDmC6o4d6ea6PMkAtm3s6VzQhn7V8AbaUwMSM", // transaction id "t":1628782613266, // transaction timestamp "p":"1.1", // execution price "A":"10.0", // executed amount asset quantity "P":"11.0" // executed price asset quantity }, ... ] }, ```
- Matcher status endpoint (GET
/matcher/debug/status
) now returns a last known blockchain height, e.g.:{ "service": "Working", "blockchain": { "status": "Working", "height": 2729707 } }
- Added an ability to specify default values for some CLI arguments: https://github.com/wavesplatform/matcher/blob/v2.3.5/dex/src/main/resources/application.conf#L743
- Optimized Matcher starting:
- Less unnecessary work and I/O pressure;
- Matcher becomes Working and reveals API only if it is able to process new requests in reasonable time;
- Support open tracing;
- Other refactorings small improvements.
SHA256 Checksums
f7e921c8b734d4e163643e0cdfd4beeab544a1c0e3e8ec39fc238ac7c037bbf4 waves-dex-2.3.5.zip
93df0a1ce4861baecf9460af9fd6dc2c14df0786a9ca238e694686e906e482df waves-dex_2.3.5_all.deb
cd45b6e63e4ee0577eb0797d339494d801d41d042b7c0e0351e99972d17d1e9f waves-dex-extension-2.3.5.zip
89910c480de95279f82b2bcdc08211fed05f4fc37d152fcd4622c580634d8caa waves-dex-extension_2.3.5_all.deb
deabf967a36bb1ca5c1844c7f25bc0f061c4a452deaf49506c5fbddca7c2d99e waves-dex-extension-testnet_2.3.5_all.deb
a031f939b4384ee44c67b9ae66d86b7d972f319dca1a2f002e2d054212d47fb1 waves-dex-extension-stagenet_2.3.5_all.deb
Version v2.3.4
In this release
Main changes:
- Support of Node v1.3.5;
- Improved a synchronization with Node, now the process is recovering if Node sends unexpected blocks;
- Improved sending transaction to blockchain. Now Matcher tries to send transactions again until they are either approved or failed. There is a 15 minutes timeout by default;
- Fixed rare issues with wrong balances;
- Fixed a bug with rates and fees in non-WAVES assets which could prevent an order from placing;
- Optimized orders cancellation;
- Added an experimental feature in WebSockets to filter out NFT token (stay tuned);
- Added an experimental ability to collect metrics from endpoints;
- Other small improvements.
Migration
This version contains changes those are incompatible with a previous version. So, if you run a setup with multiple Matchers, you should stop them all and only then update.
Known issues
Note, there was a rare issue up to Node v1.3.4 with hanging sockets.
We're tracking heights by logs:
2021-06-24T09:21:38.431 [INFO] StatusTransitions - Normal + Appended(m, h=2649028, 5S4noCdaxehag6NYDciZWuTWYvUbCQ1Ch6s7nWyLYkTd)
h
here should increase at least each 80 seconds. If it is stuck, we restart the Node by a script.
We will improve GET /matcher/debug/status
to get an information about a current height in the upcoming version.
SHA256 Checksums
c4f739110c284c80f621a91a0c39c0327e88483f43df61d0576cc2be8188fef2 waves-dex-2.3.4.zip
7e91de5f4fd34b383ad8520dc1f42793f82a18121b398cb3e7e922bcdf2c6325 waves-dex_2.3.4_all.deb
aebfe5d9a18c46793e5b3ce961c3ca32ef2aedbcd247c844545714472f8ace70 waves-dex-extension-2.3.4.zip
a06bcaf7d958f19646835bba6dba91b06c6324c20d9ffaff31d78dddf66f8be3 waves-dex-extension_2.3.4_all.deb
76f6ddbc976bec2f8999398ef2d8ff8b7919e85194df53da2fdeb9f8091ab230 waves-dex-extension-testnet_2.3.4_all.deb
7eed34050ec23fea7b5f4f5347a4a7d02e2fa520c2fa189c862f21116536a7c7 waves-dex-extension-stagenet_2.3.4_all.deb
Version v2.3.2.1
In this release
Main changes:
- Improved the code that works with DB. This should improve the latency of HTTP API methods;
- Improved the transactions broadcasting. Now if a transaction is sent when Node has no connections to other Nodes, the transaction will be broadcasted again on a next attempt;
- Fixed a situation when the synchronization with Node stopped;
- Added new endpoints for internal diagnostic. See the Swagger page for more details;
- Improved HTTP errors;
- Reduced amount of logs in WebSockets;
- And more small fixes.
CLI tool changes:
- Checker shows unused configuration options;
- Added a tool to create snapshots of all order books (useful for updates).
Migration
It isn't required.
SHA256 Checksums
1d12be2436b9a99f42275bc621c18248849a4c7216ccf903d950c1bb9702bfe1 waves-dex-2.3.2.1.zip
a5faf25b105669c9261aacc3b07b23627ff6d7173ac83481164935f24cc217ef waves-dex_2.3.2.1_all.deb
9f365671bd4834f77cd5ff9e90a5f78891551d6c5ba19c44faffeabf8271781b waves-dex-extension-2.3.2.1.zip
13eccf158a2eed3eef7e499918e76892bf445af3ff323eb299512372c407cfce waves-dex-extension_2.3.2.1_all.deb
2ff7a0a88a6ff6985fac6f570fde7c78f2fabb03a9ea95ab2fcf5c7b632233bb waves-dex-extension-testnet_2.3.2.1_all.deb
Version 2.3.1.3
In this release
Changes:
- Matcher requires two extensions installed on NODE;
- NODE 1.2.17 support.
See below for more information.
Migration
- Update the NODE
- Install grpc-server on NODE
Note: Matcher needs onlyBlockchainUpdates
fromgrpc-server
, please do not enableGRPCServerExtension
. - Update Matcher Extension
- Update NODE configuration, add:
waves { extensions += "com.wavesplatform.events.BlockchainUpdates" # grpc.host = "0.0.0.0" # Uncomment if Node and Matcher installed on different servers blockchain-updates.grpc-port = 6881 }
- Remove the NODE state and re-import blockchain (why?)
- Update Matcher Server configuration:
- Specify the host and port of Blockchain Updates extension:
waves.dex.waves-blockchain-client.blockchain-updates-grpc.target = "NODE_host:6881"
- Remove
waves.dex.exchange-transaction-broadcast
, now it retries attempts by default, see below
- Specify the host and port of Blockchain Updates extension:
Changes
- Support of NODE 1.2.17;
- Matcher Server now depends on Matcher and Blockchain Updates (a part of
grpc-server
) extensions:- The Blockchain Updates extension provides a real-time stream of blockchain changes;
- We made huge efforts to provide the better WebSockets stream (the docs will be available soon!) with less balance glitches during rollbacks and forging new blocks;
- Solved some situations which led to invalid transactions (thus revoked on Blockchain) and mistakenly canceled orders;
- Improved error descriptions in some cases;
- Updated dependencies, including the better library for LevelDB which solves possible DB crashes;
- The documentation is updated;
- And a lot of other changes.
SHA256 Checksums
eefd6bc9b5fa8390eddaf302e017fe8956204fb0884d2e7a196d9dc8d082902f waves-dex-2.3.1.3.zip
296b5db77a8919799cbc0aec88e147b0025c38db9bfe3f00b082c36f84ed4b19 waves-dex_2.3.1.3_all.deb
121404809998b33d5a7b1a49f60e4cda6079b3b917ce0b575888b438b743a053 waves-dex-extension-2.3.1.3.zip
fe3ac26a582fb5590ec5995447615f309db9990c5cfae230580783ab44846538 waves-dex-extension_2.3.1.3_all.deb
2c218bafc562bc58345f1eb743b10f4cc8485d3b0de54ddc699b22d63f636b82 waves-dex-extension-testnet_2.3.1.3_all.deb
553d4a67289c7002fcf79ef0af0ff2374cf92c2dd7704e4884109ca6bd5383f3 waves-dex-extension-stagenet_2.3.1.3_all.deb
Version 2.2.4
In this release
This release contains a new NODE support and improvements of WebSocket and HTTP API.
See below for more information.
Migration
In this release we improved log messages about misconfiguration. To do this we migrated to the different configuration library. Also we updated some settings keys: some of them now have clear names, some of them we had to update as a part library's migration. Update following settings if you have them.
waves.dex.order-history.enabled
towaves.dex.order-history.enable
waves.dex.account-storage.in-mem.seed-in-base64
towaves.dex.account-storage.in-mem.seed-in-base-64
waves.dex.max-price-deviations.profit
towaves.dex.max-price-deviations.max-price-profit
waves.dex.max-price-deviations.loss
towaves.dex.max-price-deviations.max-price-loss
waves.dex.max-price-deviations.fee
towaves.dex.max-price-deviations.max-fee-deviation
Changes
- Support of NODE 1.2.14;
- Matcher now can accept orders with a custom fee with current or previous rate of asset. This improves a situation with a rare issue when a client sends an order and Matcher updates the rate of asset this time;
- WebSocket API improvements:
- Added a subscription on rate changes;
- Added an amount of changed price assets in orders to address subscription;
- Added some stats about connections (client and OS if the client specified this information);
- Bids in an order book subscription now sorted in a descending order as it should be;
- Increased the default time between pings and expected pongs;
- HTTP API improvements:
- Added an admin endpoint to see matcher's config without sensitive data (seed, password, username, etc):
GET /matcher/debug/config
; - The market status endpoint
GET /matcher/orderbook/{amountAsset}/{priceAsset}/status
returns an empty JSON with 200 status even if there were no trades. It returned 404 before; - A better error if a client wasn't specified
Content-Type
header;
- Added an admin endpoint to see matcher's config without sensitive data (seed, password, username, etc):
- Other internal improvements.
SHA256 Checksums
cd6d6dd8517dbfd00a54ef15d141b255987f8316140abbdc6b407f73dc6f099a waves-dex-2.2.4.zip
32a25630206100dbfe285287f8b17970880216c4c7640ea82a23a6563c784223 waves-dex_2.2.4_all.deb
f81915c562855461dcbe01ece686145a474e938e9274ff758ceee9b85323e400 waves-dex-extension-2.2.4.zip
c371c6487f5c02c00ea05b44bb2115e332961fd0167b9820e12bd1bf7c15b963 waves-dex-extension_2.2.4_all.deb
056efb08f23dbf6a7d36b18344069401af3dd9331f687d24bf5407e4e62bf762 waves-dex-extension-testnet_2.2.4_all.deb
0439012a9fd046ea4fcb7d43ab51c97b364e7a88647a39b9479d176d5e87050c waves-dex-extension-stagenet_2.2.4_all.deb
Version 2.2.2
In this release
This release contains a new NODE support and improvements.
See below for more information.
Migration
- Required a migration of Postgres, If Postgres history functionality was enabled (
waves.dex.order-history.enabled
):ALTER TABLE orders ADD COLUMN closed_at TIMESTAMP(3) WITH TIME ZONE DEFAULT NULL; ALTER TABLE events ADD COLUMN reason SMALLINT NOT NULL DEFAULT 0;
- If you have multiple Matcher servers, it is recommended to distinguish them by the setting:
waves.dex.id = "matcher-N" // N is a number of a Matcher server
New
- Support of NODE 1.2.12;
- Added an ability to view (
GET /ws/v0/connections
) and control (DELETE /ws/v0/connections
) number of WebSocket-connections. See Swagger UI for more information; - More information about orders in logs and Postgres history to exactly know what happened with an order;
- Added closed_at in Postgres history database;
- Added an HTTP header to know the source server.
Fixes
- Fixed a wrong status of events in Postgres: partially filled instead of filled;
- Fixed an exceed information in WebSocket API when a user authenticates. A user won't receive assets, those had but haven't now;
- Updated Scala version and dependencies;
- Some internal improvements.
SHA256 Checksums
a77751fbc1be61a27cf9e3391c61f7c1e4052ff8aa27bcfa0140612e0adcc8bd waves-dex-2.2.2.zip
6c7fac6127eb942987352508f8015c08ceaa8e0cc84d77b03c127a93e2b83379 waves-dex_2.2.2_all.deb
fb37740072b97a5969d1021d28dbe27af052da3dde547fbab3a930fb26ffa39f waves-dex-extension-2.2.2.zip
2807d8e31d4ce6090fd7a21bc554f4ae4ab029e392375cd40950f315fd8d3225 waves-dex-extension_2.2.2_all.deb
29c49fcfbdb633cb665c97e18c9f9e00c3c1c3d73eb6a6e4cf9308aeb014d5e5 waves-dex-extension-testnet_2.2.2_all.deb
04c9932db1b5644b0ce9de4b533819e9071a028889c7e7f0153c7c90d252bd11 waves-dex-extension-stagenet_2.2.2_all.deb
Version 2.2.0
In this release
This release contains a new NODE support and a lot of improvements, including the lower latency observed by our load tests.
See below for more information.
Migration
Recommended to do the snapshot on all Matcher servers before update:
curl -X POST -H 'X-Api-Key: your-api-key-here' "http://host:port/matcher/debug/saveSnapshots"
New
- Support of NODE 1.2.9;
- Showing an order version for new orders at order history HTTP endpoint;
Huge improvement of Swagger documentation
- Most methods are provided with examples of entities, both input and output;
- Models are provided. They also contain a useful documentation, for example, how to sign the request;
- Added a grouping by purpose.
WebSocket improvements
API changes are still possible, so we don't expose the documentation right now.
- Clients now receive the MatcherIsStopping error during the graceful shutdown;
- Scheduling optimizations, which leads to less pressure on the server;
- Fixed some cases in which matcher sent exceed data to the client.
Fixes
- Fixed the calculation of the average weighed price of an order;
- ExchangeTransaction should not be created if a market order wasn't matched at least on 1 coin;
- Returning a meaningful error, when a user passes an address from another network;
- If the order wasn't matched, the average weighed price is 0;
Other changes
- Scala is updated to 2.13, also updated a lot of dependencies;
- A lot of improvements in the checker utility. It checks that matcher works correctly after update;
Initial support for Docker
We made huge steps to provide Docker images. Now they are in review, but we are already use them in our functional testing.
- Images
wavesplatform/matcher-node
(Waves Node with Extension) andwavesplatform/matcher-server
(DEX) introduced; - Draft of the README.md updates added: README_DOCKER.md. Use it at own risk;
- An image of NODE with Matcher extension for functional tests
waves-integration-it
is built uponmatcher-node
; - An image of Matcher server for functional tests
dex-it
is built uponmatcher-server
;
Code improvements
Usually we don't mention an internal changes. But there were made a lot of code improvements, so we notice them.
- A better packages and class names;
- More unit tests for REST API, added a backward compatibility tests for JSON encoding;
- Introduced REST API DTO annotated objects, this will add an additional level of API stability;
- Serialized representation of Waves, Order Statuses, Order Types and Accepted Order Types unified across the project.
SHA256 Checksums
b5174b12985c265a9849a2846d7c6da714708756628ffba4b16c6872f20f9e71 waves-dex-2.2.0.zip
a9393e8d7ab7febc12069ee5f546ea785d7103ad13b9e82b07d12e2b45cf27f9 waves-dex_2.2.0_all.deb
eacd4c6642de5ed736def7196c4020a34942c141ccb0854611ee45c710d10546 waves-dex-extension-2.2.0.zip
a3c9de2f6ed54563c31f9e27ded7f9ef4f6ba989e57c783971274ba5ab24c708 waves-dex-extension_2.2.0_all.deb
df0a795b601dfe2082a6e44e9fc0ca71ca1189c9c41e888a84fb9bef25e0cdab waves-dex-extension-testnet_2.2.0_all.deb
d038654627ae476a63aa2daa9300ce3257a28b0f60d9d3a8c2663efbeaf0f92b waves-dex-extension-stagenet_2.2.0_all.deb
Version 2.1.4
In this release
In this release we were focused on the WebSocket implementation improvements and bug fixes. However this release contains improvements for Kafka integration.
Migration
These settings should be removed if present:
waves.dex.events-queue.kafka.producer.client.delivery.timeout.ms
waves.dex.events-queue.kafka.producer.client.connections.max.idle.ms
SHA256 Checksums
a55ab59f200b158ac63b467cdd979dcc4280ae0f2c836c38faca7891feb31365 waves-dex-2.1.4.zip
a955d1ca861964794e2406afcf2fecd17eb93be74a0dc5160253984502886abc waves-dex_2.1.4_all.deb
28e1144b3a700f895fa584074e1685933a4d146b06502c3b71dae7ab406baaf1 waves-dex-extension-2.1.4.zip
5c72c5275aca1acca197e77cc1335700bb77d7294157739a4d609970c2b948bb waves-dex-extension_2.1.4_all.deb
16613af3183f0b0ba4124ec43de917f539799c1235948e0b378bfd65b8a0a455 waves-dex-extension-testnet_2.1.4_all.deb
95597b71fada19ca8ce0cc0bbe19252ad49a4bd7bdb474ab5eff14edec987de1 waves-dex-extension-stagenet_2.1.4_all.deb
Version 2.1.3
In this release
We were focused on the WebSocket implementation and small HTTP API improvements.
Migration
No needed.
New
Experimental support of WebSockets
WebSockets API is unstable and breaking changes can be made. So it has an internal status right now.
More information and documentation will be provided in the future releases after stabilization.
Basic server checks in waves-dex-cli
waves-dex-cli
now can run basic checks on the Server:
- It has an expected version;
- An order could be placed, matched or canceled;
- A user can connect to the WebSocket API.
It is useful during updates. See waves-dex-cli check-server
for more information;
HTTP API endpoints changes
Added two endpoints to retrieve an order information:
GET /matcher/orders/{address}/{orderId}
- by an API-key;GET /matcher/orders/{publicKey}/{orderId}
- by a signature.
Added the closedOnly
query parameter to order history endpoints:
GET /orderbook/[amountAsset]/[priceAsset]/publicKey/[publicKey]
GET /orderbook/[publicKey]
GET /orders/[address]
This information is similar to an order history.
Example response
{
"id": "7VEr4T9icqopHWLawGAZ7AQiJbjAcnzXn65ekYvbpwnN",
"type": "buy",
"orderType": "limit",
"amount": 7757865201004347,
"fee": 6345852410462127,
"price": 489,
"timestamp": 1578074613225,
"filled": 0,
"filledFee": 0,
"feeAsset": null,
"status": "Accepted",
"assetPair": {
"amountAsset": "6rRegyHpdvZBENW4mowKYtKMDs2xpxmMbyNMRMZaZQ7",
"priceAsset": "8pFqaP5CtPB4kP87gpu2T7vB4LxdfoH9e5mSPQduhCc"
},
"avgWeighedPrice": 489
}
Other changes
- Swagger UI: added a deep linking on page. Now you can share an URL with a concrete API method.
Bugs:
- JRE 11 Support: fixed a crash on a Swagger UI page.
Optimizations:
- Speed up of order book's operations from 6x to 367x in some cases;
- The Server does less checks on balance changes came from Waves NODE.
SHA256 Checksums
fb60665b84698d28ede110f38cc2c6701bad3bb5b89b721115d92d27ae94372a waves-dex-2.1.3.zip
ffb03ce6be625c5c3f533501a09e77517d3ec5b555bc08c80fac54ebd685e8e4 waves-dex_2.1.3_all.deb
51a4ac8c61b681d807addf91c304ffb3097efd78f0133c4fc4422e43cae043d8 waves-dex-extension-2.1.3.zip
bda91ef9d9c1e2f50c9e693f8c6ef49ee4ad00860c80eb5b599aecf7db71220f waves-dex-extension_2.1.3_all.deb
7ef6d89e1bbbc89c3ee3f5f005837906886bd175a5070b687ee55a0e6ff4a7ed waves-dex-extension-testnet_2.1.3_all.deb
a263e155f94845bbf46ce5f9c83a660b9f8a43da9dc9d788ed7f77fb5a7e8607 waves-dex-extension-stagenet_2.1.3_all.deb
Version 2.0.3
In this release
This release basically affects order validation. It also contains fixes and improvements with a fresh Node's version dependency.
Migration
No needed.
Settings migration
- We removed
waves.dex.rest-order-limit
setting. All active orders will be available via REST API order history methods. - Settings
waves.dex.max-active-orders
(our value is 400) andwaves.dex.order-db.max-orders
(our value is 100) added. Please, specify them.
Changes
The NODE dependency was updated to 1.1.10.
New
Orders validation
- Order fee validation was changed. So far it was possible to place buy order with received asset equals to fee asset and without sufficient balance by fee asset to cover matcher fee (if received amount would be greater than fee). Now this trick is forbidden and it is required to have sufficient balance to cover matcher fee in any case. Use gateway assets for fee payment;
- Market order validation by order book state has been weakened. Senders of market orders are not required to have sufficient balance to fully fill their order amounts. Nevertheless, its required to have nonzero balance by spendable asset and sufficient balance to cover matcher fee. Validation of the market orders price remains.
REST API
- Admin method
cancelAllById
has been added. It allows to cancel orders by a list of order ids; GET /matcher/settings
- now contains matcher's public key and network byte;- Max active and closed orders counts now can be set in appropriate settings in
application.conf
(inwaves.dex.max-active-orders
andwaves.dex.order-db.max-orders
respectively). Max active order count was increased to 400. Order history methods in REST API got ability to retrieve all active and closed orders.
Other
- Added support for Base58 in Waves DEX Cli.
Fixes
GET /matcher/orderbook/{amountAsset}/{priceAsset}
- loss of the query parameterdepth
during redirection fixed;GET /matcher/orderbook/{amountAsset}/{priceAsset}/tradableBalance/{address}
- excess assets in response fixed;- Batch order cancel returns the latest order status;
- Saving of orders with rounding issues into Postgres history database fixed;
- After failing of storing order placement event in queue reserved balance is freed and order is removed from active ones;
- Fixed issues those led to unexpected order cancellation and wrong rejection of the order placements;
- Improved balance stream from Node. Detecting of a stream closing from the client side added.
Other changes
- We removed
.travis.yml
. Compilation and unit test commandcheckPR
was renamed toquickCheck
. IntroducedfullCheck
command to runquickCheck
and integration tests too.
SHA256 Checksums
700a314a6a57b44a31ca02df2b9a9ab7cf18b818363d6557be0df688b3c94ab5 waves-dex-2.0.3.zip
11e6c40aab3ade6274ed374657e10ec04370b7665fedf0525e6b6a34f2f59506 waves-dex_2.0.3_all.deb
093438940b3a2164ae79e11e1c5c0252f258e2845a5eb4de70e4f4b7a1caeb90 waves-dex-extension-2.0.3.zip
0076f9e3101e34dd3cb3533e6faee07790c27e13d4a602cb5526215f9bc96a9c waves-dex-extension_2.0.3_all.deb
dc79ff1be76ec4857630e68e686867b6117e0d3198c0520109f4cfe45babf35a waves-dex-extension-testnet_2.0.3_all.deb
019ce9e7a0b8f1f950496f29f83095f7061e87df7c5c830db422ae91a9789fd6 waves-dex-extension-stagenet_2.0.3_all.deb