Crossbelt Configuration Data

How to use Crossbelt to return a list of compute unit ids.

What is configuration data

Configuration data is nothing more than a giant settings file. The data is stored in a flat text file encoded in YAML format. Editing the settings is as simple as editing a file.

  1. Open
  2. Edit
  3. Save

These settings specified by you and BlockOps will be used to configure the rig to mine whatever coin you wish. All of these settings will forge a configuration file for the rig to use.

Where does the data come from

The configuration data uses a well known devops tool called hiera in order to create a file based key value store. The important point here is, by default there is no server to maintain. Everything is stored in files. While these files do originate from a hosted Gitlab server somewhere in the cloud, it is only one of the many possibilities. The data could just as well come from IPFS, windows share or other file based system.

Because the data is stored in files we decided to also put the files under version control management so we can track when changes occur and who made them. To take this control a step further we put the data in Gitlab so we can allow others to contributue their mining profiles while also locking down the data so only certain people have write access to the data. This type of control is usually reserved for enterprise level features, but comes for free with Crossbelt.

Follow the procedures below to auto configure your rig using the information contained in the project.

Below are the steps to start using Crossbelt. By default your rig will get a default configuration so nothing really needs to be done. However, if you want to mine to your wallets instead of mine you need to create a a rig owner file for yourself.

Each of the files you create are called YAML files and can contain comments if the line starts with #

Anatomy of a file and the data

This data is what is known as hiera (hi ruh) data and is part of the puppet tooling that Crossbelt utilizes.
Official hiera documention can be found here if interested. Furthermore, you fully understand hiera you can do more clever things with this data ;)

I mentioned above the configuration data is a big key-value data store. What this means is, if you give me a the name of a key I give you a value. This is the same as asking the birthdate from your friend and expecting a date in the past as the value of that answer. As another example, if I ask you for your BTC address, you will give me a long random string of numbers and letters.

Crossbelt uses many special key names in order to lookup data. It is your job to define these special key names in order to provide Crossbelt with the data it needs to configure your rig(s). Without this data Crossbelt will turn to default data. While default data can sometimes be good, you might end up donating mining time to a BlockOps address.

As an example the following setting for power cost can be set like this:

crossbelt::metrics::power_cost: 0.10

This data is usually stored in the mining site profile file.

crossbelt_data/data/mining_sites/00102102883.yaml

The file contains the key and value. The key name is crossbelt::metrics::power_cost: and the value is 0.10.

This data is in YAML format so you must ensure you follow the YAML structure otherwise Crossbelt will have issues. However, this is a simple process with plenty of examples to copy. The majority of the time will just be making minor changes to the mining profile your rig uses.

Profiles

You may see the term profile be used in many places. A profile is a group of settings with a name attached to it. Having profiles allows us to easily swap out commonly used settings or create entirely new profiles with only minor changes.

There are already many included profiles that exist in Crossbelt.

Profile types

Below is a list of the profile types where each type can have many profiles.

  • miner profiles
    • detail information on how a miner program should be installed
  • algorithm profiles
    • detail which overclock profiles should be used for the given algorithm
  • overclock profiles
    • detail which overclock settings should be applied to the given gpu with bios name
  • mining profiles
    • detail what to mine and where, and how (Encopose many other profiles)
  • mining site profiles
    • details some site properties and can also set a mining profile per site
  • rig owner profiles
    • details wallets and can also set mining profiles for anything owned by the rig owner
  • pool profiles
    • detail pool addresses
  • rig profiles
    • the top most level which instructs the rig what to mine and who it belongs to.

What kind of data already exists?

We at BlockOps are miners ourselves and have compiled a pretty good set of useful profiles for various situations.

  • many types of mining profiles
  • many types of miners
  • many types of algorithm profiles
  • many types of overclock profiles

These profiles work for our rigs and while it may work for your systems, YMMV. This might prompt you to select different profiles or create your own.

Forking the Data

We at BlockOps have compiled a set of profiles for users to use. These profiles will evolve over time so please be aware that some changes may occour on your rigs. If any profile causes instability please report to use immediately or create your own profile by forking the repository.

We host the Crossbelt 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 others to use if desired.

After forking you need to update crossbelt to use the new url. Please note you will have a different url. If your data is private you will also need to add a deploy token.

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

Generating a deploy token

After forking the crossbelt data goto this url and generate a deploy token.

  1. Grab the username and password and combine into the new private url. `https://username:password@gitlab.com/blockops/crossbelt_data.git
  2. Run: sudo cb config set data_repo_url https://username:password@gitlab.com/<username>/crossbelt_data.git (Use your own url though!)

This will tell Crossbelt to use your private repository.