Continuing the discussion from Upcoming NBT Exchange - Liquidity providers needed [HitBTC added us]:
Sorry - text wall ahead. Hoping that more people want to run NuBots (and some maybe on a RaspberryPi) I decided to make a very verbose log of my way to an operational NuBot on my RPI…
TL;DR: still under construction, but not very much left to go!
I’ve read the SETUP.md and tried my best to apply it to my RPI.
The struggle begins with the first line of commands:
sudo add-apt-repository ppa:webupd8team/java
sudo: add-apt-repository: command not found
add-apt-repository
is not available on Raspbian out of the box. You first need to install this:
sudo apt-get install python-software-properties
The next step is:
sudo add-apt-repository ppa:webupd8team/java
You are about to add the following PPA to your system:
Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK7 / JDK8 / JDK9). There are no actual Java files in this PPA.
More info (and Ubuntu installation instructions):
- for Oracle Java 7: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
Debian installation instructions:
- Oracle Java 7: http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html
- Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html
Important!!! For now, you should continue to use Java 8 because Oracle Java 9 is available as an early access release (it should be released in 2016)! You should only use Oracle Java 9 if you explicitly need it, because it may contain bugs and it might not include the latest security patches! Also, some Java options were removed in JDK9, so you may encounter issues with various Java apps. More information and installation instructions (Ubuntu / Linux Mint / Debian): http://www.webupd8.org/2015/02/install-oracle-java-9-in-ubuntu-linux.html
More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Press [ENTER] to continue or ctrl-c to cancel adding it
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.oSog7kZdWb --trustdb-name /etc/apt//trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://keyserver.ubuntu.com:80/ --recv 7B2C3B0889BF5709A105D03AC2518248EEA14886
gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: key EEA14886: public key "Launchpad VLC" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
But then more trouble is brewing:
sudo apt-get update
[...]
W: Failed to fetch http://ppa.launchpad.net/webupd8team/java/ubuntu/dists/wheezy/main/source/Sources 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/webupd8team/java/ubuntu/dists/wheezy/main/binary-armhf/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
If you try to install Java 8 anyway, it ends up like this:
sudo apt-get install oracle-java8-installer
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package oracle-java8-installer
I’m trying to figure out how to get this done as I intend to run NuBot on hitBTC as soon as the wrapper is complete and the API is working with acceptable performance.
@desrever do you have some tips for me?
…I don’t find any ARM RTEs at Oracle and no source code…
edit: found: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html will try to work my way from there.
edit2:
download http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-arm32-vfp-hflt.tar.gz (remark: wget will not work directly with this link, because an authentication token is missing. Start the download on a regular browser and use the download link that include the authentication token).
wget http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-arm32-vfp-hflt.tar.gz?AuthParam=[some_more_numbers]
sudo tar zxvf jdk-8-linux-arm-vfp-hflt.tar.gz -C /opt
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_60/bin/javac 1
sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_60/bin/java 1
sudo update-alternatives --config javac #confirm with enter
sudo update-alternatives --config java #confirm with enter
Now it looks like this:
java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)
javac -version
javac 1.8.0
Will continue and keep this post up-to-date.
edit3
Still more trouble and some resolutions:
nubot-v0.3.1 $ java -jar NuBot.jar -cfg=config/sample-options.json
14:52:07.287 [main] INFO - defined session log path logs/idles/1442587927264 [com.nubits.nubot.bot.Global:97]
14:52:07.694 [main] DEBUG - checking latest version [com.nubits.nubot.launch.MainLaunch:64]
14:52:16.513 [main] DEBUG - Latest Version = 0.3.1, Current version = 0.3.1 [com.nubits.nubot.utils.VersionInfo:132]
14:52:16.564 [main] ERROR - java.io.FileNotFoundException: res/authkey.txt (No such file or directory) [c.n.n.u.FilesystemUtils:111]
14:52:16.572 [main] ERROR - You need a valid res/authkey.txtfile to run NuBot, or launch from CLI adding the -skipCredentials flag. Get in touch with the Nu Dev team via http://discuss.nubits.com request a token by filling form @ http://goo.gl/forms/nPjiDdsIUb [c.n.n.g.CredentialManager:86]
14:52:16.576 [main] ERROR - Error in reading encryption key from auth file :res/authkey.txt [c.n.n.g.CredentialManager:68]
14:52:16.581 [main] ERROR - java.lang.NullPointerException [c.n.n.l.MainLaunch:85]
14:52:16.586 [main] ERROR - Problems while creating CredentialManager. [c.n.n.l.MainLaunch:166]
Following the recommendation to launch from CLI adding the -skipCredentials flag
:
nubot-v0.3.1 $ java -jar NuBot.jar -cfg=config/sample-options.json -skipCredentials
14:52:36.712 [main] INFO - defined session log path logs/idles/1442587956689 [com.nubits.nubot.bot.Global:97]
14:52:37.147 [main] DEBUG - checking latest version [com.nubits.nubot.launch.MainLaunch:64]
14:52:45.873 [main] DEBUG - Latest Version = 0.3.1, Current version = 0.3.1 [com.nubits.nubot.utils.VersionInfo:132]
14:52:45.919 [main] WARN - Official credential skipped. Will use user-defined credentials defined in source of CredentialManager.java [c.n.n.l.MainLaunch:77]
14:52:45.971 [main] INFO - Run NuBot from CLI [com.nubits.nubot.launch.MainLaunch:133]
14:52:46.001 [main] DEBUG - parsing options from config/sample-options.json [SessionLOG:53]
14:52:46.627 [main] WARN - wallShiftThreshold and spread will be taken from Streamer service (local settings ignored) [c.n.n.o.ParseOptions:475]
14:52:46.634 [main] ERROR - com.nubits.nubot.options.NuBotConfigException: Configuration error : com.nubits.nubot.options.NuBotConfigException: streamingserver must be in the format 'host:port' [c.n.n.l.MainLaunch:166]
I realized that the exchange “hitbtc” is not existing yet. I changed that to parameters of bter and tried again.
nubot-v0.3.1 $ java -jar NuBot.jar -cfg=config/sample-options.json -skipCredentials
15:27:41.307 [main] INFO - defined session log path logs/idles/1442590061284 [com.nubits.nubot.bot.Global:97]
15:27:41.700 [main] DEBUG - checking latest version [com.nubits.nubot.launch.MainLaunch:64]
15:27:50.464 [main] DEBUG - Latest Version = 0.3.1, Current version = 0.3.1 [com.nubits.nubot.utils.VersionInfo:132]
15:27:50.526 [main] WARN - Official credential skipped. Will use user-defined credentials defined in source of CredentialManager.java [c.n.n.l.MainLaunch:77]
15:27:50.576 [main] INFO - Run NuBot from CLI [com.nubits.nubot.launch.MainLaunch:133]
15:27:50.608 [main] DEBUG - parsing options from config/sample-options.json [SessionLOG:53]
15:27:51.199 [main] WARN - wallShiftThreshold and spread will be taken from Streamer service (local settings ignored) [c.n.n.o.ParseOptions:475]
15:27:51.208 [main] ERROR - com.nubits.nubot.options.NuBotConfigException: Configuration error : com.nubits.nubot.options.NuBotConfigException: streamingserver must be in the format 'host:port' [c.n.n.l.MainLaunch:166]
The sample-options.json seems to require a streamingserver in the format ‘host:port’. I adjusted that ("streamingServer" : "stream.tradingbot.nu:8889",
) and that resulted in:
java -jar NuBot.jar -cfg=config/sample-options.json -skipCredentials
15:31:32.984 [main] INFO - defined session log path logs/idles/1442590292955 [com.nubits.nubot.bot.Global:97]
15:31:33.398 [main] DEBUG - checking latest version [com.nubits.nubot.launch.MainLaunch:64]
15:31:42.121 [main] DEBUG - Latest Version = 0.3.1, Current version = 0.3.1 [com.nubits.nubot.utils.VersionInfo:132]
15:31:42.165 [main] WARN - Official credential skipped. Will use user-defined credentials defined in source of CredentialManager.java [c.n.n.l.MainLaunch:77]
15:31:42.213 [main] INFO - Run NuBot from CLI [com.nubits.nubot.launch.MainLaunch:133]
15:31:42.243 [main] DEBUG - parsing options from config/sample-options.json [SessionLOG:53]
15:31:42.884 [main] WARN - wallShiftThreshold and spread will be taken from Streamer service (local settings ignored) [c.n.n.o.ParseOptions:475]
15:31:43.056 [main] DEBUG - loading opt: {"nudIp":"127.0.0.1","submitLiquidity":false,"apiKey":"hidden","streamingserver":"stream.tradingbot.nu:8889","distributeLiquidity":false,"bypassStreaming":false,"nubitAddress":"xxx","gitter":true,"mainFeed":"blockchain","rpcUser":"rpcuser","mailRecipient":"xxx@xxx.xxx","maxBuyVolume":0.0,"maxSellVolume":0.0,"nudPort":9091,"backupFeeds":["coinbase","btce"],"priceIncrement":0.1,"rpcPass":"hidden","apiSecret":"hidden","webport":8889,"pair":"nbt_btc","mailnotifications":"SEVERE","spread":0.0,"emergencyTimeout":60,"multipleCustodians":false,"txFee":0.2,"exchangeName":"bter","executeOrders":true,"wallchangeThreshold":0.1,"dualSide":true,"verbosity":"NORMAL","keepProceeds":0.0} [com.nubits.nubot.bot.SessionManager:58]
15:31:43.445 [main] INFO - *** session *** starting at 20150918 15:31:43 [com.nubits.nubot.bot.SessionManager:89]
15:31:43.452 [main] INFO - Setting up NuBot version : 0.3.1 [com.nubits.nubot.bot.NuBotBase:199]
15:31:43.456 [main] INFO - Live mode : Trades will be executed [com.nubits.nubot.bot.NuBotBase:203]
15:31:43.471 [main] INFO - defined session log path logs/bot_sessions/0.3.1|1442590303471|990e83 [com.nubits.nubot.bot.Global:97]
15:31:43.641 [main] INFO - Session ID = 0.3.1|1442590303471|990e83 [com.nubits.nubot.bot.NuBotBase:85]
15:31:43.672 [main] INFO - Set up SSL certificates [com.nubits.nubot.bot.NuBotBase:124]
15:31:43.677 [main] INFO - installKeystore. trustall: false [com.nubits.nubot.utils.Utils:298]
15:31:43.682 [main] INFO - Reading keystorefile from : /home/pi/downloads/nubot-v0.3.1/res/ssl/nubot_keystore.jks [com.nubits.nubot.utils.Utils:313]
15:31:43.701 [main] INFO - Swapped pair mode : false [com.nubits.nubot.bot.NuBotBase:161]
15:32:01.831 [main] INFO - BotTask [sendLiquidity] will start in 40s, and run it every 130s [com.nubits.nubot.tasks.BotTask:63]
15:32:01.866 [main] INFO - Start trading Strategy specific for nbtbtc [com.nubits.nubot.bot.NuBotBase:254]
15:32:01.886 [main] INFO - Options loaded : {"nudIp":"127.0.0.1","submitLiquidity":false,"apiKey":"hidden","streamingserver":"stream.tradingbot.nu:8889","distributeLiquidity":false,"bypassStreaming":false,"nubitAddress":"xxx","gitter":true,"mainFeed":"blockchain","rpcUser":"rpcuser","mailRecipient":"xxx@xxx.xxx","maxBuyVolume":0.0,"maxSellVolume":0.0,"nudPort":9091,"backupFeeds":["coinbase","btce"],"priceIncrement":0.1,"rpcPass":"hidden","apiSecret":"hidden","webport":8889,"pair":"nbt_btc","mailnotifications":"SEVERE","spread":0.0,"emergencyTimeout":60,"multipleCustodians":false,"txFee":0.2,"exchangeName":"bter","executeOrders":true,"wallchangeThreshold":0.1,"dualSide":true,"verbosity":"NORMAL","keepProceeds":0.0} [com.nubits.nubot.bot.NuBotBase:256]
15:32:01.974 [main] INFO - Updated Froozen Balances file (res/frozen-funds//nbt_btc-bter-frozen.json) : 0 BTC [com.nubits.nubot.utils.FrozenBalancesManager:278]
15:32:01.989 [main] INFO - Configuring NuBot for Dual-Side strategy [com.nubits.nubot.strategy.Secondary.NuBotSecondary:60]
15:32:02.003 [main] ERROR - backupFeed=btce is not a valid entry for pair btcusd [c.n.n.p.PriceFeedManager:90]
15:32:02.008 [main] ERROR - could not launch bot com.nubits.nubot.bot.NuBotRunException: com.nubits.nubot.options.NuBotConfigException: can't configure price feeds [c.n.n.l.MainLaunch:166]
It looks like nubot is close to running.
I need credentials and help for troubleshooting the last remaining errors.
But then I can start a test run.
If everything is fine I intend to create a draft for providing liquidity at hitbtc.
@desrever I think I’m at a dead end here. Can you help me?
edit4
removed “btce” from “backupfeeds” in sample-options.json.
Result:
16:29:25.880 [main] INFO - defined session log path logs/idles/1442593765857 [com.nubits.nubot.bot.Global:97]
16:29:26.301 [main] DEBUG - checking latest version [com.nubits.nubot.launch.MainLaunch:64]
16:29:35.115 [main] DEBUG - Latest Version = 0.3.1, Current version = 0.3.1 [com.nubits.nubot.utils.VersionInfo:132]
16:29:35.167 [main] WARN - Official credential skipped. Will use user-defined credentials defined in source of CredentialManager.java [c.n.n.l.MainLaunch:77]
16:29:35.235 [main] INFO - Run NuBot from CLI [com.nubits.nubot.launch.MainLaunch:133]
16:29:35.272 [main] DEBUG - parsing options from /home/pi/downloads/nubot-v0.3.1/config/sample-options.json [SessionLOG:53]
16:29:35.852 [main] ERROR - com.nubits.nubot.options.NuBotConfigException: The bot requires at least two backup data feeds to run [c.n.n.o.ParseOptions:470]
16:29:35.858 [main] WARN - wallShiftThreshold and spread will be taken from Streamer service (local settings ignored) [c.n.n.o.ParseOptions:475]
16:29:35.984 [main] DEBUG - loading opt: {"nudIp":"127.0.0.1","submitLiquidity":false,"apiKey":"hidden","streamingserver":"stream.tradingbot.nu:8889","distributeLiquidity":false,"bypassStreaming":false,"nubitAddress":"xxx","gitter":true,"mainFeed":"blockchain","rpcUser":"rpcuser","mailRecipient":"xxx@xxx.xxx","maxBuyVolume":0.0,"maxSellVolume":0.0,"nudPort":9091,"backupFeeds":[],"priceIncrement":0.1,"rpcPass":"hidden","apiSecret":"hidden","webport":8889,"pair":"nbt_btc","mailnotifications":"SEVERE","spread":0.0,"emergencyTimeout":60,"multipleCustodians":false,"txFee":0.2,"exchangeName":"bter","executeOrders":true,"wallchangeThreshold":0.1,"dualSide":true,"verbosity":"NORMAL","keepProceeds":0.0} [com.nubits.nubot.bot.SessionManager:58]
16:29:36.346 [main] INFO - *** session *** starting at 20150918 16:29:36 [com.nubits.nubot.bot.SessionManager:89]
16:29:36.352 [main] INFO - Setting up NuBot version : 0.3.1 [com.nubits.nubot.bot.NuBotBase:199]
16:29:36.358 [main] INFO - Live mode : Trades will be executed [com.nubits.nubot.bot.NuBotBase:203]
16:29:36.372 [main] INFO - defined session log path logs/bot_sessions/0.3.1|1442593776371|1254a0 [com.nubits.nubot.bot.Global:97]
16:29:36.546 [main] INFO - Session ID = 0.3.1|1442593776371|1254a0 [com.nubits.nubot.bot.NuBotBase:85]
16:29:36.579 [main] INFO - Set up SSL certificates [com.nubits.nubot.bot.NuBotBase:124]
16:29:36.585 [main] INFO - installKeystore. trustall: false [com.nubits.nubot.utils.Utils:298]
16:29:36.594 [main] INFO - Reading keystorefile from : /home/pi/downloads/nubot-v0.3.1/res/ssl/nubot_keystore.jks [com.nubits.nubot.utils.Utils:313]
16:29:36.621 [main] INFO - Swapped pair mode : false [com.nubits.nubot.bot.NuBotBase:161]
16:29:49.528 [main] INFO - BotTask [sendLiquidity] will start in 40s, and run it every 130s [com.nubits.nubot.tasks.BotTask:63]
16:29:49.537 [main] INFO - Start trading Strategy specific for nbtbtc [com.nubits.nubot.bot.NuBotBase:254]
16:29:49.583 [main] INFO - Options loaded : {"nudIp":"127.0.0.1","submitLiquidity":false,"apiKey":"hidden","streamingserver":"stream.tradingbot.nu:8889","distributeLiquidity":false,"bypassStreaming":false,"nubitAddress":"xxx","gitter":true,"mainFeed":"blockchain","rpcUser":"rpcuser","mailRecipient":"xxx@xxx.xxx","maxBuyVolume":0.0,"maxSellVolume":0.0,"nudPort":9091,"backupFeeds":[],"priceIncrement":0.1,"rpcPass":"hidden","apiSecret":"hidden","webport":8889,"pair":"nbt_btc","mailnotifications":"SEVERE","spread":0.0,"emergencyTimeout":60,"multipleCustodians":false,"txFee":0.2,"exchangeName":"bter","executeOrders":true,"wallchangeThreshold":0.1,"dualSide":true,"verbosity":"NORMAL","keepProceeds":0.0} [com.nubits.nubot.bot.NuBotBase:256]
16:29:49.626 [main] INFO - Configuring NuBot for Dual-Side strategy [com.nubits.nubot.strategy.Secondary.NuBotSecondary:60]
16:29:49.639 [main] INFO - Plugging into websocket at stream.tradingbot.nu:8889 [com.nubits.nubot.strategy.Secondary.NuBotSecondary:127]
16:29:51.951 [main] WARN - Streamer appear to be offline @ stream.tradingbot.nu [c.n.n.s.Subscriber:610]
16:29:51.960 [main] ERROR - Streamer is offline, using local price monitor instead. [c.n.n.s.S.NuBotSecondary:147]
16:29:51.971 [main] WARN - NuBot will not try to sync with other bots via remote NTP : 'multiple-custodians' is set to false [c.n.n.s.S.NuBotSecondary:185]
16:29:51.977 [main] INFO - BotTask [priceTriggerTask] will start in 0s, and run it every 61s [com.nubits.nubot.tasks.BotTask:63]
16:29:51.992 [priceTriggerTask] INFO - running PriceMonitorTrigger for first time [com.nubits.nubot.tasks.PriceMonitorTriggerTask:100]
16:29:57.405 [priceTriggerTask] INFO - Price Updated. blockchain:1 BTC = 233.76 USD [com.nubits.nubot.tasks.PriceMonitorTriggerTask:353]
16:29:58.066 [priceTriggerTask] INFO - Computing USD prices with spread 0.0% : sell @ 1.0023 buy @ 0.998 [com.nubits.nubot.tasks.PriceMonitorTriggerTask:151]
16:29:58.076 [priceTriggerTask] INFO - Converted price (using 1 BTC = 233.76 USD) : sell @ 0.00428773 BTC; buy @ 0.00426934 BTC [com.nubits.nubot.tasks.PriceMonitorTriggerTask:167]
16:29:58.081 [priceTriggerTask] INFO - setBuyPricePEG : 0.00426934 [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegTask:216]
16:29:58.085 [priceTriggerTask] INFO - set setSellPricePEG : 0.00428773 [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegTask:207]
16:29:58.090 [priceTriggerTask] INFO - Started BotTask Strategy Secondary Task [com.nubits.nubot.tasks.BotTask:57]
16:29:58.092 [Strategy Secondary Task] INFO - Initializing strategy [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegTask:130]
16:29:58.097 [Strategy Secondary Task] INFO - setting up ordermanager [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegTask:131]
16:29:58.867 [Strategy Secondary Task] INFO - Cannot find a balance for currency with code NBT or BTC in your balance. NuBot assumes that balance is 0 [com.nubits.nubot.trading.wrappers.BterWrapper:237]
16:30:00.457 [Strategy Secondary Task] INFO - initOrders SELL, price 0.00428773 [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:176]
16:30:02.063 [Strategy Secondary Task] WARN - Submitting limit order : SELL side order : SELL 5.4 NBT @ 0.00428773 BTC [c.n.n.s.OrderManager:253]
16:30:02.067 [Strategy Secondary Task] INFO - executeSellsideOrder : nbtbtc 5.4 0.00428773 [com.nubits.nubot.strategy.OrderManager:207]
16:30:03.537 [Strategy Secondary Task] INFO - Strategy - Order success: SELL Response = 44600691 [com.nubits.nubot.strategy.OrderManager:268]
16:30:09.338 [Strategy Secondary Task] WARN - Submitting limit order : SELL side order : SELL 5.4 NBT @ 0.00428773 BTC [c.n.n.s.OrderManager:253]
16:30:09.345 [Strategy Secondary Task] INFO - executeSellsideOrder : nbtbtc 5.4 0.00428773 [com.nubits.nubot.strategy.OrderManager:207]
16:30:10.705 [Strategy Secondary Task] INFO - Strategy - Order success: SELL Response = 44600712 [com.nubits.nubot.strategy.OrderManager:268]
16:30:10.715 [Strategy Secondary Task] INFO - initOrders BUY, price 0.00426934 [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:176]
16:30:11.480 [Strategy Secondary Task] WARN - Cannot find a balance for currency with code BTC in your balance. NuBot assumes that balance is 0 [c.n.n.t.w.BterWrapper:252]
16:30:11.488 [Strategy Secondary Task] INFO - No need to execute BUY orders : available balance value is less than 2 NBT. Balance : 0.0 [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:202]
16:30:11.493 [Strategy Secondary Task] INFO - Strategy initialization completed [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:147]
16:30:36.216 [sendLiquidity] INFO - Cannot find a balance for currency with code NBT or BTC in your balance. NuBot assumes that balance is 0 [com.nubits.nubot.trading.wrappers.BterWrapper:237]
16:30:39.844 [Strategy Secondary Task] INFO - Cannot find a balance for currency with code NBT or BTC in your balance. NuBot assumes that balance is 0 [com.nubits.nubot.trading.wrappers.BterWrapper:237]
16:30:58.256 [priceTriggerTask] INFO - Price Updated. blockchain:1 BTC = 233.76 USD [com.nubits.nubot.tasks.PriceMonitorTriggerTask:353]
I’d say NuBot is basically running on my RaspberryPi.
Now I need a wrapper for hitBTC for the next step