Tecnologías digitales. Tendencias tecnológicas. Estándares. Personajes.

predicciones para la evolución de arquitecturas cloud

Siete predicciones para la evolución de arquitecturas cloud

En mi libro, «La Carrera Digital«, cuando hablo en el tercer capítulo de las tendencias digitales, la primera tecnología que abordo es cloud computing, una tecnología que dudé si considerarla ya madura (las tecnologías maduras las abordo en el capítulo 2, ‘Realidades digitales’) o aún una tendencia. Al final escogí esto segundo, y creo haber acertado.…

elegir un proveedor cloud

Cuatro factores a considerar al elegir un proveedor cloud

Poco a poco el modelo cloud computing se va imponiendo. Cada vez es más común en cualquier tipo de empresa, e incluso también en el ámbito privado. el disponer de al menos algunos servicios proporcionados desde la nube.   ¿Cómo seleccionar al proveedor de servicios? Se pueden aplicar multitud de criterios y el sentido común e incluso…

migración a la nube

Patrones de migración a la nube: las seis Rs de AWS

En el post anterior comentábamos tres caminos (y medio) para la migración a la nube basándonos en las propuestas de Tom Laszewski, Kamal Arora, Erik Farr y Piyum Zonooz, en su libro ‘Cloud Native Architectures‘,   Se incluía el realojamiento (lift-and-shift), del replataformado (lift-tinker-and-shift), de la reingeniería y del desarrollo nativo. Se trata de una visión algo resumida de las estrategias de migración posibles.   Los mismos…

buenas prácticas para la construcción de software como servicio

Doce buenas prácticas para la construcción de software como servicio

Uno de los paradigmas que trae consigo el cloud computing es el ofrecimiento de las capacidades IT como un servicio siguiendo el modelo de utility empleado en agua, electricidad, etc. Una de las formas, quizá la más avanzada, de esa prestación ‘como servicio’, sea el Software como Servicio (SaaS, ‘Software as a Service‘).   Proporcionar…

ciberseguridad con Mónica Valle

Una introducción a la ciberseguridad con Mónica Valle

‘Ciberseguridad. Consejos para unas vidas digitales mas seguras‘ es un libro más bien corto y de intenciones eminentemente divulgativas, en que se aborda la temática de la ciberseguridad pero no desde el punto de vista de la tecnología exactamente sino, más bien, desde su percepción y empleo por parte de usuarios finales, y pensando principalmente…

Blockchain es una tecnología muy relevante en el panorama actual pero no es precisamente una tecnología sencilla de entender. Quizá porque es intrínsecamente compleja, quizá porque, en realidad, más que una tecnología por sí misma es una combinación de tecnologías que proporcionan la base para una diversidad de soluciones y casos de uso. Así que agradezco cualquier aportación que ayude a estructurar y hacer más digerible el mundo del blockchain. He comenzado a leer una las obras más relevantes publicadas actualmente, a saber, el libro 'Mastering Ethereum' de Andreas M. Antonopoulos y Gavin Wood. En el primer capítulo, de intención divulgativa, los autores identifican los ocho componentes que ellos entienden que suelen estar presentes en todas las plataformas de blockchain públicas. Y estos son los componentes que identifican: Una red Peer-to-Peer que conecte a los participantes y propague las transacciones y los bloques de transacciones verificadas Mensajes, en forma de transacciones, que representen cambios de estado. Un conjunto de reglas de consenso, que gobiernen lo que constituye una transacción y qué transacciones son válidas. Una máquina de estados que procese las transacciones con arreglo a las reglas de consenso. Una cadena de bloques securizada mediante criptografía que recoja todas las transacciones verificadas y aceptadas Un algoritmo de consenso que descentralice el control sobre la cadena de bloques haciendo que los participantes colaboren en el cumplimiento de las reglas de consenso. Un esquema de incentivos que asegure económicamente la máquina de estados en un entorno abierto. Una o más implementaciones de lo anterior en un entorno abierto. Y luego, hacen un 'mapping' a los ocho componentes específicamente de Ethereum. Y se traduce en lo siguiente: Red Peer-to-Peer: En concreto, Etehereum se ejecuta sobre la red denominada 'Ethereum main network' que se encuentra a nivel de protocolo TCP en el puerto 30303. Reglas de consenso: Ethereum dispone de unas reglas de consenso descritas la especificación de referencia (Yellow Paper). Transacciones: Las transacciones en Ethereum son mensajes de red que incluyen entre otras cosas. al emisor/receptor, el valor y la carga de datos (payload). Máquina de estados: En Ethereum existe la 'Ethereum Virtual Machine' (EVM), una máquina virtual que ejecuta bytecodes y cuyos programas, los llamados contratos inteligentes, se escriben en lenguajes de alto nivel y se compilan a bytecodes para su ejecución. Estructuras de datos: El estado de Ethereum se almacena localmente en cada nodo, como una base de datos, que contiene las transacciones y el estado del sistema en una estructura de datos serializada. Algoritmo de consenso: Ethereum adopta un mecanismos de consenso similar al de Bitcoin en que se usa la firma secuencial de bloques, ponderada por la importancia de la prueba de trabajo ('Proof of Work', PoW) para determinar la cadena más larga y, por tanto, el estado actual. Seguridad económica: Ethereum usa 'Ethash' como algoritmo de PoW. Clientes: Existen ya varias implementaciones de clientes interoperables de los cuales, los más relevantes son 'Go-Ethereum (Geth)' y 'Parity'. Hay que reconocer que esta explicación, por sí misma, tampoco es precisamente cristalina, pero, aunque todavía hay mucho que 'rascar' para entender realmente blockchain en general, y Ethereum en particular, la identificación de estos ocho componentes creo que ayuda a poner, al menos, esa estructura que voy buscando.

Los ocho componentes de una blockchain pública y los ocho componentes de Ethereum

Blockchain es una tecnología muy relevante en el panorama actual pero no es precisamente una tecnología sencilla de entender. Quizá porque es intrínsecamente compleja, quizá porque, en realidad, más que una tecnología por sí misma es una combinación de tecnologías que proporcionan la base para una diversidad de soluciones y casos de uso.   Así…