Peatio 1.9.0 (August 9, 2018)

Overview

We are pleased to present Peatio Open Source 1.9.0.

This release includes significant new features, numerous functional fixes and enhancements. Peatio 1.9.0 came out with a rewrite of Blockchain synchronisation daemon solving major design flaw of old original Peatio. Multi-tier wallet system is another great implemented feature helping achieve digital funds protection by using wallets segregation with specific access policies and flexible multi-signature settings. Among the other nice features such as Admin Interface for advanced Blockchain/Wallet management, this release is also focused on:

1. Multi Wallet support. 2. New Blockchain synchronization mechanism. 3. Full ERC20 tokens support. 4. Splitting of Blockchain read and write Services and Clients.

This release notes is must-read for migrating from older versions.

Breaking changes

  • #1404: Adding blockchain model, database seeds, service and client.

The next seed and migration files are must-learn before doing any upgrades:

  • https://github.com/rubykube/peatio/pull/1404/files#diff-6be627e8bb77b25dcdf2c972d3c873ec
  • https://github.com/rubykube/peatio/pull/1404/files#diff-91027e648f4292cd6ec8f7e11a43a669

Some of Blockchain configuration were extracted from Currencies. Blockchain model, service and client performs read operation and process blockchain blocks one by one. It responsible for coin deposit or withdraw state updates and deposit detection.

  • #1404: Adding wallet model, database seeds, service and client.

The next seed and migration files are must-learn before doing any upgrades:

  • https://github.com/rubykube/peatio/pull/1404/files#diff-3ac13d4e0c5c496b426d40b62db793b5
  • https://github.com/rubykube/peatio/pull/1404/files#diff-1fc2b7b6df8dbd6da6bce9966b74a3e8

Wallet configurations were extracted from Currencies API client configuration. Wallet model, service and client performs write operation and responsible for deposit address creation, deposit collection, deposit collection fees transfering, and withdraw creation..

  • #1518: Currencies dead code clean up.

The next seed and migration files are must-learn before doing any upgrades:

  • https://github.com/rubykube/peatio/pull/1518/files#diff-eb833ff83c1af2e978d647f035f7d1ac
  • https://github.com/rubykube/peatio/pull/1404/files#diff-91027e648f4292cd6ec8f7e11a43a669R17

Currencies model simplify. Now currency model doesn't store any API specific configuration and wallet secrets all this configuration where extracted to Blockchain and Wallet models.

  • #1458: Include PublishToRabbitMQ GenerateJWT Event API middlewares by default.

The next configuration file is must-learn before upgrading: - https://github.com/rubykube/peatio/commit/fa041a6ba8ba586ffc9f4095b1f4f46e2df6b017#diff-81b753b02c902d26e3b837d7814c5244R172 Now all events are pulished to RabbitMQ as in form of JWT messages by default instead of abstract RabbitMQ message.

New features

  • #1404: This pull request provides bunch of functional features and fixes:

    • Blockchain model and Database seeding
    • Adding wallet seeding
    • Adding wallet model
    • Fix STI problem
    • Add missing associations
    • Fix indexes order
    • Adding factories and a test stub
    • BlockchainService #process_blockchain deposits with proof of work #1417
    • Ability to register a blockchain/wallet from Admin Panel #1422
    • Revert some changes (related to #1422)
    • Single BlockchainService per Blockchain #1424
    • Added Wallet/Blockchain validations #1429
    • Confirm withdrawals in BlockchainService #process_blockchain #1427
    • Rebase on master
    • Bitcoin Blockchain Service #1444
    • Improve BlockchainService logger. Wallet & Blockchain bugfixes #1474
    • Add Blockchain Key In Currency #1473
    • Remove CoinAPI & daemons. Rename Client to BlockchainClient #1476
    • BlockchainService improve performance
    • Fix specs
    • Replace Confirmation With Block Number #1463
    • Add gateway & max_balance to wallets #1478
    • Wallet per currency
    • WalletService module and WalletService::Base class #1479
    • DepositCollectionFees worker for ERC20 #1489
    • Litecoin/Dash/BitcoinCash Blockchain Services #1475
    • Updates for admin panel #1501
    • Fix erc20 deposit for tx with empty receipt #1502
    • Fix wrong client for existing blockchain on admin panel #1504
    • Bitgo wallet Client/Service #1491
    • Fixed withdraw stuck in confirming #1507
    • Improved dynamic txn fees for bitcoind/bitgo #1509
    • Feature/blockchains wallets #1510
  • #1368: Add 24 hours currency trades API endpoint.

This patch adds public call for getting currency trades performed within the last 24h: GET /v2/currency/trades.

Check more info at docs/api/member_api_v2.md.

  • #1433: Add API endpoint for currencies.

This patch adds public call for getting the list of currencies: GET /v2/currencies.

Check more info at docs/api/member_api_v2.md

  • #1501: Updates for admin panel.

This patch gives the ability to to register a blockchain/wallet from Admin Panel.

  • #1463: Replace Confirmation With Block Number.

This patch replaces confirmations field in withdraw and currency model with block_number. So confirmations amount is updated dynamically.

  • #1460: Support minimum price for Order.

  • #1318: Send label when generating BitGo address.

Enhancements

  • #1377: Document every daemon.

The list and purpose of each Peatio daemon is described in docs/daemons.md.

  • #1342: Ability to get data between some time interval (time_from, time_to) in GET /api/v2/k.

  • #1493: Add more details for the API docs.

  • #1517: Improved updation of blockchain height.

Fixes

  • #1450: Change Default Domain To peatio.tech.

  • #1526: Change Currency Id And Market Id Limit.

  • #1402: Fix migration multiple_deposit_addresses.

  • #1492: Fix typo in setup-osx.md documentation.

  • #1529: Code polish and minor bugfix.

  • #1518: Currencies dead code clean up.

  • #1533: Edit comments in templates for wallets.yml.