[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.