Blockchain

Pero, ¿en serio funciona?

Si eres seguidor de Globe Testing en las Redes Sociales, seguro que sabes que hace un par de meses fuimos ganadores del Open Call de Alastria para el desarrollo de aplicaciones Blockchain. Nuestra candidatura conjunta con JakinCode gustó al jurado, y después de una dura sesión de Pitching y demo de la solución, ¡estamos dentro del programa!. Y esto nos trae al tema de este post: Blockchain ¿pero en serio funciona?

Seguro que estás pensando que me he equivocado en el título, y que debería poner Blockchain: Pero, ¿en serio vale para algo?

Blockchain

Entrando en materia: Blockchain, la palabra de Moda.

Blockchain es uno de esos palabros que están de moda (como Transformación Digital, o IA), pero que por desgracia, en su caso, no tienen traducción ya que es un nombre propio. Todo el mundo habla de Blockchain, aunque sus aplicaciones a gran escala más allá de las criptomonedas y algún otro proyecto aún están por demostrar.

No obstante, lo cierto es que toda gran empresa que se precie ya tiene múltiples proyectos en desarrollo utilizando esta tecnología, y todos los grandes proveedores de plataformas (IBM, Amazon, MS Azure…) ya ofrecen Blockchain as a service para el desarrollo de aplicaciones. Por ejemplo, el Blockchain de Alastria está construido sobre Quorum, la plataforma basada en Ethereum de JP Morgan.

El problema viene cuando las organizaciones fuerzan el desarrollo de una aplicación que utilice Blockchain cuando realmente no es necesario

La tecnología Blockchain tiene un valor claro; características como el consenso de la red, la trazabilidad de la operación, la inmutabilidad o la descentralización son básicas para muchos tipos de aplicación que hasta ahora eran inviables. El problema viene cuando las organizaciones fuerzan el desarrollo de una aplicación que utilice Blockchain por el mero hecho de utilizarlo, cuando realmente no es necesario.

¿Funciona?

Como todo el mundo ya ha dejado claro, y nosotros estamos 100% de acuerdo, Blockchain tiene un valor tremendo en el mundo empresarial, y en particular en la Industria 4.0. De hecho el proyecto que estamos desarrollando para Alastria tiene que ver con las fábricas inteligentes y la ciberseguridad (este proyecto da para otro post).

La pregunta que muchos nos hacemos es ¿funcionará en producción?

Hay una serie de retos que conocemos a priori, por ejemplo, el rendimiento del sistema. Durante el desarrollo del producto el consenso y el tamaño de la cadena no es un problema, pero ¿que pasa cuando lo ponemos en producción. Por ejemplo, en el caso del proyecto que hemos desarrollado para Alastria potencialmente tendremos cientos de PLCs escribiendo y leyendo en el Blockchain. Cuando bajamos de IT a OT el volumen de datos muchas veces se multiplica…

4 Claves para probar tu aplicación Blockchain

1. Shift left. Este concepto no solo aplica a Blockchain, aplica a cualquier desarrollo agil. Hay multitud de artículos al respecto, pero si lo tuviéramos que aplicar a Blockchain, te diría que el testing mas que nunca empieza en la definición del producto. Por ejemplo, en el caso de los smart contracts, es posible validar sus reglas sin tener una sola línea de código.

2. Headless testing. Una vez más, este concepto no es específico de Blockchain. Con el aumento de las aplicaciones que hacen llamadas a APIs es necesario hacer pruebas sin tener un interfaz de usuario. En el caso de Blockchain, todas las interacciones son headless, por lo que para asegurar que todo funciona correctamente es importante invertir en una buena definición de pruebas API y por supuesto automatización de pruebas.

3. Pruebas funcionales. Al principio de esta columna comentaba 4 características clave de Blockchain (consenso, trazabilidad, inmutabilidad y distribución). Precisamente por estas características las pruebas funcionales deben ser más profundas que si simplemente utilizáramos una base de datos en lugar de un Blockchain. Por ejemplo, la inmutabilidad de una transacción hace que un error funcional sea mucho mas difícil de solucionar una vez que estamos en producción.

4. Pruebas de rendimiento. Escalar Blockchain es un reto. A modo ejemplo, ya estamos viendo como la capacidad de procesado de transacciones de pago de Bitcoin (menos de 10 por segundo) no tiene nada que ver con la capacidad de una red de pago de tarjetas de crédito (unas 2000 por segundo). Es cierto que no es justo comparar TPS (transactions per second), mira este artículo, pero ilustra perfectamente el problema del rendimiento que comento. A la hora de probar el rendimiento de tu aplicación debes tener en cuenta factores como el tamaño del bloque, el tamaño de la cadena o la latencia de la red P2P.

El reto para las empresas que desarrollan soluciones sobre esta tecnología es tomarse el testing en serio también. En Globe Testing estamos sufriendo en nuestras propias carnes la dificultad de probar sobre esta tecnología, y eso que somos una empresa realmente especialista en pruebas

Y tu equipo, ¿está preparado para hacer que tu aplicación sobre Blockchain funcione?, ¿tienes alguna otra “clave” para conseguir aumentar la calidad de la aplicación?

¡Empieza la conversación!

¿Conoces Globe Testing?

¡Descubre como mejorar tu software!