Running Your Own Decred PoS (Proof of Stake) Wallet

Running Your Own Decred PoS (Proof of Stake) Wallet

If you have hundreds or thousands of DCR (or just want to experiment), you may consider running your own Decred PoS Wallet.

Summary of things to consider:

  • Each ticket costs a certain amount of DCR to purchase.
  • Your DCR funds may be locked for an average of 1 month and up to 4 months.
  • You have a 99% chance that you will earn a reward before the 4 month expiration.
  • If your ticket gets picked, you will get the reward, plus the cost of the ticket, minus the transaction fee.
  • If your ticket does NOT¬†get picked or if it gets picked while your wallet is offline or locked, you will get the cost of the ticket back minus the transaction fee.

More detailed info will follow, but let’s start with how to enable your current wallet to start Decred PoS mining.

Here is a standard enablestaking command:

dcrwallet -u YourUserName -P YourUserPassword --enablestakemining --ticketmaxprice=10

A good place to check what you should set the ticketmaxprice would be at: https://dcrstats.com/

Now unlock your wallet without a time limit:

dcrctl -u YourUserName -P YourUserPassword --wallet walletpassphrase "Your TOP SECRET Passphrase Here" 0

To see your current stake info:

dcrctl -u YourUserName -P YourUserPassword --wallet getstakeinfo

Here you will also see the difficulty, which is how many DCR each ticket currently costs.

Using cgminer with Bitmain Antminer U3 on Ubuntu

I decided to move my USB Antminer U3’s to an old laptop, to free up my windows machine for important stuff like games.

First make sure you have the necessary libraries:

sudo apt-get install build-essential autoconf automake 
sudo apt-get install libtool pkg-config libcurl3-dev libudev-dev
sudo apt-get install libc6 libcurl3-gnutls libjansson4
sudo apt-get install libncurses-dev

Download the latest cgminer:

mkdir ~/source
cd ~/source
git clone https://github.com/ckolivas/cgminer.git
cd cgminer
./autogen.sh
CFLAGS="-O2 -Wall -march=native" ./configure --enable-icarus
make

Since cgminer needs access to the usb ports, you need to run it as root:

sudo ~/source/cgminer/cgminer --au3-volt 800 --au3-freq 237.50 -o stratum+tcp://hashpower.co:3333 -u YOUR_USERNAME_HERE_OR_BTC_ADDRESS -p c=BTC

Overclocking the R9 280x on Ubuntu

Well, I thought I would run some tests to see if I could get more performance from this card.

First of all DO THIS AT YOUR OWN RISK, you have been warned…

My Test Scenario:
—-
AMD Radeo R9 200 Series
Specifically: R9 280x
OS: Ubuntu 14.04 LTS
cgminer version 3.7.2
cgminer intensity: 5
—-

First some setup if needed:

sudo amdconfig --initial --adapter=all
sudo reboot

How to update your clock and memory:

Enable overdrive, and set the clock.

amdconfig --od-enable
amdconfig --odsc=1000,1500

Where 1000 is the spot for you clock, and 1500 is the spot for your memory. These are the default settings for the R9 280x.

To check your current settings and temperature:

amdconfig --odgc --adapter=all
amdconfig --odgt --adapter=all

Hint: put commands above in a gpu_info script and have it watched, or put it in the startup:

watch ./gpu_info
gnome-terminal  --geometry=63x13+1140+40 -e 'watch ~/bin/gpu_info'

Here is how my test went:

Core Memory GH/s  Temp     Notes
---- ------ ----  ----     -----
1000 1500   1.127 69.00 C  Default Core/Memory
1000 500    1.127 71.00 C  Underclocked Memory
1050 500    1.183 71.00 C
1100 500    1.255 72.00 C
1150 500    1.300 73.00 C
1200 500    1.345 74.00 C  Last stable core clock
1250 500    ????? ???????  Slowed down, then GPU shut down

Now that I have a stable core clock of 1200, I will experiment with the
cgminer intensity. I would let it run for about 30 minutes or more to
make sure it really is stable.

Then save the settings:

aticonfig --odsc=1200,500
aticonfig --odcc

Here are my results when messing with cgminer intensity:

Core Memory GH/s Temp Load Intensity Notes
---- ------ ---- ---- ---- --------- -----
1200 500 1.514 77.00 C 95% d Dynamic intensity is the safest and where I keep it.
1200 500 1.412 76.00 C 90% 6
1200 500 1.487 76.00 C 94% 7
1200 500 1.512 77.00 C 95% 8
1200 500 1.545 77.00 C 97% 9
1200 500 1.565 77.00 C 98% 10
1200 500 1.576 77.00 C 99% 11
1200 500 1.582 77.00 C 99% 12
1200 500 1.585 77.00 C 99% 13
1200 500 1.587 77.00 C 99% 14 Fastest, but desktop may become sluggish.

So for me, I keep it at 1200 core clock, 500 memory clock, and intensity d. There are diminishing returns for increasing the intensity, but may be worth it for some people.

Install opencl and drivers for Radeon R9 280x on Ubuntu

To get the drivers set up for your AMD card do the following.

System Settings/Software & Updates/Additional Drivers
Select fglrx-updates

If you have multiple GPU’s but only the first is being recognized, you may need to disable the GPU Manager. You will need to edit this file:

sudo nano /etc/default/grub

Change this line to:

#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="nogpumanager"

Now update grub and reboot:

sudo update-grub
sudo reboot

To list your GPU’s:

lspci | grep VGA
amdconfig --list-adapters

Now initialize your GPU’s:

sudo amdconfig --initial --adapter=all
sudo reboot

Now run clinfo:

clinfo

You should see your version of opencl:

Device OpenCL C version: OpenCL C 1.2

Now go ahead and set up cgminer, instructions are here:
http://www.reynoldtech.com/mining-decred-on-ubuntu-with-cgminer/


Notice: The info below is outdated, I’m now using the Ubuntu GUI to grab the additional drivers.

Find the drivers on the official AMD website:
http://support.amd.com/en-us/download/linux

Click on your version of Ubuntu (ex: Ubuntu 14.04 LTS 64-bit)

Download all the fglrx files for your version. There should be 4 of them.

Get to your download directory and copy them somewhere safe like:

mkdir ~/AMD_Driver_packages
cd ~/Downloads
cp *.deb ~/AMD_Driver_packages
cd ~/AMD_Driver_packages

I had to make sure my system had the dependencies

sudo apt-get -f install

Now that you are in the folder you will be doing all your installing from, go ahead and install:

sudo dpkg -i fglrx-core_15.302-0ubuntu1_amd64_ub_14.01.deb
sudo dpkg -i fglrx_15.302-0ubuntu1_amd64_ub_14.01.deb
sudo dpkg -i fglrx-dev_15.302-0ubuntu1_amd64_ub_14.01.deb
sudo dpkg -i fglrx-amdcccle_15.302-0ubuntu1_amd64_ub_14.01.deb

Now reboot

sudo reboot

Check that everything is installed correctly:

sudo dpkg -l fglrx fglrx-core fglrx-amdcccle fglrx-dev

Now run clinfo:

clinfo

You should see your version of opencl:

Device OpenCL C version: OpenCL C 1.2

Now go ahead and set up cgminer, instructions are here:
http://www.reynoldtech.com/mining-decred-on-ubuntu-with-cgminer/

Mining Decred on Ubuntu with cgminer

First create your account and worker on the pool you want to join.

If you need to install git:

sudo apt-get update
sudo apt-get install git

Download, compile, install from source code:

mkdir ~/source
cd ~/source
git clone https://github.com/decred/cgminer.git

If you need to install some extra libraries, here is what I used:

sudo apt-get install autoconf
sudo apt-get install libc-bin
sudo apt-get install libtool
sudo apt-get install libncurses-dev
sudo apt-get install curl
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install opencl-headers
sudo apt-get install ocl-icd-opencl-dev

Or all together:

sudo apt-get install autoconf libc-bin libtool libncurses-dev curl libcurl4-openssl-dev opencl-headers ocl-icd-opencl-dev

At this point you should have a newly created folder “cgminer”

cd cgminer
./autogen.sh --enable-opencl
make
sudo make install

Test cgminer (hit “q” when your done testing):

/usr/local/bin/cgminer --blake256 --benchmark

Start mining:

/usr/local/bin/cgminer --blake256 --intensity d -o http://dcr.suprnova.cc:9110 -u YourPoolUser.YourPoolWorker -p YourPoolPassword -o http://dcr.pool.mn:4722 -u YourPoolUser.YourPoolWorker -p YourPoolPassword

You may want to further configure your cgminer.conf by adding/updating these settings in ~/.cgminer/cgminer.conf:

"pools" : [
        {
                "url" : "http://dcr.suprnova.cc:9110",
                "user" : "YourUserName.YourWorkerName",
                "pass" : "x"
        }
]
,
"api-allow" : "W:192.168.1.###",
"api-listen" : true,
"expiry" : "30",
"queue" : "0",
"scan-time" : "15",

To start mining on reboot, add this command to your “Startup Applications:

gnome-terminal -e '/home/reynold/bin/run_cgminer_decred' --geometry=80x40+80+40

DCR (Decred) The New Crypto Currency

Decred which is traded as (DCR) on only a couple of CryptoCoin exchanges at the time of this post is very promising.

Promising in a way that it addresses Bitcoin’s current flaws and may be the next dominant CryptoCurrency. Such a bold claim to become Bitcoin 2.0, but this coin and the community has what it takes.

Want technical details? Go here: https://www.decred.org/

There is still a lot to do, and a long way to go, but they have a solid plan and a Decred Constitution.

I was amazed when I read this, as they have clear direction and seek to bring back the spirit of what Bitcoin was supposed to do.

I’ve been able to set up my Decred Wallet, and even attempted to mine decred both solo and in a pool.

During testnet, my humble ~375 MH/s graphics card would find blocks and let me know everything is working.

Now that mainnet is up, I haven’t found any blocks as there is already too much competition with those who have mining rigs with open air GPU card sleds that will put gaming systems to shame.

This did not daunt me however, as I was able to purchase some DCR from the exchanges and set up my system for POS (Proof of Stake) mining.

Hybrid Proof-of-Work Proof-of-Stake

Since my 5 ASIC’s that were used for Bitcoin and other sha256 alt coins are useless for mining Decred, I point them to coins that can be traded for Decred.

Later, I’ll set up the POS wallet somewhere that will not be affected by my home internet connection and power grid. Will give more details about this later.

Decred setup on Windows x64 and mining on Testnet

Since Decred is using blake256, I will be setting up mining on my windows machine because it has a better graphics card.

Info for the setup came from here:

https://forum.decred.org/threads/public-testnet-binaries-source-code-and-documentation.334/

Download the binaries:

https://github.com/decred/dcrd/releases/tag/v0.0
https://github.com/decred/cgminer/releases/tag/v0.0

The quick reference guide will help you:

https://wiki.decred.org/Quick_Reference

Start the decred daemon the first time:

dcrd.exe -u YourUserName -P YourPassword

Start the decred wallet and get a new address:

dcrwallet --create
dcrwallet --dcrdusername=YourUserName --dcrdpassword=YourPassword /noclienttls

You will need to set up a passphrase that you should save. You will need it to unlock your wallet later.

Your wallet will get created somewhere here:

C:\Users\YourWindowsUserName\AppData\Local\Dcrwallet\testnet

Get a new address:

dcrctl --testnet -u YourUserName -P YourPassword --wallet getnewaddress

At this point, you will not need this wallet open to start mining, so you can shut it down, but you can unlock it and check the balance anytime you want when the wallet is running.

dcrctl --testnet -u YourUserName -P YourPassword --wallet getbalance
dcrctl --testnet -u YourUserName -P YourPassword --wallet walletpassphrase "your passphrase here" 9999999

Shut down and start the decred daemon again. Note that if you are on windows, you will need the –notls flag if you want to mine:

dcrd.exe --notls -u YourUserName -P YourPassword --miningaddr=YourNewDecredAddress

Now to start mining:

cgminer.exe --blake256 -o http://127.0.0.1:19109 -u YourUserName -p YourPassword --intensity d

Decred Installation on Ubuntu

Attempting to install Decred

Github project:

https://github.com/decred/dcraddrgen.git

GO installation:

sudo apt-get install gccgo-go
mkdir ~/gocode

Add to .bashrc

export GOPATH=$HOME/gocode

Now get the address generator:

go get -u github.com/decred/dcraddrgen

Currently getting errors, will update this post later…

EDIT: This post is old, I was able to get my decred wallet working and will post details in later posts.