¡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