Raspberry Pi & bitcoin full node (English)

As I wrote my experiences to set-up a Raspberry Pi (model 3b) for use as a full bitcoin node in dutch, this post is the english translation for those international readers. Where I used other sources (websites, pages) I’ve included the links that helped me.

The Raspberry Pi can be versatile to execute many tasks with a very small amount of power consumption. At this moment I’m running 1 single Raspberry Pi (model 3b, quad core 1.2GHz) an application to filter add-ware (Pi-hole), a status-overview (using RPi-monitor), BOINC running for Seti@home (using 3 cores dedicated)) and the bitcoin full node.

How I made the configuration with this Raspberry Pi and an external (USB powered) hard disk drive, it will all be described here. I choose the USB hard disk to save the micro SD card, which will age by use of many write-cycles.

This post has been updated in August 2020, to accomodate version 0.20.1 of the node software.

What purpose has a full node in the Bitcoin network?

As mentioned earlier, this article will help you setting up a Raspberry Pi as a node in the Bitcoin netwerk, and it will not be used to mine (calculating for (new) bitcoins, which today needs a huge amount of processing power and energy, with small rewards on a single hardware unit. A ‘node’ can everyone run on it’s internet connection to support and optimise communications (relay) of messages between nodes in the Bitcoin network. The more nodes, the less sensitive for degradation and more available alternative routes can be used. Besides this, each node will check transactions against it’s own (local available) downloaded block chain and communicate this with its peer-nodes.

Bill of materials

To put a Raspberry Pi in service as a (full) node, following components are needed:

  • 1 Raspberry Pi (latest model 3b will do the job (quad-core, max 1.2GHz, 1Gb RAM);
  • 1 micro-SD card with 8Gb capacity. The larger the better, but after initial boot-up, the SD-card will no longer be used as the USB hard drive takes over.
  • 1 matching power supply with minimum of 2.5 Amps (also to supply the USB hard drive with power)
  • 1 external USB hard disk (minimum USB 2.0). For about 50 EUR an external hard drive of about 500Gb will be sufficient. At the moment (july 2017) the block chain is approx. 140Gb in size.
  • 1 case for the Raspberry Pi
  • Additional (in case of running BOINC read this as a MUST-have): some heat sink on the Broadcom SoC and a 12Volt fan that will be able to run on 5V onboard.

Because of the huge amount of internet data to download/upload, please check with your internet provider if you have restrictions. If your internet provider does have data restrictions, please consider not to run a Bitcoin full node until switched to a provider without data restrictions

Steps to follow

Briefly the following steps will lead to a fully operational bitcoin full node:

  1. installation of NOOBS software on an FAT formatted micro SD card, and placed in the Rpi
  2. After boot-up, install NOOBS Raspbian with Pixel (though, we’re not going to run Pixel, so one may opt for CLI (command line only) Raspbian
  3. Uninstall in Pixel various apps we’re not going to use (Libre office, wolfram etc). This may be not applicable when using Raspbian Lite
  4. Update your Raspberry with latest software;
  5. Activate SSH (to enable remote management/servicing your Pi)
  6. Set-up your Rpi with a fixed/assigned IP-address (in router as well in Raspbian);
  7. In RASPI-CONFIG decrease video memory allocation to minimum (16Mb)
  8. Partitioning of the USB hard disk
  9. Transfer all data of the micro SD card to the Hard disk, so the boot-up sequence will be running on the hard drive.
  10. Install Raspberry Pi Full Node software and let it download the block chain. Warning: this will take several gigabytes of data, and depending on your internet connection can take upto 3-4 weeks…
  11. Open port 8333 for the bitcoin network to communicate with the full node;
  12. optional: install Pi-Hole (software to block add-ware on web-pages)
  13. optional: install RPI monitor (to monitor resources of your Rpi using a HTML5 webpage layout)
Install NOOBS

NOOBS (New Out Of the Box Software) can be downloaded here on the Raspberry pi website

Format the micro SD card as FAT file-system, and copy the (unzipped) files of the downloaded NOOBS archive to the SD card.

Install Raspbian

After you’ve placed the micro SD card in the Raspberry Pi, connect your keyboard, mouse and monitor and power-supply.

After boot-up, follow instructions on screen, choose your language/keyboard layout. (I choose with a GUI the Raspbian with Pixel, but we wil run the RPI from command line in the end)

After succesvol installation, the RPI will be able to boot up from micro SD card and open with the GUI (Pixel)

Uninstall applications

Several hundreds of Megabytes can be saved when Raspbian Pixel is completed. Removal will save time in the copy-procedure later, but also along the maintenance.

Several applications can be removed with following command entered in the Command Line on the Raspberry:

sudo apt-get purge libreoffice wolfram-engine sonic-pi scratch
sudo apt-get autoremove

More applications can be removed but these few take almost 1Gb of data. If you run the Raspbian Lite, it will be very likely a lot of utilities and apps are by default not installed and may save you this step.

Update Raspbian to recent version

Software develops along the way, and before we move on, make sure we have the latest versions on our RPI using following commands:

sudo apt-get update
sudo apt-get dist-upgrade

After this the latest (stable) firmware and other software is on the RPI active after a reboot (e.g. using ‘sudo shutdown -r now’)

Activate SSH on Raspberry Pi

We will use SSH to communicate and configure the Raspberry Pi from another computer (which on this turn, also the monitor, mouse and keyboard can be disconnected).

sudo raspi-config

  • select Interfacing options
  • Navigate to SSH and select
  • select Yes
  • select OK
  • select Finish (and reboot to activate SSH).

After reboot you can connect from your desktop system (Apple e.g) using  ‘ssh pi@<ip_address_raspberry>’

Assign a fixed IP-address to the Raspberry

By default, DHCP services on your raspberry or router will assign an IP_address to your Raspberry. But for use as a full node (sort of server) we will manually set-up a fixed IP address in our network.

I have used following information in dutch

Backup your current network settings on the Raspberry:

sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.org

Assign a fixed IP_address to your Raspberry using:

sudo nano /etc/dhcpcd.conf

As I’m connecting my Raspberry Node using Ethernet, find in the dhcpcd.conf file for the abbreviaton ‘eth0’. I’m assigning the address to the Node-to-be. For your situation (local network) things may differ, but I think you can get the global picture:

interface eth0
 static ip_address=
 static routers=
 static domain_name_servers=

Save changes using key combination CTRL X, Yes, ENTER

and perform a reboot of the network-settings:

sudo reboot -h 0

Use the command ‘ifconfig’ to check if your ethernet-connnection (eth0) has received the assigned IP_address:

sudo ifconfig 

After this command, more details (such as gateway, mask) are shown. with a brief test (using ‘ping’) you can check if your Rpi can ping/connect Google-servers.

Maximize RAM, minimize video memory

We’re not playing games or videos on the RPI, so I’m restricting the video memory to the minimum which is 16Mb. This on its turn restores more RAM to the system to work with.

sudo raspi-config

  • Select item ‘Memory Split’
  • select/enter 16Mb at GPU (Graphics Processing Unit) item.
  • Select save and exit, and reboot your RPI

Now we’re booting without any monitor attached (hopefully), and assume you’re using SSH to connect for further management. But first switch to full command line boot-up:

In raspi-config select Boot options -> Desktop/CLI –> B1 Console

After reboot, the RPI will startup, and present a login-screen awaiting for a valid login

Setting up the external USB hard disk

Now connect your USB hard drive on a USB port of the Raspberry (RPI supports USB 2.0 disks)

Now we prepare the hard drive, to save the SD-card

First, it starts with partitioning, and then mounting, with some modifications to support a proper boot-sequence. For this chapter I have used following resources on the internet: source #1 en source #2

Set-up of partitions I used







the 500Gb hard drive is set up:

  • 30 Gb partition (/dev/sda1) reserved for Raspbian OS/Linux, with room to spare for future updates, and other additional software;
  • 5 Gb partition (/dev/sda2) for swap. Minimum size could be twice the internal memory of the Raspberry (so 2Gb total), but 5Gb is certainly plenty.
  • The storage that was left in the end (approx 430Gb) is assigned for the bitcoin blockchain data (/dev/sda3)

So connect your USB hard drive and let the RPI boot up.

On the command line (using SSH, or using the ‘old-fashioned’ keyboard-monitor attached setup):

sudo fdisk -l

A list of devices will be shown. Search for device ‘/dev/sda’. This is your external hard drive being identified in Raspbian. If you see partitions, feel free to remove/delete them, we’re assuming the hard drive is free of any partitions on it.

Now start setting up the partitions:

sudo fdisk /dev/sda

Create the root partion (approx 30Gb):

  • Enter ‘n’  with  ENTER
  • Enter ‘p’  for primary partition
  • Enter ‘1’  for first partition (/dev/sda1)
  • Select default/standard start-sector (ENTER)
  • Enter value ‘+30G’ for a size of 30Gb

Create swap partition (here 5Gb)

  • Enter ‘n‘ with ENTER
  • Enter ‘p‘ for primary partition
  • Enter ‘2‘ for second partition (/dev/sda2)
  • Select default/standard start-sector (ENTER)
  • Enter value ‘+5G’ for a size of 5Gb
  • Enter ‘t‘ to assign a type to this second partition
  • Enter ‘2‘ in to select 2nd partition
  • Enter ‘82‘ in for Swap partitie (swap Linux / Solaris)

Create data partitie for block chain storage:

  • Enter ‘n‘ with ENTER
  • Enter ‘p‘ in for primary partition
  • Enter ‘3‘ in for third partition (/dev/sda3)
  • Select default/standard start-sector (ENTER)
  • Select default/standard END sector (ENTER geven), this will create maximum of left-over space to be assigned to the data storage for the block chain.

Use ‘p‘ to list a printed overview of partitions

Select ‘w‘ to write the partition table to disk and quit FDISK

Now format the partitions (using EXT4 file extensions) you’ve created:

sudo mkfs.ext4 /dev/sda1
sudo mkfs.ext4 /dev/sda3

initialise the swap partition and activate the swap partition:

sudo mkswap /dev/sda2
sudo swapon /dev/sda2

Copy data from micro SD card to hard drive

Now we’re transfer the data used in boot-up from the SD-card to the hard drive.

First, we mount the (new) root partition on the (new) harddrive in the current setup in the folder ‘/mnt’:

sudo mount /dev/sda1 /mnt

Now partition /dev/sda1 is found as mounted storage in the folder /mnt.

Now using RSYNC we transfer all files (and meta data (rights, groups etc)) to the mounted hard drive (/dev/sda1) partition.

sudo rsync -avz --exclude '/mnt' / /mnt

This will take a while (count on 1-1,5 hour) depending on choosen Raspbian setup.

After the rsync copy action has been successful, we need to take card that the new (/dev/sda1) partition is to be mounted upon boot-up sequence.:

sudo nano /mnt/etc/fstab We still direct our editor NANO to the still mounted partition (/dev/sda1) to the file to be edited (/etc/fstab)

Using a hash tag (‘#’) I deactivated the initial partioin on the SD_card

You also can see how the SWAP partionion (/dev/sda2) is to be embedded into the /etc/fstab file,

As well as the new root (now copied to the existing /mnt)die nu naar de hard disk is gekopieerd (/dev/sda1) als de bitcoin partitie (/mnt/pidrive) (de pi-drive mount will be subject in later topic, when we install the Bitcoin full node software)

fstab bij raspberry pi
Overview of new /etc/fstab





Remove old swap files on the hard drive
sudo rm /mnt/etc/rc?.d/*dphys-swapfile
sudo rm /mnt/var/swap

Create a backup of the cmdline.txt:
sudo cp /boot/cmdline.txt /boot/cmdline.org

update thee cmdline.txt:
sudo nano /boot/cmdline.txt

New /boot/cmdline.txt with reference to /dev/sda1 hard disk

Check the cmdline.txt, and near ‘root=….’ there was initially another text visible (in the order of ‘mmbclk….’). Update/change it to our new root (here in this post it is: ‘/dev/sda1’

Save the changes using (CTRL X, Yes)

Now the RPI is capable of reading an initial file on the SD-card, and then continue the boot sequence from the hard disk attached on USB.

Enter ‘sudo reboot‘ and see if you see your RPI reboot and using the hard drive to it’s purpose and return you to the command line on the raspberry Pi.

Installation of the Bitcoin full node software

Now the RPI reboots on it’s hard drive, the micro SD-card is saved from numerous write-activities, we’re now ready for the bitcoin full node software.Initially I’ve found this article which helped me very well. As several things have been arranged we continue with other steps needed.

The hard drive (/dev/sda) has several partitions, and the largest one (430Gb on my 500Gb disk, designated as /dev/sda3) will be merely containing the block chain.

Mount the partition for the bitcoin data/block chain:

sudo mkdir /mnt/pidrive

Note PARTUUID of the partition as follows:

sudo blkid

and copy the line with ‘/dev/sda3’ the text/data after PARTUUID (see figure below)

The PARTUUID of the bitcoin partition




Open  /etc/fstab and add PARTUUID (see figure earlier used):

PARTUUID="d9e4ca8c-03" /mnt/pidrive ext4 defaults 0 0

Now save changes and exit NANO editor using: (CTRL X, Yes),

and after a reboot the partiotion /dev/sda3 will be mounted automatically in the folder /mnt/pidrive.

Check after a reboot if the mount of the /dev/sda3 partition  as /mnt/pidrive is succesfull:
df -h

/dev/sda3 (424Gb) is succesfully mounted in Raspbian for bitcoin block chain use






Now install the software, which I used following resource to great value on setting up a full bitcoin node

sudo apt-get install git autoconf libevent-dev libtool libssl-dev libboost-all-dev libminiupnpc-dev

Now download the bitcoin v0.20.1 software:
mkdir ~/bin
cd ~/bin
git clone git://github.com/bitcoin/bitcoin -b v0.20.1
cd bitcoin
./configure --enable-upnp-default --disable-wallet --disable-bench --disable-zmq --without-gui --prefix=/usr/
make check

After this, when software installation is succesfull executed following steps:
sudo make install
rm -R ~/bin

Create the bitcoin storage and authorize the (new) user ‘bitcoind’:
sudo mkdir -p /mnt/pidrive/.bitcoinData/
sudo useradd -r bitcoind
sudo chown bitcoind:bitcoind /mnt/pidrive/.bitcoinData

Create system service:
sudo nano /lib/systemd/system/bitcoind.service
and add:
Description=Bitcoin's distributed currency daemon
ExecStart=/usr/bin/bitcoind -daemon -pid=/mnt/pidrive/.bitcoinData/bitcoind.pid \
-conf=/etc/bitcoin/bitcoin.conf -datadir=/mnt/pidrive/.bitcoinData -disablewallet

(select in NANO editor CTRL X, Yes to save changes)
Now execute:
sudo ln -s /lib/systemd/system/bitcoind.service /etc/systemd/system/multi-user.target.wants/bitcoind.service

Create a configuration file for Bitcoin:
sudo mkdir /etc/bitcoin
sudo nano /etc/bitcoin/bitcoin.conf

and add:

Now start the service manually using:
sudo service bitcoind start

With this the processes will be started, and the block chain downloaded.

with ‘sudo service bitcoind status‘ you can check on the status (summarised)

Now you need to open up port 8333 for the bitcoin netwrok on your router. How it’s done, really depends on your router (brand and model), so consult your supplier (or browse the internet).
As example I’ve posted my settings on a FritzBox 6390:




Details of the port forward on FritzBox


If all is well, retrieve your external IP address of your internet connection. using (for example) What’s my IP and write it down.

Surf to website van 21.com, and perform a check to see if your raspberry pi Full Node will be recognized as such: BitNodes

Enter your external IP-address, followed with port-number 8333. If all is well, your Node (to-be) will be recognized and upload of block chain blocks will start.

Now it’s time to physically install your Raspberry Pi near your internet connection using ethernet connectivity and leave the RPI download at will the block chain. My experience using an RPI it will take approx. 3 weeks time to have the block chain downloaded and synchronized (dated june/july 2017). The processor load on the Raspberry is very low, common values about 3-5% so plenty of power to spare for other tasks.

I did find this information also for the port 8333 on a Raspberry, which in my opinion are optional (as without it I could setup my Pi communicating with the bitcoin network). But it may help, executing didn’t affect my Pi neither.
sudo iptables -A INPUT -p tcp --dport 8333 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 8333 -j ACCEPT

Optional: Pi-Hole ad-ware blocker

As the RPI is most of the time idle, with low CPU usage, I’ve installed Pi_hole to filter internet data on advertorials on web-pages etc. Details can be read here Pi-Hole

You can install Pi_hole using SSH and the following command:

curl -sSL https://install.pi-hole.net | bash

From 4:36 you can see the steps to follow in this youtube movie:

Optional: RPI Monitor

I’ve found it very useful to monitor the RPi on temperatures (using BOINC, stressing the cores full time), but also hard drive space.

Overview of RPi-Monitor, many statistics (e.g. temperature, clock speed, memory and storage use) in one glance!

Installation of RPI monitor is easy using this manual

As you can see, the RPI is versatile in performing tasks with a small power consumption. I’m not explaning installation of BOINC, as this CPU-intensive program really asks for more preparations (such as a fan for cooling used in combination of a heat sink). It’s possible, even assigning 1-2 cores helps.


We’ve used the RPI with account ‘pi’  and a default password. Do not forget to change the password, just to prevent unauthorised access (certainly when using SSH).

When logged in as user ‘pi’ enter the following:


and enter the current (valid) password, and twice a new password.

Final thoughts

Since a few months I’m running a RaspberryPi for Pi-hole. This low-power computer system has sufficient power to support also the bitcoin network as a full node. As a very new beginner to Bitcoin and it’s technology, I discovered how easy it is to show support to the Bitcoin by operating the full node, and the UASF BIP148.

If you want to read more about this (UASF, BIP148, SegWit etc.) I can recommend this english source .

0 gedachten over “Raspberry Pi & bitcoin full node (English)

  • Since a few days ago (July 11th, 2017), a new build became available for SegWit 1.0 (update from SegWit 0.3). As such, I had to update my Raspberry with bitcoin software to this latest version. As I’m quite new to Raspbian/Linux, I had executed following steps:
    * stop the bitcoind service from the command line using ‘sudo service bitcoind stop‘ and wait;
    after this, execute the same steps:
    mkdir ~/bin
    cd ~/bin
    git clone git://github.com/UASF/bitcoin -b 0.14-BIP148
    cd bitcoin
    ./configure --enable-upnp-default --disable-wallet --disable-bench --disable-zmq --without-gui --prefix=/usr/
    make check
    sudo make install

    and restart the bitcoind service using: sudo service bitcoind start
    After 10-15 minutes, your (updated) Raspberry pi node will signal for the latest SegWit 1.0 to the bitcoin network.
    Total time involved for update is roughly 2,5 hours estimated, with most of the time in the ‘make/make check’ steps
    If you are just starting to install a (new) Raspberry node, the latest software will already be on it.

    Regarding firmware updates using rpi-update command. This command (rpi-update) will retrieve new and relative untested firmware which may have side-effects on your Raspberry. Therefore I recommend to stay on the initial firmware.
    Just check once every 2-3 months on updates using commands:
    sudo apt-get update
    sudo apt-get dist-upgrade

    and reboot if various packages are updated.

    to return to the default (original) firmware:
    sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
    and reboot your Raspberry Pi.

  • Please note, in the guide listed above it will create a Full Node using the IPv4 protocol. As the Raspberry also support IPv6, and in the node network it is very welcome to have IP6 connectivity, I’ve drafted additional steps to arrange a fixed IPv6 address to your Rpi.

    connect using SSH with your Raspberry and log on (on a Mac OSX: SSH pi@);
    sudo nano /etc/modules

    enter as last line in /etc/modules: ipv6
    and save the file (CTRL + X, Yes)
    Reboot your Raspberry : sudo reboot -h 0

    After restart, connect using SSH with your Raspberry (SSH pi@)

    sudo nano /etc/dhcpcd.conf to edit dhcpcd.conf file.
    Find in dhcpcd.conf the line ‘slaac private‘ and place a hash-tag (#) in front of ‘slaac private’.

    Add a new line to dhcpcd.conf with: slaac hardware
    Save the file (CTRL-X, Yes).

    After a reboot of the Raspberry, the IPv6 address is fixed using the onboard MAC address of your Ethernet interface (most likely ‘eth0′)

    Second stage is to arrange in your router an IPv6 port-forward, just as you did for your IPv4 address. In routers of FritzBox, there’s often a screen with IPv6 available.
    Add/edit a rule for the IPv6 setting, to forward port 8333 towards the IPv6 address (of your Pi).
    After these steps, your (single) Raspberry will communicate and connect using IPv4 and IPv6 in the node network.
    To perform some tests:
    netstat -na | grep 8333 show all connections on your Rpi using IPv4 and IPv6.

    IP v4 ping-test: ping 192.168.1.
    IP v6 ping-test (example Mac OSX): ping6 2001:980:ce79:1:ba27:ecff:fe82:35a5 to check the IPv6 address

    If the ping/ping6 commands are succesfull, you’ll see a positive feedback of your pi.
    Now last thing to do is to have the website https://bitnodes.21.co have both your IPv4 and IPv6 address checked on connectivity.

    Congratulations, your Rapsberry Full Node will now use both IPv4 and IPv6 capabilities!!

  • FYI regarding the Raspberry Pi 3 and downloading the block chain.
    During the start in 22nd of June 2017, it was approx. 130Gb in size.
    Despite some reboots (tweaking the Rpi), in the end it was finished on July, 20th. So about 4 weeks of full time connection to the network.

    Tips: leave the Rpi do it’s job. Sometimes it’s downloading, sometimes it seems to do nothing at all. Just be patient. Also the latency (on 21.co) was up to 200000msec, but now all is in sync, a steady 20-25 msec latency is the current situation (and the 4 RPI cores are on ‘demand only’ governor, idling along).

  • With RPi-monitor I’ve created a view of the connections on port 8333, to see the trends appearing on my Raspberry Pi 3.
    As you can see, the amount of connections hovers around 60-65 with some peak at 81-82 connections (all using a default software, default configuration).
    Amount of connections on my Raspberry full node

  • I just finished installation of another Raspberry Full Node for bitcoin network, and noticed during the steps on make/make check some errors occur during the stages around several ‘tests’, with a single FAIL status on one of those tests.

    Quick search on GITHUB in the UASF chapter, somebody noticed this also, created an issue, and so far the response is : we are investigating, but so far based upon logs/info shared it is still safe and sound to continue operating the installation steps for a full node.

  • Duplication when you have already a Raspberry Node with the full block chain, can also be done. I prefer and advice to use rsync.
    on both (source and destination) RPI, rsync needs to be installed using:
    sudo apt-get install rsync

    after this the data transfer can start (e.g. one raspberry connected over the internet or LAN):
    Enter on the Raspberry Pi where de source blockchain resides (assumption you are navigated and located in the location /mnt/pidrive/)

    rsync -avzr .bitcoinData/ pi@[IP-adres of your destionation RPI]:/mnt/bitcoin/.bitcoinData

    Now the (hidden) folder ‘.bitcoinData’ and it’s subfolders will be transferred using rsync.

    Pros on using rsynch:
    *rsync checks and compares filesize and modification timestamps. If they match, the file will be skipped;
    *if rsync notices a part of the file already on the destination existing, it will pick up and complete missing parts of existing file.

  • Some situation may occur (as I experienced after copying the source block chain to a secondary Raspberry), which leads to the bitcoind process on Raspbian not starting (you can check using sudo service bitcoind status command)

    Sometimes it can be traced back by the chown command (solution: execute chown again on specified folder), but last sunday it was traced back to the following:
    erase in /etc/systemd/system/multi-user.target.wants the file bitcoind.service (using sudo rm bitcoind.service).

    then execute again:
    sudo ln -s /lib/systemd/system/bitcoind.service /etc/systemd/system/multi-user.target.wants/bitcoind.service
    This will recreate the file, and solved my recent startup issues on bitcoind process (manually (re)start the process using sudo service bitcoind start)

  • Hey,

    I’m following your guide and have the following questions,

    1) while partitioning the HD, when trying to change the type of 2nd partition to 82 (linux/solaris swap) it actually doesn’t have a “type 82”, there are only 65 types, out of which number 14 is linux swap and number 42 is solaris swap. What shall I do? use type 14?

    2) I’m planning on downloading the blockchain from another machine and then load it into the HD, what do you think of this option? For that reason I was planning on formatting 3rd partition as FAT32 or EXFAT to make things easier to copy the blockchain from a mac or pc computer. Let me know if you can give me some tips to accomplish this.

    Thank you very much! learning and enjoying a lot

  • Hi 0xBitman,
    I’ve checked on my node (running raspbian with latest updates/upgrades this week), and see many more types. Enter on the command line sudo fdisk /dev/sda which selects the whole complete physical harddisk. then from there on ‘p’ to print the list of partitions. Then ‘t’ to select the swap partition (to-be) in my case /dev/sda2, and even when then ‘L’ it shows in third column the type 82 (Linux swap/Solaris).
    Are you sure your fdisk version is up-to-date (sudo apt-get update fdisk / sudo apt-get upgrade fdisk perhaps?).

    Regarding download and copy from other hard disk. I have done a similar thing using a second raspberry pi and harddrive, and copy the whole with command ‘scp’ (secure copy).
    To do a SCP for the blockchain copy from source to destination follow these steps:
    Stop the bitcoind proces on both Raspberries (sudo service bitcoind stop);

    navigatie to the folder on the source RPi where the blockchain is stored.

    Make sure the destination Raspberry is booted up and connects to the network (check its IP Address using ‘ifconfig’ on the destination RPi)

    Enter on source Raspberry (de source has here. in this example as user pi:
    sudo scp -r pi@ pi@

    Now the copy-proces (incl. folders) will start after you’ve entered the correct password on the destination Raspberry Pi (also user PI).
    After completion you can restart the process with sudo service bitcoins start

    As Mac is running OSX (Linux/unix related), it should be working the same, but I think your running into some issues (rights/ownership) on FAT32/ExFAT if you try to put your blockchain copy on this FAT32/ExFAT system (though I have not experience on this combination (yet)).

  • Hello Niels, thank you for your reply.

    I think the problem I’ve been having with fdisk is because the external usb drive is using a GPT instead of MBR…


  • I just updated the Raspbian OS from release ‘Jessie’ to release ‘Stretch’. I did try the (not so recommended) approach by using an update from Command line instead of preferred blank installation. Merely because I’m not that advanced in Unix skills to prepare backups etcetera.

    To upgrade, first modify the files /etc/apt/sources.list and /etc/apt/sources.list.d/raspi.list. In both files, change every occurrence of the word ‘jessie’ to ‘stretch’. (Both files will require sudo to edit.)

    Then open a terminal window and execute

    sudo apt-get update
    sudo apt-get -y dist-upgrade

    after a while all files were updated, and a reboot left my Raspberry behind with the new Stretch release (which solves also the Broadpwn security issue on Broadcom-chipset on board e.g. on our Raspberry Pi).

    update 12 sept:
    It appears somehow after upgrade to Stretch release, the bitcoin client has issues (e.g. not reporting amount of blocks in blockchain to RPi-monitor, or on the command line).
    I have solved this by following steps:
    stop the bitcoind service sudo service bitcoind stop
    and re-initiate/install/compile the software:

    mkdir ~/bin
    cd ~/bin
    git clone git://github.com/UASF/bitcoin -b 0.14-BIP148
    cd bitcoin
    ./configure --enable-upnp-default --disable-wallet --disable-bench --disable-zmq --without-gui --prefix=/usr/
    make check

    after that, restart the bitcoind service using
    sudo service bitcoind start
    and all is now up-and-running again with good reports on commandline and RPI-monitor.

  • The new release of Bitcoin software can be used now for the full node, and is found on https://bitcoin.org/bin/bitcoin-core-0.15.0/
    the git clone command needs to point to the new location.
    First stop the bitcoind service on the Raspberry PI:

    sudo service bitcoind stop

    and then follow these steps:

    mkdir ~/bin
    cd ~/bin
    git clone git://github.com/bitcoin/bitcoin -b 0.15
    cd bitcoin
    ./configure --enable-upnp-default --disable-wallet --disable-bench --disable-zmq --without-gui --prefix=/usr/
    make check

    after that:

    sudo make install
    rm -R ~/bin
    sudo service bitcoind start

  • As the Raspberry Pi as bitcoin full node is connected to the internet, I highly recommend to do some extra steps for a more secure system (to prevent the side effects of hacking onto your Raspberry pi):
    * lock the ‘pi’ account;
    * reset the default ‘pi’ (‘raspberry’) password;
    * change password for the root account;
    * create a new account (with an ID/login-name only known to you) with a strong password and membership of the ‘sudo’ group (to perform actions as a supervisor/superuser (such as apt-get update/apt-get distr-upgrade)
    (and some more advanced steps like firewall settings).

  • Hi Niels,

    Thanks for the guide! Do you have any information on the approximate energy consumption of the complete setup under normal conditions ?

  • Expect for the Raspberry Pi 3b around 2 Watt power consumption, with additional for the USB hard drive (which may differ per brand/model/type).
    Do note, the Raspberry is most of the time idle (running a single CPU core), but can ramp up to 4 cores when needed.

  • The new release of Bitcoin software can be used now for the full node, and is found on https://bitcoin.org/bin/bitcoin-core-0.16.2/
    the git clone command needs to point to the new location.
    First stop the bitcoind service on the Raspberry PI:

    sudo service bitcoind stop
    and then follow these steps:

    mkdir ~/bin
    cd ~/bin
    git clone git://github.com/bitcoin/bitcoin -b v0.16.2
    cd bitcoin
    ./configure --enable-upnp-default --disable-wallet --disable-bench --disable-zmq --without-gui --prefix=/usr/
    make check

    after that:
    sudo make install
    rm -R ~/bin
    sudo service bitcoind start

    29-jul-2018: updated the instruction/post for this release (as BIP148/SegWit is already activated, it won’t harm to have more full nodes join the network)

Laat een antwoord achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Je mag deze HTML tags en attributen gebruiken:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.