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