Reconfiguration

How to use Crossbelt to mine different cryptos, apply overclocks and use different pools.

Intro

Configuration is the process of installing software, editing files and running commands in order to make your rig perform at the desired state after a reboot.

The configuration process is the hardest part when it comes to mining. Not only do you have to remember all the commands, and options to apply but you also have to perform these steps for each rig which can be time consuming.

For mining distros like ethos this becomes a painful process especially when you have multiple rigs with varying GPUs. Moreover, with mining distros you often make everything look the same because it is too difficult otherwise.

When we first started mining back in last 2017 it was near impossible to purchase all the same GPUs. So we ended up with “frankenstein” rigs with almost all unique hardware. It was for this reason that we made Crossbelt and decided to solve the configuration problem.

The Crossbelt Approach

Crossbelt takes a very different approach to configuration. Instead of forcing you to create a giant config file for all of your rigs. You have the ability to create a super customized configuration for each rig without the headache of managing each individual one. Furthermore, when this applies to overclocking, the overclock profile follows the GPU. So no matter where that GPU goes, Crossbelt will apply the same overclock profile for that GPU even if you move it to another system. This means Crossbelt gives you the ability to move GPUs around to different rigs without the annoyance of manual configuration.

The only command you need to remember is sudo crossbelt reconfigure or the shortened version sudo xb recon.

Setup

In order to get started you need to first set a few configuration options.

Super quick easy way “I’ll change later” method

This will get you mining on ethermine pool using claymore miner.

  1. sudo cb config set crossbelt::wallets::eth <address>
  2. sudo cb reconfigure --mp ethermine --ro <owner_profile>

Would recommend starting here. The owner profile will become more important later but for now just choose a name.

Set a mining profile

There are two ways to set a mining profile. You can do directly via the config or let Crossbelt set it for you during the reconfiguration command. Use the -p during reconfiguration to prompt for a mining profile.

Directly: sudo cb config set mining_profile ethermine

Indirectly: sudo cb reconfigure -p --ro opselite

Set a rig owner

There are two ways to set a rig owner profile. You can do directly via the config or let Crossbelt set it for you during the reconfiguration command with the --ro <owner> argument.

Directly: sudo cb config set rig_owner opselite

Indirectly: sudo cb reconfigure --mp ethermine --ro opselite

Set up your wallets

To set a wallet locally use the config command. This will instruct Crossbelt to use a locally set wallet instead of the one provided by the crossbelt data repository.

sudo cb config set crossbelt::wallets::btc <address>

sudo cb config set crossbelt::wallets::eth <address>

Crossbelt will use these configurations only if a rig owner is not set. Otherwise the rig owner wallets will be used. If a rig owner exists but the wallet address doesn’t exist for that currency Crossbelt will rely on locally set wallet configurations. Otherwise defaults will be used.

Reconfiguring your rig

Configuring your rig requires just a single command. sudo cb reconfigure

$ sudo cb reconfigure -h
NAME
    reconfigure - Reconfigure your rig with Settings From Crossbelt Cloud

SYNOPSIS
    cb [global options] reconfigure [command options]

DESCRIPTION
    The reconfigure command will use local and cloud data to create a unique configuration for your rig.

COMMAND OPTIONS
    --mining_profile, --mp=arg - Applies the specified mining profile (default: etc_nanopool)
    --prompt, -p               - Do not use previously used mining profile and prompt user for profile
    -r, --remote               - Use Remote Data from the Cloud
    --rig_owner, --ro=arg      - Specifies the owner profile to use for wallets and other information (default: default)

EXAMPLES

    # Reconfigure the mining rig using the currently set defaults which you may have used previously
    cb reconfigure

    # Reconfigure the mining rig to use the ethermine profile and set the owner to opselite
    cb reconfigure --mp ethermine --ro opselite

    # Reconfigure the mining rig to use the remotely stored profile and the remotely stored owner
    cb reconfigure --mp remote --ro remote

    # Reconfigure the mining rig to use the remotely stored data, sets the following flags --mp remote --op remote automatically
    cb reconfigure -r

    # Reconfigure the mining rig and prompt with a list of profiles.
    cb reconfigure -p --ro opselite

This command reaches out to a remote repository of configuration data and assembles a custom config just for your rig. Crossbelt allows you to setup profiles for rigs, GPUs, overclocks, owners, and mining sites. The amount of granularity possible for each rig allows you do whatever you want. But you can also share these profiles with other rigs and even other people. The repository can be public or private.

However, some assembly is required to setup this data unless you override from the command line with --mp and --ro:

Below is the minimum amount of data required to configure your rig:

# rigs/000000.yaml
crossbelt::mining_profile: ethermine
crossbelt::rig_owner: opselite

What this data tells Crossbelt is the rig with a hostname of 000000 should be configured with the ethermine profile and belongs to the owner named opselite.

You can also specific this data locally too.

sudo cb reconfigure --mp ethermine --ro opselite

The owner is important because inside the owner file is where you set all the various wallet addresses.

# rig_owner/opselite.yaml
crossbelt::wallets::btc: 3H95NMM4QgQ1pUQC9cDh8fpgWqTdLZHzWJ

Crossbelt comes with many pre-defined configs for various pools, GPUs, and mining profiles.
This data is meant to be shared and updated frequently by the Crossbelt community. As time goes on we will make it simpler to set up and at a later date have a full blown UI that makes this dead simple. For now we are utilizing a git based system because it is free and allows everyone control of their data.

More info on setting up configuration data can be found at here

You can dynamically switch mining_profiles and owners from the command line which overrides the configuration stored in the cloud. These overrides will then be saved to the local configuration and used automatically the next time reconfigure is run.

sudo cb reconfigure --mp ethermine --ro opselite

Forking the Data

Crossbelt provides some pre defined profiles that may be suitable for your rig. There are also many community members that update and add new settings as well. You have the option of using this data or forking for more customization.

We host the data at Gitlab.com and you will need an account (free) to get started.

Once logged in, goto crossbelt_data and fork the project.

Forking the data allows you to provide additional profiles and more customized data.
This data can later be contributed back to the public repository for other to use if desired.

After forking you need to update crossbelt to use the new url. Please not you will have a different url.

sudo cb config set data_repo_url https://gitlab.com/blockops/crossbelt_data.git

Adding new wallets

After forking the crossbelt_data you can add your own wallet information so that you only need to specify in a single place. Just create a file like data/rig_owner/<yourname>.yaml

Example:

# crossbelt_data/data/rig_owner/opselite.yaml
crossbelt::wallets:
  btc: 3H95NMM4QgQ1pUQC9cDh8fpgWqTdLZHzWJ
  dcr: DsZamV21EMkJYNVZVyyJeLbArNokzHKC6ga
  eth: 77562100D913A27ffd24FCFAD4E43095D3E4544D
  etc: 09fcD6596Ee3532BEC69Cda7824AeD091f708Ebc
  zec: t1ULRQhkqYv4Rh2snGirNJfLeDssRnHuq9G
  xmr: 467FTACVpkogxak8aDirSi2NDaL2zbAzohm2pcRpo7DN6iQ4EEFJYoEGQEZ3cvFa3mycF

Once created this is your rig owner profile which you will use during reconfiguration.

cb recofigure --mp ethermine --ro opselite

How the reconfigure command works

Crossbelt utilizes a well known software configuration tool called Puppet and hiera to configure each system.

When the Crossbelt reconfigure command starts up it performs the following tasks:

  1. Crossbelt inspects your rig and gathers information about the compute units and operating system installed.
  2. Downloads the latest configuration modules specifically bundled for Crossbelt.
  3. Uses git to clone the data repo url either the default or one you specify.
  4. Uses puppet to create a unique configuration for the rig.
  5. Applies the configuration to the rig.

Each rig will get a unique configuration in about 15 seconds.

$ sudo cb reconfigure
| Reconfigure Completed

Once completed your rig will be configured based on which profiles you set for it.

Example