Cómo configurar un SentryNode | Syscoin Nexus

SCRIPT DE SENTRYNODE DE SYSCOIN NEXUS

CADA SENTRYNODE DEBE TENER LO SIGUIENTE

1. Un VPS nuevo para instalar.
2. Una clave BLS separada por nodo.
3. Una clave de propietario y una clave de votación.

¡No puedes usar la misma BLS Key, ni las claves de propietario y votación para varios nodos!

Logo de Sycoin Scifi

A continuación se muestran los requisitos mínimos para tu VPS. Por favor, no intentes compilar sin los mínimos. Debes instalar en un VPS completamente nuevo.

  • CPU de 64 bits — 2 núcleos (4 recomendado)
  • 4GB de RAM (mínimo real) (8GB de RAM recomendado)
  • 4GB de swap (si tienes menos de 8GB de RAM real).
    Necesitarás usar un SSD si usas Swap
  • KVM o OpenVZ (preferible KVM)
  • Sistema operativo Linux — Ubuntu 18.04 mínimo, recomendado Ubuntu 20.04 LTS
  • 80GB de espacio en disco (preferible SSD de 100GB+).

Si estás usando una dirección existente con antigüedad, deberás ‘bloquear’ manualmente el colateral. Haz esto mediante Control de monedas: haz clic derecho sobre tu transacción de 100k y selecciona “Bloquear no gastados”. No necesitas hacer una nueva transacción. Hacerlo perdería tu antigüedad. Si estás configurando un SentryNode con una dirección de antigüedad, puedes saltarte a la parte de generar las claves BLS.

Guía en Video

Guía de instalación de SentryNode

Proveedores de VPS

Hay muchos proveedores de VPS que ofrecen y superan los requisitos de hardware, por lo que te recomendamos que investigues por ti mismo los diferentes proveedores. La siguiente lista es solo una referencia y no debe interpretarse como una recomendación o respaldo.

AYUDA CON EL SENTRYNODE

Syscoin Discord: Si necesitas más ayuda, entra al Discord de Syscoin y nuestra comunidad estará encantada de ayudarte.

Sysnode.info: Este sitio web tiene varias herramientas como estadísticas de SentryNodes, monitoreo y noticias actualizadas sobre Syscoin.

Preparar QT y Enviar 100k Syscoin

Para poner en stake tu SentryNode, necesitas proporcionar exactamente 100,000 SYS en la dirección de tu SentryNode. Utiliza Syscoin Core Qt para que tu sistema procese esta transacción.

Crea una nueva dirección para el colateral. Esta no necesita ser una dirección heredada, o puedes usar una dirección existente de antigüedad. Si estás usando una dirección de antigüedad, no es necesario hacer una nueva transacción ni crear una nueva dirección.

getnewaddress mn1

Envía exactamente 100000 Syscoin a esta dirección.

Identificar la transacción de 100k Syscoin

  • Haz clic en Ventana > Consola e ingresa el siguiente comando: Ten en cuenta que algunos comandos ahora requieren un guion bajo.

masternode_outputs

Esto devolverá una cadena de caracteres similar a la siguiente:

{
  "3304a4920f20e1e5cd1f34e5396556ded1e603296f7c5dd66c7ec4fe63cb008d": "0"
}

La primera cadena larga es tu collateralHash, mientras que el último número es el collateralIndex.

Generar el par de claves BLS

NOTA: DEBES CREAR UN PAR DE CLAVES BLS PARA CADA SENTRYNODE

Se requiere un par de claves BLS públicas/secretas para operar un SentryNode. La clave secreta se especifica en el propio SentryNode, y permite que este sea incluido en la lista determinista de SentryNode una vez que se haya creado una transacción de registro del proveedor con la clave pública correspondiente.

Si estás utilizando un servicio de alojamiento, pueden proporcionarte su clave pública, por lo que puedes saltarte este paso. Si estás alojando tu propio SentryNode o has acordado proporcionar la clave secreta BLS a tu host, genera un par de claves BLS públicas/secretas en la Consola ingresando el siguiente comando:

Estas claves NO son almacenadas por la billetera y deben mantenerse seguras, similar al valor proporcionado en el pasado por el comando genkey de SentryNode.

bls_generate

{
  "secret": "1a8f477d2b02650b7d159efe315940f05252334eb292376309386cc99b0c4ec7",
  "public": "05afc5f75d0a215951677703e41a108a67f2efb31110e392d988dbd4f9e8446a3336d59de1ff886ec0d3c65c822af2de"
}

Configurar el SentryNode en el VPS

Finalmente estamos listos para trabajar en tu servidor. Conéctate a tu VPS como root a través de SSH (Putty en Windows) e ingresa el siguiente comando para iniciar la instalación automatizada:

bash <(curl -sL https://raw.githubusercontent.com/Syscoin/Masternode-install-script/master/script.sh)

Por favor revisa también las últimas versiones - si no es 4.2.0, necesitarás ingresar la última etiqueta de versión para la rama de Syscoin Core en Github. Si la última versión es 4.2.1, deberías ingresar 4.2.1 y luego presionar enter. Puedes comprobarlo aquí; Releases · syscoin/syscoin · GitHub

Los valores predeterminados se encuentran entre corchetes y presionar enter seleccionará el valor [predeterminado]. Para las entradas con un [Y/n], la letra mayúscula es la predeterminada. Ingresa [Y] para elegir “sí” o [N] para elegir “no”. Probablemente la única opción que tendrás que ingresar es la última etiqueta de versión y la clave secreta BLS del SentryNode.

Syscoin Core Github Branch [master]: enter latest release tag here. For eg. 4.2.1
External IP Address [123.123.123.123]: 
Sentry Node Port [8369]: 
Sentry Node BLS Secret Key []: 1a8f477d2b02650b7d159efe315940f05252334eb292376309386cc99b0c4ec7
Configure for mainnet? [Y/n]: 
 
Press any key to continue or Ctrl+C to exit...

Una vez que el proceso de construcción y configuración haya finalizado, para acceder a los ejecutables syscoind y syscoin-cli a través del nuevo usuario de syscoin, escribe lo siguiente en cmd; source ~/.bashrc

Aquí tienes la traducción del artículo solicitado:


Verificar el estado de sincronización

Para verificar el estado de la sincronización, ingresa el siguiente comando:

syscli mnsync status

Ahora, dirígete a tu Syscoin QT para registrar tu SentryNode

Preparar una transacción ProRegTx

Ya se generaron un par de claves BLS para el operador en los pasos anteriores, y la clave secreta se ingresó en el SentryNode. La clave pública se usará en esta transacción como operatorPubKey.

Primero, necesitamos obtener una nueva dirección no utilizada desde la billetera para que sirva como la dirección de la clave del propietario ownerKeyAddr. Esta no es la misma que la dirección de garantía que posee 100,000 Syscoin. Esta dirección debe ser diferente para cada SentryNode.

Genera una nueva dirección de la siguiente manera:

getnewaddress sn1-owner

Esta dirección también puede usarse como la dirección de clave de votación votingKeyAddr. Alternativamente, puedes especificar una dirección proporcionada por tu delegado de votación elegido, o simplemente generar una nueva dirección de clave de votación de la siguiente manera:

getnewaddress sn1-voting

Luego, genera o elige una dirección existente para recibir los pagos del SentryNode del propietario payoutAddress. Esta dirección no puede ser la misma que la de propietario o de votación, también es posible usar una dirección externa a la billetera:

getnewaddress payouts

Opcionalmente, también puedes generar y financiar otra dirección como la fuente de las tarifas de transacción feeSourceAddress. Si elegiste una dirección de pago externa, debes especificar una dirección de fuente de tarifa.

La dirección debe tener suficiente saldo para pagar la tarifa de la transacción, o la transacción register_prepare fallará.

Las claves privadas de las direcciones de propietario y de fuente de tarifa deben existir en la billetera que envíe la transacción a la red. Si tu billetera está protegida por una contraseña, debe desbloquearse para ejecutar los siguientes comandos. Desbloquea tu billetera por 5 minutos:

walletpassphrase yourSecretPassword 300

Registrar ProTx

Ahora vamos a preparar una transacción ProRegTx no firmada utilizando el comando protx_register_prepare.

Este comando tiene la siguiente sintaxis:

protx_register_prepare collateralHash collateralIndex ipAndPort ownerKeyAddr operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress)

Reemplaza cada argumento del comando de la siguiente manera:

  • collateralHash: El txid de la transacción de financiamiento de 100,000 Syscoin como garantía
  • collateralIndex: El índice de salida de la transacción de financiamiento de 100,000 Syscoin
  • ipAndPort: Dirección IP y puerto del SentryNode, en el formato x.x.x.x:pppp
  • ownerKeyAddr: La dirección de Syscoin generada arriba para la dirección del propietario
  • operatorPubKey: La clave pública BLS generada arriba (o proporcionada por tu proveedor de hosting)
  • votingKeyAddr: La dirección de Syscoin generada arriba, o la dirección de un delegado, utilizada para votar en propuestas
  • operatorReward: El porcentaje de la recompensa del bloque asignado al operador como pago, 0 si no hay recompensa (esto es para pagarle a alguien más un % de tus recompensas)
  • payoutAddress: Una dirección de Syscoin para recibir las recompensas del SentryNode del propietario
  • feeSourceAddress: (Opcional) Una dirección utilizada para financiar la tarifa de ProTx. Se usará payoutAddress si no se especifica.

Ten en cuenta que el operador es responsable de especificar su propia dirección de recompensa en una transacción update_service si especifica un operatorReward distinto de cero. El propietario de la garantía del SentryNode no especifica la dirección de pago del operador.

Ya sea la feeSourceAddress o la payoutAddress deben tener un saldo pequeño, ya que se requiere una tarifa estándar para la transacción. Ejemplo (elimina los saltos de línea si estás copiando):

Nota que en este ejemplo usaré la misma dirección para propietario y votación, y habré enviado una pequeña cantidad de Syscoin a payoutAddress para las tarifas, ya que no usaré feeSourceAddress.

(Recuerda bloquear tu transacción collateral si usas esta dirección para evitar gastos accidentales)

Output:
{
  "tx": "5000000000010163dc2d9a36a7a620386a23002ab6b8a2aba0956e7e047b73a6cf27d9d51571e80100000000feffffff020000000000000000d16a4cce0100000000008d00cb63fec47e6cd65d7c6f2903e6d1de566539e5341fcde5e1200f92a404330000000000000000000000000000ffffa1618f4447c12f73258d961fe6082720ecc7415d4ebebdadb37905afc5f75d0a215951677703e41a108a67f2efb31110e392d988dbd4f9e8446a3336d59de1ff886ec0d3c65c822af2de2f73258d961fe6082720ecc7415d4ebebdadb3790000160014e7395ee2f4986418b03bee442c2f051c6357d0318e95079d496ed43baba5101dab0ab5ace776ac1b0b7fcba7711a2504c9ea36610074c89a3b00000000160014279a7a94c83130b3eee07f2c66b2faa94b6cfe990247304402201f1e01ab33d4f388386ca5df94818674cf4b1909806c3a92ffc11ded88d84dfb02206d289cca1fbd19bc5154c85ec4f1eb3748f77071d863ae4f6aa18f56807f76e801210298a88bd8293e4d0248eb89f276cb54c26b3686ea4e17df155a22bfed2426862800000000",
  "collateralAddress": "TB59KQk6WsMaJxkc8UB3hudjtGMqfeQWSG",
  "signMessage": "sys1quuu4ach5npjp3vpmaezzctc9r33405p39khz67|0|tsys1q9aejtrvkrlnqsfeqanr5zh2wh676mvmekj4hj0|tsys1q9aejtrvkrlnqsfeqanr5zh2wh676mvmekj4hj0|00def144051468bdb1a855f01bf9f022091c4c0ebc745d1ecc28ac418c9af2e0"
}

A continuación, utilizaremos los campos collateralAddress y signMessage para firmar la transacción, y el resultado del campo tx para enviar la transacción.

Firmar la transacción ProRegTx

Ahora vamos a firmar el contenido del campo signMessage (devuelto anteriormente) utilizando la clave pública de la dirección de garantía, como se especifica en collateralAddress. La billetera utilizada para firmar debe contener la clave privada de la dirección de garantía, y ten en cuenta que no se requiere una conexión a Internet para este paso, lo que significa que la billetera puede permanecer desconectada en almacenamiento frío para firmar el mensaje.

Aquí tienes la versión en español manteniendo el formato técnico original:


El comando utiliza la siguiente sintaxis:

signmessagebech32 collateralAddress signMessage

Ejemplo (sin incluir “ ”):

signmessagebech32 TB59KQk6WsMaJxkc8UB3hudjtGMqfeQWSG tsys1quuu4ach5npjp3vpmaezzctc9r33405p39khz67|0|tsys1q9aejtrvkrlnqsfeqanr5zh2wh676mvmekj4hj0|tsys1q9aejtrvkrlnqsfeqanr5zh2wh676mvmekj4hj0|00def144051468bdb1a855f01bf9f022091c4c0ebc745d1ecc28ac418c9af2e0

Resultado:

IGj1ORdk3yv/uAMKG+DZrBA/GTHX4dW8zn/rmMfGzOzCIaxqmyUbNveYtnqh9wLVECENMjyuyeR2VmB3ccNlRLw=

Enviar el mensaje firmado

Ahora enviaremos la transacción especial ProRegTx a la blockchain para registrar el SentryNode. Este comando debe ejecutarse desde la billetera que tenga saldo en la dirección feeSourceAddress o payoutAddress, ya que se requiere una comisión de transacción estándar.

La sintaxis del comando es:

protx_register_submit tx sig

Donde:

  • tx: La transacción serializada devuelta previamente en el campo tx del comando protx_register_prepare.
  • sig: El mensaje devuelto por el comando signmessagebech32.

Ejemplo (sin incluir “ ”):

protx_register_submit 5000000000010163dc2d9a36a7a620386a23002ab6b8a2aba0956e7e047b73a6cf27d9d51571e80100000000feffffff020000000000000000d16a4cce0100000000008d00cb63fec47e6cd65d7c6f2903e6d1de566539e5341fcde5e1200f92a404330000000000000000000000000000ffffa1618f4447c12f73258d961fe6082720ecc7415d4ebebdadb37905afc5f75d0a215951677703e41a108a67f2efb31110e392d988dbd4f9e8446a3336d59de1ff886ec0d3c65c822af2de2f73258d961fe6082720ecc7415d4ebebdadb3790000160014e7395ee2f4986418b03bee442c2f051c6357d0318e95079d496ed43baba5101dab0ab5ace776ac1b0b7fcba7711a2504c9ea36610074c89a3b00000000160014279a7a94c83130b3eee07f2c66b2faa94b6cfe990247304402201f1e01ab33d4f388386ca5df94818674cf4b1909806c3a92ffc11ded88d84dfb02206d289cca1fbd19bc5154c85ec4f1eb3748f77071d863ae4f6aa18f56807f76e801210298a88bd8293e4d0248eb89f276cb54c26b3686ea4e17df155a22bfed2426862800000000 IGj1ORdk3yv/uAMKG+DZrBA/GTHX4dW8zn/rmMfGzOzCIaxqmyUbNveYtnqh9wLVECENMjyuyeR2VmB3ccNlRLw=

Resultado:

285fba6277586401f8efaf55d4eef7acfa6d690a30c0db7f213a0bb2c6194bd1

Tu SentryNode ya está registrado y aparecerá en la lista determinista de nodos Sentry una vez que la transacción sea incluida en un bloque.

Puedes ver esta lista desde la pestaña Sentry Node en el cliente QT, o en la consola con el comando:

protx_list valid

El txid devuelto por protx_register_submit identifica tu nodo.


Especificar dirección de donación para operatorReward (opcional)

Dirección de la Fundación Syscoin:

sys1qlzkpdju932ferzdt6jvln4hk3hmmlqxswfhpj4

Solo necesitas hacer esto si especificaste un valor mayor a 0 en operatorReward al realizar el ProRegTx.

protx_update_service proTxHash ipAndPort operatorKey (operatorPayoutAddress feeSourceAddress)

Donde:

  • proTxHash: El hash del ProRegTx inicial
  • ipAndPort: IP y puerto en el formato “ip:puerto”
  • operatorKey: La clave privada BLS del operador, asociada con la clave pública registrada
  • operatorPayoutAddress: Dirección para recibir recompensas del operador
  • feeSourceAddress (opcional): Dirección desde donde se tomará la comisión de la transacción. Se usará operatorPayoutAddress si no se especifica.

Ejemplo:

protx update_service 285fba6277586401f8efaf55d4eef7acfa6d690a30c0db7f213a0bb2c6194bd1 161.97.140.65:8369 1a8f477d2b02650b7d159efe315940f05252334eb292376309386cc99b0c4ec7 sys1qlzkpdju932ferzdt6jvln4hk3hmmlqxswfhpj4

COMANDOS DEL SENTRYNODE

Ver el archivo syscoin.conf
sudo cat /home/syscoin/.syscoin/syscoin.conf
Ver el archivo sentinel.conf
sudo cat /home/syscoin/sentinel/sentinel.conf
Ver el crontab del usuario syscoin (debe incluir el ping de sentinel)
sudo crontab -u syscoin -l
Ejecutar un sentinel-ping manual para acelerar la sincronización en Qt
sudo su -c "sentinel-ping" syscoin
Revisar el log del cron de sentinel-ping (buscar errores)
sudo less /home/syscoin/sentinel/sentinel-cron.log
Revisar el log de depuración de syscoind (buscar errores)
sudo less /home/syscoin/.syscoin/debug.log
Iniciar y detener el servicio systemd de syscoind
sudo service syscoind stop  
sudo service syscoind start  
sudo service syscoind restart
Verificar que el proceso syscoind esté corriendo con el usuario correcto
ps aux | grep [s]yscoind
Cerrar sesión e ingresar nuevamente, o ejecutar el siguiente comando para activar alias
source ~/.bashrc
Ahora puedes ejecutar comandos como el usuario syscoin
syscoin-cli getblockchaininfo  
syscoin-cli mnsync status  
syscoin-cli masternode_status
También puedes usar el alias corto
syscli getblockchaininfo  
syscli mnsync status  
syscli masternode_status
Si realmente quieres iniciar sesión como el usuario syscoin
sudo su - syscoin