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.
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.
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 |
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.
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 |
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.
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.
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
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 *
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
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
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
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
—
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
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
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
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
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
Reiniciar BitxorCore
Primero debe tener en su billetera para votar la cantidad mínima de BXR para el programa de votación.
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.
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
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.
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
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.
Necesitará usar el SDK o Bitxor Wallet para crear la transacción de la clave de votación del enlace.
Ahora que su nodo está en funcionamiento, puede consultar las siguientes guías: