Smartcoin is a complete mining administration system that runs on Linux. The smartcoin name originated from the acronym Simple Miner Administration through Remote Terminals. As the name implies, smartcoin is designed specifically with administrating your mining machines remotely over SSH. As such, smartcoin doesn't have fancy gadgets or a fancy UI. This makes it very easy to administer your mining machines remotely over SSH on standard Linux/Windows terminal emulators, smartphones with terminal emulator software (ConnectBot for Android, for example), and even web-based SSH terminal emulator services (www.gotossh.com, for example).
Smartcoin has some unique features that you won't find anywhere else:
- A profile system that lets you specify how many instance of a miner runs on each GPU, and which workers to run against. Your profiles are stored, so that you can recall any profile you want to run at any time in just seconds!
- An Automatic profile, which will get you started by simply entering your worker information into the system
- A built-in donation system that will allow you to help fund development of smartcoin, by simply donating some hashes each day to special donation pools. Of course, this is optional, and all done in the clear.
- A simple installer that will attempt to auto-detect system parameters for you. This includes GPU devices, paths to popular miners, paths the needed software, etc.
- A unified status display that allows you to watch all of your miner instances across all GPUs. This also includes "totalizers" that will add up the hash rate, acceptions, rejections etc. so that you have a full overview of your operation all on one screen!
- An update system that makes keeping your local copy of smartcoin up to date. You can even choose to pull in "stable" or "experimental" changes, depending on whether you want the latest and greatest features, or if you would rather play it safe with tested and stable changes.
- A full failover system. You can set a preferred order of your profiles. If a pool in your profile goes down (from a ddos for example), then the next one in line is automatically loaded. When a higher priority profile comes back online, all the lower priority profiles below it go back offline. This all happens automatically!
- Security. SSH is the standard when it comes to remote administration over secure connection. While a lot of users have expressed that they would like a web based front end, it simply lacks the security that I feel is needed.
- Smartcoin is database driven. This allows for a lot of flexibility in adding features, as the SQL language its self can be leveraged to perform very complex operations quite easily.
- GPU and miner software lockup detection. With everyone wanting to squeeze every last hash out of their hardware via overclocking, it is common for GPUs that have been overclocked just a bit too much to "lock up". These types of conditions are now detected automatically, you can be alerted by email and even have your machine automatically reboot when this happens!
- Custom script execution - you can define your own initialization script that will be run automatically when smartcoin starts (to set your GPU fan speeds to 100%, for example). You can also define your own lockup script, which will automatically run when a lockup condition is detected.
- Multi-machine support! Have smartcoin manage all of your mining machines all from one place! Smartcoin only needs to be installed on one "master" machine, and all communication is tunneled securely over SSH.
- So much more. Smartcoin is in continuous development and improving all the time!
Smartcoin already comes pre-installed on the LinuxCoin distrobution. Smartcoin is developed and tested on an Ubuntu installation, but should work on any modern linux distrobution.
Installation is easy, but assumes that your machine is already set up for mining. Smartcoin its self is not a miner, and does not install any other software normally associated with a miner. It is made to sit on top of an already working mining machine. There are plenty of guides and threads on the bitcoin forums regarding this, so I won't touch on it here. Right now, smartcoin is known to work on Ubuntu, LinuxCoin and Fedora. It may work on more setups, but many simply haven't been tested yet. This installation should only happen on one machine, which will be your "master node" for controlling and monitoring your mining operation.
Step 1) Make sure you have the required dependencies
Requirements: findutils, sqlite3, bc, openssh-server (these should install automatically in debian based distros such as LinuxCoin and Ubuntu, but pre-installing them beforehand is recommended. Fedora users should install these packages via yum before installing smartcoin) Example of making sure these exist in Ubuntu:
sudo apt-get install sqlite3 findutils bc openssh-server
Step 2) Download smartcoin from the svn repository
cd ~/ mkdir smartcoin cd smartcoin svn checkout http://smartcoin.googlecode.com/svn/branches/beta1/smartcoin ./
Note: For LinuxCoin users, smartcoin has already been downloaded, but may be out of date. I recommend updating the LinuxCoin version before continuing by:
sudo su cd /opt/miners/smartcoin svn update
Step 3) Run the install script
Just follow the directions as smartcoin prepares your system and creates the database.
Step 4) Launch smartcoin and enjoy!
If you need to uninstall smartcoin, simply:
sudo rm -r ~/.smartcoin sudo rm /usr/bin/smartcoin sudo rm -r <path/to/your/installation>
How To Use
Smartcoin is intelligent enough to know if its already running. By simply typing 'smartcoin' into the terminal window, you will either start a new smartcoin session if it isn't running yet, or rejoin one that is already running in the background. In fact, you can use this trick to monitor many things at once by opening several terminal emulator windows, ssh'ing to your miner and typing 'smartcoin' into each one. They will all be connected to the same session, and you don't have to worry about smartcoin launching more than once. This also means that you can monitor your machines from multiple computers/smart phones etc all at the same time!
Smartcoin uses the GNU screen utility for a lot of its functionality. In order to use smartcoin fully, you must at a least learn a little about GNU screen. There are countless articles, and even books on using GNU screen, but you only need to know a few things to use smartcoin: Actions are performed in GNU screen by using the key combination CTRL+A, followed by a command key. For example, 'CTRL+A 0' means to press the control+a key together simultaneously and release, then press 0. The commands you may want to know are:
- CTRL+a 0 - Go to the control screen
- CTRL+a 1 - Go to the 1st machine's status display
- CTRL+a 2 - Go to the 2nd machine's status display (etc...)
- CTRL+a p - Go to the previous window
- CTRL+a n - Go to the next window
- CTRL+a " - Display a list of windows to select from
- CTRL+a d - Disconnect from smartcoin (smartcoin will continue to run in the background. You can also do this from the menu on the control screen)
- CTRL+a [ - Go into a mode where you can scroll the screen window with the up/down arrows, pgUp and pgDwn. This is allows you to scroll up and down through the history buffer for each screen window. This is particularly useful while viewing the log in the Log tab.
Smartcoin supports several command-line parameters. These are useful for interfacing smartcoin from your own scripts, for example. Most people will never have to worry about using these, so don't worry if you don't understand them. Supported switches are:
- --delay=# - Delays for # seconds before processing the next argument
- --machine=# - Sets a target machine number which some other cli parameters use (specifically the pk_machine field from the machine table)
- --kill - Kills smartcoin if it is running
- --reload - reloads all miner instances. If the --machine paramter is present, it will only reload the miners on that specific machine. If it is not present, miners on all machines will reload.
- --silent - Starts smartcoin in the background without automatically attaching to it.
- SmartCoin project on GoogleCode