How to use this handy node deployment tool.
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
.
Los scripts de configuración se automatizan con Docker. Para ejecutar un nodo o una red de prueba, deberá tener instaladas las siguientes herramientas:
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.
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
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 |
---|---|
|
Un nodo único que se conecta a la red principal pública actual. Se copia el bloque Génesis. Requiere un |
|
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. |
|
Un nodo único que se conecta a la red pública actual de prueba. Se copia el bloque Génesis. Requiere un |
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 |
---|---|---|
|
|
El nodo es un Nodo par (archivo de configuración). |
|
|
El nodo es un Nodo de API (`archivo de configuración<https://github.com/fboucquez/bitxor-bootstrap/blob/main/presets/assemblies/assembly-api.yml>`__). |
|
|
El nodo es a la vez un Nodo par y un Nodo de API (archivo de configuración). |
|
|
El nodo es un:ref:peer-node (archivo de configuración). |
|
|
El nodo se ejecuta es un Nodo de API (archivo de configuración). |
|
|
El nodo es a la vez un Nodo par y un Nodo de API (archivo de configuración). |
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.
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
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.
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
.
start
todo en unoLos 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.
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.
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.
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.
Lea la lista completa de los comandos bitxor-bootstrap
.
Continúe y cree un nodo siguiendo la guía Ejecutar un nodo.