NuBot releases


#21

#14-04-2015 NuBot development, update #18

After 8 release candidates today we released NuBot v0.2.0 :tada:

Download at https://bitbucket.org/JordanLeePeershares/nubottrading/downloads/nubot-v0.2.0.zip
Sources and docs at http://tradingbot.nu

:warning: All custodians are invited to upgrade to the new version.This version requires you to use java 1.8 VM . Please follow and carefully read the new setup tutorial. The old JSON configuration files (0.1.5) will not work.

This upgrade contains many visible and other less-visible upgrades, features, refactoring and bug fixes. It is a major version and several steps forwards have been done thanks to @benjyz.

A new release will come soon, with an alpha Graphical User web-Interface built on top of NuBot. Wait for it.

The full changelog detail is scaled up for the sake of brevity. Please read carefully :space_invader:

v0.2.0 Changelog

New Features:

  • Added Comkort exchange API support
  • Added a unique session id for each instance of the bot
  • Liquidityinfo identifier contains multi-tier informaiton
  • Added script to retrieve updated keystore from bitbucket repository
  • Added an option to set level of incoming email notification (severe, all, none)
  • Added price tracker for HKD and PHP
  • Added price feeds for bitfinex
  • GetLastTrades overall report

Improvements:

  • Ported the project to Gradle (dependencies management and build process)
  • Upgraded to java 8
  • Major refactoring across the codebase
  • Resources files organized and documented
  • Improved logging: changed logger, keeps track of multiple sessions, filters, tests…
  • HipChat API v2
  • Improved HipChat notifications (added uptime on shutdown)
  • Options.toStringNoKeys
  • Options serialization and naming
  • Unit tests inception
  • Automatically write branch name in ‘.nubot’ file
  • Removed settings.properties
  • Added Settings.java to allow dev to configure variables
  • Added Parsing custom exception
  • Reafactored strategy and launch
  • Extracted ExchangeFacade and FeedFacade
  • Improved ShutDownHook
  • Simplified Strategy code
  • Added a simple way to trust all SSL certificates
  • Contribute.md improved
  • Changed copyright to Nu Development Team
  • Uncountable minor changes.

Bug fixes:


#22

#17-04-2015 NuBot development, update #19

We identify a subtle run-time exception in 0.2.0 thanks to @henry .

:warning: A new patch-release is available : 0.2.0a .

Download @
, 0.2.0a : https://bitbucket.org/JordanLeePeershares/nubottrading/downloads/nubot-v0.2.0a.zip

All custodians are invited to upgrade, replacing the jar file is ok.

v0.2.0a Changelog

Bug fixes:

  • Re built using the correct version of gradle.
  • Links in documentation updated
  • Updated FEEDS.md with correct names

#23

#27-04-2015 NuBot development, update #20

CCEDK renewed API required an hotfix resulted in a new patch-release is available : 0.2.0b .

Download 0.2.0b @ : https://bitbucket.org/JordanLeePeershares/nubottrading/downloads/nubot-v0.2.0b.zip

CCEDK custodians are invited to upgrade, replacing the jar file is ok.

v0.2.0b Changelog

Bug fixes:

  • New CCEDK api Wrappers
  • (minor) AllCoin bug in getOrderDetail
  • Updated FEEDS.md with correct names

Binary Checksum :

$ openssl sha1 nubot-v0.2.0b.zip
SHA1(nubot-v0.2.0b.zip)= 7c84add02a9e67dbd9c347012e64581dac271b27

#24

#29-04-2015 NuBot development, update #21

A new patch version has been released with a hotfix : 0.2.0c .

Download 0.2.0c @ : https://bitbucket.org/JordanLeePeershares/nubottrading/downloads/nubot-v0.2.0c.zip

All custodians are invited to upgrade, replacing the jar file is ok.

v0.2.0c Changelog

Bug fixes:

  • Prevent wallshifts to be executed if an order reset is already in place
  • Bitcoin.co.id wrapper bug fixes

Binary Checksum :

$ openssl sha1 nubot-v0.2.0c.zip
SHA1(nubot-v0.2.0c.zip)= 6d8faff5941d52537a7abca8260b36d68caa895a

#25

#09-05-2015 NuBot development, update #19

After 4 release candidates today we released NuBot v0.3.0 :tada:

It started as a minor release to provide a graphical interface to setup the bot. It ended up being a bold major release with almost 800 commits in three weeks.

NuBot As A Service : WebGUI

Custodians have now the option of running NuBot as a service and access a web dashboard to configure,run and monitor the bot’s execution.

This upgrade required a deep refactoring and codebase improvement (see full changelog) and the implications are far from being aesthetics-only : now NuBot can now be run on a remote VPS and be controlled from a smartphone (to name one possibility).

I put together a small screencast demonstration.

The GUI is in alpha/MVP version with a minimal set of funcionalities, please forgive us for the low attention to UX : we focused in making client-server interaction as solid and extensible as possible. Future versions will contain a proper fully operation dashboard and much more.

##Download
at https://bitbucket.org/JordanLeePeershares/nubottrading/downloads/nubot-v0.3.0.zip

Binary Checksum :

$ openssl sha1 nubot-v0.3.0.zip
SHA1(nubot-v0.3.0.zip)= 6a74f5efad4581460ec21972ca96230fe2c41b01

Sources and docs at http://tradingbot.nu

Notes for custodians :

:warning: All custodians are invited to upgrade to the new version. Please follow and carefully read the new setup tutorial. The old JSON configuration files will not work.

  • Option parameters have changed: use maxbuyvolume instead of maxbuyordervolume.

  • All parameters are compulsory.

  • Case is ignored for parameter name.
    Launch string changed to

    $ java -jar NuBot.jar -cfg=<path/to/config.json> [-GUI]

Also, double click the The old CLI mode is still available as usual, by omitting the -GUI flag.

The full changelog detail is scaled up for the sake of brevity. Please read carefully :space_invader:

v0.3.0 Changelog

New Features:

  • Optionally launch a web-server with a front end to manage nubot, both locally than remotely.
  • web-gui | - Responsive dashboard to control basic functioning of the bot.
  • web-gui | - Basic functionality to configure the bot’s launch parameters : see/change/save/reset/validate
  • web-gui | - Start/Stop the bot via toggle button
  • web-gui | - Shutdown server via button
  • web-gui | - When bot is running, display open orders and balances.
  • web-gui | - Display real time messages from std-ouput in the bot’s dashboard
  • web-gui | - Browse up-do-date HTML documentation automatically generated at build time
  • web-gui | - Jar launcher : Launch the bot by double clicking this new executable file distributed with the bot
  • web-gui | - Automatically launch browser (if available) on bot dashboard in GUI mode
  • web-gui | - Show confirmation dialogs for important operations
  • web-gui | - Show progressbar in startup and shutdown sequence
  • web-gui | - Show status, uptime and session timestamp.
  • web-gui | - Obscure secret fields
  • New price feeds for fiat rates (GoogleOfficial)
  • Sandbox enviroment created to simulate a live exchange
  • BalanceManager and OrderManager handles their own logic separately from Strategy
  • Finally the verbose configuration parameter has the runtime impact expected. Set it to true to enable DEBUG level messages
  • Colored output : Display errors in red, warnings in blue (trading) everything else default
  • Bittrex wrapper ready (not fully integrated into the bot)
  • Created NuStringEncrypt https://bitbucket.org/mj2p/nustringencrypt simple standalone tool that uses scrypt as a key derivation to AES encrypt strings
  • Test credential validity before starting the bot by trying to fetch balance
  • Report uptime on shutdown
  • Validate Options before running or throws Exception
  • Documented exchange names in exchanges.md

Improvements:

  • Refactored Trading Strategy code extracing methods to Order and Balance Manager objects
  • Introduced Utils.formatNumber
  • Handle concurrent requests to remote API correctly
  • A new SessionManager class to manage session correctly
  • Log messages improved both in std output and in files
  • Session handles MODES of the bot , starting up, running, paused, shutting down, etc…
  • Shutdown sequence improved consistently
  • compileAll.sh script updated
  • Refactored Strategy code to make it cleaner
  • old metafile (.nubot) file moved to a new file in res/.info
  • Separated fetch/get logic for remote calls
  • Automatically handle large log files size
  • Added thread name to logging
  • Ignore case in configuration parameters
  • Added thread name to HTML logs as a column
  • Ported time duration using Joda as a proper handler
  • Externalised - where possible - the sign() method from API wrappers
  • In documentation, replaced all internal links with a static resource URI
  • During build, warn if using a different version of gradle
  • Resized image files for correct visualisation of the readme
  • Restructured duplicate folder-file structure in gradle.md
  • Refactored ~md/ in ~docs/
  • Standardised CLI arguments using GNU-style and apache Commons CLI
  • Deprecated NuPriceMonitorTask
  • Added market info on hipchat debug message
  • Systematically reformatted all the code base using shared code standards

Bug fixes:

  • Wrong count of locked peg balance on bitcoin.co.id
  • Prevent wallShifts if an order reset is already happening
  • Bitcoin.co.id wrappers various fix (runtime exceptions)
  • Poloniex wrong nonce issues fixed with a retry loop
  • Replaced System.getProperty(“user.dir”) with a more adequate custom method :FileSystemUtils.getBotAbsolutePath()
  • Corrected URL in updateKeystore.sh script
  • Corrected Feed names in documentation to match the code
  • Uncountable minor and major fixes.

For the upcoming 0.3.1 version, we are shifting our focus away from webservice and going back to trading logic. Stay tuned for next announcement.


NuBot development roadmap - From 0.1 to 1.0
#26

#11-06-2015 NuBot development, update #20

After 7 release candidates today we released NuBot v0.3.1 :tada:

Pushing price updates through websockets

NuBot can connect to a streaming server (if available) using a websocket and listen and react to commands received from the Server. In this scenario we have two actors : the server (Streamer) and the clients (Subscriber).

This feature has been long awaited, as it now allows multiple custodians to consume a reliable pricefeed and subscribe to push updates. Wall-shifts will now happen simultaneously across exchanges and custodians. Risks derived from wall collisions are significantly reduced (to near 0).

The push service architecture we implemented is robust and each client autonomously performs sanity checks on the price received before acting. It allows hot-swaps of server machines and a load balancer drives the traffic in the right direction. The Streamer tracks the price of multiple fiat and crypto-currencies, and also suggest a price offset to clients (now statically, in the future dynamically).

The full documentation of this service is available on bitbucket.

##Download
at https://bitbucket.org/JordanLeePeershares/nubottrading/downloads/nubot-v0.3.1.zip

Binary Checksum :

$ openssl sha1 nubot-v0.3.1.zip
SHA1(nubot-v0.3.1.zip)= 0e961b0c81b17211b7a21840d8434e36f0dea292

Sources and docs at http://tradingbot.nu

Notes for custodians :

:warning: All custodians are invited to upgrade to the new version. Please follow and carefully read the new setup tutorial. The old JSON configuration files will not work.

  • Introduced default configuration parameters. We suggest leaving most options as default.
  • Deleted configuration parameter : verbose (boolean)
  • Added configuration parameter : verbosity (string)
  • Added configuration parameter : bypassStreaming (boolean)
  • Added configuration parameter : streamingServer (string)
  • Removed configuration parameter : hipchat (boolean)
  • Added configuration parameter : gitter (boolean)
  • Added configuration parameter : webport (int)

Changed default web port from 4567 to 8889.

Apply for a credential token : since the bot uses external services that require authentication, you’ll need to apply for a valid auth-token file that is not distributed with the bundle for obvious reasons.
If you are applying as custodian, use this form to request a valid key. You can also skip this step if you plan to manually configure tokens/keys.

Launch string changed to accomodate new optional CLI flag -skipCredentials.
GUI flag renamed to -sever

java -jar NuBot.jar -cfg=<path/to/config.json> [-server] [-skipCredentials]

Please read carefully :space_invader:

v0.3.1 Changelog

New Features:

  • Price-feed streaming service implementation and deployment. Details are documented here)
  • Bot consume price-feeds via web-sockets (instant shift, synchronised)
  • Integration of NuStringEncrypt and NuBot
  • Basic HTTP API to interact with bot at runtime
  • Obscured keys via CredentialManager
  • Log trades for each bot session
  • Implemented getOrderBook method for available exchanges
  • Introduced default values for configuration parameters
  • Checks for latest version on startup and issue warning
  • Added testExchange() method to run a startup
  • Graceful failure thrown if another GUI session detected
  • Created a ExchangeControlPanl GUI to test entry points
  • Control logging verbosity level via configuration parameter (high,normal,low)
  • Gitter notifications

Improvements:

  • Reduced code duplication in PriceFeeds
  • Shutdown hook improved
  • Each currency now dinamically loads price feeds via currencies.csv
  • Gradle build task
  • Improved updateKeystore.sh script
  • TestPriceFeeds load dinamically all feeds available for each currencies
  • Add TestMultipleOrders to TestWrappers
  • Zip the build with correct naming
  • Each bot session logs to its own subfolder
  • GUI javascript refactoring
  • Moved static CCEDK utils to CCEDK Wrapper
  • web-gui | on build auto compile html also into .mustache files
  • web-gui | Closing the webpage should prompt for “do you want to terminate server?”
  • Introduced PriceBatch class
  • added CLI flag -skipCredentials
  • Added minimal-configuration-sample.json file to distributed package
  • Change port of webserver (allowing multiple GUIs at the time)

Bug fixes:

  • web-gui | page responsiveness adjustment
  • CCEDK ticker
  • Poloniex ticker
  • startupduration -1
  • Uncountable minor and major fixes.

For the upcoming 0.3.2 version, we are shifting our focus away from priceservice and going to integrate parametric order books into the trading strategy. Stay tuned for next announcement.


#27

#08-10-2015 NuBot development, update #21

After 9 release candidates today we release NuBot v0.3.2 :tada: . It packs a bunch of improvements, bug fixes, new wrappers and features. Among changes the most import is the introduction of parametric order books.

Parametric orderbooks

Up until NuBot v0.3.1, all the available liquidity was put up on a large single order, according to the initial design outlined in the whitepaper. Starting from NuBot v0.3.2 and following the evolution of liquidity operation the bot implements the multi-tier liquidity model.

In this model, NuBot places the vertical walls at the best price (Tier1) along with a tail of orders distributed at premium prices and controlled by bot operators: the parametric order book.

By managing liquidity this way operators can mitigate risks of being exposed to volatility and malicious actors while still providing a solid 1$ peg.

The model is simple and at the same time flexible enough for making it fit in different market scenarios.

  • The model can be configured by the custodian using the configuration file or directly in the UI.
  • The model is dynamic, in the sense that its parameters can be manipulated at runtime.
  • NuBot will implement capabilities to autonomously adapt parameters to best fit market conditions.
  • The buy and sell liquidity can be modelled separately
  • If you launch NuBot with the GUI, you will be able to change parameters and see a real time preview of how changing parameters affects the shape of your orderbook.
  • Once the bot detects that most of tier1 liquidity has been consumed, it will replenish it. (in following version this dynamic will undertake radical changes , with market-aware orderbooks)

Demo

##Download
at https://bitbucket.org/JordanLeePeershares/nubottrading/downloads/nubot-v0.3.2.zip

Binary Checksum :

$ openssl sha1 nubot-v0.3.2.zip
SHA1(nubot-v0.3.2.zip)= d8f4b895ccf83543a4ec195d61d089ceaaecea1e

Sources and docs at http://tradingbot.nu

Notes for custodians :

Several changes has been made to the way the bot is configured. We reccomend reading the updated setup tutorial

  • Added configuration parameters for configuring the orderbook ( see setup tutorial )
  • Removed configuration parameters : spread (now offset), maxsellordervolume (now bookSellwall) , maxbuyordervolume (now bookBuywall)
  • Added configuration parameter for disabling tier2 liquidity : bookDisabletier2 (boolean)
  • When setting spread operator is asked to stay between the set (0.007$,0.052$) suggested in motion 0ec0be7f113a0bf6ff603545a974cd6410458e00

Launch string changed to accomodate new optional CLI flag -noBrowser.

java -jar NuBot.jar -cfg=<path/to/config.json> [-server] [-noBrowser] [-skipCredentials] 

Please read carefully :space_invader:

v0.3.2 Changelog

New Features:

  • Implemented parametric orderbooks to distribute liquidity ( see docs )
  • Define parametric orderbooks via configuration parameters
  • Defined three standard models for liquidity distribution : linear, exponential and logarithmic
  • Defined default liquidity distribution model
  • Implemented a flag that can be used to turn off liquidity distribution
  • Implemented a parameter to allow custodian to reserve part of the balance
  • Implemented a mechanism that replenished Tier1 liquidity when needed
  • The bot saves a report of executed orders at the end of each session
  • Instead of overwriting new configuration files they are saved into config.json.bak1, config.json.bak2
  • Enforce motion 0ec0be7f113a0bf6ff603545a974cd6410458e00
  • Added -noBrowser CLI flag to force the bot to avoid opening the browser while allowing launching it in servermode
  • Submit liquidityinfo identifier tier:pair:exchange:sessionid
  • Added price trackers of hkd and a php
  • Added HitBTC wrapper
  • Added several pricefeeds to track price of LTC,ETH and XRP in view of new markets
  • web-gui | added orderbook preview
  • web-gui | Visualize active Tier1 and Tier2 properly
  • web-gui | added tooltips in configuration parameters

Improvements:

  • Tier2 and Tier1 separated management (added methods to retrieve T1 and T2 separately)
  • Added possibility to opt to receive only important notifications
  • Refactored config file loading
  • Wrapped options into json object
  • Session file mechanism improved
  • web-gui | Added checkbox to stop Automatic Scrolling
  • Encapsulated orders management into OrderManager
  • Encapsulated balances management into BalanceManager
  • Separate testWrappers from runTests()
  • Refactored SecondaryStrategy code
  • Separated methods that reads from exchanges with a fetch/read logic
  • Replaced spreads with offsets (separated buy and sell side)
  • Implemented method to check integrity of active orders
  • Adapted shiftWalls method to new liquidity distribution
  • Added and implemented a method that takes and places multiple orders sequencially
  • Added and implemented a method that takes and places multiple orders in parallel using multiple apikeys
  • Documented the bot’s new modus operandi (docs.nubits.com, readme and dedicated file)
  • Revised the way liquidity is reported with new liquidity distribution models
  • Revised the way orders are logged new liquidity distribution models
  • Avoid creating a new Service object for each API call
  • Added SSL test for exchanges to test validity of keystore
  • Compute the fee paid for trades on poloniex in the report
  • Improved setup.md with instruction for raspberry
  • Build process generate a correctly named zip file ready to ship
  • web-gui | when server is stopped, add a detailed message
  • Improved logging filesize (rotation) and live logging

Bug fixes:

  • New SSL certificates pack
  • Classpath loader bug
  • Config parameter naming conflicts
  • Load settings returned null
  • Removed duplicated clearOrders method
  • Poloniex retries for any failure, not just wrong nonce’s related errors
  • Catch NoRouteToHostException

Stay tuned for following versions, roadmap is undergoing some changes


Modelling a parametric order book
#28

#19-11-2015 NuBot development, update #22

NuBot 0.3.2a has been released and contains just a simple hotfix that corrects a bug in pricing that only affected sell-side mode.

Upgrade recommended for current 0.3.2 bot users : no need to change anything in your config, replacing NuBot.jar is enough .

https://bitbucket.org/JordanLeePeershares/nubottrading/downloads/nubot-v0.3.2a.zip


[Passed] NuPool 8 ALPv2
#29

#09-03-2016 NuBot development, update #22

After 2 release candidates today we release NuBot v0.4.1 :tada: . It packs a bunch of improvements, bug fixes, new wrappers and features. Among changes the most import is the introduction of communication with Automated Liquidity Provision servers (ALP v2) .

Activate it via config parameters of UI

 "poolMode" : false,
 "poolURI" : "",
 "poolPayoutAddress" : "xxx",
 "poolSubmitInterval" : 60

It also comes with some UI revamp and functionalities .


The orderbook design preview is now available right in the webpage, with no need to refresh the page or install java. This is good news for raspberry pi users, and in general users that want to install NuBot as a remote service.


Improved the configuration and dashboard page, using bootstrap responsive layouts and components. This should be an attractive point for this release, since we aim to attract as many providers as possible.

##Dashboard

##Configuration page


##Download
at https://bitbucket.org/JordanLeePeershares/nubottrading/downloads/nubot-v0.4.1.zip

Binary Checksum :

SHA1(nubot-v0.4.1.zip)= 827231567bdce6e2c438d5f97878a952af54873a

Sources and docs at http://tradingbot.nu

#Changelog

v0.4.1 (2016-mar-09)

Notes for custodians :

Several changes has been made to the way the bot is configured. We recommend reading the updated setup tutorial

  • Liquidity Pool configuration options have been added.
  • multiplecustodians parameter renamed to multipleoperators

New Features:

  • Pool mode for ALP users integrated into nubot (config/ui/strategy)
  • UI to access users’s pool stats in realtime
  • Added SouthXChange wrapper
  • Added Cryptsy (RIP) wrapper
  • OrderBook preview in HTML front-end (so available also remotely)
  • Visualize current sessionID in UI dashboard
  • Reduced log file size (circular buffer)
  • Swapped pairs working with parametric orderbooks

Improvements:

  • Streamer - added and deployed new currencies, each with their changeTreshold
  • Improved contribute.md
  • UI revamp
  • Nud HTTP interface, removed deprecated libraries
  • If nud RPC fails, print out a more friendly message with troubleshoot
  • Orderbook preview, scale x axis
  • Subdivide UI of options in bootstrap panels and improve UI
  • Verbose live logging, remove millisecond from timestamp no need to
  • Updated SSL certificates
  • Documented pool mode
  • make port 80 default for ALP servers
  • Prepare a default config for pool user to reduce at minimum the friction of operating NuBot
  • HItBTC - Improve the getOrderDetail method adding new entrypoint param
  • Add note about raspi2 on setup.md
  • documentation how to run multiple bots per machine
  • new CredentialManager architecture for ALP users

Bug fixes:

  • Image visualization on documentation
  • Default port in sample options for streaming server changed to 5556
  • Fixed bug with the SSL update script
  • Zipping folder was preventing executed trades from getting saved
  • if fails checking communication with exchange UI gets unresponsive/broken
  • lockfile not found on startup
  • On session start, cant create some files
  • TXfee not taken into account When giving the alert message and previewing orderbook