Recursos para Desarrolladores de NEM Catapult

¡Hola Desarrolladores de NEM!

Estaré armando una lista de recursos de Catapult que pueden ser útil para sus necesidades de desarrollo. A medida que yo, u otros, desarrollemos más herramientas para Catapult, se agregarán en consecuencia a este hilo del foro. Los errores comunes que uno puede enfrentar al desarrollar o configurar un nodo Catapult también se colocarán aquí.

Si me perdí algo, ¡siéntete libre de contribuir!

Recursos del servidor Catapult

Estos recursos le permitirán estudiar y analizar más sobre el núcleo de la Blockchain NEM2: catapult-server

  • catapult-server-docs: este es un conjunto de documentos generados por doxygen para catapult-server. Incluye gráficos que ilustran cómo varias partes del código interactúan entre sí. Sugerencias de diseño apreciado!

¡Puedes encontrar los documentos aquí

Recursos de configuración del nodo

Estos recursos lo ayudarán a ponerse en marcha con un nodo Catapult, ya sea que desee ejecutar de forma local o en un servidor remoto.

cat-config-scripts – Normalmente, girar un nodo Catapult puede ser una tarea un poco tediosa. El uso de la ventana acoplable tampoco es siempre una opción. Estos scripts (para Mac y Linux) fueron creados originalmente por el desarrollador central Jaguar0625. Los tomé y agregué algunas características adicionales para mejorar la experiencia del usuario. Contienen la siguiente funcionalidad:

  • Restablecer su nodo Catapult.
  • Configuración su nodo para el modo peer, api o dual.
  • Configuración su nodo con las extensiones necesarias para cada modo respectivo.
  • Configuración los recursos con un par de claves dado por el usuario y las rutas de servidor de Catapult necesarias.
  • Generar un archivo de propiedades de bloque de nemesis con la clave de arranque y las rutas.
  • Generar identificadores de mosaico para la clave pública dada.
  • Genere una lista de las claves y direcciones del recolector, y Configuración el archivo de bloque de nemesis con ellos.
  • Genere el bloque de nemesis, hashes.dat de 64 bytes y un nuevo directorio de datos.

¡Puedes encontrar los scripts cat-config y cómo usarlos aquí!

Guía de herramientas de Catapult

Junto con el ejecutable catapult.server principal que proporciona Catapult, hay varias herramientas útiles que vienen junto con un servidor de Catapult compilado. Estas herramientas permiten a los desarrolladores verificar el estado de la red, generar bloques de nemesis, generar pares de teclas y direcciones, recuperar el servidor en caso de una salida abrupta, y más. Se encuentran dentro de / path / to / catapult-server / build / bin.

catapult.tools.address

Descripción

Genera par de llaves y direcciones.

Salida de ayuda

Herramienta de dirección
Copyright (c) Jaguar0625, gimre, BloodyRookie, Tech Bureau, Corp.
Versión de Catapult: 0.4.0.1 95e0c6a [master]

Opciones de la herramienta de dirección:

-h [ –help ]     print help message
  -l [ –loggingConfigurationPath ] arg
                    the path to the logging configuration file
  -g [ –generate ] arg (=10)
                    number of random keys to generate
  -p [ –public ] arg
                    show address associated with public key
  -s [ –secret ] arg
                    show address and public key associated with private key
  -n [ –network ] arg (=public)
                    network, possible values: mijin, mijin-test, public (default), public-test
  -e [ –useHighEntropySource ] 
                    true if a high entropy source should be used for randomness

Uso

./catapult.tools.address -g <number_of_keys> -n <network_type (i.e mijin, mijin-test, public (default), public-test)>

Si desea guardar la salida, agregue una secuencia de salida al final:> myKeys.txt.

catapult.tools.nemgen

Descripción

Esta herramienta crea un bloque de nemesis (genesis) a partir de un archivo block-properties.properties. Este bloque de némesis se utiliza para iniciar su cadena de catapult.

Salida de ayuda

Herramienta Generador de Bloques Nemesis
Copyright (c) Jaguar0625, gimre, BloodyRookie, Tech Bureau, Corp.
Versión de Catapult: 0.4.0.1 95e0c6a [master]

Opciones de Nemesis Block Generator Tool:

-h [ –help ]     print help message
  -l [ –loggingConfigurationPath ] arg
                    the path to the logging configuration file
  -r [ –resources ] arg (=..)
                    the path to the resources directory
  -p [ –nemesisProperties ] arg
                    the path to the nemesis properties file
  -s [ –summary ] arg
                    the path to summary output file (default: <bindir>/summary.txt)
  -n [ –no-summary ] 
                    don’t generate summary file
  -t [ –useTemporaryCacheDatabase ] 
                    true if a temporary cache database should be created and destroyed

Uso

./catapult.tools.nemgen -p <nemesis_block_properties_path> -r <path_where_resources_are_kept>

catapult.tools.benchmark

Descripción 

Esta herramienta utiliza pruebas de rendimiento basadas en CPU de funciones de catapult, como hash o cifrado.

Salida de ayuda

Herramienta de referencia

Copyright (c) Jaguar0625, gimre, BloodyRookie, Tech Bureau, Corp.
Versión de Catapult: 0.4.0.1 95e0c6a [master]

Opciones de la herramienta de referencia:

-h [ –help ]     print help message
  -l [ –loggingConfigurationPath ] arg
                    the path to the logging configuration file
  -t [ –num threads ] arg (=0)
                    the number of threads
  -p [ –num partitions ] arg (=0)
                    the number of partitions
  -o [ –ops / partition ] arg (=1000)
                    the number of operations per partition
  -s [ –data size ] arg (=148)
                    the size of the data to generate

Uso

A menos que desee probar utilizando sus propios parámetros, puede ejecutar:

./catapult.tools.benchmark

catapult.tools.network

Descripción

Esta herramienta genera información de nodo, información de conectividad de nodo asociado y una tabla de nodo asociado para pares conocidos dentro de peers-p2p.json y peers-api.json.

Salida de ayuda

Herramienta de red de Blockchain de catapult

Herramienta de red de Blockchain de catapult
Copyright (c) Jaguar0625, gimre, BloodyRookie, Tech Bureau, Corp.
Versión de Catapult: 0.4.0.1 95e0c6a [master]

Opciones de la herramienta de red de Blockchain de Catapult
-h [ –help ]     print help message
  -l [ –loggingConfigurationPath ] arg
                    the path to the logging configuration file
  -r [ –resources ] arg (=..)
                    the path to the resources directory

Descripción

Salida de ayuda

Generador de estado

Copyright (c) Jaguar0625, gimre, BloodyRookie, Tech Bureau, Corp.
Versión de Catapult: 0.4.0.1 95e0c6a [master]

Opciones del generador de estado:
-h [ –help ]     print help message
  -l [ –loggingConfigurationPath ] arg
                    the path to the logging configuration file

Uso

./catapult.tools.statusgen

catapult.tools.health

Descripción

Compruebe el estado y muestra estadísticas (como el caché de transacciones no confirmadas) para los nodos que se encuentran dentro de peers-p2p.json y peers-api.json.

Salida de ayuda

Blockchain de Catapult para la herramienta de salud
Copyright (c) Jaguar0625, gimre, BloodyRookie, Tech Bureau, Corp.
Versión de Catapult: 0.4.0.1 95e0c6a [master]

Opciones de la herramienta de salud Blockchain de Catapult:

-h [ –help ]     print help message
  -l [ –loggingConfigurationPath ] arg
                    the path to the logging configuration file
  -r [ –resources ] arg (=..)
                    the path to the resources directory

Uso

./catapult.tools.health -r <path_where_resources_are_kept>

Errores o problemas comunes del nodo

Esta sección destaca los errores o dificultades comunes que puede encontrar al configurar un nodo de Catapult. Esto no debería ocurrir con los scripts, pero más información, siempre es bueno saberlos.

Las salidas de mosaico no coinciden

El error usualmente se ve algo como esto:

14:19:34.719477 0x000000010dfbf5c0: <error> (local::HostUtils.h@43) Throwing exception: harvesting outflows (0) do not add up to power ten multiple of expected importance (15000000) 

O esto 

14:19:34.719477 0x000000010dfbf5c0: <error> (local::HostUtils.h@43) Throwing exception: harvesting outflows (15000000) do not add up to power ten multiple of expected importance (17000000) 

¿Qué significa eso?

Este error puede ocurrir en el caso de una de estas dos cosas:

El suministro del mosaico cat.harvest con el bloque nemesis no coincide con el suministro dentro del archivo config-network.properties.

El ID de mosaico dentro de config-network.properties no coincide con el generado dentro del bloque nemesis.

¿Cómo arreglarlo?

Para el escenario uno, simplemente cambie la importancia de la TotalChain en sus recursos config-network.properties para que coincida con el conjunto de suministros en el bloque nemesis. Para el escenario dos, tendrá que encontrar el ID de mosaico correcto que crea la herramienta nemgen. Una forma de hacer esto es ejecutar nemgen (ver más arriba en la Guía de herramientas de Catapult), generar un archivo de txt o registro y buscar cat. <Harvest | currency>.

Fuente: Foro NEM