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!
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.
- UK2.net
- IONOS.co.uk
- InterServer.net
- OVH.co.uk
- KimSufi.com
- mVPS.net
- VPS-Mart.com
- Hostinger.com
- BudgetVM.com
- Virtono.com
- LeaseWeb.com
- HomeAtCloud.com
- IdeaStack.com
- SSDNodes.com
- SimplyHosting.com
- RAMNode.com
- Time4VPS.com
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 unoperatorReward
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 campotx
del comandoprotx_register_prepare
.sig
: El mensaje devuelto por el comandosignmessagebech32
.
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 inicialipAndPort
: IP y puerto en el formato “ip:puerto”operatorKey
: La clave privada BLS del operador, asociada con la clave pública registradaoperatorPayoutAddress
: Dirección para recibir recompensas del operadorfeeSourceAddress
(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