bitcoind - Bitcoin mining on headless Ubuntu 12.04 server

Vertnode - An automated solution for installing Vertcoin node(s) on Single Board Computers

Hello Vertcoin Community,
Eager to contribute to the Vertcoin Community I began creating step by step walkthrough guides on how to get a Vertcoin node up and running on a Raspberry Pi, Raspberry Pi Zero and Intel NUC. Along with information to get a Vertcoin node up and running was also optional steps to install p2pool-vtc.
I decided that while this step by step guide might be helpful to a few, a setup script may prove to be useful to a wider range of people. I have this script to a point where I think it may be productive to share with a bigger audience, for those who are brave and have this hardware sitting around or like to tinker with projects; I invite you to test this setup script if you are interested, if you run into errors any sort of verbose console output of the error proves to be extremely helpful in troubleshooting.
The script was designed to produce a “headless” server... meaning we will not be using a GUI to configure Vertcoin or check to see how things are running. In fact, once the server is set up, you will only interact with it using command line calls over SSH. The idea is to have this full node be simple, low-power, with optimized memory usage and something that “just runs” in your basement, closet, etc.
Why run a headless node on a Single Board Computer?
The idea is to have this full node be simple, low-power, with optimized memory usage and something that “just runs” in your basement, closet, etc.
Required: USB Flash Drive 6GB - 32GB
Please note that the script was designed for Single Board Computers first and looks for an accessible USB Flash Drive to use for storing the blockchain and swap file, as constant writing to a microSD can degrade the health of the microSD.
Supports

Hardware

All of the hardware listed above is hardware that I have personally tested / am testing on myself. The plan is to continue expanding my arsenal of single board computers and continue to add support for more hardware to ensure as much compatibility as possible.
Functionality
It is worth noting that LIT can be ran with multiple configurations, the ones displayed in the Post Installation Report reflect values that run LIT with the Vertcoin Mainnet. Please be aware that the Vertcoin Testnet chain has not been mined 100% of the time in the past, if you make transactions on the Vertcoin testnet that do not go through it is likely because the chain has stopped being mined.
BE CAREFUL WITH YOUR COINS, ONLY TEST WITH WHAT YOU ARE OKAY WITH LOSING IF YOU USE THE MAINNET.

Vertcoin Testnet Coins

https://tvtc.blkidx.org/faucet/
I've included some documentation on LIT I created which includes information I found to be useful: https://github.com/e-corp-sam-sepiol/vertnode/blob/mastedocs/lit.md
Please visit the mit-dci/lit github repository for the most up to date information on lit: https://github.com/mit-dci/lit

Vertnode | Automated Vertcoin Node Installation Script

https://github.com/e-corp-sam-sepiol/vertnode

Recommended: Use Etcher to install the chosen OS to your microSD card / USB flash drive.

If you intend on installing Ubuntu Server 16.04 to your Intel NUC please use Etcher to install the .iso to your USB flash drive.
https://etcher.io/
PLEASE NOTE THIS SCRIPT MAY GIVE AN ERROR. THIS IS THE NATURE OF TESTING. PLEASE REPORT YOUR ERRORS IF YOU WANT THEM TO BE FIXED/RESOLVED. THANK YOU FOR BETTERING THE DEVELOPMENT OF THIS SCRIPT.

Ubuntu Server 16.04 Setup Details

You can use different clients to ssh into your node. One option is using PuTTY or Git Bash on Windows which is included in the desktop version of Git. If you are using Linux you can simply open a new terminal window and ssh to the IP address of your node (hardware you intend installing the Vertcoin node on).
You will need to know the IP address of your node, this can be found on your router page.
ssh 192.168.1.5 -l pi For example, this command uses ssh to login to 192.168.1.5 using the -l login name of pi. The IP address of your node will likely be different for you, in this example I am logging into a Raspberry Pi which has a default login name of pi.
A brief list of commands that can be used to check on the Vertcoin node status:
vertcoin-cli getblockchaininfo | Grab information about your blockchain
vertcoin-cli getblockcount | Grab the current count of blocks on your node
vertcoin-cli getconnectioncount | Grab the current count of connections to your node. A number of connections larger than 8 means that you have incoming connections to your node. The default settings are to make 8 outgoing connections. If you want incoming connections please port forward your Raspberry Pi in your Router settings page.
vertcoin-cli getpeerinfo | Grab the information about the peers you have connected to / are connected to
vertcoin-cli getnettotals | Grab network data, how much downloaded/upload displayed in bytes
tail -f ~/.vertcoin/debug.log | Output the latest lines in the Vertcoin debug.log to see verbose information about the Vertcoin daemon (ctrl+c to stop)
Thank you to all who have helped me and inspired me thus far, @b17z, @jamesl22, @vertcoinmarketingteam, @canen, @flakfired, @etang600, @BDF, @tucker178, @Xer0
This work is dedicated to the users of Vertcoin, thank you for making this possible.
7/20/2018 Thank you @CommodoreAmiga for the incredibly generous tip <3
You can reach me @Sam Sepiol#3396 on the Vertcoin Discord, here on reddit or @ [email protected]
submitted by ecorp-sam-sepiol to vertcoin [link] [comments]

Creating a Headless Staking Node on Ubuntu 18.04

Creating a Headless Staking Node on Ubuntu 18.04
##UPDATE## Step 8 - Option 2, has some bugs in the final build process. i haven't had time to work them out yet!

This guide will take you through building and running a headless x42 Full Node! The OS I am using here is Ubuntu 18.04, this guide picks up from a complete/fresh ubuntu install.
This is meant to setup a staking node and so this guide will run you through building, configuring and setting up staking. It will not cover sending transactions or anything else.
The things we are going to do:
  • Step 1 - Install .net core
  • Step 2 - Download The x42 Node Source & Compile It
  • Step 3 - Setting The x42 Node Up To Run On Boot
  • Step 4 - Setup A New Wallet
  • Step 5 - Configure The x42 Daemon
  • Step 6 - Get Address
  • Step 7 - Check Balance
  • Step 8 - Connect The UI Wallet To A Headless Node
  • Step 8 - [Option 1 - Use Installer] Connect The UI Wallet To A Headless Node
  • Step 8 - [Option 2 - Build/Compile UI Only] Connect The UI Wallet To A Headless Node # BROKEN#

Step 1 - Install .net Core

Here is the reference link:
https://dotnet.microsoft.com/download/linux-package-manageubuntu18-04/sdk-current
Register Microsoft Key’s & Install Their repos:
cd /tmp wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo add-apt-repository universe sudo apt -y install apt-transport-https sudo apt update sudo apt -y install dotnet-sdk-2.2 
Microsoft collect telemetry data by default, if you are part of the “tin foil hat brigade” you can set the following environment variable to turn it off:
echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" >> /etc/environment 
now you should be at a point where .net core is installed on your system… that wasn’t so hard was it! You can check by running the following command:
dotnet--list-sdks 
The output should look like this:
$ dotnet --list-sdks 2.2.103 [/usshare/dotnet/sdk] 

Step 2 - Download & Compile The x42 Node

This part assumes you have GIT installed, if not:
apt -y install git 
Now to pull down the source and compile it!
cd ~/ git clone https://github.com/x42protocol/X42-FullNode.git # “cd” into the source folder cd X42-FullNode/src/ 
Now .net core uses NuGet for package management, before we compile, we need to pull down all of the required packages.. its as simple as running (this will take a couple of minutes) inside of “X42-FullNode/src/”:
dotnet restore 
now we are ready to compile the source, execute (inside of “X42-FullNode/src/”):
dotnet build --configuration Release 
ignore the yellow warnings, this is just the rosyln compiler having a grumble.. if you get red ones then something went wrong! The “--configuration Release” will strip out all debug symbols and slim things down.. only a little, this optional parameter is not mandatory.
Once this is done everything is built/compiled, you can run the daemon directly from the repository, this can be done by going to:
cd ~/X42-FullNode/src/x42.x42D/bin/Release/netcoreapp2.1 dotnet x42.x42D.dll 
this will kick off the node, however if you exit SSH at this time it will kill the process! however I always recommend copying out the binaries to a separate folder. This can be done with the following:
mkdir ~/x42node mv ~/X42-FullNode/src/x42.x42D/bin/Release/netcoreapp2.1/*.* ~/x42node/ 
now we have everything we need to run the node outside the git repository! What we need to do now is run the node and have it create the default x42.conf file.. so
cd ~/x42node dotnet x42.x42D.dll 
feel free to hit “CTRL + C” to exit the application after a couple of seconds, by then the folders/files would have been created at the following path:
~/.x42node/x42/x42Main/ 

Step 3 - Setting The x42 Node Up To Run on Boot

Now we are going to create a service file so our x42 node automatically starts when the system is rebooted.
THINGS TO NOTE ABOUT BELOW.. CHANGE THE ##USER## to the username your currently using as these files are within your home directory!
We need to drop to root for this..
sudo -i cat < /etc/systemd/system/x42node.service [Unit] Description=x42 Node [Service] WorkingDirectory=/home/##USER##/x42node ExecStart=/usbin/dotnet /home/##USER##/x42node/x42.x42D.dll Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 SyslogIdentifier=x42node User=##USER## Environment=ASPNETCORE_ENVIRONMENT=Development [Install] WantedBy=multi-user.target EOF 
To enable the service, run the following (as the root user):
systemctl enable x42node.service 
BOOM.. the node isn’t running yet.. but next time the system restarts it will automatically run!
now lets exit out of root!
exit 
We can now start the node up and begin downloading blocks, by running the following command:
sudo systemctl start x42node.service 
if you want to check its loaded and see some of the output, you can run:
sudo systemctl status x42node.service 
an example of the output:
$ sudo systemctl status x42node.service ● x42node.service - x42 Node Loaded: loaded (/etc/systemd/system/x42node.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-01-24 15:47:55 UTC; 14s ago Main PID: 5456 (dotnet) Tasks: 23 (limit: 1112) CGroup: /system.slice/x42node.service └─5456 /usbin/dotnet /home/darthnoodle/x42node/x42.x42D.dll Jan 24 15:48:09 x42staking x42node[5456]: Batch Size: 0 Mb (0 headers) Jan 24 15:48:09 x42staking x42node[5456]: Cache Size: 0/50 MB Jan 24 15:48:09 x42staking x42node[5456]: Jan 24 15:48:09 x42staking x42node[5456]: =======Mempool======= Jan 24 15:48:09 x42staking x42node[5456]: MempoolSize: 0 DynamicSize: 0 kb OrphanSize: 0 Jan 24 15:48:09 x42staking x42node[5456]: Jan 24 15:48:09 x42staking x42node[5456]: info: Stratis.Bitcoin.Connection.ConnectionManagerBehavior[0] Jan 24 15:48:09 x42staking x42node[5456]: Peer '[::ffff:86.184.76.255]:52342' connected (outbound), agent 'x42:1.2.13 (70012)', height 213920 Jan 24 15:48:09 x42staking x42node[5456]: info: Stratis.Bitcoin.Connection.ConnectionManagerBehavior[0] Jan 24 15:48:09 x42staking x42node[5456]: Peer '[::ffff:86.184.76.255]:52342' offline, reason: 'Receiving cancelled.'. All node screen output can be found in the /valog/syslog file. 

Step 4 - Setup a New Wallet

With the Node running, we now need to setup and/or restore a wallet!
Everything will be performed through the API’s, however by default these API’s are listening on localhost (127.0.0.1), if you are connecting in remotely then this would be a problem since you cant hit that IP. The solution, SSH TUNNEL!
Execute the following command on your local system:
ssh -L 42220:localhost:42220 @ 
This binds the local port (on your system) with 127.0.0.1:42220 on the remote system, once you have executed the command you can type the following address in your laptop/desktop’s web browser and be able to access the API’s:
http://127.0.0.1:42220/swaggeindex.html 
It should look something like this:
https://preview.redd.it/9lzeg3vob8d21.jpg?width=482&format=pjpg&auto=webp&s=b5d574998816056140d5d6de7b03c56772a892fe
To Create a new wallet, first we have to generate some mnemonic works (e.g. the seed), you can do that by going to the following API:
/api/Wallet/mnemonic 
Hit the “Try it out” button which then prompts you for 2 fields:
https://preview.redd.it/dvbdllfrb8d21.jpg?width=722&format=pjpg&auto=webp&s=766d14bafba6facbcd56d31c63c0012748e682e5
Enter “English” and I would recommend 24 words as this greatly increases the seed strength! Once that is done you hit execute and then scroll down to see the “Response Body”, this should contain the mnemonic which you are going to use to create the wallet! This looks something like below:
https://preview.redd.it/6p4q0rsub8d21.jpg?width=603&format=pjpg&auto=webp&s=44b9265626467a43ca670b134c4d28187f475c2e
THIS IS VERY IMPORTANT, BACKUP THIS MNEMONIC TO A SAFE SECURE LOCATION THAT IS ENCRYPTED!!!
So now we have our mnemonic, its time to generate the wallet, for this we need to use the API:
/api/Wallet/create
There are a number of parameters which are required in order to create a wallet:
WalletCreationRequest{ mnemonic string password* string passphrase* string name* string } 
It should be noted that the password and mnemonic are is the most important parts of this request where the “password” will encrypt the wallet and Is required to unlock it.
  • Hit the “Try it out” button
  • input the necessary data
  • Insert the mnemonic
  • Put a password & passphrase
  • “Name” is what your wallet will be called
It should look something like the following:
https://preview.redd.it/958ttfbxb8d21.jpg?width=603&format=pjpg&auto=webp&s=ce48336436ea4b469b5e87513da802de0bf444ee
Hit “Execute”, the “Loading” sign may spin for a few minutes while the wallet is created… once the wallet has been created the “Response Body” will return the mnemonic you have just used.. we now have a wallet!!
HOWEVER IT IS NOT LOADED INTO THE NODE JUST YET!
This is where we will now jump back out and to configure the node to automatically load the wallet and automatically start staking when it first loads.
AGAIN BACKUP YOUR MNEMONIC AND PASSWORD, MAKE SURE THEY ARE ENCRYPTED AND STORED SOMEWHERE SAFE!

Step 5 - Configure The x42 Daemon

Now we are going to modify the x42.conf file in order to automatically load our wallet and start staking 😊
First things first, lets stop our node by running the following command:
sudo systemctl stop x42node.service 
CD to the following folder and view its contents:
~/.x42node/x42/x42Main ls -lah 
within that folder there should be 2 files you are interested in:
-rw-r--r-- 1 darthnoodle darthnoodle 18K Jan 28 16:01 TestWallet.wallet.json -rw-rw-r-- 1 darthnoodle darthnoodle 3.1K Jan 24 15:25 x42.conf 
So TestWallet.wallet.json is our physical wallet that will be loaded, but for right now we want to modify the x42.conf file.. fire up your favourite text editor (if you use VI you’re a masochist)..
nano x42.conf 
The area we are interested in is the following:
####Miner Settings#### #Enable POW mining. #mine=0 #Enable POS. #stake=0 #The address to use for mining (empty string to select an address from the wallet). #mineaddress= #The wallet name to use when staking. #walletname= #Password to unlock the wallet. #walletpassword= #Maximum block size (in bytes) for the miner to generate. #blockmaxsize=1000000 #Maximum block weight (in weight units) for the miner to generate. #blockmaxweight=1000000 #Enable splitting coins when staking. #enablecoinstakesplitting=1 #Minimum size of the coins considered for staking, in satoshis. #minimumstakingcoinvalue=10000000 #Targeted minimum value of staking coins after splitting, in satoshis. #minimumsplitcoinvalue=10000000000 
Uncomment (remove the #) of the following lines and change their value:
stake=1 (changed to 1) walletname=TestWallet (changed to our Wallet Name) walletpassword=password123 (changed to the wallet password) 
save the file and exit back to the command prompt, now we shall restart the node with the following command:
sudo systemctl status x42node.service 
now the wallet is automatically loaded and ready for action!
YES I KNOW YOU HAVE PUT YOUR PASSWORD IN CLEARTEXT, THIS IS WHERE YOU SHOULD HARDEN YOUR BOX. IF THEY CAN GET TO THE POINT WHERE THEY CAN READ YOUR CONF FILE THEY CAN JUST GRAB YOUR WALLET AND BRUTEFORCE THE PASSWORD.
You can check its loaded by going back to the API and executing the following command:
/Dashboard 
Or execute the following command on the NODE:
curl -X GET "http://127.0.0.1:42220/Dashboard" -H "accept: application/json" 
both will produce the same output, if you scroll to the bottom you should see something like this:
======Wallets====== TestWallet/account 0, Confirmed balance: 0.00000000 Unconfirmed balance: 0.00000000 
This means the wallet is loaded and ready for action!!

Step 6 - Get Addresses

Next thing you are probably going to want is a receive address and to check the balance and TX history.. so lets start with getting an address!
Go to the following API:
/api/Wallet/unusedaddress 
Fill in the Wallet name which is “TestWallet” (in this example) and “account 0” (which is the first/default account):
https://preview.redd.it/ayri5jk0c8d21.jpg?width=602&format=pjpg&auto=webp&s=2d16bbb78da49c0125d24d0834c9454d702cb7a1
Hit execute and you should have an x42 address within the “Response Body”:

https://preview.redd.it/tmc495j3c8d21.jpg?width=349&format=pjpg&auto=webp&s=b00177f66a9e24c980d3c6d4e532a33cbf3fb0bc
BOOM… ok now we can receive funds! 😊

Step 7 - Check TX History

Go to the API and the following call:
/api/Wallet/history 
The 2 fields we are most concerned about are:
https://preview.redd.it/lw194af6c8d21.jpg?width=602&format=pjpg&auto=webp&s=27e264bc008879355ff5b9c50a0a5cb06f16e960
Input the name of the wallet and account you want to view the history of, then hit execute. The other fields can be black. This will return a list of TX’s that the wallet has received:
This should look like the following:
https://preview.redd.it/x1hgargac8d21.jpg?width=585&format=pjpg&auto=webp&s=4fd25f22772f4bcec523a6e82b321ae8146a2c75
There is an easier way of doing this, that doesn’t require you to be connected to your node.. especially if your only interested in viewing your staking rewards… THE EXPLORER!
Access the following URL:
https://explorer.x42.tech/address/ 
this will allow you to easily see all TX’s associated with this address, it should look something like below:
https://preview.redd.it/e480grscc8d21.jpg?width=601&format=pjpg&auto=webp&s=0f8a9ebc7944dfcc73f7df659bd839bb983ba90c
… and your done! By this point your node should be running, staking and you have an easy way to view transactions/rewards 😊


Step 8 - Connect The UI Wallet To A Headless Node

The UI utilises a combination of technologies, however the important part is the code attempts to access the x42 Node API on 127.0.0.1:42220.
So you have 2 options here:
  1. Download the Wallet Installers
  2. Compile The UI Yourselves
Pick the option that best suits you given the pros/cons below:
Option 1 - Pro's/Cons
Pro's
  • If you use the installer, its quick and easy.
Cons
  • This also installs an x42 node on your system which runs when the UI loads.
  • If you dont setup an SSH tunnel before running the wallet the local node will bind to the port and the tunnel wont work.. you will be connecting to the local wallet!!
Option 2 - Pro's/Cons
Pro's
  • You only run the UI, the x42 node is not installed
  • you dont have a superfluous node running, downloading blocks on your local system
Cons
  • Time Consuming
  • Have to download dependencies and manually compile the code

Pre-Requirement - Needed For Both Options!!
As previously mentioned, the UI attempts to access the API's on 127.0.0.1:42220, however our node isnt running on our local system. IN ORDER TO GET IT WORKING YOU NEED TO HAVE AN SSH TUNNEL, THIS TUNNEL NEEDS TO REMAIN ACTIVE WHENEVER YOU WANT TO ACCESS THE WALLET.
this can be done by executing the following command:
ssh -L 42220:localhost:42220 @ 


Step 8 - [Option 1 - Use Installer] Connect The UI Wallet To A Headless Node

Download and install the UI/Wallet & Node from:
https://github.com/x42protocol/X42-FullNode-UI/releases

DO NOT RUN THE WALLET YET!
Those of us who dont want to run a local node and just want the UI, execute the following commands (as an administrator):
cd C:\Program Files\x42 Core\resources\daemon\ ren x42.x42D.exe x42.x42D.exe.bak 
The above is with Windows, if your are in *NIX then locate the daemon and rename it (i will update how to do that/where to find it shortly)
Setup the SSH tunnel as outlined above, Execute the wallet and it will load, however you will see an exception:

https://preview.redd.it/9os5h8q7scd21.jpg?width=550&format=pjpg&auto=webp&s=ac45ed7bc987917142075c61fb486e7d71f820d1
dont worry, this is just the wallet trying to execute/start the x42 node which we dont want, if all works according to plan.. after you click "OK" you should now be presented with the wallet UI and have the option to select what wallet you would like to load:

https://preview.redd.it/hnyt0b4mscd21.jpg?width=958&format=pjpg&auto=webp&s=a47df710a804375d8363ffcd77d1ede2862b9b4d
... DONE!

Step 8 - [Option 2 - Build/Compile UI Only] Connect The UI Wallet To A Headless Node ###BROKEN

THIS IS STILL A WORK IN PROGRESS, THE ELECTRON BUILD DOESNT WANT TO COMPILE BECAUSE SOME CODE IS MANGLED SOMEWHERE!!

Ok, this is the fun bit! .. we need to install the following dependencies. these instructions are written for a Windows system but it should be easy enough to perform the same on a *NIX system.
Install Dependencies
In order to build the wallet UI, you need to install the following components:
  • git
  • NodeJS
  • Electron Builder
First thing you need to do is install git, so download and install the package:
https://gitforwindows.org/
Next you need to install NodeJS, download and install the package:
https://nodejs.org/en/download/
Next we need to install the node package manager:
npm install npx –verbose 
next we need to make sure we have Visual Studio build tools and Python (2.7) installed, this can be done by executing the following (AS AN ADMINISTRATOR!):
npm install -g --production windows-build-tools 
this will install the necessary tools to build C#/C++ code and python 2.7, this could take some time! When its done you should have something like the following;

https://preview.redd.it/5ekfy5g1kcd21.jpg?width=490&format=pjpg&auto=webp&s=f65196dee6f78f2ececec5ee8b5df1044d68f635

Build & Install - Windows
Create a temp folder to navigate to a folder where you want to download the GIT repository, execute the following command:
git clone https://github.com/x42protocol/X42-FullNode-UI.git 
This will clone the repository into the folder, it will only clone the wallet and not the Node source! now lets CD into the folder and build the UI:
cd X42-FullNode-UI\FullNode.UI npm install 
This will download and install all dependencies (can take a while), at the end you should see something like..

https://preview.redd.it/0zfbfxa8kcd21.jpg?width=601&format=pjpg&auto=webp&s=438d072a6ab2bc7a3d84a8dfe773968acc762bc7
Now the stock UI has a number of third-party libraries which contain some vulnerabilities, being a security conscious person, ive also run:
npm audit fix 
when this is done, we have fixed most of the package vulnerabilities 😊 We also get a complaint about the typescript library being too new for the version of angular in use, so run the following command to install the additional dependency:
npm install [email protected]">=2.4.2 <2.7.0" 
now its time to build the UI, execute the following:
npm run build:prod 
once complete you should see something like the following..

https://preview.redd.it/56vf9zfckcd21.jpg?width=601&format=pjpg&auto=webp&s=31b72daff9ab5001843cba529a7bd38c76fd099d
Next its time to compile the electron binary, it should be noted that the build/package process utilises AppVoyer which is not installed and if you attempt to build right now you will get the following error:
cannot expand pattern "${productName}-v${version}-setup-${os}-${env.arch}.${ext}": env arch is not defined. 
To fix this we need to modify the build file, this is a quick one liner that can do it:
powershell -Command "(gc electron-builder.json) -replace 'env.arch', 'arch' | Out-File electron-builder.json" 
Essentially the offending line for Windows is..
"artifactName": "${productName}-v${version}-setup-${os}-${env.arch}.${ext}" 
The build cannot resolve “env.arch”, so the above one liner replaces “env.arch” with “arch” which works 😊
execute the following command:
npx electron-builder build --windows --x64 
At present i get the following error, no matter what i do.. and ive ran out of time to go hunting about.. if anyone has any ideas on how to fix then please post in here or message me on discord:

https://preview.redd.it/t66rtuqdtcd21.jpg?width=918&format=pjpg&auto=webp&s=a3f1a5ff682586348909c67645ca7ae9454922ff


Happy staking!

If you found this post helpful, then buy me a beer and send a donation to XQXeqrNFad2Uu7k3E9Dx5t4524fBsnEeSw
submitted by D4rthNoodle to x42 [link] [comments]

Lore v2 QT on Raspberry Pi

Hello,
 
To follow up to mindphuk's excellent piece on building the headless client on Raspberry Pi (https://www.reddit.com/blackcoin/comments/6gkjrw/wip_blackpi_a_stake_device_based_on_raspberry/), I thought if anyone was interested I'd show you how to get the full QT version running on the Pi on the Jessie with Pixel desktop. This works and has been soak tested for several days now on a standard Raspberry Pi 3. I have since added some coins and it stakes a handful of times a day.
 
Running staking Lore clients paves the way for some of the future use cases of BLK utilising the Bitcoin 0.12 (and newer) core tech, including colored coins. So I'm going to leave this one going indefinitely to kickstart the number of Lore clients staking. It's certainly not mandatory but it will be good in the longer term to have a nice distribution of Lore staking clients.
 
The cross-compile which lets you create binaries for multiple platforms didn't work for the QT version on the Pi, so there is more to do than just running the binary unfortunately, as below. There are folks working on some much cleaner solutions than this for the Pi, with a custom front end, and where you won't have to do any mucking about. That is coming soon. In the meantime, if you enjoy a fiddle with such things, here's how to get this QT client working on your Pi.
 
These instructions assume you are starting from scratch with a completely blank OS.
 
Download Jessie with Pixel from: http://downloads.raspberrypi.org/raspbian/images/raspbian-2017-07-05/2017-07-05-raspbian-jessie.zip
 
Note they have since (August 2017) released a version called 'Stretch' which does not work with this guide. I'll see if I can come up with something new for that at some point and link to it here when I have. In the meantime the guide should work with the Jessie image above.
 
Unzip the file and extract the .img file to burn it onto Fresh SD card to boot from (to be safe, use 16GB or larger), using a tool like win32diskimager or Etcher.
 
Assuming you have keyboard/mouse and monitor plugged into your pi, boot it up and the Jessie Desktop will show.
 
Before we do anything else, you should increase the default swap size on the pi, as compiling certain libraries can exhaust the RAM and get stuck otherwise. To do this, launch a Terminal window and type:
 
sudo nano /etc/dphys-swapfile 
 
and Change the CONF_SWAPSIZE from 100 to:
 
CONF_SWAPSIZE=1024 
 
Exit nano with control + x to write out the file.
 
Then, run the following to restart the swapfile manager:
 
sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start 
 
Now, launch the browser and download the Lore 2.12 binaries for ARM here: https://mega.nz/#!k2InxZhb!iaLhUPreA7LZqZ-Az-0StRBUshSJ82XjldPsvhGBBH4 (Version with fee fix from 6 September 2017)
 
(If you prefer to compile it yourself instead, it is possible by following the instructions in the original article by Mindphuk just taking into account this is the newer version of the Lore client than when that was written (https://github.com/janko33bd/bitcoin/releases) and the versions of Boost and the Berkeley DB need to be the same as below.)
 
Double click the zip and extract the Lore binary files. Yes, at the moment they are all called 'bitcoin', not 'blackcoin' or 'Lore' - this is because the code derives from a recent bitcoin core implementation so this has not yet been updated. You can place these wherever you like.
 
In the Terminal window, change directory to where you put the binaries, e.g.:
 
cd Downloads/lore-raspberrypi-armv7-jessie-pixel chmod +x * 
 
That marks the binaries as executable.
 
Now, we need the Boost libraries installed for any of the Lore binaries to work. The project was done with Boost 1.62.0. Unfortunately the Jessie repository only goes up to 1.55, so we need to download and build 1.62 manually on the device.
wget https://sourceforge.net/projects/boost/files/boost/1.62.0/boost_1_62_0.tar.gz/download tar -xvzf download cd boost_1_62_0 sudo ./bootstrap.sh sudo ./b2 install 
 
(This will take almost 2 hours. Have a nice cup of tea and a sit down.)
 
When I came to run the binaries, I found they couldn't find Boost. Running this command fixes that:
sudo ldconfig 
 
Now we are going to install the packages which aren't already included in the default OS installation which the binaries need in order to run:
sudo apt-get install qrencode libprotobuf-dev libevent-pthreads-2.0-5 
 
Now we need to install the Berkeley Database version 6.2.23. This is the version Lore v2 uses. Bitcoin still uses 4.8 which is 10 years old! This doesn't take too long.
wget http://download.oracle.com/berkeley-db/db-6.2.23.tar.gz tar -xvzf db-6.2.23.tar.gz cd db-6.2.23/build_unix ../dist/configure --prefix=/usr --enable-compat185 --enable-dbm --disable-static --enable-cxx 
 
I find this next section of the Berkeley instructions worked better just switching to root, which can be fudged by running sudo su before the rest:
sudo su make make docdir=/usshare/doc/db-6.2.23 install chown -v -R root:root /usbin/db_* /usinclude/db{,_185,_cxx}.h /uslib/libdb*.{so,la} /usshare/doc/db-6.2.23 
 
Now we're going to go up a couple of directories to where the binaries were:
cd ../.. 
 
Then run the client!
./bitcoin-qt 
 
And there you have it. Should hopefully end up looking a bit like this: http://imgur.com/a/eEHGa
 
Using the Bootstrap can save a while syncing. Download it at: https://www.reddit.com/blackcoin/comments/6b3imq/blackcoin_bootstrapdat_up_to_block_1631800
 
Place the bootstrap.dat file into the ~/.lore directory.
 
Run ./bitcoin-qt again, it will say 'Importing Blocks' rather than 'Synchronising with Network'. My pi sync'ed fully in about 5-6 hours.
 
If you want peace of mind that Lore will always start on bootup into the Jessie w/Pixel desktop (i.e. after a power cycle), then you need to create a .desktop file in the following place.
sudo nano ~/.config/autostart/Lore.desktop 
 
And in it, enter the following (tailoring the Exec line below to the whereabouts of your bitcoin-qt file):
[Desktop Entry] Name=Blackcoin Lore Comment=Mining without the waste Exec=/home/pi/Downloads/lore-raspberrypi-armv7-jessie-pixel/bitcoin-qt Type=Application Encoding=UTF-8 Terminal=false Categories=None; 
 
Power usage and payback time
 
After a good while leaving it going by itself, the CPU load averages got down to almost zero, all of the time. Idling, the Pi uses a bit less than 3 watts. This means it would take two weeks to use one 1Kw/h of electricity.
 
If you pay e.g. 12.5 cents a unit, that's what you'd expect this to cost to run in a fortnight. That's around $0.25 a month or $3 a year. Green and cheap and helping to secure the BLK network. I paid for the year's worth of electricity in 2 days staking with 25k BLK. Makes mining look silly, huh? ;)
 
Securing your Pi
 
With staking, your wallet needs to be unlocked and as such, the keys to your wallet are on the device. In a clean and newly installed environment as described above, and if you don't allow others to use your device and there is no other software or nasties running on it, there is no real cause for concern. However, there are some basic security precautions you can take.
 
Firstly, if you have enabled SSH and are playing with your pi across your LAN (or worse, the Internet), you should immediately change the password for the default 'pi' user (which is preconfigured to be 'raspberry'). Simply log in as normal, then type:
 
passwd 
 
You'll be prompted to enter the old and the new passwords.
 
Security by default
 
Your Pi is likely, by default, to not be exposed to incoming connections from the outside world because your router is likely generating a private address range for your LAN (192.168.x.x or 10.0.x.x or 172.x.x.x) which means all incoming connections are effectively blocked at the router anyway unless you set up a 'port forward' record to allow packets arriving on certain ports to be forwarded to a specific internal IP address.
 
As for accessing your Pi across the internet, if you have set up a port forward, this likely has security ramifications. Even basic old fashioned protocols have proven in recent times to have uncaught flaws, so it's always advisable to lock down your device as much as possible, and even if you only plan to access the Pi over your LAN, install a firewall to configure this. I used one called ufw, because it's literally an uncomplicated firewall.
 
sudo apt-get install ufw sudo ufw allow from 192.168.0.0/16 to any port 22 sudo ufw --force enable 
 
This allows just port 22 (SSH) to be open on the Pi to any device on my LAN's subnet (192.168.0.x). You can change the above to a single IP address if paranoid, or add several lines, if you want to lock it down to your LAN and a specific external static IP address (e.g. a VPN service you use). To find out what subnet your router uses, just type:
 
ifconfig 
 
and you'll see on the interface you are using (either hard wired or wifi) the 192.168 or 10. or 172. prefix. Change the above rule so it matches the first two octets correctly (e.g. 10.0.0.0/16 if you're on a 10.0. address).
 
You may already use VNC to access your Pi's desktop across your LAN, this uses port 5900. Add a line like above to lock it down to an internal address. It's not a good idea to expose this port to the wider world because those connections are not encrypted and potentially could be subjected to a MITM attack.
 
You can query the status of the firewall like this:
ufw status 
 
And of course, try connecting remotely once you change the rules to see what works. You should consult the official documentation for further options: https://help.ubuntu.com/community/UFW
 
Back up & Recovery
 
There are again many ways to tackle this so I'll just speak about my basic precautions in this regard. Don't take it as a be-all-and-end-all!
 
The wallet.dat file is the key file (literally) containing all the private/public keys and transactions. This can be found in:
 
~/.lore 
 
You can navigate there using Jessie w/Pixel's own file manager or in a terminal window (cd ~/.lore). You can copy this file or, if you'd rather keep a plain text file of all your public and private keys, use the 'dumpwallet' command in the console. In Lore, go to Help > Debug Window > Console and type 'dumpwallet myfilename' where myfilename is the file you want it to spit out with all your keys in it. This file will end up in the same place you launch bitcoin-qt from.
 
The instructions earlier on, when running Lore for the first time intentionally left out encrypting your wallet.dat file because in order for the wallet to stake upon startup, it needs to have a decrypted key already. This isn't perfect, but after a power cycle, it would never stake unless you left it decrypted. So the best practice here is as soon as the wallet.dat file has left your device, i.e. you copy it to a USB stick for example, put it in an encrypted folder or drive (or both).
 
In Windows, one way is to use Bitlocker drive encryption for the entire drive. You should follow the instructions here to encrypt your flash drive before your wallet.dat is on there, and don't forget the password!!
http://infosec.nmsu.edu/instructions-guides/how-to-enable-bitlocker-to-go-for-external-hard-drives-and-usb-flash-drives/
 
On the Mac, I use a software package called Concealer to encrypt files I store on the Mac itself: http://www.belightsoft.com/products/conceale   There are almost certainly free packages with similar functionality, I have just used that one for years.
 
Either way, if you want to just make sure your USB drive is encrypted, you can do so in one-click in Finder before you put the sensitive files on it: http://lifehacker.com/encrypt-a-usb-stick-in-finder-with-a-click-1594798016
 
Note that these disk encryption methods may mean having to access the USB stick on a PC or Mac in order to retrieve the files in the event of a disaster. Be aware this may mean exposing them to more security issues if your computer is in any way compromised or someone nefarious has access to your computer. There are more 'manual' ways of backing up and recovering, such as literally writing down private/public key pairs which this guide doesn't go into, but may suit you better if paranoid about your setup.
 
Recovery
 
The wallet.dat file has everything in it you need to recover your wallet, or if you used 'dumpwallet', the file you saved out has all the keys.
 
Wallet.dat method: Install Lore as normal then replace any auto-generated wallet.dat in ~/.lore directory with your backup. If a lot of time has elapsed and many transactions have occurred since your backup, launch lore with:
./bitcoin-qt -rescan 
 
And if that doesn't do the job, do a full reindex of the blockchain:
 
./bitcoin-qt -reindex 
 
If you used the dumpwallet command, install Lore then place the file containing all the keys that you saved out in the same directory as bitcoin-qt. In Lore, go to Help > Debug Window > Console and type 'importwallet myfilename' where myfilename is that file containing all the keys. The wallet should automatically rescan for transactions at that point and you should be good to go.
 
There are a million ways to do effective security and disaster recovery, but I hope this shows you a couple of basic precautionary ways. There are discussions about better ways to stake without compromising too much security which are happening all the time and developments in this regard will happen in time.
 
In the meantime, feel free to comment with your best practices.
 
submitted by patcrypt to blackcoin [link] [comments]

Just getting started, have a miner up and running...

Hey, Everyone.
This is a long post introducing myself and what I am up to. If you want to skip over my story, I have a question below about Litecoin pools.
My brother contacted me to talk because I'm an IT Pro, and he asked if I had looked into BTC mining. I told him I had heard of bitcoins, but didn't really ever look into it. Well... this weekend I took a trip down the rabbit hole and here I am with my first miner doing about 660Khash/s with a couple other CPU miners trickling on as well.
I've spent many hours learning about this from reading, trying miners, learning about the coming ASIC and how bitcoin and litecoin differ (sha-256 vs scrypt), so I feel like I'm starting to get my head around all of this. It became immediately obvious that mining BTC with a couple 7850's was a complete waste of time and effort. When I heard about litecoins, and realized they are still very new, I thought, what the hell, let's do it. I have a bunch of hardware laying around, so I might as well try it.
I don't know if I will ever make any money off of this, but I can tell you that I have had a friggin' blast Frankensteining a miner rig together. My miner is a 1st gen Core i7 (920) sitting on an ASUS P6T Delux mobo, and I went out and grabbed what I could at Best Buy for AMD cards, which are a couple XFX R7850 OC Edition units. They are garbage with awful cooling, but they were cheap, and local.
I'm running Ubuntu server 12.10 with Openbox and Roxterm for the interface. I got the idea from looking over some instructions for setting up a headless hashing machine over at hashcat.net. It's currently running cgminer, but I'm going to put a CPU miner on it today, since the i7 is idling at 0-.1% usage while mining on the GPUs.
The fun? Well, I'm a geek and this all reminds me of the mid 1990's when me and my gaming friends were buying Celeron chips and overclocking them for gaming, and putting the very first (VooDoo) 3D cards in our machines. Back then if you were tweaking on your hardware, shit was crashing all the time. Building a gaming rig now is easy, unless you are case modding and doing extreme overclocking.
I've made this Ubuntu server crash a few times, and overheated the video cards to shut down while I was tweaking all the settings.. I love that shit. Means I'm pushing it to the max for what I have available, just like the OG gaming days.
Can anyone point me toward a good, stable litecoin pool? I originally set up with Coinotron, but they have been down more than up over the last few days. I set up an account with Pool-X.eu, but their website is so slow I can't tolerate it. Right now I'm using Burnside's but I'm getting a lot of stales there (30%).
Is everyone having the same issues since litecoins aren't really mainstream yet, or am I just signing up with the wrong pools?
Looking forward to chatting with all of you, and thanks in advance for any advice you can offer.
submitted by Oceas to litecoin [link] [comments]

How to Bitcoin Miner with Ubuntu VPS server 2018 How to mine Bitcoin - Using Linux How to build an altcoin or bitcoin on Ubuntu Linux Server Shell How to mine Bitcoin with Linux to get 0.01 BTC How to mine Bitcoin Using Linux [2019]

Using NVIDIA 1080 TI Cards, Ubuntu Server 18.04, and Z-Enemy 1.26 to Mine Raven Here is the quick installation notes on how to mine Raven. My hashrate has almost doubled over running ccminer, on the same coin and same pool. Log into the rig sudo bash apt-get -y install libcurl3 mkdir /miner && mkdir /miner/drivers … Continue reading "Headless Mining RVN with Z-Enemy on Ubuntu 18.04" Bitcoin is getting all the press, and Bitcoin mining can be profitable. But the equipment is noisy, expensive, and hard to get. If you want to get started in crypto-currency, and have a little bit of technical knowhow, I recommend you build a GPU mining rig first. It’s set up to run headless on Ubuntu 16.04 LTS with the latest AMD drivers Bitcoin mining on headless Ubuntu 12.04 server [duplicate] Ask Question Asked 6 years, 4 months ago. Active 6 years, 2 months ago. Viewed 3k times 2. This question already has answers here: In the ASIC-age, is it worth starting mining Bitcoin at home? (2 answers) Closed 4 years ago. I've googled a lot and also read threads here but I'm still Bitcoin is getting all the press, and Bitcoin mining can be profitable. But the equipment is noisy, expensive, and hard to get. How To Build a 6 GPU Zcash Headless Mining Rig on Ubuntu 16.04 Bitcoin mining on headless Ubuntu server-3. This a step by step guide on how to setup your own Pirl Coin Mining Pool. This guide is going over how to setup an Open open-Pirl-coin-pool. This is meant to setup a | Best🔥 |. How to. start, build bitcoin mining ubuntu server,Do not waste time. crypto Today Voici 7 logiciels de sauvegarde de

[index] [6947] [20434] [24176] [5998] [25522] [20399] [28936] [20663] [16870] [28875]

How to Bitcoin Miner with Ubuntu VPS server 2018

In this episode of Crypto Miner Tips, we go over how to get started Bitcoin Mining with a PC. However, the mining software mentioned in this tutorial can be used on Mac and Linux machines as well. Bitcoin Mining on Ubuntu 18.10 - Bitcoin Mining Software 2019 - Duration: 24:00. Bitcoin Mining Software 2019 8,610 views. 24:00. How to Setup CGMiner for Ubuntu (Gridseed Support) - Duration ... Bitcoin Mining on Ubuntu 18.10 - Bitcoin Mining Software 2019 - Duration: 24:00. Bitcoin Mining Software 2019 5,179 views. 24:00. Can BTC Recover? ... Bitcoin Mining on Ubuntu 18.10 - Bitcoin Mining Software 2019 - Duration: 24:00. Bitcoin Mining Software 2019 7,301 views. 24:00. How to toutorial minergate mining with CPU/GPU (VPS UBUNTU 2017 ... Mining Free for Lifetime ! Bitcoin Monero Zcash etc using Azure Ubuntu VPS 100% working 2018 - Duration: 6:07. Dragon Stone Creations 4,814 views

Flag Counter