Aprende cómo acceder a la instancia de MongoDB de tu nodo API.
Note
Esto es una función avanzada
La Pasarela REST ofrece una amplia variedad de puntos finales para que no tengas que conectarte directamente a la base de datos interna de un nodo API.
Sin embargo, si estás desarrollando nuevos complementos para Bitxor o analizando datos extensos de la cadena de bloques, es posible que necesites conectarte directamente a MongoDB con fines de depuración.
Al final de esta guía, estarás conectado a la instancia de la base de datos de tu nodo API y realizarás algunas consultas básicas.
Tener un nodo API o Dual ejecutándose dentro de Docker con un puerto abierto para la base de datos (consultar la siguiente sección).
En la guía Ejecutar un nodo, has utilizado bitxor-bootstrap
para instanciar y ejecutar los servicios de nodo necesarios (cliente bitxorcore, puntos finales de API, bases de datos, etc.). Por razones de seguridad, todos estos servicios se ejecutan dentro de contenedores de Docker y, excepto los puntos finales públicos, están aislados del exterior.
Esto significa que la base de datos de MongoDB que los nodos API utilizan para almacenar en caché el estado de la cadena de bloques es inaccesible de forma predeterminada. Para reenviar su puerto interno al host, debes proporcionar a bitxor-bootstrap
un archivo de configuración personalizado que contenga las siguientes líneas:
databases:
- openPort: true
Luego, utiliza este archivo al configurar bitxor-bootstrap
, por ejemplo:
bitxor-bootstrap start -p testnet -a dual -c custom_parameters.yml
Nodos configurados previamente pueden necesitar detenerse y reiniciarse con el argumento --upgrade
para procesar el archivo yml personalizado actualizado:
bitxor-bootstrap stop
bitxor-bootstrap start -p testnet -a dual -c custom_parameters.yml --upgrade
Warning
Esto hará que la base de datos sea accesible desde el puerto TCP 27017
del host y será extremadamente vulnerable si este puerto se expone públicamente, así que ten cuidado. Esta función solo se recomienda para fines de desarrollo.
Para este tutorial, vamos a utilizar Robo 3T (anteriormente RoboMongo), una herramienta de administración de MongoDB multiplataforma, para interactuar con la base de datos.
Descarga Robo 3T aquí.
Abre el instalador y sigue las instrucciones de instalación.
En caso de duda, sigue la documentación oficial de instalación.
Abre Robo 3T y haz clic en el enlace “Create�?/strong> para agregar una nueva conexión.
Ingresa los siguientes detalles en la pestaña “Connection�?/strong>:
Type: Direct Connection
Name: my-node
Address: localhost
Port: 27017
Si el nodo se está ejecutando localmente, haz clic en “Connect�?/strong> y pasa a la siguiente sección Consultar MongoDB.
De lo contrario, si estás ejecutando el nodo en un servidor privado virtual (VPS), primero crea un túnel entre tu computadora y el servidor.
Ve a la pestaña SSH y agrega los detalles del servidor:
Reemplaza la Dirección SSH, nombre de usuario y método de autenticación.
Después de hacer clic en “Connect�? deberías ver las colecciones de MongoDB en la base de datos llamada “bitxorcore�?/strong>.
Note
Utiliza este método solo para leer desde la base de datos. No modifiques ningún documento directamente en MongoDB.
En la barra lateral izquierda, abre la colección que deseas consultar.
En la mayoría de los casos, es posible que desees filtrar un conjunto de entradas por uno de sus atributos. Para filtrar, por ejemplo, un tipo de transacción dado, escribe una consulta con el siguiente formato en la terminal de Robo 3T:
db.getCollection('transactions').find( { "transaction.type": 16724})
Para otras consultas avanzadas, consulta la documentación de Robo3T.
Haz clic en el botón “Play�?/strong> para ejecutar la consulta.