Step by Step Duniter Installation
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
buttle 8dae096618 updates sync script link 1 year ago
README.md updates sync script link 1 year ago
sync_duniter.sh updates sync script link 1 year ago

README.md

Duniter con RaspberryPi en casa

Work in progress

Instalar Raspbian

http://www.raspbian.org/

https://www.raspberrypi.com/software/operating-systems/

Bajar operating system Raspberry Pi OS Lite

Flashear la imagen con Etcher o parecido.

Botar el Pi

username: pi
password: raspberry

Contraseña usuario pi IMPORTANT!!

Todo el mundo conoce la contraseña raspberry. Es muy importante cambiarla por una más fuerte y guardarla en un sitio seguro. Házlo ahora, sino tu Pi será hackeado.

sudo raspi-config
1. System options
S3 Password

Zona horaria

dpkg-reconfigure tzdata

Network interface names

sudo raspi-config
6. Advanced options
A4 Netork interface names -> Enable

Ahora la interfaz de red cableado se llama eth0

SSH

sudo raspi-config
5. Interface options
P2 SSH -> Enable

Conectar al Pi desde tu portatil

ssh pi@192.168.1.??
mkdir ~/.ssh
touch ~/.ssh/authorized_keys

Copiar su clave publica desde tu PC hasta el fichero authorized_keys en el Pi.

Ahora puedes conectar via SSH sin contraseña.

Ya que puedes acceder con tu clave, desactivamos el acceso SSH empleando contraseñas.

sudo nano /etc/ssh/sshd_conf
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no

IP fija

Necesitamos saber

  1. el nombre de la interfaz de red por cable: eth0
  2. el IP de un servidor DNS
  3. el IP que queremos asignar al Pi

IP de un servidor DNS

cat /etc/dhcpcd.conf

En mi caso es el 192.168.1.1

el IP que queremos asignar al Pi

Debemos escoger un IP dentro del rango de nuestra red doméstica

En mi caso voy por el 192.168.1.32

Configurar el IP estática

sudo nano /etc/dhcpcd.conf

Al final del fichero

# Example static IP configuration:
interface eth0
static ip_address=192.168.1.33/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

Y rebotar

sudo reboot

Configuración del router

TODO

DNS dinámico

El IP de casa no es fijo. No cambia mucho, pero sí cambia. Entonces necesitamos una manera mantener sincronizado la resolución de nombre con el IP de casa.

Si tienes contratado un dominio con Gandi por ejemplo, ellos tienen instrucciones sobre como hacerlo. Aqui un ejemplo con un dominio gestionado por afraid.org

Crea una tarea cron crontab -e y añade una entrada

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │                                   7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <command to execute>

0, 30 * * * * sleep 7 ; wget --no-check-certificate -O - https://freedns.afraid.org/dynamic/update.php?SmhB-super-top-secret-key-E5NjA >> /tmp/freedns_my_funky_domain_com.log 2>&1 &

Cada 30 minutos se comprueba y acutaliza si es necesario.

Letsencrypt Cert

sudo apt-get install certbot
sudo certbot certonly --standalone -d sis.crabdance.com

Nginx

sudo apt-get install nginx
sudo nano /etc/nginx/sites-available/duniter
server {
    listen      80;
    server_name mi-nodo-duniter.org;
    rewrite     ^(.*)   https://mi-nodo-duniter.org$1 permanent;
}
server {
        listen 443 ssl;
        server_name mi-nodo-duniter.org;
        ssl_certificate /etc/letsencrypt/live/mi-nodo-duniter.org/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mi-nodo-duniter.org/privkey.pem;

        ssl_stapling on;
        ssl_stapling_verify on;

        location / {
                proxy_pass http://localhost:10901;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
        }
        location /ws2p {
                proxy_pass http://localhost:20901;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        }
}

Instalar Duniter

https://git.duniter.org/nodes/typescript/duniter/-/releases/v1.8.0

Bajamos Linux (Raspbian buster) armv7l - Server [53.6 Mo] porque ya hemos instalado Raspbian buster en el Pi.

cd /tmp/
wget https://............./duniter-server-v1.8.0-linux-armv7l.deb
sudo dpkg -i duniter-server-*-linux-x64.deb

Se ha creado un usuario duniter. Su home es /var/lib/duniter

Config

https://duniter.org/en/wiki/duniter/commands/

Ejecuta los comando así

sudo -u duniter <cmd>

Añade tus claves

sudo -u duniter duniter wizard key

Red

sudo -u duniter duniter wizard network

IPv4 interface: Selecciona eth0
IPv6 interface: Yo pongo None porque no tengo IP6 en casa
Port: 10901
Remote IPv4: (encuentro mi IP en https://www.whatismyip.com/)
Remote port: 443 Does this server have a DNS name? Yes

sudo -u duniter duniter sync g1.duniter.org 443

Esto solo tardó 20 pico segundos. No puede ser.

https://forum.duniter.org/t/synchroniser-duniter-plus-rapidement/7689

sudo su
cd /usr/local/bin/
wget https://forja.laloka.org/MonedaLliure/Raspberry/raw/branch/main/sync_duniter.sh -O sync_duniter.sh
chmod +x sync_duniter.sh
sudo -u duniter  sync_duniter.sh --help
sudo -u duniter  sync_duniter.sh

Y así ha tardado un buen ratio... horas. bien.