Software Project: Using Docker to Automate Linux Distribution Builds for Cryptocurrency Mining Platforms

in #software7 years ago

Motivation

When I first got into cryptocurrency mining, one of the most difficult learning curves (besides the hardware) was the mining software. I did not know what the best operating system was to run, the best mining utility to use, or even what the best cryptocurrency was to mine for. There are sites out there to help with this and tutorials, but there is a lot to get through. My argument is not for a single answer for all these problems because others are already hard at work on that and saturating the internet with their findings.

My solution is to have a tool that just makes it easy. I want to give a easy-to-use, easy-to-configure, way to just create your operating system that is right for you and give it to you ready to install.

Docker

I am pretty experienced with Docker and have been using it for a few years now. My assumption is that in the future, cgroups or a similar technology will be the standard by which we package software and distribute it. Basically, whenever I start a new project anymore, I start with Docker.

Besides that it makes sense in this case. I can modularly chose a different builder based on what I want to build and send parameters for it. I could have a separate builder isolated for Ubuntu, Fedora, or even Windows. Not only that, I can make them specific to hardware. If I define that I want to build an ubuntu server for Rx 580 GPU mining, I can build that by picking the correct builder image. I can then add specifics like what users to have, what mining software I want to run (Claymore, ethminer, etc...).

Github

I am working on the project through a github repository. Feel free to try it out or contribute.

Goals

Goals for the future are the following:

AWS Lambda Step Workflow

I want to provide an API so programmers do not need to manually use the docker images to build their software. I want to provide a simple way to generate your mining OS.

User Interface

Eventually, I want to push a user interface out there that allows non-programmers access to the docker builder. This way, you can build your own operating system easily.

Preloaded Images

There will be a store where one can customize their own operating system and purchase the operating system preloaded on a hard drive, flash drive, DVD, etc... It may also include other components like LCD monitoring solution for the miner that is already integrated with the operating system.

Custom Monitoring Solutions

Eventually, the operating system will include data export to AWS Cloudwatch per your configuration to give you access to Cloudwatch events.

Howto Series

For those that want to do this not for mining, I will blog a how-to series on how to build your own custom linux distributions with the tools available using this case as an example. I will explain

  • Tools I used
  • Process
  • Troubleshooting
  • Caveats
  • What I had to overcome and problems I ran into
  • What works and what doesn't

Coin Marketplace

STEEM 0.18
TRX 0.13
JST 0.028
BTC 57367.79
ETH 3098.11
USDT 1.00
SBD 2.32