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?
You want to support vertcoin. Running a node makes the network more robust and able to serve more wallets, more users, and more transactions.
You are building or using applications such as mining that must validate transactions according to vertcoin’s consensus rules.
You are developing vertcoin software and need to rely on a vertcoin node for programmable (API) access to the network and blockchain.
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
Raspberry Pi 3 B+ | ARM Cortex-A53 1.4GHz | 1GB SRAM |
Raspberry Pi Zero (W) | Single Core ARMv6 1 Ghz | 433MB RAM |
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
Installs Vertcoin full node to Single Board Computer
Installs p2pool-vtc (Optional)
Installs LIT and LIT-AF (Optional)
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.
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.
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]
I'm writing this because I couldn't find a single condensed guide on compiling the wallet and running mining software on linux, specficially Ubuntu/Linux Mint. I combed Bitcoin and Litecoin forums for similar problems I was running into and eventually got everything nailed down, so here it is in one place, for new Shibes. If you want to make a Dogecoin directory in your downloads folder to keep things organized, you will need to modify these commands to refelct the change. So instead of going to ~/Downloads/ you will need to go to ~/Downloads/Dogecoin and be sure to put the zipped files there when you download them, but the commands will be the same otherwise. cwayne18 put in the work to make a PPA for the QT client here. Ubunutu/Mint/Debian users should be able to install the client with the following commands:
Compiling the Wallet Manually I suggest using the PPA above, but if you want to compile manually, here you go. 1)Download the newest source from here. If you want to check out the Github page, click here 2)Unzip the package with the native client OR, navigate to your downloads and unzip
cd ~/Downloads unzip dogecoin-master.zip
3)Now it's time to compile. You will need to install the dependencies, just copy and paste the following code. It will be a fairly large download and could take some time. It is always important to update before installing any new software, so we'll do that first and then install the dependencies.
4)Once that is done, go to the doge-coin master directory and compile:
cd ~/Downloads/dogecoin-maste sed -i 's/-mgw46-mt-sd-1_53//g' dogecoin-qt.pro qmake USE_UPNP=- USE_QRCODE=0 USE_IPV6=0 make -j3
After running the qmake command you will likely see some text similar to
Project MESSAGE: Building without UPNP support Project MESSAGE: Building with UPNP supportRemoved plural forms as the target language has less forms. If this sounds wrong, possibly the target language is not set or recognized.
It's perfectly normal, so don't worry about that. Your Dogewallet is ready to go! The executable is in ~/Downloads/dogecoin-maste and called dogecoin-qt. Your wallet information is in ~/.dogecoin. You can run the wallet at any time by opening terminal and typing
cd ~/Downloads/dogecoin-maste ./dogecoin-qt
Future upgrades to dogewallet are easy. Back up your wallet.dat, and simply follow the same directions above, but you'll be unzipping and building the newer version. You will likely need to rename the old dogecoin-master directory in ~/Downloads before unzipping the newest version and building. Also, it is likely that you will not need to install the dependencies again. Alternate Method For Installing Dogecoin Wallet from Nicebreakfast After installing the dependencies listed in step 3, open terminal, then navigate to where you want Dogecoin Wallet stored and run:
git clone https://github.com/dogecoin/dogecoin ./autogen.sh ./configure make
then when the wallet is updated just run
from the dogecoin directory. GPU Mining GPU mining requires CGminer. My suggestion is to get the executable already built. The creator of cgminer has removed the built file from his website, but I've uploaded it here
sudo apt-get install pkg-config opencl-dev libcurl4-openssl-dev autoconf libtool automake m4 ncurses-dev cd ~/Downloads tar -xvf cgminer-3.7.2-x86_64-built.tar.bz2
Don't use anything newer than 3.7.2. The newer versions of CGMiner don't support GPU mining. That's it! You have cgminer ready to go! You will run cgminer with the following syntax
cd ~/Downloads/cgminer-3.7.2-x86_64-built/ ./cgminer --scrypt -o stratum+tcp://SERVERNAME:PORT -u WORKER.ID -p PASS
A good guide for fine tuning cgminer can be found here; follow the litecoin example. EDIT I had trouble getting cgminer running with a single line command, but running it via an executable .sh file works. This is covered in the cgminer setup guide I posted above but I'll put it here too. In the same directory that has the cgminer executable, you need to make a file called cgminer.sh and make it executable. It should contain the follwing:
Then you can call cgminer in terminal by doing ./cgminer.sh You will need a cgminer.conf file containing all your options. All of this is covered in the guide that is linked above. A quick note about AMD drivers: They used to be a huge PITA to install and get working, but the newest Catalyst drivers are great. There's a GUI installer, everything works out of the box, and there is a lot of documentation. You can download them here: AMD Catalyst 14.6 Beta Linux CPU Mining For CPU mining I use minerd because it doesn't require any work to get running, simply download it and get to work. Download the built file for your machine 32-bit or 64-bit, and then unzip it and you're ready to go!
cd ~/Downloads tar -xvf pooler-cpuminer-2.3.2-linux-x86.tar.gz
The executable is called minerd and it will be in ~/Downloads but you can move it to wherever you like. To run it, pull up terminal and do
cd ~/Downloads minerd --url=stratum+tcp://SERVER:PORT --userpass=USERNAME.WORKERNAME:WORKERPASSWORD
You're done! Happy mining! Common Issues I ran into this and I've seen others with this problem as well. Everything installs fine but there is a shared library file that isn't where it should be. In fact, it isn't there at all.
libudev.so.1: cannot open shared object file: No such file or directory
In terminal, do
sudo updatedb locate libudev.so.0.13.0
And it will probably return a path /lib/x86_64-linux-gnu. Inside that directory there's a library file called libudev.so.0.13.0. You'll need to make a symlink (aka shortcut) that links libudev.so.1 to libudev.so.0.13.0 So, assuming you're working with libudev.so.0.13.0 do this
cd /lib/x86_64-linux-gnu sudo ln -s libudev.so.0.13.0 libudev.so.1
Now if you do
You should see
libudev.so.1 -> ./libudev.so.0.13.0
Meaning you've made the symlink. Also, the text for libudev.so.1 will be blue.
A simple guide to financial sovereignty (set up your Bitcoin fullnode)
In 2009, a 9 pages white paper by satoshi Nakamoto described a protocol that made central banking obselete. It's a new paradigm where monney is no longer controlled by a few, but by the whole network. The shift is already happening, as we speak, even if it's hard to see, especially if you lack the fundamental knowledege of cryptoghraphy, game theory and economics. It's just a matter of time before you realize that Bitcoin is hard money, and for the first time we have a framework to apply austrian economics, without permission. Time to reset the keynesian monopoly game. I don't think people are inherently bad, it's just that in the actual system (which I call the legacy system) people are incentivised to make decisions that are good from their individual perspective, but unfortunately, the sum of those individual decisions are bad from the collective group perspective. That's just plain simple game theory. What makes Bitcoin so special is it's perfectly aligned set of incentives that makes individuals and collectives outcomes better. It switches the economic model from keynesian to austrian, inflation to deflation, spending to saving, modern slavery (throught debt) to financial sovereingty, de-evolution to evolution. We are currently shifting from fiat to Bitcoin. What you think capitalism is has nothing to do with what Capitalism really is in a free market. Capitalism is beautiful, it's simply the act of evolution, saving and optimising for consumming only what's needed (don't forget with live in a world with limited ressources, yes we all forgot). Stop spending and start capitalising, that's what we should be doing. But it's near impossible in a world run by socialists imposing debt using violence. What do you think back the US dollar ? gold ? no no, only tanks, aircraft carriers, soldiers and corrupt politicians. Our only way out of this madness with the minimum violence is Bitcoin. To be clear, if you dont run a fullnode, then you don't validate the transactions yourself (which is one purpose of running a fullnode). If you don't do the job yourself, then you have no other choice then to trust someone else for it. That's not necesserely a bad thing, as long as you are aware of it. You have no say in what defines Bitcoin, you enforce no rules. You serve no purpose in the Bitcoin realm. Why not ! Now if you seek financial sovereignty and want to take part in the new money paradigm, you will need to operate a fullnode and get your hands a little dirty. This guide hopefuly will take you there while walking you through the steps of setting up your autonomous Bitcoin Core full node. Why Bitcoin Core ? simply because the Bitcoin core client implement and enforce the set of rules that I myself define as being Bitcoin.
Linux (recent ubuntu or debian)
willing to take responsibility for your kids future
check your firewall rules with sudo ufw status numbered
Start bitcoind so that it create the initial ~/.bitcoin folder structure.
bitcoind& # launch daemon (the & run the copmmand in the background) bitcoin-cli stop # stop the daemon once folder structure is created
In my case, for a personnal fullnode, I want to run a full txindexed chain. We only live once and i want all options to be possible/available :) If you plan to interact with the lightning network in the future and want to stay 100% trustless, I encourage you txindexing the chain (because you'll need an indexed chain). it's not hard to txindex the chain later on, but the less you touch the data, the better. so always better to start with txindex=1 if you want to go for the long run. It only adds 26Go on top of the 200Go non indexed chain. So it's worth it ! Just to get an idea of the size of the bitcoin core chain (August 23, 2018) :
blocks + chainstate
209Go + 2.7Go = 221.7
blocks + chainstate
193Go + 2.7Go = 195.7Go
blocks + chainstate
blocks + chainstate
20Go + 982Mo = 21Go
Create a bitcoin.conf config file in the ~/.bitcoin folder. This is my default settings, feel free to adjust to your need. [ see full config Running Bitcoin - Bitcoin Wiki ]
# see full config here https://en.bitcoin.it/wiki/Running_Bitcoin # Global daemon=1 txindex=1 rpcallowip=0.0.0.0/0 # bind network interface to local only for now server=1 rest=1 # RPC rpcport=8332 rpcuser=admin rpcpassword=password # define a password rpcworkqueue=100 # zmq zmqpubrawblock=tcp://*:8331 zmqpubrawtx=tcp://*:8331 #zmqpubhashblock=tcp://*:8331 #zmqpubhashtx=tcp://*:8331 # numbers of peers. default to 125 maxconnections=10 # utxo cache. default to 300M dbcache=100 # Spam protection limitfreerelay=10 minrelaytxfee=0.0001
Sync the blockchain
There are 2 ways you can donwload/sync the bitcoin blochain :
Network sync (default)
If this is the first time you are setting up a bitcoin full node, it's the only way to trust the data. It will take time, depending on your hardware and network speed, it could vary from hours to days. You have nothing to do but leave the bitcoind daemon running. check status with bitcoin-cli getblockchaininfo, kill daemon with bitcoin-cli stop. Remember that this is the only procedure you should use in order to sync the blockchain for the first time, as you don't want to trust anyone with that data except the network itself.
Skip this chapter if this is the first you're setting up a full node. Once you operate a fully "network trusted" node, if you'd like to operate other nodes, syncing them from your trusted node(s) will go much faster, since you simply have to copy the trusted data from server to server directly, instead of going throught the bitcoin core network sync. You will need to transfer the chainstate & blocks directory from the ~/.bitcoin folder of one of your trusted node to the new one. The way you achieve that transfer is up to you. At the time of writing (August 23, 2018), the txindexed blockchain (chainstate + blocks up to height 538.094) is around 220Go. Moving that quantity of data over the network is not a trivial task, but if the transfer happens between 2 reliable servers, then netcat will be great for the job. (netcat sends raw tcp packets, there is no authentification or resume feature). Note: with netcat, if one of the servers connection is not stable, and you lose connection, you will have to start again. that's a bummer. in that case you are better of with tools like rsync or rcp that let you resume a transfer. In order to make the transfer a simple task, make sure you do the following on both of the receiver and the sender server :
make sure port 7000 is open (or choose whatever port you want, make sure to reflect in .bashrc wrapper fucntions)
Install netcat & pv (pv is a utility that will show transfer progress)
Add 2 wrapper function in your .bashrc :
Reload your bash source ~/.bashrc
Once both your servers (receiver & sender) are netcat ready, proceed as follow :
On the receiver side (the node we are setting up)
Then on the sender side (trusted server)
Go grab a coffee, a spliff or whatever rewards you :)
Repeat ncpull/ncpush for the chainstate folder also.
This is the transfer times for my last data sync between 2 servers hosted at time4vps.eu (not too bad) | folder | size | transfer time | - | - | - | blocks | 209Go | 5h20 | chainstate | 2.7Go | 4min
bitcoind as a service
For ease of use and 100% uptime, simply add bitcoind to your system service manager (in my case systemd) create the file /etc/systemd/system/bitcoind.service and add the following to it :
[Unit] Description=Bitcoin daemon After=network.target [Service] User=larafale RuntimeDirectory=bitcoind Type=forking ExecStart=/uslocal/bin/bitcoind -conf=/home/larafale/.bitcoin/bitcoin.conf ExecStop=/uslocal/bin/bitcoin-cli stop KillMode=process Restart=always RestartSec=120 TimeoutSec=240 # Hardening measures #################### # Provide a private /tmp and /vatmp. PrivateTmp=true # Mount /usr, /boot/ and /etc read-only for the process. ProtectSystem=full # Disallow the process and all of its children to gain # new privileges through execve(). NoNewPrivileges=true # Use a new /dev namespace only populated with API pseudo devices # such as /dev/null, /dev/zero and /dev/random. PrivateDevices=true # Deny the creation of writable and executable memory mappings. MemoryDenyWriteExecute=true [Install] WantedBy=multi-user.target
Don't forget to correct the user name & the bitcoin.conf path. Once the systemd bitcoind config file is created, reload system services and start the bitcoind service:
sudo systemctl daemon-reload # reload new services sudo systemctl enable bitcoind # enable bitcoind sudo systemctl start bitcoind # start bitcoind sudo systemctl status bitcoind # check bitcoind status
If everything worked, status should output the following:
● bitcoind.service - Bitcoin daemon Loaded: loaded (/etc/systemd/system/bitcoind.service; enabled; vendor preset: enabled) Active: active (running) since jeu. 2018-08-23 21:17:41 CEST; 5s ago Process: 5218 ExecStart=/uslocal/bin/bitcoind -conf=/home/larafale/.bitcoin/bitcoin.conf (code=exited, status=0/SUCCESS) Main PID: 5219 (bitcoind) CGroup: /system.slice/bitcoind.service └─5219 /uslocal/bin/bitcoind -conf=/home/larafale/.bitcoin/bitcoin.conf
The bitcoind service is active and will automatically restart on statup/crash. Wait a couple minutes until the bitcoin-cli getblockchaininfo command returns the chain status. You can also query the rest interface by opening http://nodeIP:8332/rest/chaininfo.json in your browser.
You now have a full Bitcoin core node running on it's own. What's next ? Well I never blogged before, this is the first time I am outsourcing some of my work. I'm a passionnate enginner working on all kind of technologies. I've been dedicating half of my time to Bitcoin for the last 2 years already, so if this guide was usefull and want to go deeper , just let me know, depending on the feedback I get, i'll consider outsourcing more interesting work. For example next post could be about setting up an Electrum Server so you can safely use SPV wallets trusting your own fullnode. Also I'm currently working on a trustless bitcoin payment processor called 8333, make sure you follow @_8333_ on twitter. I think I will release the project end of 2018. Ping me if interested. The best way you can show support is via Bitcoin : 16FKGPiivpo3Z7FFPLdkoVRcV2ASBc7Ktu
So I recently I became quite interested in mining and cyptocurrencies in general. So interested in fact that I bit the bullet and decided to buy myself a GAW Fury. I then spent some time doing research on how to set up a GAW or Zeus ASIC on Linux, in particular on a Raspberry Pi, and have found most guides to be awful. The reason they are so bad IMHO is that they assume quite a bit of prior knowledge, either with Linux or mining, and give very little instructions. So I have tried to put together a guide that requires very little prior knowledge. It is my aim that anyone could get their shiny new asic up and mining in no time using this guide. Anyway, I present...
The Complete Noobs Guide to Setting Up a Zeus or Gaw ASIC on Debian/Ubuntu/Raspberry Pi
About Cyrptocurrencies and Their Jargon
If you are new to cryptocurrencies and how they work I suggest taking a look at this series of KhanAcademy videos. They are for Bitcoin but the theory is the same. I found them very helpful when it came to understanding what mining actually does and the mechanics of cyrptocurrencies. Also take a look at sircamm22 his info found here, is great and breaks down a large number of concepts. I slightly disagree with no. 21 regarding preordering. Just exercise common sense.
If you are new to Linux you could follow along by simply typing in the commands. However I highly recommend taking the time to learn what you are doing. This course is a great place to start.
By the end of this section you will have your device turned on, fully setup and connected to the internet with. Note: Commands to be typed into the command line will be displayed like this:
echo Hello World
For laptops and desktops already running Ubuntu or Debian I will assume you have setup your internet setup as part of the installation. If not: There are plenty of guides out there and the installation/setup process is very easy. A good place to start for Ubuntu is here. Now open up a terminal window. Ctrl + alt + t on a standard Ubuntu installation. If you plan on using this PC without a monitor I would suggest installing an SSH Server. These commands will be discussed later on in the guide.
sudo apt-get -y install openssh-server sudo service openssh-server start
The Raspberry Pi Foundation has put together a great guide in PDF format. Use NOOBS it will save you a lot of trouble. NB: Some SD cards don't support NOOBs but will work fine if the image is put on using a different method. Here is a great guide for setting up the Raspberry Pi SD card from Elinux.org. In fact it's a great place to start for anything RPi related. Raspberry Pi hub at Elinux. Once the SD card is setup you will need to insert it into the Raspberry Pi and boot. Install Raspbian from the NOOBs menu and wait. Follow this guide by Adafruit for first time setup. You will need to enable SSH Server. I suggest not starting the desktop on boot. It can be easily run from the command line by typing startx. Follow this guide by Adafruit to setup your network. Found here. No need to do this if you set up previously in the first time config. We will also at this point want to setup ssh. Again I will point you to an Adafruit guide. Once done exit back to a standard command line interface. This can be done in LXDE by using the power off menu located in the bottom right corner.
If you want to the Raspberry Pi or PC without a monitor go ahead and SSH into your device. So now you should be staring at a command line interface whether on the device with a monitor or via SSH. First things first lets make sure we are all up to date. This will update our package list from the repositories and upgrade them to the newest version. "-y" Will simply say yes to any prompts.
sudo apt-get update && sudo apt-get -y upgrade
We are going to need to install some useful tools. Git-core is how we will clone and download BFGMiner from GitHub and Screen allows multiple command line instances and means if we exit out of ssh session or quit Terminal on Ubuntu, BFGMiner will continue to run.
sudo apt-get install git-core screen
We also need to download some other tools/dependencies to ensure that BFGMiner will compile successfully.
Once the download has completed move into the bfgminer directory.
The following steps may take a while. Now run autogen.sh
You will need to make the configure script execuitable.
sudo chmod +x ./configure
Now configure bfgminer
sudo ./configure CFLAGS="-O3" --enable-scrypt
Now lets make!
sudo make install
One more thing...
If you haven't already plug in your ASIC. Just confirm your system is recognising the ASIC.
Its output should look similar to this (no need to type this in):
Bus 001 Device 005: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Yep there it is our ASIC listed as device 005. There is no need to install any drivers, unlike in windows, as they come in the kernel. Now lets actually start BFGMiner. You will want to start a screen session to ensure BFGMiner doesn't quite when you exit. "-S" is the option for starting a new screen session. You can replace "miner" with anything you like.
screen -S miner
Now you can run the commands below. Here is a sample of what you should type. You will need to replace somethings with your own values.
Where: URL:PORT is the address and port of the pool you wih to use. Now I won't suggest a pool. I will leave that decision up to you. If you do wish to mine DOGE take a look at this site for a list of pools and comparisons. USERNAME this is the username you use on the pool. Every pool is different. Check your pool's website for details. PASSWORD same as above. Specific to your pool, not every pool requires one. CHIPCOUNT this is specific to which ASIC you are using. For GAWMiner ASIC's:
War Machine: 256
Black Widow: 64
For ZeusMiner ASIC's:
Hurricane X2: 48
Hurricane X3: 64
Thunder X2: 96
Thunder X3: 128
Now to make sure you don't stop mining when you exit ssh or terminal. Press:
ctrl + a + d
To come back to the BFGMiner screen simply run:
screen -r miner
Start on Boot
First off you will want to make sure you have BFGMiner running correctly. Ensure you have the miners set up properly and your pool correctly configured. Start a BFGMiner instance, detailed above. Once the instance has started and you are happy with how everything is working press "s" on your keyboard to enter the settings menu. Now press the "w" key. Don't press enter. We want to specify where our config will go. Type:
Substitute USERNAME for your user. On a standard RPI install its pi. On ubuntu it's what you set during the instillation. Now press the enter key to return back to the main BFGMiner screen. Press "q" on your keyboard to exit BFGMiner. You should now be back in the command line. Now we want to edit a file called rc.local. Any commands in this file will be executed on boot.
sudo nano /etc/rc.local
Depending on your system this file may already contain some commands. Be careful not to delete them. After the last command and before "exit 0" type the following on one line:
Where USERNAME = your username Hit ctrl + x then y to save and exit nano. The above command will create a new screen session and run bfgminer using the config we created earlier. All while as our username so that we can easily reattach. Lets reboot to ensure it is working correctly:
Once rebooted and logged in, show all running screen sessions:
Reattach to the session. You only need to use the numbers before the first dot. e.g Mine looks like: 2480..hostname (13/07/14 12:02:09) (Detached). So I type:
screen -r 2480
Verify everything worked as expected. Then ctrl + a + d to exit. You have now setup BFGMiner to restart on reboot.
If you are using a Raspberry Pi and it loses power it will automatically reboot on receiving power again. For standard desktop PCs there is an option in some BIOS/UEFI to turn the computer on when it receives power. Consult your motherboard's manual and manufacturer's website.
Congrats you've done it. You have managed to successfully get your shiny new asic mining away. I do plan to make another guide detailing how to setup and use StarMiner a ready to go RPi mining distro. So I hope this is helpful for you guys. I have seen lots of posts asking the exact same questions again and again and I have tried to answer these as best I can. I am still learning about this stuff so if there is something I have missed or a mistake I have made please tell me. Anyway good luck. And I'll see you at the moon. Cheers Frogsiedoodle Edit 1: Layout and formatting. Edit 2: Added instructions for screen which I initially forgot. Edit 3: Removed 1 unneeded dependency Edit 4: Added section on start on reboot and power failure.
Please help total noob? I followed steps for my linux mint 18 system (DEBIAN / UBUNTU QUICK INSTALL FOR USERS). Seems ok until I get to: [email protected] ~/Downloads/joinmarket-0.2.2 $ python wallet-tool.py generate noncefunc.c:12:24: fatal error: pyconfig.h: No such file or directory compilation terminated. Traceback (most recent call last): File "wallet-tool.py", line 11, in from joinmarket import load_program_config, get_network, Wallet, encryptData, \ File "/home/x1/Downloads/joinmarket-0.2.2/joinmarket/init.py", line 11, in from .irc import IRCMessageChannel, B_PER_SEC File "/home/x1/Downloads/joinmarket-0.2.2/joinmarket/irc.py", line 11, in from joinmarket.configure import get_config_irc_channel, jm_single File "/home/x1/Downloads/joinmarket-0.2.2/joinmarket/configure.py", line 12, in import bitcoin as btc File "/home/x1/Downloads/joinmarket-0.2.2/bitcoin/init.py", line 4, in from bitcoin.secp256k1_main import * File "/home/x1/Downloads/joinmarket-0.2.2/bitcoin/secp256k1_main.py", line 45, in ffi.compile() File "/uslocal/lib/python2.7/dist-packages/cffi/api.py", line 672, in compile compiler_verbose=verbose, debug=debug, **kwds) File "/uslocal/lib/python2.7/dist-packages/cffi/recompiler.py", line 1471, in recompile compiler_verbose, debug) File "/uslocal/lib/python2.7/dist-packages/cffi/ffiplatform.py", line 29, in compile outputfilename = _build(tmpdir, ext, compiler_verbose, debug) File "/uslocal/lib/python2.7/dist-packages/cffi/ffiplatform.py", line 65, in _build raise VerificationError('%s: %s' % (e.class.name_, e)) cffi.ffiplatform.VerificationError: CompileError: command 'x86_64-linux-gnu-gcc'
Help with installing bitcoin-qt on ubuntu (booted from usb on a mac), from another usb
Hi everyone im quite new to bitcoin and this subreddit has been extremely helpful so thank you! Im trying to create an offline wallet and its so damn hard, since im not that good with computers... Anyways Ive been following the official guide on the bitcoin website (https://en.bitcoin.it/wiki/How_to_set_up_a_secure_offline_savings_wallet) and im on step 7 now which has been a difficult journey, (diretions on ubuntu is hard for the average user) I have downloaded bitcoin-0.8.6-linux and its on a seperate memory stick. On the read me file it says 'you need the Qt4 run-time libraries to run Bitcoin-Qt. On debian or ubuntu: 'sudo apt-get install libqtgui4' Unpack the files into a directory and run: -bin/32/bitcoin-qt (GUI, 32-bit) -bin/32/bitcoind (headless, 32-bit) -bin/64/bitcoin-qt (GUI, 64-bit) -bin/64/bitcoind (headless, 64-bit) ' K so typed sudo apt-get install libqtgui4 into terminal and it says 'libqtgui4 is already the newest version.' What do they mean by Unpack the files into a directory and run: ... ?? When I type -bin/64/bitcoin-qt (GUI, 64-bit) into terminal it says No such file or directory When I double click on bitcoin-qt file it says 'Could not display "bitcoin-qt" There is no application installed for "executable" files. Do you want to search for an application to open this file? ' clicked yes then It returns empty. Thanks in advance for your help!
Installing software outside of the package manager
Hello all. I've recently taken an interest in Bitcoins (/bitcoins), and so I've naturally decided to try them out using Bitcoin's own bitcoin-qt wallet software. Unfortunately, debian-qt only appears to be available in the sid (unstable) repositories and I'm running wheezy (stable), so I've had to download the binaries from bitcoin.org and work it out from there. I've pretty much got everything working, but I'm not sure if there's a preferred standard way to do what I'm doing. I have done a fair bit of research, and it has lead me to believe that /opt or /uslocal is the best place to home user installed programs. Pretty much, the steps I've taken so far are: 1. Download the tarball from bitcoin.org. 2. Verify it to make sure it's authentic and all that jazz. 3. Extract it (which leaves me with a directory called bitcoin-0.8.6-linux). 4. Find the 64 bit binaries in bitcoin-0.8.6-linux (which are located at bitcoin-0.8.6-linux/bin/64/) and copy them to /uslocal/bin. That's what I've done as far as installation goes. I have, of course, set up a menu in the application menu for XFCE that leads to the bitcoin-qt executable that's in /uslocal/bin, but other than that, that's all. One issue that is remaining is that in the applications menu, the application for the bitcoin wallet has no icon. Now, I know how to implement icons, but I'm not sure where the standard place for housing icons/pngs is on debian/linux systems, so I haven't bothered yet. So, my main question is: have I done this right? Is this the standard way to do things, as far as installing outside of the package manager goes? All of the software I have previously installed has been through the package manager, so this is new territory to me. I'd love to hear your advice -- thank you for reading. :)
2x SAPPHIRE 100355OCL Radeon HD 7850 2GB 256-bit GDDR5 PCI Express 3.0 x16 HDCP Ready CrossFireX Support Video Card
LG 24X DVD Burner
LOGISYS Computer CS368RB Red & Black Steel ATX Mid Tower Computer Case
CORSAIR CX Series CX750 750W ATX12V / EPS12V SLI Ready CrossFire Ready 80 PLUS BRONZE Certified Active PFC
Microsoft Windows 7 Professional 64-bit - OEM
Western Digital WD Blue WD5000AAKX 500GB 7200 RPM 16MB Cache SATA 6.0Gb/s
SOLD Both rigs runs Windows and comes with the installation disc (Dell branded), but I was running a live Debian-based OS from a USB drive that will be included (4gb). It supports litecoin and bitcoin, and even the USB ASIC block erupters. It has remote monitoring support, which is mainly why I used it. Will accept litecoin, bitcoin, Paypal, Dwolla, or Wells Fargo transfers. I would rather not ship outside the USA or part out. If no one is interested here, I will likely just list them on eBay.
Bitcoin Core 0.10.0 released | Wladimir | Feb 16 2015
Wladimir on Feb 16 2015: Bitcoin Core version 0.10.0 is now available from: https://bitcoin.org/bin/0.10.0/ This is a new major version release, bringing both new features and bug fixes. Please report bugs using the issue tracker at github: https://github.com/bitcoin/bitcoin/issues The whole distribution is also available as torrent: https://bitcoin.org/bin/0.10.0/bitcoin-0.10.0.torrent magnet:?xt=urn:btih:170c61fe09dafecfbb97cb4dccd32173383f4e68&dn;=0.10.0&tr;=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.ccc.de%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr;=udp%3A%2F%2Fopen.demonii.com%3A1337&ws;=https%3A%2F%2Fbitcoin.org%2Fbin%2F Upgrading and downgrading How to Upgrade If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). Downgrading warning Because release 0.10.0 makes use of headers-first synchronization and parallel block download (see further), the block files and databases are not backwards-compatible with older versions of Bitcoin Core or other software:
Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or other programs. Reindexing using earlier versions will also not work anymore as a result of this.
The block index database will now hold headers for which no block is
stored on disk, which earlier versions won't support. If you want to be able to downgrade smoothly, make a backup of your entire data directory. Without this your node will need start syncing (or importing from bootstrap.dat) anew afterwards. It is possible that the data from a completely synchronised 0.10 node may be usable in older versions as-is, but this is not supported and may break as soon as the older version attempts to reindex. This does not affect wallet forward or backward compatibility. Notable changes Faster synchronization Bitcoin Core now uses 'headers-first synchronization'. This means that we first ask peers for block headers (a total of 27 megabytes, as of December 2014) and validate those. In a second stage, when the headers have been discovered, we download the blocks. However, as we already know about the whole chain in advance, the blocks can be downloaded in parallel from all available peers. In practice, this means a much faster and more robust synchronization. On recent hardware with a decent network link, it can be as little as 3 hours for an initial full synchronization. You may notice a slower progress in the very first few minutes, when headers are still being fetched and verified, but it should gain speed afterwards. A few RPCs were added/updated as a result of this:
getblockchaininfo now returns the number of validated headers in addition to
the number of validated blocks.
getpeerinfo lists both the number of blocks and headers we know we have in
common with each peer. While synchronizing, the heights of the blocks that we have requested from peers (but haven't received yet) are also listed as 'inflight'.
A new RPC getchaintips lists all known branches of the block chain,
including those we only have headers for. Transaction fee changes This release automatically estimates how high a transaction fee (or how high a priority) transactions require to be confirmed quickly. The default settings will create transactions that confirm quickly; see the new 'txconfirmtarget' setting to control the tradeoff between fees and confirmation times. Fees are added by default unless the 'sendfreetransactions' setting is enabled. Prior releases used hard-coded fees (and priorities), and would sometimes create transactions that took a very long time to confirm. Statistics used to estimate fees and priorities are saved in the data directory in the fee_estimates.dat file just before program shutdown, and are read in at startup. New command line options for transaction fee changes:
-txconfirmtarget=n : create transactions that have enough fees (or priority)
so they are likely to begin confirmation within n blocks (default: 1). This setting is over-ridden by the -paytxfee option.
-sendfreetransactions : Send transactions as zero-fee transactions if possible
(default: 0) New RPC commands for fee estimation:
estimatefee nblocks : Returns approximate fee-per-1,000-bytes needed for
a transaction to begin confirmation within nblocks. Returns -1 if not enough transactions have been observed to compute a good estimate.
estimatepriority nblocks : Returns approximate priority needed for
a zero-fee transaction to begin confirmation within nblocks. Returns -1 if not enough free transactions have been observed to compute a good estimate. RPC access control changes Subnet matching for the purpose of access control is now done by matching the binary network address, instead of with string wildcard matching. For the user this means that -rpcallowip takes a subnet specification, which can be
a single IP address (e.g. 22.214.171.124 or fe80::0012:3456:789a:bcde)
a network/CIDR (e.g. 126.96.36.199/24 or fe80::0000/64)
a network/netmask (e.g. 188.8.131.52/255.255.255.0 or fe80::0012:3456:789a:bcde/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff)
An arbitrary number of -rpcallow arguments can be given. An incoming connection will be accepted if its origin address matches one of them. For example: | 0.9.x and before | 0.10.x | |--------------------------------------------|---------------------------------------| | -rpcallowip=192.168.1.1 | -rpcallowip=192.168.1.1 (unchanged) | | -rpcallowip=192.168.1.* | -rpcallowip=192.168.1.0/24 | | -rpcallowip=192.168.* | -rpcallowip=192.168.0.0/16 | | -rpcallowip=* (dangerous!) | -rpcallowip=::/0 (still dangerous!) | Using wildcards will result in the rule being rejected with the following error in debug.log:
Error: Invalid -rpcallowip subnet specification: *. Valid are a single IP (e.g. 184.108.40.206), a network/netmask (e.g. 220.127.116.11/255.255.255.0) or a network/CIDR (e.g. 18.104.22.168/24).
REST interface A new HTTP API is exposed when running with the -rest flag, which allows unauthenticated access to public node data. It is served on the same port as RPC, but does not need a password, and uses plain HTTP instead of JSON-RPC. Assuming a local RPC server running on port 8332, it is possible to request:
In every case, EXT can be bin (for raw binary data), hex (for hex-encoded binary) or json. For more details, see the doc/REST-interface.md document in the repository. RPC Server "Warm-Up" Mode The RPC server is started earlier now, before most of the expensive intialisations like loading the block index. It is available now almost immediately after starting the process. However, until all initialisations are done, it always returns an immediate error with code -28 to all calls. This new behaviour can be useful for clients to know that a server is already started and will be available soon (for instance, so that they do not have to start it themselves). Improved signing security For 0.10 the security of signing against unusual attacks has been improved by making the signatures constant time and deterministic. This change is a result of switching signing to use libsecp256k1 instead of OpenSSL. Libsecp256k1 is a cryptographic library optimized for the curve Bitcoin uses which was created by Bitcoin Core developer Pieter Wuille. There exist attacks against most ECC implementations where an attacker on shared virtual machine hardware could extract a private key if they could cause a target to sign using the same key hundreds of times. While using shared hosts and reusing keys are inadvisable for other reasons, it's a better practice to avoid the exposure. OpenSSL has code in their source repository for derandomization and reduction in timing leaks that we've eagerly wanted to use for a long time, but this functionality has still not made its way into a released version of OpenSSL. Libsecp256k1 achieves significantly stronger protection: As far as we're aware this is the only deployed implementation of constant time signing for the curve Bitcoin uses and we have reason to believe that libsecp256k1 is better tested and more thoroughly reviewed than the implementation in OpenSSL.  https://eprint.iacr.org/2014/161.pdf Watch-only wallet support The wallet can now track transactions to and from wallets for which you know all addresses (or scripts), even without the private keys. This can be used to track payments without needing the private keys online on a possibly vulnerable system. In addition, it can help for (manual) construction of multisig transactions where you are only one of the signers. One new RPC, importaddress, is added which functions similarly to importprivkey, but instead takes an address or script (in hexadecimal) as argument. After using it, outputs credited to this address or script are considered to be received, and transactions consuming these outputs will be considered to be sent. The following RPCs have optional support for watch-only: getbalance, listreceivedbyaddress, listreceivedbyaccount, listtransactions, listaccounts, listsinceblock, gettransaction. See the RPC documentation for those methods for more information. Compared to using getrawtransaction, this mechanism does not require -txindex, scales better, integrates better with the wallet, and is compatible with future block chain pruning functionality. It does mean that all relevant addresses need to added to the wallet before the payment, though. Consensus library Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library. The purpose of this library is to make the verification functionality that is critical to Bitcoin's consensus available to other applications, e.g. to language bindings such as [python-bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or alternative node implementations. This library is called libbitcoinconsensus.so (or, .dll for Windows). Its interface is defined in the C header [bitcoinconsensus.h](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/bitcoinconsensus.h). In its initial version the API includes two functions:
bitcoinconsensus_verify_script verifies a script. It returns whether the indicated input of the provided serialized transaction
correctly spends the passed scriptPubKey under additional constraints indicated by flags
bitcoinconsensus_version returns the API version, currently at an experimental 0
The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface for existing methods should remain stable. Standard script rules relaxed for P2SH addresses The IsStandard() rules have been almost completely removed for P2SH redemption scripts, allowing applications to make use of any valid script type, such as "n-of-m OR y", hash-locked oracle addresses, etc. While the Bitcoin protocol has always supported these types of script, actually using them on mainnet has been previously inconvenient as standard Bitcoin Core nodes wouldn't relay them to miners, nor would most miners include them in blocks they mined. bitcoin-tx It has been observed that many of the RPC functions offered by bitcoind are "pure functions", and operate independently of the bitcoind wallet. This included many of the RPC "raw transaction" API functions, such as createrawtransaction. bitcoin-tx is a newly introduced command line utility designed to enable easy manipulation of bitcoin transactions. A summary of its operation may be obtained via "bitcoin-tx --help" Transactions may be created or signed in a manner similar to the RPC raw tx API. Transactions may be updated, deleting inputs or outputs, or appending new inputs and outputs. Custom scripts may be easily composed using a simple text notation, borrowed from the bitcoin test suite. This tool may be used for experimenting with new transaction types, signing multi-party transactions, and many other uses. Long term, the goal is to deprecate and remove "pure function" RPC API calls, as those do not require a server round-trip to execute. Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making key and script operations easily accessible via command line. Mining and relay policy enhancements Bitcoin Core's block templates are now for version 3 blocks only, and any mining software relying on its getblocktemplate must be updated in parallel to use libblkmaker either version 0.4.2 or any version from 0.5.1 onward. If you are solo mining, this will affect you the moment you upgrade Bitcoin Core, which must be done prior to BIP66 achieving its 951/1001 status. If you are mining with the stratum mining protocol: this does not affect you. If you are mining with the getblocktemplate protocol to a pool: this will affect you at the pool operator's discretion, which must be no later than BIP66 achieving its 951/1001 status. The prioritisetransaction RPC method has been added to enable miners to manipulate the priority of transactions on an individual basis. Bitcoin Core now supports BIP 22 long polling, so mining software can be notified immediately of new templates rather than having to poll periodically. Support for BIP 23 block proposals is now available in Bitcoin Core's getblocktemplate method. This enables miners to check the basic validity of their next block before expending work on it, reducing risks of accidental hardforks or mining invalid blocks. Two new options to control mining policy:
-datacarrier=0/1 : Relay and mine "data carrier" (OP_RETURN) transactions
if this is 1.
-datacarriersize=n : Maximum size, in bytes, we consider acceptable for
"data carrier" outputs. The relay policy has changed to more properly implement the desired behavior of not relaying free (or very low fee) transactions unless they have a priority above the AllowFreeThreshold(), in which case they are relayed subject to the rate limiter. BIP 66: strict DER encoding for signatures Bitcoin Core 0.10 implements BIP 66, which introduces block version 3, and a new consensus rule, which prohibits non-DER signatures. Such transactions have been non-standard since Bitcoin v0.8.0 (released in February 2013), but were technically still permitted inside blocks. This change breaks the dependency on OpenSSL's signature parsing, and is required if implementations would want to remove all of OpenSSL from the consensus code. The same miner-voting mechanism as in BIP 34 is used: when 751 out of a sequence of 1001 blocks have version number 3 or higher, the new consensus rule becomes active for those blocks. When 951 out of a sequence of 1001 blocks have version number 3 or higher, it becomes mandatory for all blocks. Backward compatibility with current mining software is NOT provided, thus miners should read the first paragraph of "Mining and relay policy enhancements" above. 0.10.0 Change log Detailed release notes follow. This overview includes changes that affect external behavior, not code moves, refactors or string updates. RPC:
f923c07 Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost
b641c9c Fix addnode "onetry": Connect with OpenNetworkConnection
So, most of them are not included on open source operating systems like Debian. As these codecs are not included, you can’t play every type of audio and video files once you install a fresh copy of Debian. In this article, I am going to show you how to install multimedia codecs on Debian 10 Buster. So, let’s get started. Bitcoin Core ist ein gemeinschaftliches, freies Software-Projekt, veröffentlicht unter der MIT-Lizenz. Release-Signaturen überprüfen Download über Torrent Quelltext Versionshistorie anzeigen Bitcoin Core Release Signierschlüssel v0.8.6 - 0.9.2.1 v0.9.3 - 0.10.2 v0.11.0+ How To Install Bitcoin-node On Debian 9 Stretch Linux. How to Install Bitcoin-node on Debian 9 Stretch Linux The objective is to install latest Bitcoin-node binaries on Debian 9 Stretch Linux. Privileged access to your Debian system will be required. # - requires given command to be executed with root privileges either directly as a root user or by use of sudo command $ - given command to be ... Bitcoin Core is a community-driven free software project, released under the MIT license. Verify release signatures Download torrent Source code Show version history. Bitcoin Core Release Signing Keys v0.8.6 - 0.9.2.1 v0.9.3 - 0.10.2 v0.11.0+ Or choose your operating system. Windows exe - zip. Mac OS X dmg - tar.gz. Linux (tgz) 64 bit. ARM Linux 64 bit - 32 bit. Linux (Snap Store) Support ... We are going to run a Bitcoin full node in a Debian system (Sid) ... $ tar xvzf bitcoin-0.14.2-x86_64-linux-gnu.tar.gz Install the binaries in /usr/local/bin directory $ sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-0.14.2/bin/* Run Bitcoin node By now we are going to run only Bitcoin node with no graphical interface: I create a new user to run the Bitcoin node $ sudo adduser ...
how to install bitcoin core wallet on google cloud ubuntu Commands: wget https://bitcoin.org/bin/bitcoin-core-0.15.1/bitcoin-0.15.1-x86_64-linux-gnu.tar.gz t... The VirtualBox Guest Additions version for Debian 9 is, as root: click link - http://www.codebind.com/linux-tutorials/install-virtualbox-guest-additions-debi... sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install bitcoin-qt bitcoind Linux terminal new stuff: clear, ll, cd, touch, echo, cat, shutdown www.bitcoinhackers.org Wondering how to install Debian Linux on your computer? In this video I show how to setup the Debian Linux Distro on any computer. debian.org rufus.akeo.ie T... Installing Debian Linux in a VirtualBox Virtual Machine Debian stretch -- Installation Guide How to install Debian Linux 8.1 in a VirtualBox VM Debian 8.0 Je...