Redes de prueba privadas

Esta guía te guiará a través del proceso de configuración de tu propia red privada utilizando Bitxor.

Para ejecutar la red, utilizaremos el paquete Bitxor Bootstrap. Para comprender mejor cómo funciona este paquete, se recomienda leer la guía Usando Bitxor Bootstrap.

El ajuste predefinido “bootstrap�?a class="headerlink" href="#el-ajuste-predefinido-bootstrap" title="Permalink to this heading">

Bitxor Bootstrap tiene un ajuste predefinido llamado “bootstrap�?que crea una red con varios nodos con la siguiente arquitectura:

../../_images/four-layer-architecture.png

Arquitectura de la red de arranque

Los nodos etiquetados como “Internal�?son los creados por Bitxor Bootstrap y son accesibles a través de la API REST:

  • peer-node (1 y 2): Los nodos pares verifican transacciones una vez que la API las empuja a la red P2P. Ejecutan el algoritmo de consenso, crean nuevos bloques y propagan los cambios a través de la red.

  • api-node: El nodo de API almacena datos en la base de datos MongoDB una vez que las transacciones son validadas. También identifican y almacenan transacciones de enlace agregadas parciales.

  • rest-gateway: Combina HTTP y WebSockets para realizar acciones de lectura y escritura en la cadena de bloques.

Crear la red

Utiliza el comando “start�?(explicado en la guía Usando Bitxor Bootstrap) utilizando el ajuste predefinido “bootstrap�?

bitxor-bootstrap start -p bootstrap

Con un solo comando, se creará y se iniciará la red. Ahora verifica que esté en funcionamiento abriendo una nueva pestaña del navegador y yendo a:

localhost:3000/chain/info

Deberías recibir una respuesta del nodo de API.

Obtener las cuentas de los nodos

Bitxor Bootstrap ha creado varios nodos con sus cuentas correspondientes. Para interactuar con cualquiera de estas cuentas (por ejemplo, para transferir tokens a ella), necesitas su dirección o su clave pública. Para tener control total sobre una cuenta (por ejemplo, para transferir tokens desde ella), necesitas su clave privada.

Toda esta información se puede obtener de un archivo YAML en la carpeta “target�?

target/addresses.yml

Como ejemplo:

networkType: 152
genesisGenerationHashSeed: 7BFC536990108CA923B2715DE6B8E47E6BB56C945293BF4FC22C5AF895F61E62
nodes:
    -
        signing:
            # Keys for the account of the peer-node-0
            privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
            publicKey: C2BD21E4F9261247A4CBE75DA8683978E0F1FFF34AAB17BEBC21E7B9E0E17A9F
            address: BXREGYVY6GVGXCLBIEH72XU4D2OSTH2MIOOY4QQ
        vrf:
            privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
            publicKey: D67601AC6767F8A3C97FFDB0D9D737A943FFFA6E69C2C6527B0ED32A4E41B443
            address: BXR6ZWX3UP3TKJK3BSE6ARJ4WAF3KHFFUWJ7EWI
        voting:
            privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
            publicKey: 921ED0839EA3C8590CA1D6562DDD3BFEDA44CCE05DD82DF8C79DED2A3F816A1B
            address: BXR7BJJJMRXR2OLJKZNUFTRMLHLQ4T2PPHZRX5I
        ssl:
            privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
            publicKey: 3d68cdaa4e48a14bd875d4ca18e044522be5f602e8c4f37c1c65eafdfaa19110
        type: peer-node
        name: peer-node-0
        friendlyName: peer-node-0

Note

Keep your Secret Keys secret at all times!

Ahora puede importar cualquiera de estas cuentas utilizando bitxor-cli herramienta de línea de comandos para facilitar el acceso (Lea la guía bitxor-cli para obtener más detalles):

bitxor-cli profile import --private-key <PRIVATE_KEY> --network TEST_NET --url http://localhost:3000

Después de darle un nombre a este nuevo perfil, estará listo para usarlo, por ejemplo, para recuperar el saldo de la cuenta:

bitxor-cli account info --profile <PROFILE_NAME>

Debería ver que los nodos que Bitxor Bootstrap ha creado para ti ya contiene alguna moneda (en diferentes tokens) para empezar a experimentar con ellos:

Balance Information
┌──────────────────┬──────────────────┬──────────────────┬───────────────────�?�?Token Id        �?Relative Amount  �?Absolute Amount  �?Expiration Height �?├──────────────────┼──────────────────┼──────────────────┼───────────────────�?�?3ECBB73A05A147BC �?1,124,874,999.75 �?1124874999750000 �?Never             �?├──────────────────┼──────────────────┼──────────────────┼───────────────────�?�?2B19203C86F9A668 �?3,000            �?3000000          �?Never             �?└──────────────────┴──────────────────┴──────────────────┴───────────────────�?

Recuperando las cuentas de prueba

Bitxor Bootstrap también ha creado varias cuentas de prueba precargadas con tokens. Estas cuentas existen únicamente con fines de desarrollo y aprendizaje.

Las claves de estas cuentas se pueden encontrar en el archivo target/addresses.yml como se describe arriba, en la sección tokens:

tokens:
    -
        id: 56631872BA6657A1
        name: currency
        type: currency
        # These are accounts containing the main currency
        accounts:
            -
                privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
                publicKey: 91A9513EBEB50DEFCD928032611B2FBC046FA894089D2ACED115D6EDEB0BFD2A
                address: NBO3P2AM3A6242V2NFMUIG5RQ3ZFDRKS5QNRBJA
            -
                privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
                publicKey: 4E9CC90B45265691C2CF0C68785A06602D28DB50ACFB91F8389B976898239132
                address: NCDFN3W2AP3E4I2XYITUJHHGVSYKOIR2IUTXKXY
    -
        id: 079C43E0DFC44B38
        name: harvest
        type: harvest
        # These are account containing the network currency used for harvesting
        accounts:
            -
                privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
                publicKey: D617FC0C746681849D93DBEB5FE0E390F26535E4EA76F02AB206AD053B72FAB8
                address: NBFFJ3MNPMHP474KD7JLBJWAYSYSAUEW7L7262Q
            -
                privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
                publicKey: BBB04EC2CF67658B755F94FC347DDC4AAFFBFC24B84298AEF41CDA2485FA216E
                address: NCQBYJE3U4Q36AA2E6HFTGKCUXIBUB2NMIGAFDA

Use las claves privadas para acceder a estas cuentas, por ejemplo, usando bitxor-cli herramienta de línea de comandos como se describe anteriormente.

Nodos de votación

El proceso block finalization requiere que los nodos de la red voten sobre la corrección de los bloques antes de agregarlos a la cadena de bloques. Cada nodo puede decidir si registrarse como votante o no.

Todos los nodos creados por el preajuste bootstrap son votantes por defecto. Si no desea esto, proporcione un ajuste preestablecido personalizado con estas líneas para deshabilitar la votación para cada nodo:

nodes:
- voting: false # peer-node-0
- voting: false # peer-node-1
- voting: false # api-node-0

Note

Without ANY voting node no finalization can occur. By taking a look at localhost:3000/chain/info you will see you chain height grow but the latestFinalizedBlock’s height will remain at zero.

Configuración de propiedades de red

Lea la guía Configuración de propiedades de red para obtener una lista de configuraciones relacionadas con la red que se pueden personalizar.

Próximos pasos

Ahora tiene una red de prueba en ejecución y acceso a la cuenta de cada nodo. También puede interactuar con él a través del nodo API que se encuentra en localhost:3000.

¡Le recomendamos que continúe leyendo el resto de las guías para seguir aprendiendo más sobre las características de Bitxor!