Bitcoin Satellite
Table of Contents
Overview
Bitcoin Satellite is a fork of FIBRE (Fast Internet Bitcoin Relay Engine) and, consequently, also a fork of Bitcoin Core. It features a version of the bitcoind application with support for the reception of blocks sent over satellite in UDP datagrams with multicast addressing. You can find detailed information regarding how Bitcoin Satellite works on the project’s Wiki page.
Installation
Install bitcoin-satellite by running:
blocksat-cli deps install --btc
NOTE:
This command supports the two most recent releases of Ubuntu LTS, Fedora, CentOS, Debian, and Raspbian.
bitcoin-satellite is a fork of bitcoin core. As such, it installs applications with the same name (i.e.,
bitcoind
,bitcoin-cli
,bitcoin-qt
, andbitcoin-tx
). Hence, the installation ofbitcoin-satellite
will fail if you already have bitcoin core installed.
Alternatively, you can install bitcoin-satellite manually from binary packages or from source.
Configuration
Next, you need to generate a bitcoin.conf
file with configurations to receive bitcoin data via satellite. To do so, run:
blocksat-cli btc
By default, this command will place the generated bitcoin.conf
file at ~/.bitcoin/
, which is the default Bitcoin data directory used by Bitcoin Satellite. If you so desire, you can specify an alternative datadir
as follows:
blocksat-cli btc -d datadir
Running
Next, run bitcoind
as usual, like so:
bitcoind
Note that other Bitcoin Core options are supported and can be added to the generated bitcoin.conf
file as needed, or directly as arguments to the above command. For example, you can run the node based on satellite links only (unplugged from the internet) using option connect=0
on bitcoin.conf
or by running:
bitcoind -connect=0
Also, you can run bitcoind
in daemon mode:
bitcoind -daemon
Once bitcoind
is running, you can check the satellite interface is receiving data by running the following command:
bitcoin-cli getudpmulticastinfo
If the receiver is correctly locked to the satellite signal, you should see a bitrate around 1.09 Mbps.
Furthermore, you can check the number of blocks being received concurrently over satellite with the following command:
bitcoin-cli getchunkstats
Further Information
UDP Multicast Reception Option
In a Blockstream Satellite receiver setup, the satellite receiver will decode and output a UDP/IPv4 stream. Bitcoin Satellite, in turn, listens to such a stream when configured with option udpmulticast
(added to the bitcoin.conf
file).
There are several possibilities regarding the configuration of option udpmulticast
. It depends on your hardware setup (for instance, your receiver type) and the satellite that you are receiving from. The option is described as follows:
-udpmulticast=<if>,<dst_ip>:<port>,<src_ip>,<trusted>[,<label>]
Listen to multicast-addressed UDP messages sent by
towards : using interface . Set to 1 if sender is a trusted node. An optional
Here is an example:
udpmulticast=dvb0_0,239.0.0.2:4434,172.16.235.9,1,blocksat
In this case, we have that:
dvb0_0
is the name of the network interface that receives data out of the receiver.239.0.0.2:4434
is the destination IP address and port of the packets that are sent over satellite.172.16.235.9
is the IP address of the Blockstream ground station node broadcasting data over the satellite network (each satellite has a unique source IP address).1
configures this stream as coming from a trusted source, which is helpful to speed-up block reception.blocksat
is a label used simply to facilitate inspection of logs.
To simplify the process, command blocksat-cli btc
generates the bitcoin.conf
file for you.
Installation from Binary Packages
You can install bitcoin-satellite
directly from binary packages that are available for the two most recent Ubuntu LTS, Fedora, CentOS, Debian, and Raspbian releases.
Ubuntu:
add-apt-repository ppa:blockstream/satellite
apt-get update
apt-get install bitcoin-satellite
If command
add-apt-repository
is not available, installsoftware-properties-common
.
Debian:
add-apt-repository https://aptly.blockstream.com/satellite/debian/
apt-key adv --keyserver keyserver.ubuntu.com \
--recv-keys 87D07253F69E4CD8629B0A21A94A007EC9D4458C
apt-get update
apt-get install bitcoin-satellite
Install
gnupg
,apt-transport-https
, andsoftware-properties-common
, if necessary.
Raspbian:
add-apt-repository https://aptly.blockstream.com/satellite/raspbian/
apt-key adv --keyserver keyserver.ubuntu.com \
--recv-keys 87D07253F69E4CD8629B0A21A94A007EC9D4458C
apt-get update
apt-get install bitcoin-satellite
Install
gnupg
,apt-transport-https
, andsoftware-properties-common
, if necessary.
Fedora:
dnf copr enable blockstream/satellite
dnf install bitcoin-satellite
If command
dnf copr enable
is not available, installdnf-plugins-core
.
CentOS:
yum copr enable blockstream/satellite
yum install bitcoin-satellite
If command
yum copr enable
is not available, installyum-plugin-copr
.
Compilation from Source
To build Bitcoin Satellite from source, first clone the repository:
git clone https://github.com/Blockstream/bitcoinsatellite.git
cd bitcoinsatellite/
Then, install all build requirements listed in the project’s documentation.
Next, run:
./autogen.sh
./configure
make
This will build the bitcoind
application binary within the src/
directory and you can execute it from there. Alternatively, you can install the application in your system:
make install
Detailed build instructions can be found within the project’s documentation .