[Español] Cómo lanzar un nodo escritor de Lacchain - Turupawn/Producers GitHub Wiki

Esta guía es necesaria únicamente si se desea lanzar un nuevo nodo de tipo escritura en Lacchain. Es necesaria únicamente en el caso que se desee montar un nuevo punto de escritura o si se desea migrarse a un nuevo servidor.

En esta guía vamos a lanzar un nodo de tipo Writer (escritura) en la red de Lacchain sin soporte de Orión, usando Ubuntu 10.04 LTS. Ten en cuenta que la IP usada es 147.182.178.194 y que el password de ejemplo es abc así que has los cambios respectivos.

También toma en cuenta que en esta guía nos conectamos via SSH usando un archivo tipo .pem. Así que si posees un archivo tipo .ppk puedes onvertirlo a un .pem usando este comando: sudo puttygen private_key.ppk -O private-openssh -o yourkey.pem.

1. Has esto en tu computadora local

a. Instalar dependencias

En tu computadora local:

sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
git clone https://github.com/lacchain/besu-network
cd besu-network/

b. Sube el archivo de Java de Oracle a tu servidor remoto

Ve a https://www.oracle.com/java/technologies/javase-jdk11-downloads.html y selecciona Linux x64 Compressed Archive para descargar Java.

Súbelo a un servidor remoto:

scp -i yourkey.pem jdk-11.0.11_linux-x64_bin.tar.gz [email protected]:

2. Prepara tu servidor remoto

a. Conectate al servidor remoto e instala Java

ssh -i yourkey.pem [email protected]
sudo mkdir -p /var/cache/oracle-jdk11-installer-local
sudo cp jdk-11.0.11_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
sudo apt update

b. También abre estos puertos

sudo nano /etc/nginx/conf.d/ssl.conf

server {

  listen 80;
  listen [::]:80;
  server_name 147.182.178.194;

  location ^~ /ws {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host localhost;
      proxy_set_header X-NginX-Proxy true;
      proxy_pass http://localhost:4545;
  }

  location / {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host localhost;
      proxy_set_header X-NginX-Proxy true;
      proxy_pass http://localhost:4545;
      proxy_set_header  Access-Control-Allow-Origin *;
  }
}
sudo ufw allow 60606/tcp
sudo ufw allow 60606/udp
sudo ufw allow 4545/tcp
sudo ufw reload
sudo ufw enable

3. Ahora regresa a tu computadora local

a. Prepara los archivos de lanzamiento

cd besu-network
cp inventory.example inventory
nano inventory

Edita esto en la sección [writer]:

[writer]
147.182.178.194 node_ip=147.182.178.194 password=abc node_name=honduras-lac-node node_email=your@email

b. Lánzalo

ansible-playbook -i inventory --private-key=./yourkey.pem -u forge site-lacchain-writer.yml

Una vez lanzado, busca este mensaje de enode y guárdalo.

ok: [147.182.178.194] => {
    "msg": "enode://YOUR ENODE HERE"
}

Implementar un reverse proxy para la conexión RPC

Editemos la configuración de Nginx

sudo nano /etc/nginx/conf.d/ssl.conf

Modifiquémoslo de la siguiente manera.

server {

  listen 80;
  listen [::]:80;
  server_name 147.182.178.194;

  location ^~ /ws {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host localhost;
      proxy_set_header X-NginX-Proxy true;
      proxy_pass http://localhost:4545;
  }

  location / {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host localhost;
      proxy_set_header X-NginX-Proxy true;
      proxy_pass http://localhost:4545;
      proxy_set_header  Access-Control-Allow-Origin *;
  }
}

Ahora podemos acceder a los comandos RPC via puerto 80 a través del reverse proxy.

Puedes ver la documentación oficial aquí: here.