If you have been trying to run BOINC on a Raspberry Pi, you may have found that there is a TON of information out there, much of which is outdated, says it can’t be done, or simply doesn’t work. This guide was written in July 2021 and should be relevant for some time. If you just want to install BOINC but not Gridcoin, you can just skip the Gridcoin sections, but why not earn rewards for your work?
This guide will work for the following situations, you can choose your own adventure!
✔️ People who want to run a Gridcoin node or solo stake
✔️ People who just want to run BOINC on their Raspberry Pi and don’t care about all this gridcoin stuff
✔️ People who want to run BOINC on a Raspberry Pi and receive Gridcoin for solo mining/staking
✔️ People who want to run BOINC on a Raspberry Pi and receive Gridcoin from pool mining
Here’s what you’ll need:
- A Raspberry Pi 4 or 4b+ with greater than 2GB of RAM and suggested 16GB MicroSD card or larger*. You can get one for about half the price and help the environment by getting one used on eBay. This guide will probably work on later models or any other development board w/ a 64-bit version of DietPi available for it. Raspberry Pi 3x and earlier will not work because they don’t have 64-bit processors. Due to the CPU usage that BOINC causes, a heatsink and/or fan is basically essential for this setup if you will be running BOINC on your pi. Heatsinks are generally advised for this model of Pi regardless.
- An ethernet cable to connect your Pi to your home network/router
- About $50 worth of GRC if you want to do solo mining/staking with Gridcoin, otherwise $0 if you want to do pool mining or no mining at all.
- A windows network share (SAMBA/CIFS) OR an external hard drive/flash drive to store Gridcoin/BOINC data onto. This is not essential but is suggested to prolong the life of your SD card.
- *A note about MicroSD card size: This installation will take a minimum of 1.2GB, but that is not including BOINC storage (if you are not storing data on a network share/external drive) or the Gridcoin blockchain (currently about 4GB). If you are not using external/networked storage, this means you need an absolute minimum 8GB SD card, though more is always better! We suggest a 16GB or higher SD card for stability reasons.
This guide is provided as-is with no warranty and you assume all risks by following it, be sure you double-check these instructions to make sure they make sense and are correct.
Before we get started, if you want to earn Gridcoin, you should decide if you want to do Solo Mining or Pool Mining. The main difference is that Solo Mining requires approx $50 in Gridcoin to get started whereas pool mining has no minimum but earns you slightly less rewards. Solo Mining also also requires that your Pi be online all the time and staked, whereas Pool mining does not. This is a screenshot from the main page at gridcoin.us, we encourage you to check it out.
Wait, pool? Stake? Rewards? Nodes? Wallets? What do all these words mean? Let’s do a quick rundown if you aren’t familiar with the terminology:
Gridcoin = A cryptocurrency (abbreviated as GRC) which rewards users for staking coins and doing computational work for scientific projects
BOINC = The Berkeley Open Infrastructure for Network Computing, a program you install on your computer that volunteer’s your computer’s spare computational ability for scientific projects of your choosing.
Staking/Solo Mining = Keeping some of your Gridcoins in an online wallet to help secure the network. A staker will be chosen at random to add new blocks to the Gridcoin blockchain. When a new block is created, it records new transactions on the blockchain, gives a 10GRC reward to the staker, and will issue BOINC research rewards (GRC) to the staker. Your odds of staking are determined by the amount of coins you have staked relative to the total amount of coins staked by other users. As of writing this article, staking 5,000 GRC will mean you stake (and earn rewards) about once per month. Each time you stake, you earn any accumulated research rewards since your last stake. For more information, see What is Staking?.
Pool Mining = Pool mining is a simpler, easier way to get started earning Gridcoin Research Rewards for your BOINC work. The pool handles the staking and gives you reward proportional to your contribution to the pool. Typically they keep a small portion of the rewards to compensate them for the administrative overhead of managing the pool.
Gridcoin Node = A computer online and connected to the Gridcoin network (what we will be using your Raspberry Pi for). This is required for solo staking/mining but not required otherwise. You will also see this referred to as the gridcoin client/wallet.
Wallet = A file on your computer containing the private keys needed to access and spend your GRC. If you lose access to your wallet, you lose access to your GRC and nobody can get it back for you.
RAC = Recent Average Credit, a number used by BOINC and the Gridcoin client to measure your contribution to scientific projects.
CPID = A random-looking string of letters and numbers which your RAC is credited to. Think of it as a username that works across all your BOINC projects.
If you are going to be doing solo mining, it is strongly suggested that you register an account at BAM (the BOINC Account Manager) or another account manager of your choosing, choose your projects, do 1-2 days of crunching on something that’s not a Pi, and come back to this guide. This can help you avoid several problems including your CPID not being standardized yet and your beacon failing because you haven’t earned any RAC. Pool miners and people not interested in earning GRC for their BOINC work don’t need to worry about any of this, so just keep reading if that’s you.
Step One: Install DietPi
There are many different operating systems you can install on your Raspberry Pi. For this guide, we will be using DietPi because it is significantly more lightweight than the official Raspbian distribution. It is based on Raspbian and offers the same software selection. The more lightweight your distribution, the more CPU cycles can go towards BOINC and the longer your SD card will last. DietPi is designed to minimize wear on the SD card which is critical for long-term crunching.
To get started, head over to the DietPi website and download the image for your Raspberry Pi. It is critical that you download the 64-bit image for this guide to work and to crunch on BOINC. If you have never flashed an image to a MicroSD card before, here’s a quick guide on that.
Step Two: Configure DietPi for optimal installation
Now that we have DietPi installed, plug in your MicroSD card and turn on your Raspberry Pi, making sure that it is connected to your network with an ethernet cable (we can setup wifi later). You will need to find your Raspberry Pi’s IP address and login to it remotely via SSH. Your username will be root and your password will be dietpi. How to use SSH is documented at the official raspberry pi website for Linux/OS X and Windows. Because your username is root instead of pi, you will need to use the command ssh root@IP instead of pi@IP given in the guides. Dietpi also provides a non-root user dietpi with the same password. If prompted, say “yes” to whether or not you should save or trust the host fingerpint/key.
Once logged in via SSH, you will be prompted with some setup menus and most of the defaults will be fine. For security reasons, it is crucial that you select a good password when prompted! You will potentially be prompted for two different passwords, it is fine to use the same password for both the software and login, though you can make them separate if you want, the only one you’ll have to remember is the login password (not the software password). You can specify a wifi connection if you’d like, though a direct ethernet connection is strongly advised for speed and reliability reasons. If you choose wifi, storing things in network shares will not work reliably using this guide but everything else should work. Once the configuration is done, it should drop you to a window with the title “dietpi-software”. Using the arrow keys, go to SSH Server and select “openSSH server”, we are replacing dropbear so we can use a tool like FileZilla to get files to and from the DietPi. Then scroll down to install and begin the installation process. Once done, it should drop you to a command prompt that says “root@dietpi”. Run the command dietpi-config by typing it in and hitting the enter key.
We suggest changing the hostname at this point, this is the computer name that will show up in BAM or whatever account manager you are using for BOINC, so use something that will describe this computer. Keep in mind that anybody can see your hostname. In dietpi-config, go to security options -> change hostname and put in your desired hostname. Hostnames can contain letters, numbers, and no spaces and should be kept fairly short. It will prompt you to reboot but skip the reboot for now. If you will never be using a monitor with this pi, we suggest disabling the display entirely to save some memory, again, so we have more for BOINC to work with. Go back to the main menu then Display -> Resolution and set to headless. Now exit dietpi-config and restart when prompted.
Wait a minute or so for it to reboot and then try to login via SSH again. Note that from here on out we will be logging in under the dietpi account instead of root. If while trying to login you get an error about the SSH key not matching correctly, we need to delete the old key by running the command ssh-keygen -R IPOFDIETPIHERE on the machine you are connecting from, then reconnect with ssh dietpi@IP. The error message may say “ECDSA host key for XYZ has changed” or “Host key verification failed”. Now you should be able to login just fine.
Since this machine will hold a wallet containing the amount of coin required to stake, we want to make sure it stays up to date with all the latest security patches. Run the command sudo apt -y install unattended-upgrades to enable it. Note that this will automatically update the operating system but not Gridcoin which unfortunately does not have an auto-update function. If there’s ever any major security holes discovered in the Gridcoin software, you’ll need to update it manually.
Step Three: Mounting a network share or external drive to your Raspberry Pi
If you will be storing your BOINC and Gridcoin data on a network share or external hard drive/flash drive, then this section is for you, otherwise skip ahead to the next step and replace /media/storage/boincstorage with /var/lib/boinc-client and /media/storage/grcstorage with /home/dietpi/.GridcoinResearch all subsequent steps.
We strongly suggest using external storage to decrease reads and writes to your MicroSD card, which otherwise would cause it to fail quite quickly.
External drive: If you want to use an external hard drive or flash drive, you should format it to exFAT or FAT32. Simply plug it in and run sudo dietpi-drive_manager and find your drive. Your drive will likely be /dev/sda. It will not be mmcblk0, that is your SD card. Select your drive with enter and then choose mount. It will have you choose a “mount target”, the default is fine, your “mount target” is where files on your drive appear on your system. The mount target listed will be used in place of /media/storage used in further examples. Once done, select back to exit dietpi-manager and skip ahead in this tutorial to “making app folders”
Network mount: We are assuming you are connecting a standard windows share using samba/cifs, if you are using something different like NFS, adjust these instructions accordingly. Note that if you are using wifi, sometimes this auto-mount script may run before wifi starts which results in these folders not mounting properly. You’re on your own there :p. For mounting the network share, first we need to make the folder we will be mounting the data to. For example, we will be making the folder /media/storage, you can use whatever you want, just update the commands later in the tutorial with the proper locations, or use our example to keep things simple. To make these folders, run the command sudo mkdir folderlocation for example sudo mkdir /media/storage.
Now that we have made the folder, we must tell the DietPi system how to mount the network share. For this, we will add entries to our rc.local file, which is run every system startup. Run the mount command in the format below, changing the 192.168.0.1/sharedfolder to match your network folder.
mount -t cifs -o username=yourusername,password="yourpassword",uid=dietpi //192.168.0.1/sharedfolder /media/storage
If the command doesn’t result in any errors, we’re set! Now all we need to do is still dietpi to do this every startup. Open a text editor by typing the command nano /etc/rc.local and replace its (hopefully) empty contents with the following. Note the ampersand we’ve added to the end of the command. When done, hit Ctrl+X to exit nano and save the file.
sleep 1
mount -t cifs -o username=yourusername,password="yourpassword",uid=dietpi //192.168.0.1/sharedfolder /media/storage &
Making app folders: Run a sudo mkdir /media/storage/grcstorage and sudo mkdir /media/storage/boincstorage to make two new folders for storing Gridcoin and BOINC data respectively.
Verifying results: Issue the command shutdown -r now to restart your Pi. SSH back into the pi and check that these folders are mounted, which you can do with the command mount where you should see the external drive or network mount you created . You can also issue a ls /media/storage to see which files are already there.
Step Four: Installing BOINC and BOINC Account Manager (BAM)
Now that we’ve finally got all the basics setup, it’s time to install BOINC with the command sudo apt -y install boinc. if you only want to run a Gridcoin node/wallet/solo stake you can just skip this BOINC section. If you want to earn research rewards for your BOINC work using this Gridcoin node, you must install BOINC, but if you don’t want BOINC to do any actual crunching work on your Pi, we’ll show you how to disable that. The Gridcoin client just needs BOINC installed alongside it to verify your CPID.
You can use the BOINC Account Manager (BAM) to manage your various BOINC hosts or a mining pool. Note that any accounts you create through your account manager will share the same CPID, so you can crunch with many machines and get Gridcoin for all of the crunching, not just the crunching done on the pi. Your CPID is a unique string of letters and characters that identifies your crunching credit across BOINC projects.
If you haven’t done so already, create an account on the BAM site or your chosen pool. Not all BOINC projects handle special characters in passwords gracefully, so it is suggested to only use letters and numbers.
Once you have your account, run the following command to attach BOINC to your account manager boinccmd –acct_mgr attach “https://bam.boincstats.com” “yourusername” “yourpassword”. If you are using a pool, replace the BAM address with your pool’s address. Note that if you are using your weak account authenticator for BAM (you will know if you are doing this), put it in as both the username and password. If you are crunching with a pool, you will use the pool’s URL and username/password instead of BAM’s.
Now go back to the account manager site and set the work preferences you want for your Pi. (You can do this by going to the Hosts link on the left under BAM!). Keep in mind there is no difference between “in use” and “idle” for your pi, so we suggest keeping those two sets of preferences the same, and pausing BOINC if CPU usage is over 25% as it means that other cpu-intensive tasks like installing updates are running. It is up to you how hot you want your Pi to run, but we suggest no more than 80% CPU usage to prevent CPU throttling/overheating.
Once you’ve assigned work preferences to your Pi, they will eventually propagate to the pi, but to speed things up, run the command boinccmd –acct_mgr sync to force the sync. You can use boinccmd –acct_mgr info to verify that you are correctly attached to your account manager.
If you will be storing BOINC’s data on the MicroSD card, you’re all done! Otherwise, we need to take a few more steps to tell BOINC about the network share. Run the following commands, noting not to include the comments (the # and anything following it):
sudo systemctl stop boinc-client #stops BOINC temporarily
sudo nano /etc/default/boinc-client #find line starting with BOINC_DIR and change it to point to the BOINC storage location (/media/storage/boincstorage for example)
sudo mkdir /media/storage/boincstorage #make BOINC storage directory if it doesn't already exist
sudo cp -RL /var/lib/boinc-client/* /media/storage/boincstorage/ #copy all existing BOINC data to new storage location
sudo rm -r /var/lib/boinc-client/* #delete original data
sudo chown -R boinc /media/storage/boincstorage #make sure BOINC is able to access new storage location. Depending on whether you are using a network share, USB drive, etc this may give an error, about being unable to set permissions, you can safely ignore it
As a final step, we must tell BOINC (and the systemd process that starts it at bootup) about our new storage location. Run the command sudo systemctl edit boinc-client and replace the file’s contents with the information below, being sure to update the /media/storage/boincstorage section to match your setup.
[Service]
Restart=always
RestartSec=10
StartLimitInterval=0
ExecStart=
ExecStart=/usr/bin/boinc --dir /media/storage/boincstorage/
Now that we’ve edited the file, let’s tell your system about the new BOINC parameters
sudo systemctl daemon-reload # notify system about changes we made
sudo systemctl start boinc-client #start the BOINC client
sudo systemctl status boinc-client #verify that BOINC is running successfully
sudo systemctl stop boinc-client #stop boinc client so machine isnt slow while we do the rest of the setup.
Alrightey, BOINC is setup and crunching and you should see some stats in BAM within the next day or so. Depending on which projects you are crunching for, it’s not rare to see the Pi take a day to complete a workunit.
Step 5: Installing the Gridcoin client on your Raspberry Pi and Staking
If you are doing pool mining, skip this section entirely. We’re almost there! Now we need to install the Gridcoin client/wallet by building it from source because there is no official packaged binary for Raspberry Pi. Don’t worry though, it’s totally doable! Run the command below to install the pre-requisites:
sudo apt -y install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils libzip-dev libfreetype6-dev git libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libboost-iostreams-dev libcurl4-gnutls-dev libminiupnpc-dev ; sudo apt -y autoremove ; sudo apt -y autoclean
- Download the Gridcoin software with git clone https://github.com/gridcoin-community/Gridcoin-Research;cd Gridcoin-Research;git checkout master
- Make the gridcoin storage directory if you haven’t already and adjust to your appropriate storage location with sudo mkdir /media/storage/grcstorage
- Insure gridcoin has permission to access the storage directory with this command. It’s safe to ignore errors saying it can’t set permissions sudo chown -R dietpi /media/storage/grcstorage
- Compile the berkeleyDB version since the one in the Debian repos is too new for Gridcoin: ./contrib/install_db4.sh “$PWD“
- Tell the Gridcoin compiler about the berkeleyDB version with export BDB_PREFIX=’/home/dietpi/Gridcoin-Research/db4′
- Run the autoconfigure script with ./autogen.sh, if you see any major errors, something has gone wrong
- Run the configure script ./configure BDB_LIBS=”-L${BDB_PREFIX}/lib -ldb_cxx-4.8″ BDB_CFLAGS=”-I${BDB_PREFIX}/include” –without-gui
- Before we run the make command to compile the software, we need to create a temporary swap file as the compilation process takes more memory than the smaller Pis have. We need to pick a location with >6GB free, which can be our our SD card (/swapfile) or our external storage (/media/storage/swapfile). Use the SD card if you can for speed reasons and edit/run the following command replacing /swapfile with /media/storage/swapfile if you are using external storage. sudo dd if=/dev/zero of=/swapfile6GB bs=1M count=6144;sudo mkswap /swapfile6GB;sudo swapon /swapfile6GB. This command may take a minute or two to complete.
- Run make -j 1;sudo make install to compile the software and install it. This will take a while, it took over 60 minutes on our 8GB RAM Pi. It may appear to be stalled but it probably isn’t.
- Delete the swap file we created with this command, it may take some minutes to complete: sudo swapoff /swapfile6GB;sudo rm /swapfile6GB
- Find your CPID by going to the BAM website and going to the main account page. If you see no CPID, you can also run the command cat (update to suit your storage location) /media/storage/boincstorage/*state.xml|grep external_cpid. So long as all the external_cpids match, use the CPID it finds. If you see multiple CPIDs, wait a day or two for them to sync up.
- Edit the Gridcoin config file with sudo nano /media/storage/grcstorage/gridcoinresearch.conf. Below is a sample config file with all the sections explained (you need to edit this!):
#your settings you absolutely must change
datadir=/media/storage/grcstorage #where Gridcoin stores its data, modify to suit your setup
boincdatadir=/media/storage/boincstorage/ #where BOINC stores its data, modify to suit your setup
email=email@example.com # your e-mail used to register at BAM or your mining pool
#sidestaking settings to help the network
enablesidestaking=1 # sidestaking is a painless way to send a percent or your mining rewards somewhere useful. Set to zero and delete the following sidestake lines if you dont want to do it. This costs you pennies a month at current GRC values Change the number at the end to change the percent donated, it must be a whole number like 1 not 1.5. Only six sidestakes will be used on any given block that you mine, if you have more than six sidestakes, which ones end up being used will be picked from your sidestakes at random.
sidestake=bc3NA8e8E3EoTL1qhRmeprbjWcmuoZ26A2,1 #1 percent donation to the GRC foundation to support continued development and promotion of gridcoin.
sidestake=S6yZU8pZ9vkepNjT46dPfLrzqCi7znAR4H,1 #1 percent donation to this author as a way of saying thanks for helping you setup your node. I spent many hours testing and writing this guide (and keeping it updated), it would be suuper appreciated
sidestake=SK7WASoXZFQrQLwTmabkS3Co8RUq6UevDU,1 #1 percent donation to gridcoinstats.eu which is an invaluable block explorer tool that you will almost certainly end up using at one point or another
sidestake=SLymYcWWoJrC3vZ1fF4ZVebfbzfs9Kziy9,1 #1 percent donation to SiDock, a protein docking BOINC project currently focusing on COVID-19 and whitelisted in Gridcoin.
rpcpassword=yourpassword # pick a strong password which is a long string of numbers and letters without spaces. You dont need to remember this
#listening options
listen=1 # set to 1 to enable listening mode. In listening mode, your node helps share blockchain contents with other nodes which helps the network. In order for this to work reliable you should forward port 32749 on your router, otherwise Gridcoin will try to do this automatically with UPNP. Set this to 0 to disable which is suggested if you are on a metered or slow connection. This option may take significant bandwidth if set to 1.
#everything below here is mandatory just leave it as is
server=1
daemon=1
rpcallowip=127.0.0.1
rpcuser=gridcoinrpc
addnode=www.grcpool.com
addnode=node.gridcoin.us
- Edit the systemd config file for Gridcoin so it start up properly and restarts if it goes offline with a sudo nano /lib/systemd/system/gridcoinresearchd.service. Replace the contents with the contents below. If you are not using network storage, just delete –datadir=/media/grcstorage
[Unit]
Description=Gridcoin daemon services
After=tlp-init.service
[Service]
Type=forking
RemainAfterExit=yes
ExecStart=/usr/local/bin/gridcoinresearchd --datadir=/media/storage/grcstorage
Restart=on-failure
RestartSec=3
User=dietpi
[Install]
WantedBy=multi-user.target
Alrightey, moment of truth, let’s tell the system about the updated config files and see if Gridcoin launches! Tell the system about your changes with sudo systemctl daemon-reload, set Gridcoin to run at startup with sudo systemctl enable gridcoinresearchd.service and start Gridcoin with sudo systemctl start gridcoinresearchd.service.
There are a number of commands known as RPC commands that we can issue to the Gridcoin client. Each command is in the format gridcoinresearchd command commandoptions. So, for example, if we want to see how along the sync process our client is, we can run the getblockcount command with gridcoinresearchd getblockcount. If you are using a network or external storage directory, you must include that like /usr/local/bin/gridcoinresearchd –datadir=/media/storage/grcstorage getblockcount. Go ahead and run that command and you should see the current block count that your client has found. You can compare that to the current block count to see how far behind your client is. Note that it may take a few hours or a day or two on a slow connection to get fully synced, you can keep following this guide though in the meantime.
Alright, so if we want to Solo Mine, we must stake, which means having a minimum amount in our wallet. But wait, we don’t have a wallet! Let’s create our first public receiving address with /usr/local/bin/gridcoinresearchd –datadir=/media/storage/grcstorage getnewaddress. This will give us an address to receive coins. We can check our balance at any time with /usr/local/bin/gridcoinresearchd –datadir=/media/storage/grcstorage listaddressgroupings. Note that transactions can take a few minutes to confirm, and that command only shows confirmed transactions. If you don’t already have some Gridcoin to send to your wallet, you’ll need to buy some, current numbers mean it takes approx $50USD of GRC to stake once per month. If you’re US-based, the easiest way is to make an account at Coinbase, and buy a crypto of your choice (zcash is a great option for low fees, BitCoin and Ethereum are other popular choices). Once your buy is confirmed, you will need to convert it to Gridcoin using a conversion service such as flyp.me and send it to your wallet. It is strongly suggested to do this first with a test amount <$5 to make sure you’re doing all the steps correctly and then doing it with the remaining full amount needed to really fund your wallet.
PS Now that you have a wallet, run the backupwallet RPC command to make a backup in case the original ever gets corrupted. This will make a backup in the storage location for your Gridcoin client. If you want to do this once a week (strongly suggested!), run crontab -e and add the backup command at the end of the file like so:
* * 7 * * /usr/local/bin/gridcoinresearchd --datadir=/media/storage/grcstorage backupwallet >/dev/null 2>&1
Once we have the gridcoin in our wallet, we must wait 16 hours before it can be used for staking. We will use the getmininginfo RPC command to check if staking is being done, you should see “staking: true” if it is. You will need to wait before continuing further.
Step 6: Getting Gridcoin rewards for your BOINC work
Now that we have Gridcoin setup and staking, we will receive the 10GRC staking reward if we stake a new block, but we also want to be receiving Gridcoin for our BOINC work. If you are a pool miner, you can skip this entire section because the pool handles all this for you.
It is worth noting that Gridcoin only rewards work for projects on their whitelist, which is decided on by community vote. Additionally, some projects do not automatically export per-user stats due to their interpretation of GDPR, so you must opt-in at each project individually. Instructions for doing this are on the whitelist page. If you do not do this, you will not get credit for your work on these projects. Pool miners don’t need to worry about this, since you are using the pool’s account to do mining.
In order to get credit in Gridcoin for our BOINC work, we must tell the Gridcoin network that our wallet address is associated with our BOINC CPID. This is done by creating a “beacon” on the Gridcoin network and waiting for other peers to verify it.
- Run the RPC command advertisebeacon to create a beacon. It will print out a “verification code”.
- Login to any of the whitelisted projects you participate in and change your name/username to this verification code. If you are using BAM, your username/password combination is your BAM e-mail address and your BAM password.
The next time the project exports stats, your beacon will activate, and you will be eligible to receive BOINC rewards for your work any time a block is mined. Beacon activation can take up to 48 hours, and you can check the status of your beacon with the RPC command beaconstatus. Your beacon will initially show as “pending” and will be moved to “active” when confirmed.
That’s it, you’re done! You are now a solo miner on gridcoin and earning rewards for your BOINC mining. You can keep an eye on your node, earnings, and more at gridcoinstats.eu. Just paste your CPID into the search box.
If this guide has been helpful to you, feel free to send me some GRC to S6yZU8pZ9vkepNjT46dPfLrzqCi7znAR4H as a way of saying thanks. If you have questions , if something didn’t work the way you expected it to, or if you found parts of this guide confusing or incorrect, please let me know by emailing alex{at}cascadiarecovery.com. Thank you!
If you use BAM, please also consider donating GRC to them. Do not use sidestaking for BAM b/c their wallet is hosted no an exchange which means they may not get much of the rewards you sidestake to them: SCX3oGZdP1hb3AZaQGjRgpdKR6QygBxFif