User-interfaces for cryptocurrency-miners are notoriously old-fashioned. A machine such as the Titan, priced in the $10000-range, deserves a better user-interface.
KnCMinion is my way of giving back a more modern and beautiful UI to KnC and the mining-community.
Titan UI – Before
Titan UI – After
The KnCMinion interface is located in a subdirectory (/kncminion) and is designed to provide a bit more information. It creates client-side graphs of historical values as long as the page is open (it will start empty each time, as no data is stored on the Titan).
KncMinion is built using CoffeeScript, AngularJS, D3.js, Bootstrap and jQuery and adapts to different resolutions and devices.
The top graph is the total hashrate (in MHs) for the miner. The smaller graphs below represent the hash-rate of each individual die for every cube on the Titan (4 dies per cube). In my case one die is not working for one cube, hence only 15 graphs. Each graph displays the min/max and current value for the selected duration.
Static images does not really give KnCMinion justice, checkout the video of the UI in action below!
This IS a security-related blog, so where does all this fit in the picture?
When developing KnCMinion, I came across some things about the Titan that made my life easier but also posed some security-risks.
KnCMinion is packaged as a firmware-upgrade file, but it only adds new files to the web-server and does not touch any existing files or affect anything mining-related.
The problem here is that I, without any connection to KnC, was able to create a valid firmware-upgrade file that can be installed on the Titan.
This means that i could create a custom package and trick people to install something that is malicious, for example a custom BFGMiner that mines for me when they are not looking or something that lets me access their network.
Best-practice regarding upgrade-files that execute with root-privileges are that they should be signed, and the signature should be checked before executing code and writing files to persistent storage.
Firmware-image(s) are available on github: https://github.com/p4fg/kncminion/releases.
Just download the file and upload it as any other firmware upgrade. As it only adds files to the web-server it is compatible with all current official firmware releases.
The source-code and complete development-environment are also on github: https://github.com/p4fg/kncminion
As this in fact means that you are installing non-sanctioned, unsigned software on your Titan, you really should inspect the contents of the firmware-file. It is a standard .tar.gz and can be unpacked with standard tools on linux or with 7-zip on Windows.
If KnC or any other manufacturer happens to read this and is interested in officially (or unofficially) taking their UI to the next level, contact me! My email is on the bottom of the page.
Use at your own risk, no warranty expressed or implied. Works-for-me(tm).