NOTA: como de costumbre con una actualización como esta, se recomienda borrar el entorno de desarrollo / nodo de prueba si ha estado haciendo algo con <0.9.5.1 versión (es)
Esta publicación se realiza en nombre de @kaiyzen y el equipo de desarrollo de un par de actualizaciones en otras plataformas:
Estamos trabajando en la mejor manera de racionalizar estas comunicaciones en el futuro, pero quería equivocarme en el aspecto de la apertura y la divulgación de la información lo antes posible.
Cualquier pregunta por favor realizarla aquí o en el hilo de Slack
Telegram (25 de abril) La versión del servidor 0.9.4.1 se lanzó ayer, lo que provocó la actualización final y la verificación de las herramientas y la nueva configuración de testnet.
Anoche completamos la configuración de la base de prueba, hoy estamos haciendo otra pasada de limpieza en las pruebas y agregamos una segunda ronda de nodos. Una vez que lo superemos, publicaremos una actualización y, suponiendo que no encontremos nada, publicaremos referencias de enlaces a una nueva red y publicaremos las herramientas.
Se ha lanzado el servidor 0.9.4.1 y se ha iniciado una nueva red de prueba para él.
A partir de 0.9.4.1, todos los pares, y los clientes que hablen con ellos, usarán TLS como medio de comunicación y comunicación. Con este cambio, las identidades de los nodos se basan en sus certificados frente a la configuración tradicional de la clave de inicio de identidad en el archivo de configuración del servidor.
El equipo está desplegando las piezas. Para aquellos que estén interesados en el lado del desarrollo, hay disponible un conjunto inicial de puntos finales de API, que se agregarán en la próxima semana:
Puede usar la última versión de sdk y cli para conectarse a estos puntos finales.
NOTA: debido a una identidad de red y creación de némesis diferentes, los usuarios existentes de la billetera de escritorio tendrán problemas para intentar realizar transacciones a menos que borre sus datos de su billetera y comience de nuevo con un nuevo conjunto de 941 puntos finales de red. La actualización de la billetera debería estar disponible la próxima semana para ayudar a resolver los problemas de almacenamiento en caché al intentar usar la misma billetera de prueba en redes diferentes
Para aquellos que experimentan con redes de prueba locales, la herramienta de arranque se ha actualizado para admitir las últimas imágenes, está en versión beta y se aplicarán actualizaciones menores en las próximas semanas
NOTA: Para aquellos que han estado ejecutando nodos de red de prueba, realizarán la rutina habitual de limpiar su entorno para cambiar a nodos en ejecución en la nueva red. El equipo lanzará la herramienta de arranque de prueba de red a principios de esta semana
Este tutorial le mostrará cómo crear una aplicación de blockchain sin servidor utilizando las funciones Catapult y Netlify.
En particular, vamos a crear un grifo blockchain. Pero primero, revisemos qué significan todos estos conceptos y qué tan bien encajan.
¿Qué es la cadena de bloques Catapult?
Catapult es el nombre en clave del próximo motor blockchain de NEM. NEM permite a los desarrolladores acceder a funciones integradas avanzadas de blockchain utilizando una API REST. Puede usar NEM para integrar las capacidades de blockchain en aplicaciones nuevas o existentes con código ligero. Lea más sobre Catapult aquí.
… y sin servidor? Una aplicación necesita vivir en algún lugar para que otros accedan a ella.
Inicialmente, las aplicaciones estaban ubicadas en servidores dentro de las instalaciones de la compañía. Ahora, es común contratar máquinas virtuales de proveedores como Amazon o Google, en lugar de tener la plancha en casa. Aún así, los desarrolladores tienen que cambiar el enfoque del desarrollo para configurar los servidores, las máquinas virtuales o los contenedores para poder ejecutar sus aplicaciones.
La arquitectura sin servidor proporciona una mayor abstracción para los desarrolladores, lo que les permite ejecutar código en un entorno completamente administrado por otros. En resumen, no se dedica tiempo a configurar la infraestructura, incluida la configuración, la disponibilidad, el equilibrio de carga …
Una de las plataformas que ofrece la función como servicio (FaaS) es Netlify, que agrega una capa de configuración simplista sobre Amazon Lambda.
¿Cómo encaja todo? El primer beneficio claro de ejecutar una aplicación sin servidor es que hay menos infraestructura para mantener. La ejecución de funciones sin servidor suele ser más barata que ejecutar un servidor altamente disponible y distribuido las 24 horas del día, teniendo en cuenta que las funciones se cobran por uso.
En segundo lugar, leer de la cadena de bloques de Catapult es tan sencillo como consumir una llamada API. Sin embargo, las cosas comienzan a complicarse cuando tenemos que cambiar el estado de la cadena de bloques, ya que los nodos solo aceptan datos serializados. Para serializar las transacciones, generalmente usamos un Kit de desarrollo de software (SDK), pero hasta el momento, Catapult no ofrece un SDK para cada idioma. Podemos llenar este vacío creando funciones personalizadas sin servidor en Javascript simple, que luego pueden ser consumidas por aplicaciones escritas en cualquier otro idioma.
Imagine una empresa dispuesta a integrar la cadena de bloques Catapult en su aplicación existente escrita en Ruby. Desafortunadamente, no hay Catapult SDK para Ruby. Aún así, para superar el problema, podrían usar una función lambda para registrar transacciones en la cadena de bloques.
Resumen de la aplicación Para mostrar cómo podemos combinar aplicaciones sin servidor y blockchain, vamos a construir un grifo sin servidor para Catapult. Los faucets son contratos simples que permiten que las cuentas soliciten tokens de blockchain.
Como las aplicaciones Catapult se pueden desarrollar en JavaScript simple, podríamos fallar en el error al poner toda la lógica dentro de la aplicación cliente. Sin embargo, para anunciar transacciones, primero debemos firmarlas con la clave privada del faucet y, como su nombre lo indica, esta clave debe permanecer privada a toda costa. Por esa razón, necesitamos agregar una capa adicional y mover parte de la aplicación detrás de una aplicación de servidor, donde los usuarios no pueden acceder a esta clave privada.
El faucet presentado está alojado en GitHub, puesto a disposición de otros gracias al CDN de Netlify y su servicio “Funciones”.
Requisitos Para ejecutar este ejemplo, asegúrese de tener Git, NodeJS 12 LTS e hilo instalados. Si no ha desarrollado aplicaciones de Catapult antes, le recomiendo que complete la sección de Inicio de Catapult para crear una cuenta y enviar su primera transacción a la red.
Descargar el proyecto repetitivo El proyecto nem2-serverless-faucet tiene todos los componentes necesarios para implementar una aplicación sin servidor.
Vamos a probar la aplicación primero localmente y luego implementarla en Netlify. Si desea implementar un grifo personalizado, vaya a la sección “Implementación de la aplicación”.
Desarrollando una función lambda Primero, necesitamos definir la función sin servidor. El archivo src / lamba / faucet.js contiene la función que está usando el faucet.
Como puede ver, una función lambda se desarrolla de manera similar a cualquier otra API. En este caso, la función toma como cantidad de entrada y dirección. Luego, definimos una transacción, la firmamos con la cuenta de faucet y la enviamos a la red. Finalmente, la función devuelve una respuesta OK si la transacción se anunció con éxito.
Todas las variables de entorno están definidas en el archivo .env, excepto una: la clave privada.
Cambie las variables de entorno como lo desee. Luego, abra una nueva terminal y configure la clave privada de la llave.
export FAUCET_PRIVATE_KEY="my value"
Llamando a la función Ahora que hemos definido la función, podemos llamarla. El archivo src / index.html define el formulario utilizado para realizar una solicitud POST a la función sin servidor.
<form action="/.netlify/functions/faucet" method="POST">
<p>
<label>What's your address?<br/><input name="address" type="text"></label>
<label>How many units (max 1000)?<br/><input name="amount" type="number"></label>
</p>
<p>
<button type="submit">Receive!</button>
</p>
</form>
Pruebe la aplicación localmente ejecutando npm run start. Luego, abra localhost: 8080 en una nueva pestaña del navegador.
Implementar la aplicación Ahora que hemos creado y probado el faucet, podemos usar Netlify para alojar la aplicación. Si no tiene una cuenta de Netlify, regístrese aquí primero.
Abra la pestaña Configuración avanzada de compilación y defina las siguientes variables de entorno:
6. Haga clic en el botón “Implementar sitio”, ¡y listo!
Después de implementar la aplicación, Netlify le mostrará la URL del sitio.
Conclusión En este tutorial, solo hemos comenzado a ver lo que podemos lograr combinando funciones sin servidor y la cadena de bloques Catapult. Sin embargo, podemos imaginar una amplia gama de posibilidades prometedoras. Si crea una nueva aplicación sin servidor usando el código repetitivo compartido, ¡no dude en compartir el enlace en los comentarios!