#09-05-2015 NuBot development, update #19
After 4 release candidates today we released NuBot v0.3.0 
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 :
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 
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.