How to use this handy node deployment tool.

Uso de Bitxor Bootstrap

Esta guía explica los conceptos detrás de Bitxor Bootstrap, un programa que permite configurar y ejecutar rápidamente nodos de Bitxor en varios sistemas operativos (Windows, Linux y Mac).

También puede implementar varios nodos a la vez para crear rápidamente una red de prueba.

Después de leer esto, podrá comprender mejor las guías Ejecutar un nodo y Redes de prueba privadas.

This program replaces the previous tools bitxorcore-service-bootstrap and bitxor-testnet-bootstrap.

Requisitos

Ambiente

Los scripts de configuración se automatizan con Docker. Para ejecutar un nodo o una red de prueba, deberá tener instaladas las siguientes herramientas:

Puertos

Asegúrese de que se pueda acceder al host del cliente desde Internet y que los siguientes puertos estén abiertos y disponibles:

  • Bitxorcore-client utiliza el puerto 7900 para comunicarse entre nodos.

  • El REST Gateway utiliza el puerto 3000 para exponer los puntos finales para interactuar con el nodo.

  • El puerto 3001 es utilizado por REST Gateway en modo HTTPS.

Instalación

Bitxor Bootstrap se proporciona como una herramienta instalable, no es necesario clonar un repositorio y compilarlo. Simplemente ejecute esto desde una terminal o símbolo del sistema:

npm install -g bitxor-bootstrap

Configuración

Preajustes

La configuración del nodo se realiza mediante un archivo de configuración YAML que especifica todos los parámetros de red posibles. Dado que el archivo completo puede tener varios cientos de líneas, hay disponibles una serie de preajustes para simplificar su manejo. Especifique el preajuste con los parámetros ‑‑preset o ‑p.

Preset

Description

mainnet

Un nodo único que se conecta a la red principal pública actual. Se copia el bloque Génesis. Requiere un ensamblaje, como se muestra a continuación(archivo de configuración).

bootstrap

Red autónoma con 1 base de datos mongo, 2 pares, 1 api y 1 gateway de descanso. Se genera el bloque Génesis (archivo de configuración). Este es el preajuste predeterminado.

testnet

Un nodo único que se conecta a la red pública actual de prueba. Se copia el bloque Génesis. Requiere un ensamblado, como se muestra a continuación (archivo de configuración).

Los ajustes preestablecidos se pueden personalizar aún más indicando un ensamblaje (o sabor) que proporciona parámetros adicionales. Especifique el ensamblaje con los parámetros ‑‑assembly o ‑a.

Preestablecido

Conjuntos disponibles

Descripción

mainnet

peer

El nodo es un Nodo par (archivo de configuración).

mainnet

api

El nodo es un Nodo de API (`archivo de configuración<https://github.com/fboucquez/bitxor-bootstrap/blob/main/presets/assemblies/assembly-api.yml>`__).

mainnet

dual

El nodo es a la vez un Nodo par y un Nodo de API (archivo de configuración).

testnet

peer

El nodo es un:ref:peer-node (archivo de configuración).

testnet

api

El nodo se ejecuta es un Nodo de API (archivo de configuración).

testnet

dual

El nodo es a la vez un Nodo par y un Nodo de API (archivo de configuración).

Preajustes personalizados

Además, si se requiere una configuración adicional, se puede proporcionar un archivo preestablecido personalizado. Cualquier valor en este archivo anula los valores predeterminados establecidos por el ajuste preestablecido o el ensamblaje para que se pueda combinar encima de ellos. Todas las propiedades de las guías Propiedades de red o Propiedades del nodo se pueden configurar a través de este archivo, por ejemplo.

Especifique un archivo preestablecido personalizado con los parámetros ‑‑customPreset o ‑c.

Note

Si alguna vez cambia su archivo preestablecido personalizado una vez que su nodo ya se está ejecutando, deberá actualizar el nodo como se explica en la guía update-bootstrap-nodes.

El comando config

Antes de construir el nodo o la red, se debe crear un archivo de configuración completo usando el comando bitxor-bootstrap config :

bitxor-bootstrap config -p <preset> -a <assembly> -c <custom_parameters_file.yml>

Por ejemplo:

bitxor-bootstrap config -p bootstrap
bitxor-bootstrap config -p mainnet -a peer
bitxor-bootstrap config -p mainnet -a dual
bitxor-bootstrap config -p mainnet -a dual -c custom_parameters.yml

Esto creará una carpeta, llamada target por defecto (se puede cambiar con los parámetros ‑‑target o ‑t), que contiene, entre otras cosas, el archivo de configuración completo generado (`` target/preset.yml``) listo para usarse para construir el nodo o la red.

Note

En Linux, si recibe el error Permiso denegado al intentar conectarse al socket del demonio Docker, significa que su usuario no pertenece al grupo docker. Agrégalo con:

sudo addgroup $USER docker

El comando redactar

Este comando prepara los archivos Docker necesarios en función de la configuración proporcionada:

bitxor-bootstrap compose

Al igual que el paso de configuración, esto solo debe ejecutarse una vez.

El comando ejecutar

Finalmente, ejecute este comando para iniciar las instancias de Docker necesarias y arrancar su nodo o red:

bitxor-bootstrap run

Detenga el proceso presionando Ctrl+C.

Note

Para ejecutar los contenedores de Docker en el fondo de su terminal, puede ejecutar el servicio en modo separado utilizando los parámetros ‑‑tached o ‑d.

Luego debe detenerlos con bitxor-bootstrap stop.

El comando start todo en uno

Los tres comandos anteriores (config, compose y run) se pueden combinar en uno solo:

bitxor-bootstrap start -p <preset> -a <assembly> -c <custom_parameters_file.yml>

Así es, un |nombre en clave| El nodo (o la red de prueba con muchos nodos) se puede instanciar y arrancar con un solo comando.

Los pasos que solo deben realizarse una vez (config y compose) no se repetirán, por lo que puede usar este comando cada vez.

Proporcionar acceso HTTPS

API nodes creados usando los ensamblajes api o dual aceptan comandos HTTP a través del puerto 3000. También se puede habilitar el acceso HTTPS, como se describe en las siguientes dos secciones.

Note

The certificates used below will only be used for HTTPS communication with the REST API, not as node certificates for inter-node communication.

Usa tu propio certificado

Si ya tiene un SSL para su host, puede pasarlo a Bitxor Bootstrap dentro de un archivo preestablecido personalizado.

Sin embargo, para que el archivo preestablecido personalizado sea autónomo, los archivos Clave y Crt de su certificado deben convertirse a `Base64 <https://en.wikipedia.org/wiki/Base64 >`__ cadena y copiado en el archivo preestablecido:

cat restSsl.key | base64 -w 0
cat restSsl.crt | base64 -w 0

Copie la salida de estos comandos en el archivo preestablecido, en una sección como esta:

nodes:
- friendlyName: My Awesome Node # Use anything you want here
  host: awesomenode.mycompany.net # Use your node's host name
gateways:
- restProtocol: HTTPS
  openPort: 3001
  restSSLCertificateBase64: >-
    LS0tLS1CRUdJTiBDRVJUSUZ...Base64...==
  restSSLKeyBase64: >-
    LS0tLS1CRUdJTiBSU0EgUFJ...Base64...=

El certificado proporcionado debe ser válido para el nombre de host awesomenode.mycompany.net. El dominio necesita resolver la dirección IP de su nodo.

Cuando los certificados finalmente expiren, deberá actualizar el archivo preestablecido personalizado y luego actualizar el nodo como se explica en la guía update-bootstrap-nodes.

Esta opción solo deja abierto el puerto HTTPS 3001, no el HTTP 3000. Recuerde abrir el puerto 3001 en su firewall o grupo de seguridad. El puerto 3000 se puede cerrar porque ya no se usa.

Certificado automático Let’s Encrypt

Bootstrap también puede encargarse de obtener los certificados SSL necesarios a través del servicio público y gratuito Let’s Encrypt.

Para habilitarlo, simplemente inscríbase agregando una sección httpsProxies a su archivo preestablecido personalizado:

nodes:
    - friendlyName: My Awesome Node # Use anything you want here
      host: awesomenode.mycompany.net # Use your node's host name
httpsProxies:
    - excludeDockerService: false

Debe poseer el dominio awesomenode.mycompany.net y debe resolver la dirección IP de su nodo. El servicio Let’s Encrypt se encargará de la creación y renovación de certificados por usted.

Recuerde abrir los puertos 3001 y 80 en su firewall o grupo de seguridad. El puerto 3000 puede o no estar cerrado. El puerto 80 es necesario para Let’s Encrypt. .. note:

Esta opción se ha inspirado en gran medida en `este gran blog <https://nemlog.bxr.social/blog/58808>`__. Bitxor Bootstrap simplemente empaqueta esta solución, agilizando el proceso.

Próximos pasos