Version 3.1.0-6a4639e
Released 2022-02-06
Add account balances endpoint
- Rework deposit/withdraw admin api
- Add TLS support
Add P2P module
- Introduce kli to merge all commands into one binary
- Ability to debit balance over grpc
- Add admin authorization base on abilities
- Update Dockerfile
- Add Event API
- Add Multisig jwt
Co-authored-by: Maksym Naichuk <mnaichuk@openware.com> Co-authored-by: denisfd <fedorchenko999@gmail.com> Co-authored-by: Alireza Bashiri <al3rez@gmail.com>
Bump master branch to 3.1
Expose orders fees in REST & WS API (#389)
- Expose orders fees in REST & Websocket API
- Keep parsing compatible with version without fees
Co-authored-by: denisfd <fedorchenko999@gmail.com>
fix: Fix GetDispute handler (#427)
Fix p2p tests
- Fix segfault in p2p handler
- Update gorm and sqlite driver
Fix user loading when there are no accounts
Fix: Delete accounts model register and delete ID column
Update private abilities endpoint
Update gin, pkg and jwt version
Update global versions with master push
Version 3.0.49
Released 2021-11-11
Fix: Enable Kline service (#421)
Co-authored-by: Danylo Patsora <dpatsora@openware.com>
Version 3.0.48
Released 2021-10-29
Fix: in listing endpoints, returns last trades and timestamp in ms
Version 3.0.47
Released 2021-10-28
Feature: CoinMarketCap & CoinGecko listing endpoints (#419)
Co-authored-by: denisfd <fedorchenko999@gmail.com>
Co-authored-by: Danylo Patsora <dpatsora@heliostech.fr>
Version 3.0.46
Released 2021-10-18
Enhancement: Create user on the fly from JWT (#415)
- Create user on the fly from JWT
- Add the support of role in functional test framework
Co-authored-by: Camille Meulien <cmeulien@openware.com>
Version 3.0.45
Released 2021-10-05
Fix thread safe issue in binance connection
Version 3.0.44
Released 2021-10-04
Fix: Do not set notional for market sell order (#410)
Version 3.0.43
Released 2021-09-30
Avoid zero division in Binance reconcile
Version 3.0.42
Released 2021-09-28
Discard messages from quick market
Version 3.0.41
Released 2021-09-28
do not use binance time (#407)
Version 3.0.40
Released 2021-09-24
Feature: Add filtering for Markets endpoint (#387)
- Feature: Add filtering for Markets endpoint
Version 3.0.39
Released 2021-09-20
Fix double trade execution on binance and opendax
Version 3.0.38
Released 2021-09-20
Expose enabled order types per market
Version 3.0.37
Released 2021-09-17
Add docs about Quick engine
Version 3.0.36
Released 2021-09-16
Support QuoteAmount in order creation (#391)
- Add market order estimation
- Add quote_amount to order params
- Disable engine users from trading
- Require quote_amount for specified roles
- Unlock order if it is done with 0 trades
- Increase origin amount if amount goes negative
Version 3.0.35
Released 2021-09-15
feat: add updated_at in orderResponseAdmin
Version 3.0.34
Released 2021-09-14
Fix routing key parameter in session.Stream
Version 3.0.33
Released 2021-09-09
Update rango version
Version 3.0.32
Released 2021-09-09
Update jwt-go and gin packages
Version 3.0.31
Released 2021-09-07
Enhancement: Remove restrictions from Admin abilities endpoint
Version 3.0.30
Released 2021-09-06
Fix opendax-cnx race condition on shutdown
Version 3.0.29
Released 2021-08-26
Fix orderbook handling in binance engine (#385)
- Fix orderbook handling in binance engine
- Update assert spreads in ws_check script
Version 3.0.28
Released 2021-08-24
Record time of the last trade
Update Kaigara to 0.1.29
Version 3.0.27
Released 2021-08-05
Add trade sampling by market
Version 3.0.26
Released 2021-08-02
Fix Binance reconnection
Version 3.0.25
Released 2021-07-28
Improve srtartup time
Version 3.0.24
Released 2021-07-16
Cancel triggers by side
Version 3.0.23
Released 2021-07-14
Fix nil error in opendax client connect
Version 3.0.22
Released 2021-07-09
Fix double canceling orders in opendax engine
- Mute publisher and aggegater logs by default
- Change messages log levels
Version 3.0.21
Released 2021-07-02
Advanced order types (#22)
Feature: Advanced orders
- Stop-loss, stop-limit, take-profit and take-limit orders
- Admin API to get orders with filtering
- User API to get orders with filtering
- Update database schema
Co-authored-by: denisfd <fedorchenko999@gmail.com>
Fix: OpenDAX connection stuck on req sending
Version 3.0.20
Released 2021-06-25
Exclude hedger members from finex_engine_business_accounts_balance metrics
Version 3.0.19
Released 2021-06-22
Add orderbook increments squasher
- Move sampler to publisher package
Version 3.0.18
Released 2021-06-21
Read abilities from yaml
Version 3.0.17
Released 2021-06-18
Return more specific error detials
Version 3.0.16
Released 2021-06-17
Add a metric with the sum of account balance per currency
Add ability to disable raw orderbook publishing
Add disabling wash trading feature
Add hybrid support for deprecated actions config
Add sonar analysis
Add Quick engine driver
- Add market type
- Add grpc
- Add abilities endpoints
Add order type limit FOK
Feature: add type fill or kill to Bitforex Feature: local fill or kill order (#280) Feature: Opendax driver for fill or kill (#283) add order type fill or kill
Add opendax.cloud and local license scope (#275)
Add opendax.cloud and local license scope
- Check for license version 3 and allow uat.opendax.app domain
- Add unit test and update license package
- Update dev license key
- Add unit test for license version
Co-authored-by: denisfd <fedorchenko999@gmail.com> Co-authored-by: Keng Suppaseth <kengio@gmail.com>
Add aggreagted dirver
- Extract orderboook updating logic
- Clear old orders on snapshot
- Add resync feature
- Publish raw orderbook in admin scope
- Add optional probes
- Fix race condition
- Prevent orderbook emptying
- Add tests for bitfinex and aggregated_change_price
- Add period config for mockserver
- Disable ticker check in bitfinex
Add ability to transfer taker fees to maker
Add CrytpoCom driver
- Upstream connection interface
- Generic Upstream driver
- Add cryptocom client
Co-authored-by: Danylo Patsora <dpatsora@heliostech.fr> Co-authored-by: Tee <tee@yelllow.com>
Add websocket mockserver to functional framework
- Add script to check websocket
- Add websocket recorder
- Example with binance
- Add engine seed
- Add 'verbose' flag
Add spread overlapping assertion
Add ability to configure bitfinex ws and rest URL from engine data
Admin Websocket API
- Add prefixed RBAC websocket channels
- Admin API to create & cancel orders
- Record deposits and withdrawals
- Skip balance check based on role
- Add config deprecation warning
- Move rate and action config to top-level scope
- Publish balance update on peatio liabilities
- Simplify id package
Co-authored-by: josadcha <josadcha@heliostech.fr>
Bump version to 3.0.0
Bump master branch to 2.7
Connect to opendax in goroutine to prevent engine stucking
Create separate goroutine for engines
Enhancement: Update Kaigara version (#322)
Enhancement: update Kaigara version (#301)
Enhancement: Add public image build to the CI (#282)
Feature: Trade sampler
Feature: Add Publish to Gitolite CI step (#368)
Feature: Add ability to read public key from string (#294)
Fix 25th order publishing for buy side
Fix websocket auth error
Improve cancel request
Make orderbook assertions optional
Remove canceled orders in binance handle execution report
Remove sonar step from drone.yml
Return JSON errors for cancel order endpoint
Track orderbook sequence in opendax driver
- Reset sequence & reconnect if sequence mismatch
- Remove snapshot broadcasting in API
Update goci version
Version 2.6.41
Released 2021-06-17
Connect to opendax in goroutine to prevent engine stucking
Feature: Add Publish to Gitolite CI step (#369)
Fix 25th order publishing for buy side
Version 3.0.15
Released 2021-06-17
Feature: Add Publish to Gitolite CI step (#368)
Version 3.0.14
Released 2021-06-14
Remove canceled orders in binance handle execution report
Version 3.0.13
Released 2021-06-12
Add a metric with the sum of account balance per currency
Version 3.0.12
Released 2021-06-11
Version 3.0.11
Released 2021-06-11
Add ability to disable raw orderbook publishing
Version 3.0.10
Released 2021-06-10
Add disabling wash trading feature
Version 3.0.9
Released 2021-06-09
Add hybrid support for deprecated actions config
Version 3.0.8
Released 2021-06-09
Make orderbook assertions optional
Version 3.0.7
Released 2021-05-24
Admin Websocket API
- Add prefixed RBAC websocket channels
- Admin API to create & cancel orders
- Record deposits and withdrawals
- Skip balance check based on role
- Add config deprecation warning
- Move rate and action config to top-level scope
- Publish balance update on peatio liabilities
- Simplify id package
Co-authored-by: josadcha <josadcha@heliostech.fr>
Version 3.0.6
Released 2021-05-21
Return JSON errors for cancel order endpoint
Version 3.0.5
Released 2021-05-21
Improve cancel request
Version 3.0.4
Released 2021-05-11
Remove sonar step from drone.yml
Version 3.0.3
Released 2021-04-22
Connect to opendax in goroutine to prevent engine stucking
Fix 25th order publishing for buy side
Version 3.0.2
Released 2021-04-19
Add sonar analysis
Add Quick engine driver
- Add market type
- Add grpc
- Add abilities endpoints
Add order type limit FOK
Feature: add type fill or kill to Bitforex Feature: local fill or kill order (#280) Feature: Opendax driver for fill or kill (#283) add order type fill or kill
Add opendax.cloud and local license scope (#275)
Add opendax.cloud and local license scope
- Check for license version 3 and allow uat.opendax.app domain
- Add unit test and update license package
- Update dev license key
- Add unit test for license version
Co-authored-by: denisfd <fedorchenko999@gmail.com> Co-authored-by: Keng Suppaseth <kengio@gmail.com>
Add aggreagted dirver
- Extract orderboook updating logic
- Clear old orders on snapshot
- Add resync feature
- Publish raw orderbook in admin scope
- Add optional probes
- Fix race condition
- Prevent orderbook emptying
- Add tests for bitfinex and aggregated_change_price
- Add period config for mockserver
- Disable ticker check in bitfinex
Add ability to transfer taker fees to maker
Add CrytpoCom driver
- Upstream connection interface
- Generic Upstream driver
- Add cryptocom client
Co-authored-by: Danylo Patsora <dpatsora@heliostech.fr> Co-authored-by: Tee <tee@yelllow.com>
Add websocket mockserver to functional framework
- Add script to check websocket
- Add websocket recorder
- Example with binance
- Add engine seed
- Add 'verbose' flag
Add spread overlapping assertion
Add ability to configure bitfinex ws and rest URL from engine data
Bump version to 3.0.0
Bump master branch to 2.7
Create separate goroutine for engines
Enhancement: Update Kaigara version (#322)
Enhancement: update Kaigara version (#301)
Enhancement: Add public image build to the CI (#282)
Feature: Add ability to read public key from string (#294)
Fix websocket auth error
Track orderbook sequence in opendax driver
- Reset sequence & reconnect if sequence mismatch
- Remove snapshot broadcasting in API
Update goci version
Version 2.6.40
Released 2021-04-16
Connect to opendax in goroutine to prevent engine stucking
Fix 25th order publishing for buy side
Version 3.0.1
Released 2021-04-09
Update goci version
Version 3.0.0
Released 2021-04-08
Add sonar analysis
Add Quick engine driver
- Add market type
- Add grpc
- Add abilities endpoints
Add order type limit FOK
Feature: add type fill or kill to Bitforex Feature: local fill or kill order (#280) Feature: Opendax driver for fill or kill (#283) add order type fill or kill
Add opendax.cloud and local license scope (#275)
Add opendax.cloud and local license scope
- Check for license version 3 and allow uat.opendax.app domain
- Add unit test and update license package
- Update dev license key
- Add unit test for license version
Co-authored-by: denisfd <fedorchenko999@gmail.com> Co-authored-by: Keng Suppaseth <kengio@gmail.com>
Add aggreagted dirver
- Extract orderboook updating logic
- Clear old orders on snapshot
- Add resync feature
- Publish raw orderbook in admin scope
- Add optional probes
- Fix race condition
- Prevent orderbook emptying
- Add tests for bitfinex and aggregated_change_price
- Add period config for mockserver
- Disable ticker check in bitfinex
Add ability to transfer taker fees to maker
Add CrytpoCom driver
- Upstream connection interface
- Generic Upstream driver
- Add cryptocom client
Co-authored-by: Danylo Patsora <dpatsora@heliostech.fr> Co-authored-by: Tee <tee@yelllow.com>
Add websocket mockserver to functional framework
- Add script to check websocket
- Add websocket recorder
- Example with binance
- Add engine seed
- Add 'verbose' flag
Add spread overlapping assertion
Add ability to configure bitfinex ws and rest URL from engine data
Bump version to 3.0.0
Bump master branch to 2.7
Create separate goroutine for engines
Enhancement: update Kaigara version (#301)
Enhancement: Add public image build to the CI (#282)
Feature: Add ability to read public key from string (#294)
Fix websocket auth error
Track orderbook sequence in opendax driver
- Reset sequence & reconnect if sequence mismatch
- Remove snapshot broadcasting in API
Version 2.6.39
Released 2021-04-08
Fix 25th order publishing for buy side
Version 2.6.38
Released 2021-03-10
Add metric for amqp section duration for create orders
Version 2.6.37
Released 2021-03-02
Fix: max market name length
Pull Requests
Merge pull request #279 from openware/feature/market_name
Version 2.6.36
Released 2021-02-26
Edit API links in docs
Version 2.6.35
Released 2021-02-17
Enhancement: Add Kaigara installation to the Dockerfile (#273)
Version 2.6.34
Released 2021-02-12
Add the support of influx cleanup task to run after data rebalancing (#167)
- Add the support of influx cleanup task to run after data rebalancing
Co-authored-by: denisfd <fedorchenko999@gmail.com>
Version 2.6.33
Released 2021-02-12
Enhancement: Add health checks
Version 2.6.32
Released 2021-02-08
Fix docker build
Version 2.6.31
Released 2021-02-06
Improve slow tests
- Add volume to skip module rebuild
- Cache jwt token in orderapi tests
- Reduce sleep in bitfinex tests
- Reduce wait in functional tests
- Add retry in functional tests
Version 2.6.30
Released 2021-02-05
Define license and log as seperated pkg
Update go.mod
- Update docker build
Update dependencies
Version 2.6.29
Released 2021-02-05
Add go vet to CI checks
- Check formatting in CI
Version 2.6.28
Released 2021-02-04
Add default retries value
Add order by market position on plain market cache
Add documenation about functional testing framework
Add order by market position on market cache
Add a prometheus metric to monitor vault token TTL
- Remove decrypt module dependency from the API
- Display error in finex engine if the decrypt module init fails (not fatal)
Add blockchains height metrics to prometheus endpoint
Add grace time of 30 days for expired license
Add the support of multiple domains for one license
Add a general description of finex
Add retries to sql batcher
Add timeout to bitfinex websocket requests
Add order and trade response description for WS API
Add admin cancel bulk endpoint
Add Binance Driver
Add license
Allow admin to use bulk admin cancel endpoint regardless of the license scopes (#249)
Bump master to 2.6
Change way of hadling defaults in config package
Change WebSocket API URL to /api/v2/ws (#204)
Clear opendax book when receiving new snapshot
Do not reset sequence in opendax engine
Enhancement: Update SDK-citools version for Drone CI (#223)
Expose vault token period metric
Expose the build version and revision
- Expose the build version and revision to the public endpoint /api/v2/public/version
- Expose the build version and revision in metrics
- Enable metrics by default (now you should disable it explicitly if needed)
- Change license format to JWT
Expose wallets balance metrics
Feature: Use ika pkg to support configuration through environment (#261)
Support configuration through environment * Use openware/pkg/ika to load the config
Co-authored-by: Valentine Shatravenko <vshatravenko@heliostech.fr>
Feature: Add CI step to update the global version (#251)
Feature: Add the CI step to push to gitolite (#196)
Fix: Global version update CI (#262)
Fix to publish 25th order if PriceLevel was deleted.
- Add test scenario
- Replace constant with ObSizeLimit configuration variable
Fix overlapping spread bug
Fix: change finex_engine_business_payment_addresses metric query
Fix binance driver trade created_at
Fix Segfault in GetBitfinexConnection
Fix Trade created_at format in Bitfinex engine (#205)
Fix publishing of documentation
Fix master build
Handle ticker interval in bitifnex conection
Increase timeout time in tests
Move API docs to docs/api
Opendax upstream engine (#122)
Opendax upstream engine - Add websocket client - Update websocket server - Do not prevent limiter refresh in first period - Set max message size to 1MB - Fix a race condition in websocket server - Disconnect slow ws connections - Add tool for injecting amqp messages - Use rango amqp package
Improve logger - Add ability to set log level for logger observer - Add ability to attach labels to logger
Support bitfinex orderbook update
Public endpoint to expose markets orderbook (#216)
- Public endpoint to expose markets orderbook
Co-authored-by: denisfd <fedorchenko999@gmail.com>
Publish pricelevels instead of removed one
Publish events in Open Finance Protocol format
Rebase on 2-5
Rebase on 2-5
Refactor license expiration check
Remove GetByID bitfinex-connection method
Remove 'Publish to git.openware' CI step
Remove PlainMarketCache
Restart engine and refresh API cache on new market
Scale Orderbook Publisher (#217)
- Load-balance orderbook events published to AMQP
- Bitfinex websocket timeout bases on tickers
- Auto-reconnect publishers to AMQP
Support optional Vault in decrypt package
Update decrypt.EngineData type
Update postbuild step
Update upstream compose config
Update structure.sql from Peatio 2.6 schema
Update incremental orderbook in bitfinex and opendax drivers
Update bitfinex logs
Update market initialization
Update SQL Business metrics
Update Kline service to prevent segfault
Update bitfinex library with reconnect fix, add some metrics Add troubleshooting doc about rejected orders Add more logs to session flow Fix websocket metrics, refactor bitfinex reconnection functions Detect bitfinex websocket connection problems Bitfinex cnx: add different locks for rest and ws
Update influx config
Upgrade to go 1.14 and dependencies
Use json response insteead of ctx.Error
Use trace log level for bitfinex connection logs
Websocket API (#120)
Main changes: - Integrate Websocket into Finex API - Add Create, Cancel, Bulk Create, Bulk Cancel methods - Support Filters, Actions RBAC and Rate limiting in websocket
Minor changes: - Add http-like Hander type and router to routing.Hub - Add helpers for msg arguments type conversions - Remove jwt package - Add short websocket documentation
Version 2.5.43
Released 2021-02-03
Add admin cancel bulk endpoint
Add timeout in markets queues
- Add a queue with timeout for market
- Timeout for remote markets is 5s
- Timeout for local markets is 2s
- Expose reject reason to websocket
- Use buffered channels in observers
- Add metric about orders in critical section timing
Add labeled logger with separate log level
Add support of influx username and password in config.yml
Add KLines REST API (#140)
- Add KLines REST API with cache
- Add a thread safe map type
Add metrics with websocket status
Add loader
- Include binary tools in docker image
Add market label to order latency metric (#134)
- Add market label to order latency metric
- Increment trade metric
Add debug logs for bitfinex messages
Add Prometheus exporter
Add expenses message to builder observers
Add separate cache for API (no vault dependancy)
Add driver id filtering in ranger and incremental
- Add test for incremental
Add data field to Market model (#101)
- Add data field to Market model
Add test for decrypt pkg
Add vault documentation to create policy and application tokens (#91)
Add price filters for finex API (#89)
- Add price filters for finex API
- Fix unstable tests in session rate
Add avarage price calculation
Add API usage (JS)
Allow trading on hidden markets Improve error reporting during market initialization
Bitfinex upstream: Allow users to cancel an order without remote_id after 10 seconds
After 10 seconds if an order didn't receive a remote_id from the upstream this probably means that the order wasn't created. The order will be closed in the next reconcile process or if the user triggers a cancel through the API.
Bitfinex upstream reconcile process on connect (#103)
Bitfinex upstream improvements
- Reconcile local orderbook with remote open orders from snapshot
- Update order creation flow for bitfinex engine
- Add many test cases
- Use ParseInt to parse int64
- Add Start to Engine interface
- Check order status prefix only
- Cancel order if we detect unexpected amount change
Finex changes
- Shutdown finex on a new market
- Clean markets response
- Set locked to zero when order is fulfilled
- Skip zero revenues
Bitfinex engine: Fix log level message in cancel order endpoint
Bitfinex engine: creates only one ws connection per engine
Bitfinex engine driver * order create and reject * trade events support * closing orders once fulfilled
Cancel All endpoint
- Admin API to cancel orders
Configure the CI to redeploy on master.devkube.com (#83)
Create market driver interface Change market init to load orderbook Introduce pkg driver and orderbook Add blackhole driver
Disable colors in logs when stdout is not a terminal Do not enable vault token renew process for token not renewable
Do not publish internal trades messages for upstreams
Do periodic reconciling
- Add reconcile metrics
- Record upstream requests
- Remove safemap
Do not reset Locked for Done orders
Enhancement: Redeploy master changes to finex.devkube.com (#87)
Ensure trades events are not processed twice in bitfinex upstream (#151)
Track trades to prevent processing one trade multiple times
Expose wallets balance metrics
Expose business metrics (#136)
- Expose business metrics (deposits, withdrawals, payment_addresses)
- Fetch and expose MySQL metrics
Fetch and decrypt engine config
Fix bitfinex trade execution event parsing error Use openware patched version of bitfinex library
Fix a crash in bitfinex get order API (#170)
Fix in bitfinex reconcile process (#165)
- record missed trades before canceling order
Fix a crash in kline service (#159)
Fix bitfinex upstream do not add order to local orderbook if it's rejected
Fix nil pointer in findOrder helper
- Change Kline log level to trace
Fix mixed business metrics
Fix average price calculation of orders partially filled (#149)
Do not set locked field to 0 when canceling orders
Fix bitfinex engine unlock calculation for buy orders
Fix remaining locked calculation for bitfinex upstream
Fix race conditions (#117)
- Enable race detector in CI
- Fix race condition in handleOrderSnapshot
- Fix race condition in sessions
Fix unconsistent test
Fix gateway rate limits (#79)
- Fix gateway rate limits
- Change default api rate limits to 5 requests per second
Fix logging Empty operations (#75)
- Improve logging of empty operations
- Log UUID on order cancel
- Add logs for actions filter in orderapi
Handle FOK cancel event with executed state in bitfinex engine (#192)
Handle Bitfinex reconnect
Handle periodic reconcile
Handle FOK canceled event (Bitfinex upstream) #148
Improve vault documentation
Improve Session logs
Improvements of bitfinex upstream
- Shutdown finex-engine on unexpected end of ws messages
- Do not use parallel calls in bitfinex upstream and use lock
- Reject orders and ignore cancels if the websocket is not connected
Unify log message with the market id
Influx re-balance klines series
Influx sharding support (#160)
- Add the support of influx sharding
- Add a command line to rebalance influx shards
- Add InfluxDB writer
Keep track of bitfinex fees in platform expenses
Limit size of orderbook in incremental snapshots
Listen to Peatio Liabilities
Metrics: Handle wallets balance as JSON
Move API docs to docs/api
Override docs name
Publish locked on balance updates
Rebalance by chunks in influxDB to avoid high memory usage
Reject orders when a market buffer is full
- A slow market won't block others markets
- Orders are rejected is a market buffer is full
Reject post only orders for bitfinex engine
Requalify some metrics error log into warning
Skip warmup for non local drivers in incremental
Stop API on AMQP connection exceptions
Submit fill or kill orders for market buy on bitfinex upstream
Update Kline service to prevent segfault
Update bitfinex library with reconnect fix, add some metrics Add troubleshooting doc about rejected orders Add more logs to session flow Fix websocket metrics, refactor bitfinex reconnection functions Detect bitfinex websocket connection problems Bitfinex cnx: add different locks for rest and ws
Update Market data field with json type
Update schema (#92)
- Update schema with engines table
Update schema
- Load null price as 0 from db
Update Average price calculation
Reverts
Handle FOK cancel event with executed state in bitfinex engine (#192)
Version 2.4.5
Released 2021-02-03
Add avarage price calculation
Add API usage (JS)
Cancel All endpoint
- Admin API to cancel orders
Configure the CI to redeploy on master.devkube.com (#83)
Fix gateway rate limits (#79)
- Fix gateway rate limits
- Change default api rate limits to 5 requests per second
Fix logging Empty operations (#75)
- Improve logging of empty operations
- Log UUID on order cancel
- Add logs for actions filter in orderapi
Improve Session logs
Limit size of orderbook in incremental snapshots
Listen to Peatio Liabilities
Override docs name
Publish locked on balance updates
Release stable version
Shutdown finex on a new market
Stop API on AMQP connection exceptions
Update schema
- Load null price as 0 from db
Update Average price calculation
Version 2.6.27
Released 2021-02-03
Update postbuild step
Version 2.6.26
Released 2021-02-01
Add default retries value
Version 2.6.25
Released 2021-01-28
Fix: Global version update CI (#262)
Version 2.6.24
Released 2021-01-28
Feature: Use ika pkg to support configuration through environment (#261)
Support configuration through environment * Use openware/pkg/ika to load the config
Co-authored-by: Valentine Shatravenko <vshatravenko@heliostech.fr>
Version 2.6.23
Released 2021-01-25
Use json response insteead of ctx.Error
Version 2.6.22
Released 2021-01-22
Expose vault token period metric
Version 2.6.21
Released 2021-01-22
Feature: Add CI step to update the global version (#251)
Version 2.6.20
Released 2021-01-20
Allow admin to use bulk admin cancel endpoint regardless of the license scopes (#249)
Version 2.6.19
Released 2021-01-19
Remove GetByID bitfinex-connection method
Version 2.6.18
Released 2021-01-19
Remove 'Publish to git.openware' CI step
Version 2.6.17
Released 2021-01-19
Update upstream compose config
Version 2.6.16
Released 2021-01-15
Remove PlainMarketCache
Version 2.6.15
Released 2021-01-15
Support optional Vault in decrypt package
Version 2.6.14
Released 2021-01-15
Change way of hadling defaults in config package
Version 2.6.13
Released 2021-01-15
Fix to publish 25th order if PriceLevel was deleted.
- Add test scenario
- Replace constant with ObSizeLimit configuration variable
Refactor license expiration check
Version 2.6.12
Released 2021-01-15
Do not reset sequence in opendax engine
Version 2.6.11
Released 2021-01-15
Add order by market position on plain market cache
Version 2.6.10
Released 2021-01-15
Add documenation about functional testing framework
Version 2.6.9
Released 2021-01-14
Add order by market position on market cache
Version 2.6.8
Released 2021-01-08
Clear opendax book when receiving new snapshot
Version 2.6.7
Released 2021-01-06
Update structure.sql from Peatio 2.6 schema
Version 2.6.6
Released 2021-01-06
Fix overlapping spread bug
Version 2.6.5
Released 2020-12-29
Add a prometheus metric to monitor vault token TTL
- Remove decrypt module dependency from the API
- Display error in finex engine if the decrypt module init fails (not fatal)
Version 2.6.4
Released 2020-12-24
Fix: change finex_engine_business_payment_addresses metric query
Version 2.6.3
Released 2020-12-22
Enhancement: Update SDK-citools version for Drone CI (#223)
Version 2.6.2
Released 2020-12-16
Add blockchains height metrics to prometheus endpoint
Version 2.6.1
Released 2020-12-03
Add grace time of 30 days for expired license
Add the support of multiple domains for one license
Version 2.6.0
Released 2020-12-02
Add a general description of finex
Add retries to sql batcher
Add timeout to bitfinex websocket requests
Add order and trade response description for WS API
Add admin cancel bulk endpoint
Add Binance Driver
Add license
Bump master to 2.6
Change WebSocket API URL to /api/v2/ws (#204)
Expose the build version and revision
- Expose the build version and revision to the public endpoint /api/v2/public/version
- Expose the build version and revision in metrics
- Enable metrics by default (now you should disable it explicitly if needed)
- Change license format to JWT
Expose wallets balance metrics
Feature: Add the CI step to push to gitolite (#196)
Fix binance driver trade created_at
Fix Segfault in GetBitfinexConnection
Fix Trade created_at format in Bitfinex engine (#205)
Fix publishing of documentation
Fix master build
Handle ticker interval in bitifnex conection
Increase timeout time in tests
Move API docs to docs/api
Opendax upstream engine (#122)
Opendax upstream engine - Add websocket client - Update websocket server - Do not prevent limiter refresh in first period - Set max message size to 1MB - Fix a race condition in websocket server - Disconnect slow ws connections - Add tool for injecting amqp messages - Use rango amqp package
Improve logger - Add ability to set log level for logger observer - Add ability to attach labels to logger
Support bitfinex orderbook update
Public endpoint to expose markets orderbook (#216)
- Public endpoint to expose markets orderbook
Co-authored-by: denisfd <fedorchenko999@gmail.com>
Publish pricelevels instead of removed one
Publish events in Open Finance Protocol format
Rebase on 2-5
Rebase on 2-5
Restart engine and refresh API cache on new market
Scale Orderbook Publisher (#217)
- Load-balance orderbook events published to AMQP
- Bitfinex websocket timeout bases on tickers
- Auto-reconnect publishers to AMQP
Update incremental orderbook in bitfinex and opendax drivers
Update bitfinex logs
Update market initialization
Update SQL Business metrics
Update Kline service to prevent segfault
Update bitfinex library with reconnect fix, add some metrics Add troubleshooting doc about rejected orders Add more logs to session flow Fix websocket metrics, refactor bitfinex reconnection functions Detect bitfinex websocket connection problems Bitfinex cnx: add different locks for rest and ws
Update influx config
Upgrade to go 1.14 and dependencies
Use trace log level for bitfinex connection logs
Websocket API (#120)
Main changes: - Integrate Websocket into Finex API - Add Create, Cancel, Bulk Create, Bulk Cancel methods - Support Filters, Actions RBAC and Rate limiting in websocket
Minor changes: - Add http-like Hander type and router to routing.Hub - Add helpers for msg arguments type conversions - Remove jwt package - Add short websocket documentation
Version 2.5.42
Released 2020-09-23
Update Kline service to prevent segfault
Version 2.5.41
Released 2020-09-14
Move API docs to docs/api
Version 2.5.40
Released 2020-09-07
Version 2.5.39
Released 2020-09-03
Fix bitfinex trade execution event parsing error Use openware patched version of bitfinex library
Reverts
Handle FOK cancel event with executed state in bitfinex engine (#192)
Version 2.5.38
Released 2020-09-03
Handle FOK cancel event with executed state in bitfinex engine (#192)
Version 2.5.37
Released 2020-08-20
Add admin cancel bulk endpoint
Requalify some metrics error log into warning
Version 2.5.36
Released 2020-08-12
Metrics: Handle wallets balance as JSON
Version 2.5.35
Released 2020-08-11
Expose wallets balance metrics
Version 2.5.34
Released 2020-08-10
Update bitfinex library with reconnect fix, add some metrics Add troubleshooting doc about rejected orders Add more logs to session flow Fix websocket metrics, refactor bitfinex reconnection functions Detect bitfinex websocket connection problems Bitfinex cnx: add different locks for rest and ws
Version 2.5.33
Released 2020-07-28
Add timeout in markets queues
- Add a queue with timeout for market
- Timeout for remote markets is 5s
- Timeout for local markets is 2s
- Expose reject reason to websocket
- Use buffered channels in observers
- Add metric about orders in critical section timing
Version 2.5.32
Released 2020-07-28
Add labeled logger with separate log level
Version 2.5.31
Released 2020-07-24
Handle Bitfinex reconnect
Version 2.5.30
Released 2020-07-23
Fix a crash in bitfinex get order API (#170)
Version 2.5.29
Released 2020-07-15
Fix in bitfinex reconcile process (#165)
- record missed trades before canceling order
Version 2.5.28
Released 2020-07-15
Reject orders when a market buffer is full
- A slow market won't block others markets
- Orders are rejected is a market buffer is full
Version 2.5.27
Released 2020-07-13
Influx re-balance klines series
Rebalance by chunks in influxDB to avoid high memory usage
Version 2.5.26
Released 2020-07-10
Influx sharding support (#160)
- Add the support of influx sharding
- Add a command line to rebalance influx shards
- Add InfluxDB writer
Version 2.5.25
Released 2020-07-09
Fix a crash in kline service (#159)
Version 2.5.24
Released 2020-07-09
Handle periodic reconcile
Version 2.5.23
Released 2020-07-08
Fix bitfinex upstream do not add order to local orderbook if it's rejected
Version 2.5.22
Released 2020-07-08
Fix nil pointer in findOrder helper
- Change Kline log level to trace
Version 2.5.21
Released 2020-07-08
Fix mixed business metrics
Version 2.5.20
Released 2020-07-07
Ensure trades events are not processed twice in bitfinex upstream (#151)
Track trades to prevent processing one trade multiple times
Version 2.5.19
Released 2020-07-06
Bitfinex upstream: Allow users to cancel an order without remote_id after 10 seconds
After 10 seconds if an order didn't receive a remote_id from the upstream this probably means that the order wasn't created. The order will be closed in the next reconcile process or if the user triggers a cancel through the API.
Version 2.5.18
Released 2020-07-06
Fix average price calculation of orders partially filled (#149)
Do not set locked field to 0 when canceling orders
Version 2.5.17
Released 2020-07-06
Handle FOK canceled event (Bitfinex upstream) #148
Version 2.5.16
Released 2020-07-02
Do not publish internal trades messages for upstreams
Version 2.5.15
Released 2020-07-02
Add support of influx username and password in config.yml
Version 2.5.14
Released 2020-07-02
Do periodic reconciling
- Add reconcile metrics
- Record upstream requests
- Remove safemap
Version 2.5.13
Released 2020-07-02
Add KLines REST API (#140)
- Add KLines REST API with cache
- Add a thread safe map type
Version 2.5.12
Released 2020-07-02
Fix bitfinex engine unlock calculation for buy orders
Version 2.5.11
Released 2020-06-26
Add metrics with websocket status
Version 2.5.10
Released 2020-06-25
Expose business metrics (#136)
- Expose business metrics (deposits, withdrawals, payment_addresses)
- Fetch and expose MySQL metrics
Version 2.5.9
Released 2020-06-25
Add loader
- Include binary tools in docker image
Version 2.5.8
Released 2020-06-23
Add market label to order latency metric (#134)
- Add market label to order latency metric
- Increment trade metric
Version 2.5.7
Released 2020-06-23
Improvements of bitfinex upstream
- Shutdown finex-engine on unexpected end of ws messages
- Do not use parallel calls in bitfinex upstream and use lock
- Reject orders and ignore cancels if the websocket is not connected
Unify log message with the market id
Version 2.5.6
Released 2020-06-17
Fix remaining locked calculation for bitfinex upstream
Version 2.5.5
Released 2020-06-16
Add debug logs for bitfinex messages
Add Prometheus exporter
Add expenses message to builder observers
Add separate cache for API (no vault dependancy)
Add driver id filtering in ranger and incremental
- Add test for incremental
Add data field to Market model (#101)
- Add data field to Market model
Add test for decrypt pkg
Add vault documentation to create policy and application tokens (#91)
Add price filters for finex API (#89)
- Add price filters for finex API
- Fix unstable tests in session rate
Add avarage price calculation
Add API usage (JS)
Allow trading on hidden markets Improve error reporting during market initialization
Bitfinex upstream reconcile process on connect (#103)
Bitfinex upstream improvements
- Reconcile local orderbook with remote open orders from snapshot
- Update order creation flow for bitfinex engine
- Add many test cases
- Use ParseInt to parse int64
- Add Start to Engine interface
- Check order status prefix only
- Cancel order if we detect unexpected amount change
Finex changes
- Shutdown finex on a new market
- Clean markets response
- Set locked to zero when order is fulfilled
- Skip zero revenues
Bitfinex engine: Fix log level message in cancel order endpoint
Bitfinex engine: creates only one ws connection per engine
Bitfinex engine driver * order create and reject * trade events support * closing orders once fulfilled
Cancel All endpoint
- Admin API to cancel orders
Configure the CI to redeploy on master.devkube.com (#83)
Create market driver interface Change market init to load orderbook Introduce pkg driver and orderbook Add blackhole driver
Disable colors in logs when stdout is not a terminal Do not enable vault token renew process for token not renewable
Do not reset Locked for Done orders
Enhancement: Redeploy master changes to finex.devkube.com (#87)
Fetch and decrypt engine config
Fix race conditions (#117)
- Enable race detector in CI
- Fix race condition in handleOrderSnapshot
- Fix race condition in sessions
Fix unconsistent test
Fix gateway rate limits (#79)
- Fix gateway rate limits
- Change default api rate limits to 5 requests per second
Fix logging Empty operations (#75)
- Improve logging of empty operations
- Log UUID on order cancel
- Add logs for actions filter in orderapi
Improve vault documentation
Improve Session logs
Keep track of bitfinex fees in platform expenses
Limit size of orderbook in incremental snapshots
Listen to Peatio Liabilities
Publish locked on balance updates
Reject post only orders for bitfinex engine
Skip warmup for non local drivers in incremental
Stop API on AMQP connection exceptions
Submit fill or kill orders for market buy on bitfinex upstream
Update Market data field with json type
Update schema (#92)
- Update schema with engines table
Update schema
- Load null price as 0 from db
Update Average price calculation
Version 2.4.4
Released 2020-06-02
Add avarage price calculation
Add API usage (JS)
Cancel All endpoint
- Admin API to cancel orders
Configure the CI to redeploy on master.devkube.com (#83)
Fix gateway rate limits (#79)
- Fix gateway rate limits
- Change default api rate limits to 5 requests per second
Fix logging Empty operations (#75)
- Improve logging of empty operations
- Log UUID on order cancel
- Add logs for actions filter in orderapi
Improve Session logs
Limit size of orderbook in incremental snapshots
Listen to Peatio Liabilities
Publish locked on balance updates
Release stable version
Shutdown finex on a new market
Stop API on AMQP connection exceptions
Update schema
- Load null price as 0 from db
Update Average price calculation
Version 2.5.4
Released 2020-06-01
Disable colors in logs when stdout is not a terminal Do not enable vault token renew process for token not renewable
Version 2.5.3
Released 2020-05-26
Do not reset Locked for Done orders
Version 2.5.2
Released 2020-05-16
Version 2.5.1
Released 2020-05-15
Add Prometheus exporter
Allow trading on hidden markets Improve error reporting during market initialization
Fix race conditions (#117)
- Enable race detector in CI
- Fix race condition in handleOrderSnapshot
- Fix race condition in sessions
Improve vault documentation
Update Market data field with json type
Version 2.5.0-55a07e9
Released 2020-04-29
Reject post only orders for bitfinex engine
Submit fill or kill orders for market buy on bitfinex upstream
Version 2.5.0-8382376
Released 2020-04-24
Bitfinex upstream reconcile process on connect (#103)
Bitfinex upstream improvements
- Reconcile local orderbook with remote open orders from snapshot
- Update order creation flow for bitfinex engine
- Add many test cases
- Use ParseInt to parse int64
- Add Start to Engine interface
- Check order status prefix only
- Cancel order if we detect unexpected amount change
Finex changes
- Shutdown finex on a new market
- Clean markets response
- Set locked to zero when order is fulfilled
- Skip zero revenues
Version 2.5.0-a9c2562
Released 2020-04-22
Bitfinex engine: Fix log level message in cancel order endpoint
Bitfinex engine: creates only one ws connection per engine
Fix unconsistent test
Version 2.5.0-3ff1ad3
Released 2020-04-22
Add expenses message to builder observers
Keep track of bitfinex fees in platform expenses
Version 2.5.0-b253ea1
Released 2020-04-22
Add separate cache for API (no vault dependancy)
Version 2.5.0-145e7c0
Released 2020-04-21
Skip warmup for non local drivers in incremental
Version 2.5.0-e0a70df
Released 2020-04-21
Add driver id filtering in ranger and incremental
- Add test for incremental
Add data field to Market model (#101)
- Add data field to Market model
Add test for decrypt pkg
Bitfinex engine driver * order create and reject * trade events support * closing orders once fulfilled
Create market driver interface Change market init to load orderbook Introduce pkg driver and orderbook Add blackhole driver
Fetch and decrypt engine config
Update schema (#92)
- Update schema with engines table
Version 2.5.0-bc9d854
Released 2020-04-15
Add vault documentation to create policy and application tokens (#91)
Version 2.5.0-344a95e
Released 2020-04-15
Add price filters for finex API (#89)
- Add price filters for finex API
- Fix unstable tests in session rate
Add avarage price calculation
Add API usage (JS)
Cancel All endpoint
- Admin API to cancel orders
Configure the CI to redeploy on master.devkube.com (#83)
Enhancement: Redeploy master changes to finex.devkube.com (#87)
Fix gateway rate limits (#79)
- Fix gateway rate limits
- Change default api rate limits to 5 requests per second
Fix logging Empty operations (#75)
- Improve logging of empty operations
- Log UUID on order cancel
- Add logs for actions filter in orderapi
Improve Session logs
Limit size of orderbook in incremental snapshots
Listen to Peatio Liabilities
Publish locked on balance updates
Stop API on AMQP connection exceptions
Update schema
- Load null price as 0 from db
Update Average price calculation
Version 2.4.3
Released 2020-04-14
Add avarage price calculation
Add API usage (JS)
Cancel All endpoint
- Admin API to cancel orders
Configure the CI to redeploy on master.devkube.com (#83)
Fix gateway rate limits (#79)
- Fix gateway rate limits
- Change default api rate limits to 5 requests per second
Fix logging Empty operations (#75)
- Improve logging of empty operations
- Log UUID on order cancel
- Add logs for actions filter in orderapi
Improve Session logs
Limit size of orderbook in incremental snapshots
Listen to Peatio Liabilities
Publish locked on balance updates
Release stable version
Stop API on AMQP connection exceptions
Update schema
- Load null price as 0 from db
Update Average price calculation
Version 2.4.0-ce2a8df
Released 2020-04-06
Enhancement: Redeploy master changes to finex.devkube.com (#87)
Version 2.4.0-5334683
Released 2020-03-31
Update schema
- Load null price as 0 from db
Version 2.4.0-77e3487
Released 2020-03-26
Update Average price calculation
Version 2.4.0-0eb09ee
Released 2020-03-26
Add avarage price calculation
Add API usage (JS)
Cancel All endpoint
- Admin API to cancel orders
Configure the CI to redeploy on master.devkube.com (#83)
Fix gateway rate limits (#79)
- Fix gateway rate limits
- Change default api rate limits to 5 requests per second
Fix logging Empty operations (#75)
- Improve logging of empty operations
- Log UUID on order cancel
- Add logs for actions filter in orderapi
Improve Session logs
Limit size of orderbook in incremental snapshots
Listen to Peatio Liabilities
Publish locked on balance updates
Stop API on AMQP connection exceptions
Version 2.4.2
Released 2020-03-23
Add API usage (JS)
Cancel All endpoint
- Admin API to cancel orders
Configure the CI to redeploy on master.devkube.com (#83)
Fix gateway rate limits (#79)
- Fix gateway rate limits
- Change default api rate limits to 5 requests per second
Fix logging Empty operations (#75)
- Improve logging of empty operations
- Log UUID on order cancel
- Add logs for actions filter in orderapi
Improve Session logs
Limit size of orderbook in incremental snapshots
Listen to Peatio Liabilities
Publish locked on balance updates
Release stable version
Stop API on AMQP connection exceptions
Version 2.4.0-5b71432
Released 2020-03-23
Add API usage (JS)
Version 2.4.0-905757b
Released 2020-03-23
Configure the CI to redeploy on master.devkube.com (#83)
Version 2.4.0-3905d93
Released 2020-03-23
Cancel All endpoint
- Admin API to cancel orders
Version 2.4.0-071000c
Released 2020-03-21
Limit size of orderbook in incremental snapshots
Version 2.4.0-d196f4e
Released 2020-03-19
Improve Session logs
Version 2.4.0-3df119a
Released 2020-03-18
Fix gateway rate limits (#79)
- Fix gateway rate limits
- Change default api rate limits to 5 requests per second
Version 2.4.0-678d1d0
Released 2020-03-12
Stop API on AMQP connection exceptions
Version 2.4.0-98718c7
Released 2020-03-05
Listen to Peatio Liabilities
Version 2.4.0-a4aff06
Released 2020-03-04
Publish locked on balance updates
Version 2.4.0-720b34f
Released 2020-03-04
Fix logging Empty operations (#75)
- Improve logging of empty operations
- Log UUID on order cancel
- Add logs for actions filter in orderapi
Version 2.4.1
Released 2020-03-03
Add docs about rate limiting (#68)
- Add documentation of rate limits features
- Add documentation of API error codes
Co-authored-by: Camille <cmeulien@heliostech.fr>
Add builds notification
Fix enabling too many requests in first period
Fix market order creation
Release stable version
Rework rate limits config (#70)
- Change rate limits configuration
Co-authored-by: Camille <cmeulien@heliostech.fr>
Update order API
Use correct time format for trade publisher
Version 2.4.0-fbd6faa
Released 2020-03-02
Acquire a SQL lock on finex-engine start to ensure only one instance is running at any given time
Add balance monitor observer
Add level/role filtering
Add rate limiting per role
- Add rate limiting package
- Fix session refetch on missing account
Add preventing overspending logic
- Create overspending situation test
Add stage deployment hook and notification to slack
Add notes section to readme (#44)
Add a test scenario for fees with any market
Add specs for trading fees
Add Builder package
- Add benchmark for builder
- Add SQLBuffer
- Add trades count
- Update structure.sql
- Update example, remove cleanUp
- Add tests
- Add injection protection
Add coverage report
Add structure.sql (#14)
Add uuid to fabricateOrder in orderbook_test
Add UUID and CreatedAt to order model
Add message, trade and market models (#10)
Remove unused transaction type
Add drone config to run tests
Add jwt package (#4)
Adding roadmap
Adding models
Adding development foundation
Build & Publish changelog to SDK
Bulk API for creating and canceling orders
- Refactor orderapi
- Move test actions to yaml format
- Add short api description
Bump version to 2.4.0
Bump version using sdk-citools
Cancel order by uuid
Change order API fields to amount and type
Change decimal library to shopspring/decimal (#50)
- Change decimal library to shopspring/decimal
Change keys loading logic (#34)
- Load only the public key from the orderapi
Co-authored-by: Camille <cmeulien@heliostech.fr>
Create account if it doesn't exist
Drone to bump and build image
Drop precision decimal cannot hold in Scan
Enhancement: Switch the CI container registry to quay.io (#55)
Feature: Add JWT generator and improve Rate Limiter (#17)
Add JWT generator
Fetch limiter configs from ENV. Add ENV helpers to config
Feature: Run loop for matching component (#20)
Finex graceful shutdown
- Fix logger initilizer
Finex integration
- Add functional tests
- Handle tradeId in builder
- Fix currencies cache bug
- Fix balance locking
- Rework Order cancelation
Fix overlocking in session
Fix blocking on matching WarmUp step
- Load disabled markets
Fix balance select in gateway
- Fix order cancel bug
- Improve debug logs
- Do not publish empty operations
- Fix order created_at
- Insert origin_ locked and volume
Fix for Orderapi handlers (#18)
Graceful orderapi shutdown
Handle decimal precision limit gracefully
- decimal.Floor failing testcase
- Safeguard for maximum precision, set the default market precision to 8
Improve docker build
Incremental observer (#32)
Incremental observer
- Fix ranger message format
- Use binary uuid
- Idle sql when there are no operations
Initial commit
Initialize markets with open orders
- Add flexible precision to market
- Load market precision from database
- Update tests for matching
- Do not insert wait orders
Insert order and trade ids
Matching component (#5)
- Add matching pkg
- OrderBook type contains btrees and matching engine
- Market type contains market info and orderbook
- Matching type keep the list of markets and dispatch messages to correct markets
Move api description to docs/api.md (#51)
Move pkg/cache
Move config & sql pkg. Add mq & transaction pkg (#8)
Move pkg/config
Move pkg/sql
Add pkg/mq
Add pkg/transcation
Notify about rejected orders through ranger (#45)
- Scenario with a rejected market order because of not enough liquidity on market
- Scenario with a rejected order being rejected because of not enough balance
Order API with create and cancel endpoints (#1)
Co-authored-by: Maksym <mnaichuk@heliostech.fr>
panic on Panic log level
Publish date as string for Influx
Publish UUID to Ranger
Publish snapshots for nonactive markets
Ranger observer
- Add tests for ranger
Rework preciosion handling
- Apply precision on matching input
- Load precision from database
- Handle precision in api
Stability improvements
- Fix incorrect currency log
- Load timestamp from database
- Handle market state
- Update Locked for order cancel
Support of post_only order type
Test selecting Id behaviour
Trade Publisher for Influx
Update README.md
Update order api params
Update cache package
Update pkg/config to handle new config.yml format
Pull Requests
Merge pull request #6 from openware/feature/model