134 lines
8.0 KiB
Markdown
134 lines
8.0 KiB
Markdown
## Peatio 2.2.0 (June 3, 2019) ##
|
||
|
||
### Overview ###
|
||
|
||
We are pleased to present Peatio Open Source 2.2.0.
|
||
|
||
This release concentrated on Plugable Coins API development new features and enhancements:
|
||
|
||
1. New admin roles integration.
|
||
2. Admin panel RBAC.
|
||
3. Daemons stability and performance improvements.
|
||
3. Foundation for third party trading engine integration.
|
||
|
||
This release notes is must-read for migrating from older versions.
|
||
|
||
### Breaking changes ###
|
||
|
||
- [#2168](https://github.com/rubykube/peatio/pull/2168): Plugable Coins API
|
||
|
||
This PR is gives ability gives ability to extend Peatio with new coins implementation.
|
||
|
||
Such a big architecture improvements usually brings breaking changes.
|
||
|
||
Core Peatio supports Ethereum, Bitcoin and Litecoin(as a plugin) blockchains.
|
||
It means that you need to build custom image if you want to integrate other coins.
|
||
For guide of how to build custom docker image check [documentation](../plugins.md).
|
||
For coin integration guide check **doc/integration.md** of appropriate coin e.g([litecoin](https://github.com/rubykube/peatio-litecoin/blob/master/docs/integration.md)).
|
||
You will find the list of approved coin plugins [here](../coins/plugins.md).
|
||
|
||
- [#2242](https://github.com/rubykube/peatio/pull/2242): Reorganization ruby and amqp workers.
|
||
|
||
Raw ruby daemons starting script was unified in the same way as we do for AMQP daemons.
|
||
|
||
So now to start ruby daemon you need to run the next command:
|
||
```bash
|
||
bundle exec ruby lib/daemons/daemons.rb daemon_name
|
||
```
|
||
|
||
- [#2241](https://github.com/rubykube/peatio/pull/2241): Major Market model rework.
|
||
|
||
This patch makes bunch of changes in Market model and related APIs, controllers and configuration.
|
||
|
||
Here is the full list of braking changes for more info check [PR](https://github.com/rubykube/peatio/pull/2241):
|
||
|
||
* Replace Market `enabled` with `state` and list new states (without
|
||
logic implementation)
|
||
* Rework public/market API response structure
|
||
* Rename Market API error name `market.market.doesnt_exist` -> `market.market.doesnt_exist_or_not_enabled`
|
||
* Add ability to disable all markets
|
||
* Remove precision equivalence validation (now amount and price precision could be different)
|
||
* Add precisions sum validation (amount + price precision < 12)
|
||
* Merge min_bid_amount & min_ask_amount to min_amount
|
||
* Update Market seeds
|
||
* Rename ask_precision -> amount_precision, bid_precision -> price_precision
|
||
* Rename min_ask_price -> min_price, max_bid_price -> max_price
|
||
* Rename ask_unit -> base_unit, bid_unit -> quote_unit
|
||
|
||
- [#2267](https://github.com/rubykube/peatio/pull/2267): Move slave book from amqp to ruby daemons.
|
||
|
||
This PR changes slave book daemon type from AMQP daemon to raw ruby one.
|
||
|
||
Now to start slave book you need to run `bundle exec ruby lib/daemons/daemons.rb slave_book`.
|
||
|
||
- [#2257](https://github.com/rubykube/peatio/pull/2257): Refactor blockchain daemon.
|
||
|
||
Now Blockchain daemon doesn't scaling and BLOCKCHAINS env variable.
|
||
|
||
Current version of Blockchain daemon starts separate thread per blockchain which works simultaneously and doesn't depend on each other.
|
||
So it doesn't need scaling to multiple process and BLOCKCHAINS env variable.
|
||
|
||
- [#2258](https://github.com/rubykube/peatio/pull/2258): Major trading engine and logic rework with precision, rounding and matching flow improvements.
|
||
|
||
Trading engine rework includes bunch of flow enhancements:
|
||
* Remove rounding on order creation
|
||
* Validate volume and price precision on order creation
|
||
* Return invalid_price_or_volume error in case of fractional part overflow
|
||
* Validate Market min_price, max_price and min_amount depending on amount and price precision
|
||
* Market amount_precision + price_precision < FUNDS_PRECISION = 12
|
||
* Set Market FEE_PRECISION to 4
|
||
* Round estimated funds on market order creation
|
||
* Rewrite Matching::Engine from scratch without recursion
|
||
* Update markets.yml.erb with new min_price, min_amount
|
||
|
||
### New Features ###
|
||
|
||
- Admin panel RBAC. New admin roles support [#2217](https://github.com/rubykube/peatio/pull/2217) ([chumaknadya](https://github.com/chumaknadya))
|
||
|
||
Now we support the next list of admin privileged roles:
|
||
* Super admin
|
||
* Admin
|
||
* Accountant
|
||
* Compliance
|
||
* Technical
|
||
* Support
|
||
|
||
For the list of permissions for each role check [PR](https://github.com/rubykube/peatio/pull/2217)
|
||
|
||
- AMQP messages for third party trading engine integration [\#2215](https://github.com/rubykube/peatio/pull/2215) ([ysv](https://github.com/ysv))
|
||
|
||
Our plan is to support third party trading engine, so we can replace all peatio trading daemons without breaking compatibility.
|
||
This PR adds functionality of publishing Order submit and cancel, Liability create events to RMQ.
|
||
|
||
- Add management API endpoint for listing trades [\#2182](https://github.com/rubykube/peatio/pull/2182) ([ymasiuk](https://github.com/ymasiuk))
|
||
- Change order 'state' to int for order\_processor [\#2205](https://github.com/rubykube/peatio/pull/2205) ([mnaichuk](https://github.com/mnaichuk))
|
||
- AMQP messages for third party trading engine integration [\#2215](https://github.com/rubykube/peatio/pull/2215) ([ysv](https://github.com/ysv))
|
||
- Use json format for logs [\#2232](https://github.com/rubykube/peatio/pull/2232) ([denisfd](https://github.com/denisfd))
|
||
- Retry withdraw on failure [\#2233](https://github.com/rubykube/peatio/pull/2233) ([shal](https://github.com/shal))
|
||
- Change: config/database.yml – use port value from ENV [\#2254](https://github.com/rubykube/peatio/pull/2254) ([matass](https://github.com/matass))
|
||
- Add min\_confirmations field to Currency model entity [\#2276](https://github.com/rubykube/peatio/pull/2276) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Add bitcoincash and ripple [\#2284](https://github.com/rubykube/peatio/pull/2286)([ymasiuk](https://github.com/ymasiuk))
|
||
|
||
### Enhancements ###
|
||
|
||
- Skip withdrawal in case of insufficient balance on hot wallet [\#2179](https://github.com/rubykube/peatio/pull/2179) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Update RBAC roles [\#2237](https://github.com/rubykube/peatio/pull/2237) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Add WS message for market order executed event [\#2208](https://github.com/rubykube/peatio/pull/2208) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Replace Passgen gem with new password generator [\#2245](https://github.com/rubykube/peatio/pull/2245) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Update Readme [\#2250](https://github.com/rubykube/peatio/pull/2250) ([liutenko](https://github.com/liutenko))
|
||
- Improve sentry-raven error reporting [\#2236](https://github.com/rubykube/peatio/pull/2236) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Update logs in withdraw\_coin worker [\#2234](https://github.com/rubykube/peatio/pull/2234) ([denisfd](https://github.com/denisfd))
|
||
- Update ruby version and gems [\#2263](https://github.com/rubykube/peatio/pull/2263) ([mod](https://github.com/mod))
|
||
- Multi coin support for altcoins [\#2243](https://github.com/rubykube/peatio/pull/2243) ([Xicy](https://github.com/Xicy))
|
||
|
||
### Bug Fixes ###
|
||
|
||
- Remove JWT token from response payload [\#2265](https://github.com/rubykube/peatio/pull/2265) ([shal](https://github.com/shal))
|
||
- Remove http request for confirmations method [\#2262](https://github.com/rubykube/peatio/pull/2262) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Reload blockchain from DB before sync [\#2269](https://github.com/rubykube/peatio/pull/2269) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Fix bin/gendocs [\#2272](https://github.com/rubykube/peatio/pull/2272) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Fix issue with rake task release.rake in travis [\#2275](https://github.com/rubykube/peatio/pull/2275) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Fix GET /withdraws to include both fiat and crypto [\#2222](https://github.com/rubykube/peatio/pull/2222) ([msembinelli](https://github.com/msembinelli))
|
||
- Remove withdrawal attempts [\#2280](https://github.com/rubykube/peatio/pull/2280) ([mnaichuk](https://github.com/mnaichuk))
|
||
- Fix double spending issue on withdraw [\#2280](https://github.com/rubykube/peatio/pull/2280) ([mnaichuk](https://github.com/mnaichuk))
|