Está en la página 1de 4

Una introducción a Sim1h para desarrolladores de aplicaciones

Resumen
Los usuarios que prestan atención a nuestros repositorios GitHub pueden haber notado una nueva
adición en las últimas semanas: nuestro simulador de redes, sim1h. Creemos que sim1h es una
herramienta importante para probar hApps, y esperamos que veas rápidamente más pruebas útiles y
reducciones en los tiempos de prueba.

Sabemos que se ha empezado a correr la voz de que estamos desarrollando una herramienta de
simulación de redes llamada sim1h. Por eso, queríamos ofrecer una introducción a esta nueva
herramienta para nuestra comunidad de desarrolladores. Estamos muy entusiasmados con lo que
puede hacer en términos de recopilar rápidamente información valiosa durante las pruebas, y
queremos asegurarnos de que los desarrolladores de hApp puedan empezar a trabajar con ella.

Detalles
sim1h y su importancia
En esencia, sim1h es una herramienta para simular una red P2P completa en un solo dispositivo
centralizado. Proporciona a los desarrolladores una visión general de todo lo que se transmite a
través de la red. Al elegir sim1h en la configuración del conductor, se puede empezar a ejecutar y
probar sus hApps ahora mismo con una experiencia de usuario de extremo a extremo de muchos
nodos de red.

Sim1h es una adición importante a nuestras herramientas de prueba porque finalmente permite
desplegar una red de prueba real y ver toda la actividad de la red desde una sola máquina.

Depuración
Debido a la naturaleza descentralizada de Holochain, la puesta en marcha de redes, la depuración y el
análisis de la actividad presentan un desafío único. El mayor desafío es que no existe una única fuente
de información sobre toda la red a la que los desarrolladores puedan acceder para determinar qué es
lo que funciona bien y qué es problemático. Incluso si entráramos en Open Alpha Testnet con toda la
pila de Holochain libre de errores (esperamos algunos errores, por eso se le llama alpha), todavía
habría muchas hApps, tanto internas como externas, que necesitarían depuración.

Inicialmente, planeábamos que los nodos Holochain y HoloPorts enviaran registros y otra información
de estado a un nodo central para su diagnóstico. Afortunadamente, sim1h logra este objetivo a la vez
que reduce la carga de trabajo. Esto se debe a que funciona como una red simulada en la que
podemos ver todos los nodos de información intercambiándose, sin necesidad de implementar un
código especial de depuración y análisis.

Desarrollo paralelo
Sim1h también hace posible la puesta en escena paralela de nuestros componentes de red, lo que nos
permite ir más allá del marco de presentación en tándem que hemos estado utilizando hasta ahora.
Holochain Core funciona bien dentro de los límites de su red de pruebas y en memoria, al igual que
lib3h dentro de sus sesiones de pruebas que intentan simular el uso en el mundo real. Sin embargo,
cuando ponemos los dos juntos, esto conduce a un montón de comportamientos complejos que
toman tiempo para analizar y probar.

Introducción a sim1h
A partir de Holochain Release v0.0.31-alpha1, sim1h está integrado. Para implementarlo,
simplemente selecciónelo como el tipo de red en la configuración del conductor:

[network]
type = "sim1h"
dynamo_url = http://localhost:8000

Si la URL apunta a una instancia de DynamoDB, puede ser una DynamoDB central administrada por
AWS (no totalmente soportada todavía), su propia instancia en su máquina local, o un servidor de
prueba (accedido por LAN o VPN). En su nix-shell, utilice los comandos dynamodb y dynamodb-
memory para iniciar una instancia local.
Además, deberá establecer dos variables de entorno al iniciar el conductor de Holochain:
AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY. Estos son accedidos por Rusoto, la biblioteca del
cliente AWS que estamos usando en sim1h para conectarnos a Dynamo. Si no están configurados,
Rusoto se detendrá antes de hacer una conexión, que será visible en los registros del conductor.

Por favor, tenga en cuenta: Si ejecuta una instancia local de DynamoDB fuera de AWS, necesitará
mantenerla en una LAN o VPN para configurarla. No está conectado a las credenciales de AWS y no
permite que ninguna clave de acceso se conecte a la base de datos. Sin embargo, las variables se
tienen que establecer porque Rusoto las requiere. La clave secreta puede ser arbitraria, pero el ID de
la clave de acceso debe elegirse cuidadosamente, ya que diferentes claves crearán diferentes
espacios. Esto puede ser útil ya que puede tener, por ejemplo, varios IDs para diferentes equipos que
prueban la misma aplicación de forma aislada.

Lo siguiente
Sim1h representa un gran salto adelante en términos de pruebas de red, tanto de la pila Holochain
como de todas las hApps conectadas. Las soluciones a corto plazo que hemos elegido en el momento
-AWS y DynamoDB- tienen sus propios problemas cuando se trata de interactuar con componentes
Holochain. Por ejemplo, cada ADN tiene actualmente una tabla en AWS con el hash del ADN como
nombre de tabla. Dado que en AWS hay que crear tablas manualmente y configurar los permisos de
acceso por tabla, la gestión de los permisos de acceso puede llevar mucho tiempo.

8 Reasons Why Zero Hunger Changes the World

Zero hunger could save the lives of 3.1 million children a year
Well-nourished mothers have healthier babies with stronger immune systems
Ending child undernutrition could increase a developing country's GDP by 16.5 percent
A dollar invested in hunger prevention could return between $15 and $139 in benefits
Proper nutrition early in life could mean 46 percent more in lifetime earnings
Eliminating iron deficiency in a population could boost workplace productivity by 20 percent
Ending nutrition-related child mortality could increase a workforce by 9.4 percent
Zero hunger can help build a safer, more prosperous world for everyone

También podría gustarte