Ejecutar un nodo manualmente

Esta guía lo guía a través del proceso de configuración de un nodo para unirse a la red pública de Bitxor.

Puede experimentar con seguridad conectándose a la red de Bitxor conectándose a la red de prueba (testnet) en lugar de a la red pública principal (mainnet). Sin embargo, es posible que Testnet esté fuera de línea o se reemplace sin previo aviso porque se usa mucho con fines de prueba. Para trabajar en una red de entorno privado, instale una red local con fines de aprendizaje y desarrollo.

Requisitos de hardware

Ejecutar un nodo de cadena de bloques es muy exigente en términos de requisitos de espacio en disco, memoria y CPU. El incumplimiento de los siguientes requisitos mínimos producirá un nodo que tendrá dificultades para mantenerse al día con el resto de la red. La cadena de bloques global no se verá afectada, pero el nodo rara vez será elegible para cobrar recompensas de nodo.

Note

Se recomienda enfáticamente usar CPU y RAM dedicados. Cuando se comparten (como es el caso de algunos proveedores de servidores virtuales), el rendimiento se ve muy afectado.

Especificaciones mínimas de nodos

Requirement

Peer node

API node

Dual & Voting node

CPU

2 cores

4 cores

4 cores

RAM

8GB

16GB

16GB

Disk size

500 GB

750 GB

750 GB

Disk speed

1500 |iops| |ssd|

1500 |iops| |ssd|

1500 |iops| |ssd|

La siguiente tabla muestra los requisitos recomendados. El uso de estos proporcionará una experiencia mucho más fluida y proporcionará un cierto grado de prueba futura.

Recommended node specifications

Requirement

Peer node

API node

Dual & Voting node

CPU

4 cores

8 cores

8 cores

RAM

16GB

32GB

32GB

Disk size

500 GB

750 GB

750 GB

Disk speed

1500 |iops| |ssd|

1500 |iops| |ssd|

1500 |iops| |ssd|

Los requisitos del servidor de tiempo de ejecución dependen de la red. Por ejemplo, las redes con mayor rendimiento probablemente tendrán mayores requisitos.

Aunque es posible que pueda ejecutar el software en instancias menos poderosas, es posible que encuentre algunos problemas al instalar o ejecutar el nodo.

Requisitos del puerto

Bitxorcore requiere el puerto 7900-7902 para la comunicación entre nodos. Asegúrese de que se pueda acceder al host del nodo desde Internet y que el puerto esté abierto y disponible.

Api-rest requiere el puerto 3000-3002 para la comunicación entre api-nodos. Asegúrese de que se pueda acceder al host del nodo desde Internet y que el puerto esté abierto y disponible.

Se requiere el puerto 80,443 para generar el certificado SSL. Asegúrese de que se pueda acceder al host del nodo desde Internet y que el puerto esté abierto y disponible.

Implementar el servidor BitxorCore

Preparando el servidor

Tu puño necesita acceso al usuario root y sigue los siguientes comandos

su
cd ~
sudo apt update
sudo apt install unzip build-essential git cmake ninja-build pkg-config mongodb -y

Descargar BitxorCore y Seed Config

cd ~
wget https://github.com/BitxorCorp/BitxorCore/releases/download/v1.1.0.1/bitxorcore-1.1.0.1-ubuntu-focal-little-endian.zip
unzip -o bitxorcore-1.1.0.1-ubuntu-focal-little-endian.zip
cd BitxorCore
wget https://github.com/BitxorCorp/BitxorCore/releases/download/v1.1.0.1/1.1.0.1-seedconfig.zip
unzip -o 1.1.0.1-seedconfig.zip
rm 1.1.0.1-seedconfig.zip
rm bitxorcore-1.1.0.1-ubuntu-focal-little-endian.zip
echo '/root/BitxorCore/deps' >> /etc/ld.so.conf
ldconfig

Configurar el certificado y el nodo de nombre

Comandos de requisitos previos

cd ~
mkdir certgen
cd certgen
sudo apt install openssl

Necesita una clave privada, esto firmará la cuenta principal y generará el certificado de transporte, puede generar su clave privada con los siguientes comandos

/root/BitxorCore/bin/bitxorcore.tools.addressgen -n mainnet

guarde su clave privada y su clave pública de codificación/descodificación.

Generar el certificado

export privatekeyca=#ThePrivateKeyofNode
export namenode=#TheNameofNodeTransport

Debe cambiar las siguientes palabras en los comandos anteriores, Donde- #YourPrivateKey es la clave privada obtenida previamente #TheNameofNodeTransport es el nombre del Nodo

wget https://docs.bitxor.org/en/cert-generate.sh
chmod 777 cert-generate.sh
./cert-generate.sh
rm -r *

Configure un nodo par:

Los nodos pares, también llamados nodos cosechadores, son la columna vertebral de la red. Entre otras cosas, verifican las transacciones y agregan nuevos bloques a la cadena de bloques, cobrando tarifas en el proceso.

cd ~
export hostnamenode=#TheHostnameofNode

Debe cambiar las siguientes palabras en los comandos anteriores, Donde- #TheHostnameofNode es el nombre de host del nodo, puede ser un nombre de dominio o su dirección IP

sed -i "s/yourhostnamenode/$hostnamenode/g" BitxorCore/resources/config-node.properties
sed -i "s/yourfriendlyNamenode/$namenode/g" BitxorCore/resources/config-node.properties

Ahora instalaremos los servicios de BitxorCore y BitxorBroker

echo -e "[Unit]\nDescription=BitxorCore\n\n[Service]\nWorkingDirectory=/root/BitxorCore/bin\nExecStartPre=/bin/bash -c 'rm /root/BitxorCore/data/server.lock || /bin/true'\nExecStart=/root/BitxorCore/bin/bitxorcore.server\nExecReload=/bin/bash -c 'rm /root/BitxorCore/data/server.lock'\nExecReload=/root/BitxorCore/bin/bitxorcore.server\nExecStop=/bin/bash -c 'rm /root/BitxorCore/data/server.lock'\nKillMode=process\nRestart=always\nRestartSec=30\n\n[Install]\nWantedBy=multi-user.target" > /etc/systemd/system/bitxorcore.service
echo -e "[Unit]\nDescription=BitxorBroker\n\n[Service]\nWorkingDirectory=/root/BitxorCore/bin\nExecStartPre=/bin/bash -c 'rm /root/BitxorCore/data/broker.lock || /bin/true'\nExecStart=/root/BitxorCore/bin/bitxorcore.broker\nExecReload=/bin/bash -c 'rm /root/BitxorCore/data/broker.lock'\nExecReload=/root/BitxorCore/bin/bitxorcore.broker\nExecStop=/bin/bash -c 'rm /root/BitxorCore/data/broker.lock'\nKillMode=process\nRestart=always\nRestartSec=30\n\n[Install]\nWantedBy=multi-user.target" > /etc/systemd/system/bitxorbroker.service
sudo systemctl daemon-reload

Implementar el servidor Api-REST

Preparando el servidor

Tu puño necesita acceso al usuario root y sigue los siguientes comandos

su
cd ~
sudo apt update && sudo apt install curl -y
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn unzip pkg-config mongodb nodejs python3-pip -y

Descargar BitxorAPI-Rest e instalar

su
cd ~
wget https://github.com/BitxorCorp/Bitxor-ApiRest/archive/refs/tags/v1.0.1-beta.2.zip
unzip -o v1.0.1-beta.2.zip
mkdir BitxorApi
cp -r Bitxor-ApiRest-1.0.1-beta.2/* BitxorApi
rm -r Bitxor-ApiRest-1.0.1-beta.2 v1.0.1-beta.2.zip
cd BitxorApi
chmod 777 yarn_setup.sh
./yarn_setup.sh

Instalar con SSL

primero, debe haber emitido su certificado a su nombre de host y debe tener sus archivos de clave privada y certificado.

escriba su clave privada de su certificado ssl

nano /root/BitxorCore/cert/ssl.bin

pegue el contenido de su clave privada, debe abrir en su computadora la clave privada con un editor de texto para copiar esto, luego de pegar el contenido, presione ‘control + x’ y luego ‘Y’ y presione ‘enter’

Ahora debe escribir el archivo de certificado de su certificado SSL

nano /root/BitxorCore/cert/ssl.crt

pegue el contenido de su archivo de certificado, debe abrir en su computadora el archivo de certificado con un editor de texto para copiarlo, luego de pegar el contenido, presione control + x y luego Y y presione enter

Ahora escribe el servicio

echo -e "[Unit]\nDescription=BitxorApiRest\n\n[Service]\nWorkingDirectory=/root/BitxorApi/rest\nExecStart=/usr/bin/npm run start:ssl\nType=simple\nRestart=always\n\n\n[Install]\nWantedBy=multi-user.target" > /etc/systemd/system/bitxorapi.service
sudo systemctl daemon-reload

Instalar sin SSL

echo -e "[Unit]\nDescription=BitxorApiRest\n\n[Service]\nWorkingDirectory=/root/BitxorApi/rest\nExecStart=/usr/bin/npm run start\nType=simple\nRestart=always\n\n\n[Install]\nWantedBy=multi-user.target" > /etc/systemd/system/bitxorapi.service
sudo systemctl daemon-reload

Ejecutando el BitxorCore

Tras el primer lanzamiento, el nodo se sincronizará con el resto de la red, descargando la cadena de bloques completa. Esto puede demorar algunas horas y, durante este tiempo, las solicitudes REST dirigidas a su nodo (si es un nodo API) pueden demorarse e informar una altura de cadena incorrecta. Debe ejecutar el siguiente comando para ejecutar el nodo par Para ejecutar BitxorCore, ejecute el siguiente comando

service bitxorcore start

Para conocer el estado de BitxorCore ejecute el siguiente comando

systemctl status bitxorcore

Para seguir en directo el proceso de BitxorCore

journalctl -f -u bitxorcore.service

Para autoboot BitxorCore con el sistema

systemctl enable bitxorcore

Ejecutando BitxorBroker

Para ejecutar BitxorCore, ejecute el siguiente comando

service bitxorbroker start

Para conocer el estado de BitxorCore ejecute el siguiente comando

systemctl status bitxorbroker

Para seguir en directo el proceso de BitxorCore

journalctl -f -u bitxorbroker.service

Para autoboot BitxorCore con el sistema

systemctl enable bitxorbroker

Running the BitxorApi-REST

Para ejecutar BitxorApi-REST, ejecute el siguiente comando

service bitxorapi start

Para conocer el estado de BitxorApi-REST ejecute el siguiente comando

systemctl status bitxorapi

Para seguir en tiempo real el proceso de BitxorApi-REST

journalctl -f -u bitxorapi.service

Para autoboot BitxorApi-REST con el sistema

systemctl enable bitxorapi

Ahora puede ver la API ejecutándose, vaya a http://youripaddress:3000 sin ssl o https://youripaddress:3001 con ssl habilitado

Configuración Adicional

Habilitar recolección

  1. Primero debe generar 2 direcciones de billetera con su clave privada con el siguiente comando:

/root/BitxorCore/bin/bitxorcore.tools.addressgen -n mainnet -c 2
  1. Now you will write the 2 private key in the file of configuration: /root/BitxorCore/resources/config-harvesting.properties

nano /root/BitxorCore/resources/config-harvesting.properties

ahora ponga en la variable ‘harvesterSigningPrivateKey’ una clave privada obtenida en el paso 1, y poner en la variable ‘harvesterVrfPrivateKey’ la otra clave privada obtenida en el paso 1 cambie el valor de la variable ‘enableAutoHarvesting’ a ‘true’ en la variable ‘beneficiaryAddress’ coloque su billetera donde recibirá el porcentaje de nodo cuando encuentre un bloque. ahora guarda, para guardar presiona control + x y después de Y y presiona enter 3. Habilitar la recolección

nano /root/BitxorCore/resources/config-extensions-server.properties

change the variable ‘extension.harvesting’ to ‘true’ now save, for save press control + x and after Y and press enter

  1. Reiniciar BitxorCore

Habilitar nodo de votación

Nodo votando por primera vez

  1. Primero debe tener en su billetera para votar la cantidad mínima de BXR para el programa de votación.

  2. Necesitará crear una clave privada de votación en su nodo

cd /root/BitxorCore/bin
./bitxorcore.tools.votingkey -b 3101 -e 6210 -o private_key_tree1.dat
mkdir ../votingkeys
cp -f private_key_tree1.dat ../votingkeys/private_key_tree1.dat

Copie su clave pública que se utilizará para crear la transacción de clave de votación del enlace. Dependiendo de la época en la que te quedes, deberás cambiar las opciones -b 3101 para la época inicial y -e 6210 para la época final El rango de época máximo es de 3110 bloques.

  1. Deberá agregar el rol de votar en su configuración del nodo

nano ../resources/config-node.properties

agregue el siguiente texto ,Voting en el último carácter de la variable roles

  1. También debe habilitar la extensión de finalización

nano ../resources/config-finalization.properties

la configuración debe ser igual a esta configuración

[finalization]

enableVoting = true
enableRevoteOnBoot = true

size = 10'000
threshold = 6'700
stepDuration = 2m

shortLivedCacheMessageDuration = 10m
messageSynchronizationMaxResponseSize = 20MB

maxHashesPerPoint = 512
prevoteBlocksMultiple = 4

unfinalizedBlocksDuration = 0m

treasuryReissuanceEpoch = 0

Puede copiar toda la configuración y reemplazarla en la configuración que se muestra en su nodo.

  1. Necesita crear una clave de votación de enlace desde la votación de su billetera, esto se puede completar a través del SDK o Bitxor Wallet Desktop

Nodo de votación que renueva la clave de votación

  1. Deberá crear una nueva clave privada de votación en su nodo

cd /root/BitxorCore/bin
./bitxorcore.tools.votingkey -b 3101 -e 6210 -o private_key_tree2.dat
mkdir ../votingkeys
cp -f private_key_tree2.dat ../votingkeys/private_key_tree2.dat

Copie su clave pública que se utilizará para crear la transacción de clave de votación del enlace. Dependiendo de la época en la que te quedes, deberás cambiar las opciones -b 3101 para la época inicial y -e 6210 para la época final

El rango de época máximo es de 3110 bloques.

Solo si está utilizando private_key_tree2.dat en el momento de crear la nueva clave privada y tiene la clave pública de votación 1 vencida podrá usar el nombre private_key_tree1.dat, también podrá reemplazar la clave pública de votación 1 con la obtenida antes.

  1. Necesitará usar el SDK o Bitxor Wallet para crear la transacción de la clave de votación del enlace.

Próximos pasos

Ahora que su nodo está en funcionamiento, puede consultar las siguientes guías: