Hyperledger Sawtooth en Cadena de bloques

Principiante6/3/2024, 3:07:33 PM
Hyperledger Sawtooth es una plataforma de cadena de bloques empresarial que puede crear redes de contabilidad distribuida y aplicaciones. Este artículo presentará cómo opera la plataforma y sus atributos principales, así como presentará sus escenarios de aplicación.

Hyperledger Sawtooth es una plataforma de cadena de bloques corporativa que crea redes de contabilidad distribuida y aplicaciones. La filosofía de diseño se centra en mantener los registros distribuidos y asegurar contratos inteligentes, especialmente para aplicaciones empresariales. Sawtooth utiliza la tecnología de cadena de bloques como un servicio (BaaS).
Sawtooth es muy modular también. Esta modularidad permite a empresas y consorcios decidir sobre políticas en sus respectivos campos de competencia. Las aplicaciones pueden elegir los algoritmos transaccionales, de permisos y de consenso que mejor se adapten a sus requisitos comerciales únicos debido al diseño fundamental de Sawtooth. La mayoría de los sistemas basados en cadenas de bloques en uso hoy alojan y ejecutan tanto su núcleo como sus aplicaciones en la misma plataforma, lo que puede tener un impacto tanto en la seguridad como en el rendimiento.

¿Qué es Hyperledger Sawtooth?

Hyperledger sawtooth es una plataforma de cadena de bloques empresarial de código abierto como servicio que puede ejecutar contratos inteligentes personalizados sin necesidad de conocer el diseño subyacente del sistema principal.

  • Soporta una variedad de algoritmos de consenso incluyendo PBFT y PoET.
  • Su diseño amigable ofrece un rendimiento impecable para uso empresarial.
  • Soporta la asignación de permisos separados, es decir, no hay un servicio centralizado que pueda revelar información confidencial.

¿Cómo funciona Hyperledger Sawtooth?

Hyperledger Sawtooth es una plataforma modular para construir, implementar y ejecutar registros distribuidos (también llamados cadenas de bloques). Incluye un algoritmo de consenso novedoso llamado "Prueba de Tiempo Transcurrido" (PoET), que utiliza entornos de ejecución confiables (TEEs) para garantizar que se alcance un consenso de manera justa y eficiente. Sawtooth también tiene un diseño modular que permite algoritmos de consenso enchufables y soporta tanto redes permisionadas como no permisionadas.

  • El componente principal de Sawtooth es un libro mayor distribuido que registra un registro de todas las transacciones y la ejecución de contratos inteligentes. El libro mayor se replica en todos los nodos de la red, y las transacciones se procesan en paralelo para aumentar el rendimiento.
  • Sawtooth también incluye un motor de contratos inteligentes llamado “Sawtooth Lake” que permite la implementación y ejecución sencilla de contratos inteligentes. La plataforma también proporciona una API RESTful para interactuar con el libro mayor y enviar transacciones.
  • Sawtooth está diseñado para ser altamente escalable y puede soportar redes con miles de nodos y millones de transacciones por segundo.
  • En general, Hyperledger Sawtooth es una plataforma flexible y potente para construir e implementar registros distribuidos que se pueden utilizar para una amplia gama de aplicaciones, como la gestión de la cadena de suministro, el seguimiento de activos digitales y sistemas de votación.
  • Hyperledger Sawtooth hace que sea más sencillo desarrollar aplicaciones manteniendo la seguridad del sistema al separar el sistema de registro central del entorno pertinente para cada aplicación.
  • Los desarrolladores de aplicaciones pueden describir las reglas comerciales adecuadas para su aplicación sin necesidad de conocer la arquitectura subyacente del sistema central. Este diseño permite a los desarrolladores construir aplicaciones que pueden ser alojadas, administradas y utilizadas fuera de la red de bloques central en su lenguaje de programación favorito.

Algoritmos de consenso de Hyperledger Sawtooth

Hyperledger Sawtooth incluye un diseño modular que permite algoritmos de consenso enchufables. Algunos de los algoritmos de consenso que son compatibles con Sawtooth incluyen:

SKIP

  1. PoET (Prueba de Tiempo Transcurrido): Este es el algoritmo de consenso predeterminado en Sawtooth. Utiliza entornos de ejecución confiables (TEEs) para garantizar que se alcance un consenso de manera justa y eficiente. PoET utiliza un proceso de elección aleatoria de líder y un tiempo de espera para asegurar que todos los participantes tengan la misma oportunidad de ser seleccionados como líder.
  2. PBFT (Tolerancia Práctica a Fallas Bizantinas): Este es un algoritmo de consenso clásico que se utiliza ampliamente en sistemas distribuidos. Utiliza un proceso de votación de réplicas para garantizar que la red llegue a un consenso. PBFT es adecuado para redes con permisos con un conjunto conocido de participantes.
  3. Raft: Diseñado para sistemas distribuidos con un alto ritmo de cambio, Raft es un algoritmo de consenso. Utiliza una metodología basada en líderes y permite una rápida recuperación de la partición de la red.
  4. Devmode: Esta técnica de consenso sencilla está destinada a pruebas y desarrollo. Sin necesidad de consenso, permite el procesamiento paralelo de transacciones.

Algoritmos de consenso más avanzados como PoA (Prueba de Autoridad), PoS (Prueba de Participación), etc., también se pueden utilizar con Sawtooth instalando el motor de consenso correspondiente. \
En general, el diseño modular de Sawtooth permite el uso de diferentes algoritmos de consenso basados en los requisitos específicos de la aplicación, como rendimiento, seguridad y modelo de confianza.

Características de Hyperledger Sawtooth

1. Separación entre el nivel de la aplicación y el sistema central

Sawtooth separa el nivel de aplicación del nivel central del sistema, lo que facilita el diseño e implementación de programas. Los desarrolladores de aplicaciones pueden diseñar la lógica del contrato en cualquier idioma de su elección con la ayuda de Sawtooth. Sawtooth ofrece una abstracción para los contratos inteligentes. Las aplicaciones incluyen lógica empresarial nativa o máquinas virtuales para contratos inteligentes. De hecho, una sola cadena de bloques puede admitir ambos tipos de aplicaciones. Estas opciones arquitectónicas son posibles gracias a Sawtooth en la capa de procesamiento de transacciones, lo que permite la coexistencia de varios tipos de aplicaciones en la misma instancia de red de cadena de bloques.

2. Funciones de permisos de Sawtooth en redes privadas

Sawtooth fue creado para abordar los problemas asociados con las redes con permisos (privadas). Los clústeres de nodos de Sawtooth se pueden implementar fácilmente con permisos independientes. No existe un servicio centralizado que pueda revelar accidentalmente patrones transaccionales u otros datos privados. Los roles e identidades son algunos de los parámetros que definen los permisos almacenados en la cadena de bloques para que todos los que utilicen la red puedan acceder a ellos.

3. Ejecución de transacciones en paralelo

La mayoría de las cadenas de bloques exigen un procesamiento de transacciones en serie para garantizar un orden consistente en cada nodo de la red. Un programador de paralelismo de vanguardia en Sawtooth divide las transacciones en flujos paralelos. Sawtooth aísla la ejecución de las transacciones unas de otras al mismo tiempo que preserva los cambios contextuales basados en las ubicaciones en el estado a las que accede una transacción. Aunque es factible, las transacciones se llevan a cabo en paralelo para evitar el doble gasto, incluso cuando el mismo estado se modifica más de una vez. En comparación con la ejecución en serie, la programación paralela ofrece un impulso de velocidad potencial significativo.

4. Compatibilidad del contrato Ethereum con Seth

La plataforma Sawtooth es ahora interoperable con Ethereum gracias al proyecto de integración Sawtooth-Ethereum, Seth. La familia de transacciones Seth permite el despliegue de contratos inteligentes EVM (Máquina Virtual Ethereum) en Sawtooth.

5. Consenso dinámico

El consenso en una cadena de bloques se refiere a alcanzar un entendimiento entre los participantes de la red. Para llegar a un consenso con fallas arbitrarias, los algoritmos típicamente votan entre un grupo predeterminado de participantes. Tanto el consenso de estilo Nakamoto como las variaciones de los algoritmos convencionales de Tolerancia a Fallas Bizantinas (BFT) emplean numerosas rondas de votación explícita para llegar a un consenso. El primero elige un líder mediante algún tipo de sistema de lotería. Sawtooth separa el consenso de la semántica de transacción y abstrae las ideas fundamentales detrás del consenso. Como motores de consenso que se comunican con el validador a través de la API de consenso, la interfaz de consenso de Sawtooth permite conectar varias implementaciones de consenso.

6. Familias de transacciones de muestra

Una familia de transacciones, que funciona como un procesador de transacciones en un nodo de Sawtooth, implementa el modelo de datos y el lenguaje de transacciones en una aplicación de Sawtooth. Sawtooth incluye numerosas familias de transacciones fundamentales como modelos, mientras que la mayoría de los desarrolladores de aplicaciones crean familias de transacciones personalizadas para satisfacer las necesidades particulares de sus libros contables:

  • Para probar los registros desplegados, los desarrolladores usan una clave entera.
  • La configuración en cadena se puede almacenar utilizando la implementación de referencia proporcionada por Configuraciones.
  • Maneja la autorización en la cadena de bloques para las claves de transacción y validación para simplificar el manejo de identidades para colecciones de listas de claves públicas.
  • Sistema de Eventos: Los eventos pueden ser creados y transmitidos usando Hyperledger Sawtooth. Esto permite a las aplicaciones:
    • Reciba notificaciones cuando ocurran eventos relacionados con la cadena de bloques, como cuando se compromete un nuevo bloque o ocurre un fork.
    • Suscríbase a eventos específicos de una aplicación y especificados por una familia de transacciones.
    • Informar a los clientes cómo se llevó a cabo una transacción sin almacenar los detalles en el estado.
    • A través de un socket ZMQ, se envían y mantienen las suscripciones.

Elementos de la arquitectura de Hyperledger Sawtooth

Hablemos de los elementos fundamentales de la arquitectura de Hyperledger Sawtooth:

1. Sistema de eventos

Al observar cualquier ejemplo de Hyperledger Sawtooth, puedes observar que el sistema de eventos principalmente garantiza que se creen eventos sin problemas y se transmitan a los nodos. Como resultado, si utilizas el sistema de eventos, puedes crear una aplicación que se suscriba a eventos y obtenga automáticamente nueva información. Estas cosas suelen hacer que la plataforma Sawtooth funcione de manera más fluida. Ayudar a los nodos a recopilar la información que necesitan de los eventos contribuye al mantenimiento de un consenso completo.

Proyecto de Integración Sawtooth-Ethereum (Seth)

Es una de las principales características de Sawtooth. Debe estar familiarizado con esta funcionalidad si desea comprender Hyperledger Sawtooth. Aparece en todos los ejemplos de Hyperledger Sawtooth que incorporan características de Ethereum. Pero, ¿qué hace exactamente? ¿Qué aplicaciones tienen para las propiedades de Ethereum? Por lo tanto, este componente menor ayuda a cerrar la brecha entre las dos plataformas. Como resultado, este elemento se puede utilizar para lograr la compatibilidad entre estas dos plataformas. ¿Tienes idea de cuántas oportunidades podría presentar Seth? Es una fantástica adición al diseño de Hyperledger Sawtooth, así que utilízalo si tu proyecto comercial lo requiere.

3. Algoritmos de consenso enchufables

Incluir algoritmos de consenso enchufables en la arquitectura de Hyperledger Sawtooth es otra característica fascinante. El mecanismo de consenso enchufable es un nuevo avance fantástico para el sector de la Cadena de bloques. Le permite seleccionar el mecanismo de consenso que su plataforma requiere. Naturalmente, solo algunos consensos son apropiados para algunas situaciones de uso. Para construir un producto basado en la Cadena de bloques empresarial, debe tener flexibilidad. Como resultado, el consenso enchufable de Sawtooth pone en primer plano la dinámica.

4. Modelos de Familia de Transacciones

Las familias de transacciones proporcionan una variedad de operaciones, incluida la provisión de funcionalidades a su contrato inteligente. No se puede usar el sistema Hyperledger Sawtooth sin usar familias de transacciones, como se puede ver al mirar un ejemplo.

  • Familia de transacciones de información de Bloque: La familia de transacciones de información de Bloque te permite almacenar información relacionada con el bloque.
  • Familia de Transacciones de Pequeños Bancos: En la práctica, esta familia es la mejor para evaluar y probar la viabilidad de su empresa.
  • Estableciendo la Familia de Transacciones: Puedes almacenar configuraciones en la cadena con la ayuda de la familia de Configuraciones, que también te proporciona un modelo de referencia para hacerlo.
  • Familia de transacciones del registro de validadores: Úselo para ampliar los validadores del sistema agregando nuevos miembros. No puede agregar ningún validador sin usar esto. Por lo tanto, es absolutamente necesario.
  • Familia de transacciones de clave entera: Una de las mejores familias de transacciones que permiten la prueba sin recursos de todos los libros contables desplegados.
  • Familia de transacciones de XO: Esta es una interpretación más entretenida de toda la red. También se incluyó un juego de tres en raya en Sawtooth porque los creadores de la red querían darle un poco más de estilo. Así que puedes jugar con cualquier nodo usando esto.
  • Familia de transacciones de identificación: Se utiliza principalmente para la preservación de datos. Específicamente, los datos a los que los validadores tienen acceso permitido. Más importante aún, realiza un seguimiento de los detalles sobre los nodos, incluidas sus claves públicas y otras cosas.

También hay otras dos familias de transacciones adicionales en el sistema. Son adiciones relativamente recientes:

  • Familia de transacciones Seth: Gracias a la familia de transacciones Seth, puedes utilizar aplicaciones creadas para la cadena de bloques Ethereum en la red. Esto implica que puedes utilizar contratos inteligentes construidos en Solidity u otras aplicaciones.
  • Familia de transacciones de Sabre: La familia de transacciones de Sabre es otro método para usar contratos inteligentes. Esto se puede utilizar para ejecutar contratos inteligentes en máquinas WASM o WebAssembly virtuales. También hace posible que los contratos inteligentes se lleven a cabo en la cadena.

Aplicaciones de Hyperledger Sawtooth

  • X O: Juega a una partida de tres en raya para ilustrar cómo crear transacciones simples. Las transacciones de construcción y toma en la familia de transacciones X O proporcionan un comando X O que permite a dos jugadores jugar al juego. Puede consultar la Familia de Transacciones X O para obtener detalles adicionales.
  • Sawtooth Supply Chain: La cadena de suministro Sawtooth muestra cómo rastrear los orígenes y otros datos contextuales relevantes de cualquier artículo. Supply Chain ofrece una aplicación de muestra que incluye una aplicación web, una API REST personalizada y un procesador de transacciones. Esta aplicación de ejemplo muestra cómo sincronizar el estado de la cadena de bloques con una base de datos local para consultas complicadas, así como una forma descentralizada de firmar transacciones en el navegador.
  • Mercado Sawtooth: En la cadena de bloques, el mercado Sawtooth instruye a los usuarios sobre cómo intercambiar cantidades particulares de activos especializados. Con la ayuda de un validador de Sawtooth y algunos otros componentes, esta aplicación de ejemplo ejecutará una cadena de bloques de Sawtooth y ofrecerá una sencilla API RESTful para comunicarse con ella.

Idiomas admitidos para el proceso de transacción

Hyperledger Sawtooth admite el uso de varios lenguajes de programación para el proceso de transacción. Algunos de los lenguajes admitidos incluyen:

  1. Python: Sawtooth proporciona una biblioteca de Python llamada "Sawtooth SDK" que permite a los desarrolladores interactuar con la cadena de bloques y enviar transacciones.
  2. JavaScript: Sawtooth admite JavaScript a través del uso del "Sawtooth JavaScript SDK", que proporciona un conjunto de APIs para interactuar con el libro mayor.
  3. Sawtooth también ofrece soporte para Go a través del "Sawtooth Go SDK", que permite una integración sencilla con aplicaciones basadas en Go.
  4. C++: Sawtooth también brinda soporte para C++, a través del "Sawtooth C++ SDK" que proporciona API de C++ para interactuar con el libro mayor.

Otros idiomas como Java, Rust, Shell, etc. también se pueden utilizar mediante la API RESTful proporcionada por Sawtooth. El soporte de Sawtooth para múltiples lenguajes de programación facilita la integración con sistemas existentes y permite una amplia gama de casos de uso.

Arquitectura de desarrollo de Hyperledger Sawtooth

La arquitectura modular de Hyperledger Sawtooth permite la división de responsabilidades entre varios componentes del sistema. Los principales componentes de la arquitectura de Sawtooth son:

  • Libro de contabilidad distribuido: Este componente es responsable de mantener un registro de todas las transacciones y la ejecución de contratos inteligentes. El libro mayor se replica en todos los nodos de la red y las transacciones se procesan en paralelo para aumentar el rendimiento.
  • Procesador de transacciones: Este componente es responsable de procesar transacciones y actualizar el estado del libro mayor. También incluye un motor de contratos inteligentes llamado "Sawtooth Lake" que permite una implementación y ejecución fáciles de contratos inteligentes.
  • Algoritmo de consenso: Este componente es responsable de garantizar que la red llegue a un acuerdo sobre el estado del libro mayor. Sawtooth admite múltiples algoritmos de consenso, incluidos PoET, PBFT, Raft y Devmode.
  • API REST: Este componente proporciona una API RESTful para interactuar con el libro mayor y enviar transacciones. Permite una integración fácil con sistemas existentes y admite varios lenguajes de programación.
  • Validador: Este componente es responsable de validar transacciones y bloques antes de que se agreguen al libro mayor. Se asegura de que las transacciones estén bien formadas y cumplan con las reglas del contrato inteligente.
  • Programador de Transacciones: Este componente es responsable de programar el orden en que las transacciones son procesadas por la red. Se asegura de que las transacciones conflictivas sean procesadas de una manera que evite conflictos y mantenga la consistencia en el libro mayor.
  • Motor de consenso: Cada algoritmo de consenso tiene su propio motor que ejecuta el protocolo de consenso y se comunica con otros componentes del sistema.

Hyperledger Sawtooth en funcionamiento

Hyperledger Sawtooth se puede utilizar para construir una variedad de aplicaciones de libro mayor distribuido. Algunos ejemplos de cómo Sawtooth puede ser utilizado en diferentes industrias incluyen:

  • Gestión de la cadena de suministro: Sawtooth se puede utilizar para construir un sistema de gestión de la cadena de suministro a prueba de manipulaciones y transparente. Se puede utilizar para rastrear el movimiento de mercancías, desde el punto de origen hasta el destino final, proporcionando visibilidad y responsabilidad para todas las partes involucradas.
  • Servicios financieros: Sawtooth se puede utilizar para construir un sistema seguro y eficiente para transacciones financieras y registro. Se puede utilizar para actividades como financiamiento comercial, gestión de activos digitales e informes de cumplimiento
  • Salud: Sawtooth se puede utilizar para construir un sistema seguro y privado para compartir registros médicos entre proveedores de atención médica. Se puede utilizar para garantizar que los datos de los pacientes solo sean accesibles para las partes autorizadas, a la vez que proporciona una forma eficiente de compartir datos entre médicos, hospitales y compañías de seguros
  • Gestión de Identidad: Sawtooth se puede utilizar para construir un sistema descentralizado e inalterable para la gestión de identidades. Se puede utilizar para almacenar y validar identidades y credenciales y proporcionar acceso seguro y privado a servicios y recursos.
  • Gestión de energía: Sawtooth se puede utilizar para construir un sistema para gestionar y rastrear la producción, distribución y consumo de energía. Se puede utilizar para permitir el comercio de energía entre pares, rastrear y verificar los créditos de energía renovable, y gestionar la distribución de energía de microredes.

Estos son solo algunos ejemplos, y Sawtooth es lo suficientemente flexible como para ser utilizado en una amplia gama de otras industrias y aplicaciones también. La arquitectura modular de Sawtooth y el soporte para diferentes algoritmos de consenso lo convierten en una plataforma poderosa para construir e implementar contabilidad distribuida que puede ser utilizada para una amplia gama de casos de uso.

¡El verano está aquí y es el momento de mejorar tus habilidades! ¡Más de 5,000 estudiantes han completado su viaje desde los conceptos básicos de DSA hasta programas de desarrollo de nivel avanzado como Full-Stack, Desarrollo Backend, Ciencia de Datos.
\
Y ¿por qué ir a otro lugar cuando nuestro DSA to Development: Guía de codificación¡te ayudará a dominar todo esto en unos meses! ¡Aplica ahora a nuestroDSA al Programa de Desarrolloy nuestros consejeros se pondrán en contacto contigo para más orientación y apoyo.

Descargo de responsabilidad:

  1. Este artículo es reimpreso de [ geeksforgeeks]. Todos los derechos de autor pertenecen al autor original [geeksforgeeks]. Si hay objeciones a esta reimpresión, por favor contacte al Gate Learnequipo, y lo manejarán rápidamente.
  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen asesoramiento de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.

Hyperledger Sawtooth en Cadena de bloques

Principiante6/3/2024, 3:07:33 PM
Hyperledger Sawtooth es una plataforma de cadena de bloques empresarial que puede crear redes de contabilidad distribuida y aplicaciones. Este artículo presentará cómo opera la plataforma y sus atributos principales, así como presentará sus escenarios de aplicación.

Hyperledger Sawtooth es una plataforma de cadena de bloques corporativa que crea redes de contabilidad distribuida y aplicaciones. La filosofía de diseño se centra en mantener los registros distribuidos y asegurar contratos inteligentes, especialmente para aplicaciones empresariales. Sawtooth utiliza la tecnología de cadena de bloques como un servicio (BaaS).
Sawtooth es muy modular también. Esta modularidad permite a empresas y consorcios decidir sobre políticas en sus respectivos campos de competencia. Las aplicaciones pueden elegir los algoritmos transaccionales, de permisos y de consenso que mejor se adapten a sus requisitos comerciales únicos debido al diseño fundamental de Sawtooth. La mayoría de los sistemas basados en cadenas de bloques en uso hoy alojan y ejecutan tanto su núcleo como sus aplicaciones en la misma plataforma, lo que puede tener un impacto tanto en la seguridad como en el rendimiento.

¿Qué es Hyperledger Sawtooth?

Hyperledger sawtooth es una plataforma de cadena de bloques empresarial de código abierto como servicio que puede ejecutar contratos inteligentes personalizados sin necesidad de conocer el diseño subyacente del sistema principal.

  • Soporta una variedad de algoritmos de consenso incluyendo PBFT y PoET.
  • Su diseño amigable ofrece un rendimiento impecable para uso empresarial.
  • Soporta la asignación de permisos separados, es decir, no hay un servicio centralizado que pueda revelar información confidencial.

¿Cómo funciona Hyperledger Sawtooth?

Hyperledger Sawtooth es una plataforma modular para construir, implementar y ejecutar registros distribuidos (también llamados cadenas de bloques). Incluye un algoritmo de consenso novedoso llamado "Prueba de Tiempo Transcurrido" (PoET), que utiliza entornos de ejecución confiables (TEEs) para garantizar que se alcance un consenso de manera justa y eficiente. Sawtooth también tiene un diseño modular que permite algoritmos de consenso enchufables y soporta tanto redes permisionadas como no permisionadas.

  • El componente principal de Sawtooth es un libro mayor distribuido que registra un registro de todas las transacciones y la ejecución de contratos inteligentes. El libro mayor se replica en todos los nodos de la red, y las transacciones se procesan en paralelo para aumentar el rendimiento.
  • Sawtooth también incluye un motor de contratos inteligentes llamado “Sawtooth Lake” que permite la implementación y ejecución sencilla de contratos inteligentes. La plataforma también proporciona una API RESTful para interactuar con el libro mayor y enviar transacciones.
  • Sawtooth está diseñado para ser altamente escalable y puede soportar redes con miles de nodos y millones de transacciones por segundo.
  • En general, Hyperledger Sawtooth es una plataforma flexible y potente para construir e implementar registros distribuidos que se pueden utilizar para una amplia gama de aplicaciones, como la gestión de la cadena de suministro, el seguimiento de activos digitales y sistemas de votación.
  • Hyperledger Sawtooth hace que sea más sencillo desarrollar aplicaciones manteniendo la seguridad del sistema al separar el sistema de registro central del entorno pertinente para cada aplicación.
  • Los desarrolladores de aplicaciones pueden describir las reglas comerciales adecuadas para su aplicación sin necesidad de conocer la arquitectura subyacente del sistema central. Este diseño permite a los desarrolladores construir aplicaciones que pueden ser alojadas, administradas y utilizadas fuera de la red de bloques central en su lenguaje de programación favorito.

Algoritmos de consenso de Hyperledger Sawtooth

Hyperledger Sawtooth incluye un diseño modular que permite algoritmos de consenso enchufables. Algunos de los algoritmos de consenso que son compatibles con Sawtooth incluyen:

SKIP

  1. PoET (Prueba de Tiempo Transcurrido): Este es el algoritmo de consenso predeterminado en Sawtooth. Utiliza entornos de ejecución confiables (TEEs) para garantizar que se alcance un consenso de manera justa y eficiente. PoET utiliza un proceso de elección aleatoria de líder y un tiempo de espera para asegurar que todos los participantes tengan la misma oportunidad de ser seleccionados como líder.
  2. PBFT (Tolerancia Práctica a Fallas Bizantinas): Este es un algoritmo de consenso clásico que se utiliza ampliamente en sistemas distribuidos. Utiliza un proceso de votación de réplicas para garantizar que la red llegue a un consenso. PBFT es adecuado para redes con permisos con un conjunto conocido de participantes.
  3. Raft: Diseñado para sistemas distribuidos con un alto ritmo de cambio, Raft es un algoritmo de consenso. Utiliza una metodología basada en líderes y permite una rápida recuperación de la partición de la red.
  4. Devmode: Esta técnica de consenso sencilla está destinada a pruebas y desarrollo. Sin necesidad de consenso, permite el procesamiento paralelo de transacciones.

Algoritmos de consenso más avanzados como PoA (Prueba de Autoridad), PoS (Prueba de Participación), etc., también se pueden utilizar con Sawtooth instalando el motor de consenso correspondiente. \
En general, el diseño modular de Sawtooth permite el uso de diferentes algoritmos de consenso basados en los requisitos específicos de la aplicación, como rendimiento, seguridad y modelo de confianza.

Características de Hyperledger Sawtooth

1. Separación entre el nivel de la aplicación y el sistema central

Sawtooth separa el nivel de aplicación del nivel central del sistema, lo que facilita el diseño e implementación de programas. Los desarrolladores de aplicaciones pueden diseñar la lógica del contrato en cualquier idioma de su elección con la ayuda de Sawtooth. Sawtooth ofrece una abstracción para los contratos inteligentes. Las aplicaciones incluyen lógica empresarial nativa o máquinas virtuales para contratos inteligentes. De hecho, una sola cadena de bloques puede admitir ambos tipos de aplicaciones. Estas opciones arquitectónicas son posibles gracias a Sawtooth en la capa de procesamiento de transacciones, lo que permite la coexistencia de varios tipos de aplicaciones en la misma instancia de red de cadena de bloques.

2. Funciones de permisos de Sawtooth en redes privadas

Sawtooth fue creado para abordar los problemas asociados con las redes con permisos (privadas). Los clústeres de nodos de Sawtooth se pueden implementar fácilmente con permisos independientes. No existe un servicio centralizado que pueda revelar accidentalmente patrones transaccionales u otros datos privados. Los roles e identidades son algunos de los parámetros que definen los permisos almacenados en la cadena de bloques para que todos los que utilicen la red puedan acceder a ellos.

3. Ejecución de transacciones en paralelo

La mayoría de las cadenas de bloques exigen un procesamiento de transacciones en serie para garantizar un orden consistente en cada nodo de la red. Un programador de paralelismo de vanguardia en Sawtooth divide las transacciones en flujos paralelos. Sawtooth aísla la ejecución de las transacciones unas de otras al mismo tiempo que preserva los cambios contextuales basados en las ubicaciones en el estado a las que accede una transacción. Aunque es factible, las transacciones se llevan a cabo en paralelo para evitar el doble gasto, incluso cuando el mismo estado se modifica más de una vez. En comparación con la ejecución en serie, la programación paralela ofrece un impulso de velocidad potencial significativo.

4. Compatibilidad del contrato Ethereum con Seth

La plataforma Sawtooth es ahora interoperable con Ethereum gracias al proyecto de integración Sawtooth-Ethereum, Seth. La familia de transacciones Seth permite el despliegue de contratos inteligentes EVM (Máquina Virtual Ethereum) en Sawtooth.

5. Consenso dinámico

El consenso en una cadena de bloques se refiere a alcanzar un entendimiento entre los participantes de la red. Para llegar a un consenso con fallas arbitrarias, los algoritmos típicamente votan entre un grupo predeterminado de participantes. Tanto el consenso de estilo Nakamoto como las variaciones de los algoritmos convencionales de Tolerancia a Fallas Bizantinas (BFT) emplean numerosas rondas de votación explícita para llegar a un consenso. El primero elige un líder mediante algún tipo de sistema de lotería. Sawtooth separa el consenso de la semántica de transacción y abstrae las ideas fundamentales detrás del consenso. Como motores de consenso que se comunican con el validador a través de la API de consenso, la interfaz de consenso de Sawtooth permite conectar varias implementaciones de consenso.

6. Familias de transacciones de muestra

Una familia de transacciones, que funciona como un procesador de transacciones en un nodo de Sawtooth, implementa el modelo de datos y el lenguaje de transacciones en una aplicación de Sawtooth. Sawtooth incluye numerosas familias de transacciones fundamentales como modelos, mientras que la mayoría de los desarrolladores de aplicaciones crean familias de transacciones personalizadas para satisfacer las necesidades particulares de sus libros contables:

  • Para probar los registros desplegados, los desarrolladores usan una clave entera.
  • La configuración en cadena se puede almacenar utilizando la implementación de referencia proporcionada por Configuraciones.
  • Maneja la autorización en la cadena de bloques para las claves de transacción y validación para simplificar el manejo de identidades para colecciones de listas de claves públicas.
  • Sistema de Eventos: Los eventos pueden ser creados y transmitidos usando Hyperledger Sawtooth. Esto permite a las aplicaciones:
    • Reciba notificaciones cuando ocurran eventos relacionados con la cadena de bloques, como cuando se compromete un nuevo bloque o ocurre un fork.
    • Suscríbase a eventos específicos de una aplicación y especificados por una familia de transacciones.
    • Informar a los clientes cómo se llevó a cabo una transacción sin almacenar los detalles en el estado.
    • A través de un socket ZMQ, se envían y mantienen las suscripciones.

Elementos de la arquitectura de Hyperledger Sawtooth

Hablemos de los elementos fundamentales de la arquitectura de Hyperledger Sawtooth:

1. Sistema de eventos

Al observar cualquier ejemplo de Hyperledger Sawtooth, puedes observar que el sistema de eventos principalmente garantiza que se creen eventos sin problemas y se transmitan a los nodos. Como resultado, si utilizas el sistema de eventos, puedes crear una aplicación que se suscriba a eventos y obtenga automáticamente nueva información. Estas cosas suelen hacer que la plataforma Sawtooth funcione de manera más fluida. Ayudar a los nodos a recopilar la información que necesitan de los eventos contribuye al mantenimiento de un consenso completo.

Proyecto de Integración Sawtooth-Ethereum (Seth)

Es una de las principales características de Sawtooth. Debe estar familiarizado con esta funcionalidad si desea comprender Hyperledger Sawtooth. Aparece en todos los ejemplos de Hyperledger Sawtooth que incorporan características de Ethereum. Pero, ¿qué hace exactamente? ¿Qué aplicaciones tienen para las propiedades de Ethereum? Por lo tanto, este componente menor ayuda a cerrar la brecha entre las dos plataformas. Como resultado, este elemento se puede utilizar para lograr la compatibilidad entre estas dos plataformas. ¿Tienes idea de cuántas oportunidades podría presentar Seth? Es una fantástica adición al diseño de Hyperledger Sawtooth, así que utilízalo si tu proyecto comercial lo requiere.

3. Algoritmos de consenso enchufables

Incluir algoritmos de consenso enchufables en la arquitectura de Hyperledger Sawtooth es otra característica fascinante. El mecanismo de consenso enchufable es un nuevo avance fantástico para el sector de la Cadena de bloques. Le permite seleccionar el mecanismo de consenso que su plataforma requiere. Naturalmente, solo algunos consensos son apropiados para algunas situaciones de uso. Para construir un producto basado en la Cadena de bloques empresarial, debe tener flexibilidad. Como resultado, el consenso enchufable de Sawtooth pone en primer plano la dinámica.

4. Modelos de Familia de Transacciones

Las familias de transacciones proporcionan una variedad de operaciones, incluida la provisión de funcionalidades a su contrato inteligente. No se puede usar el sistema Hyperledger Sawtooth sin usar familias de transacciones, como se puede ver al mirar un ejemplo.

  • Familia de transacciones de información de Bloque: La familia de transacciones de información de Bloque te permite almacenar información relacionada con el bloque.
  • Familia de Transacciones de Pequeños Bancos: En la práctica, esta familia es la mejor para evaluar y probar la viabilidad de su empresa.
  • Estableciendo la Familia de Transacciones: Puedes almacenar configuraciones en la cadena con la ayuda de la familia de Configuraciones, que también te proporciona un modelo de referencia para hacerlo.
  • Familia de transacciones del registro de validadores: Úselo para ampliar los validadores del sistema agregando nuevos miembros. No puede agregar ningún validador sin usar esto. Por lo tanto, es absolutamente necesario.
  • Familia de transacciones de clave entera: Una de las mejores familias de transacciones que permiten la prueba sin recursos de todos los libros contables desplegados.
  • Familia de transacciones de XO: Esta es una interpretación más entretenida de toda la red. También se incluyó un juego de tres en raya en Sawtooth porque los creadores de la red querían darle un poco más de estilo. Así que puedes jugar con cualquier nodo usando esto.
  • Familia de transacciones de identificación: Se utiliza principalmente para la preservación de datos. Específicamente, los datos a los que los validadores tienen acceso permitido. Más importante aún, realiza un seguimiento de los detalles sobre los nodos, incluidas sus claves públicas y otras cosas.

También hay otras dos familias de transacciones adicionales en el sistema. Son adiciones relativamente recientes:

  • Familia de transacciones Seth: Gracias a la familia de transacciones Seth, puedes utilizar aplicaciones creadas para la cadena de bloques Ethereum en la red. Esto implica que puedes utilizar contratos inteligentes construidos en Solidity u otras aplicaciones.
  • Familia de transacciones de Sabre: La familia de transacciones de Sabre es otro método para usar contratos inteligentes. Esto se puede utilizar para ejecutar contratos inteligentes en máquinas WASM o WebAssembly virtuales. También hace posible que los contratos inteligentes se lleven a cabo en la cadena.

Aplicaciones de Hyperledger Sawtooth

  • X O: Juega a una partida de tres en raya para ilustrar cómo crear transacciones simples. Las transacciones de construcción y toma en la familia de transacciones X O proporcionan un comando X O que permite a dos jugadores jugar al juego. Puede consultar la Familia de Transacciones X O para obtener detalles adicionales.
  • Sawtooth Supply Chain: La cadena de suministro Sawtooth muestra cómo rastrear los orígenes y otros datos contextuales relevantes de cualquier artículo. Supply Chain ofrece una aplicación de muestra que incluye una aplicación web, una API REST personalizada y un procesador de transacciones. Esta aplicación de ejemplo muestra cómo sincronizar el estado de la cadena de bloques con una base de datos local para consultas complicadas, así como una forma descentralizada de firmar transacciones en el navegador.
  • Mercado Sawtooth: En la cadena de bloques, el mercado Sawtooth instruye a los usuarios sobre cómo intercambiar cantidades particulares de activos especializados. Con la ayuda de un validador de Sawtooth y algunos otros componentes, esta aplicación de ejemplo ejecutará una cadena de bloques de Sawtooth y ofrecerá una sencilla API RESTful para comunicarse con ella.

Idiomas admitidos para el proceso de transacción

Hyperledger Sawtooth admite el uso de varios lenguajes de programación para el proceso de transacción. Algunos de los lenguajes admitidos incluyen:

  1. Python: Sawtooth proporciona una biblioteca de Python llamada "Sawtooth SDK" que permite a los desarrolladores interactuar con la cadena de bloques y enviar transacciones.
  2. JavaScript: Sawtooth admite JavaScript a través del uso del "Sawtooth JavaScript SDK", que proporciona un conjunto de APIs para interactuar con el libro mayor.
  3. Sawtooth también ofrece soporte para Go a través del "Sawtooth Go SDK", que permite una integración sencilla con aplicaciones basadas en Go.
  4. C++: Sawtooth también brinda soporte para C++, a través del "Sawtooth C++ SDK" que proporciona API de C++ para interactuar con el libro mayor.

Otros idiomas como Java, Rust, Shell, etc. también se pueden utilizar mediante la API RESTful proporcionada por Sawtooth. El soporte de Sawtooth para múltiples lenguajes de programación facilita la integración con sistemas existentes y permite una amplia gama de casos de uso.

Arquitectura de desarrollo de Hyperledger Sawtooth

La arquitectura modular de Hyperledger Sawtooth permite la división de responsabilidades entre varios componentes del sistema. Los principales componentes de la arquitectura de Sawtooth son:

  • Libro de contabilidad distribuido: Este componente es responsable de mantener un registro de todas las transacciones y la ejecución de contratos inteligentes. El libro mayor se replica en todos los nodos de la red y las transacciones se procesan en paralelo para aumentar el rendimiento.
  • Procesador de transacciones: Este componente es responsable de procesar transacciones y actualizar el estado del libro mayor. También incluye un motor de contratos inteligentes llamado "Sawtooth Lake" que permite una implementación y ejecución fáciles de contratos inteligentes.
  • Algoritmo de consenso: Este componente es responsable de garantizar que la red llegue a un acuerdo sobre el estado del libro mayor. Sawtooth admite múltiples algoritmos de consenso, incluidos PoET, PBFT, Raft y Devmode.
  • API REST: Este componente proporciona una API RESTful para interactuar con el libro mayor y enviar transacciones. Permite una integración fácil con sistemas existentes y admite varios lenguajes de programación.
  • Validador: Este componente es responsable de validar transacciones y bloques antes de que se agreguen al libro mayor. Se asegura de que las transacciones estén bien formadas y cumplan con las reglas del contrato inteligente.
  • Programador de Transacciones: Este componente es responsable de programar el orden en que las transacciones son procesadas por la red. Se asegura de que las transacciones conflictivas sean procesadas de una manera que evite conflictos y mantenga la consistencia en el libro mayor.
  • Motor de consenso: Cada algoritmo de consenso tiene su propio motor que ejecuta el protocolo de consenso y se comunica con otros componentes del sistema.

Hyperledger Sawtooth en funcionamiento

Hyperledger Sawtooth se puede utilizar para construir una variedad de aplicaciones de libro mayor distribuido. Algunos ejemplos de cómo Sawtooth puede ser utilizado en diferentes industrias incluyen:

  • Gestión de la cadena de suministro: Sawtooth se puede utilizar para construir un sistema de gestión de la cadena de suministro a prueba de manipulaciones y transparente. Se puede utilizar para rastrear el movimiento de mercancías, desde el punto de origen hasta el destino final, proporcionando visibilidad y responsabilidad para todas las partes involucradas.
  • Servicios financieros: Sawtooth se puede utilizar para construir un sistema seguro y eficiente para transacciones financieras y registro. Se puede utilizar para actividades como financiamiento comercial, gestión de activos digitales e informes de cumplimiento
  • Salud: Sawtooth se puede utilizar para construir un sistema seguro y privado para compartir registros médicos entre proveedores de atención médica. Se puede utilizar para garantizar que los datos de los pacientes solo sean accesibles para las partes autorizadas, a la vez que proporciona una forma eficiente de compartir datos entre médicos, hospitales y compañías de seguros
  • Gestión de Identidad: Sawtooth se puede utilizar para construir un sistema descentralizado e inalterable para la gestión de identidades. Se puede utilizar para almacenar y validar identidades y credenciales y proporcionar acceso seguro y privado a servicios y recursos.
  • Gestión de energía: Sawtooth se puede utilizar para construir un sistema para gestionar y rastrear la producción, distribución y consumo de energía. Se puede utilizar para permitir el comercio de energía entre pares, rastrear y verificar los créditos de energía renovable, y gestionar la distribución de energía de microredes.

Estos son solo algunos ejemplos, y Sawtooth es lo suficientemente flexible como para ser utilizado en una amplia gama de otras industrias y aplicaciones también. La arquitectura modular de Sawtooth y el soporte para diferentes algoritmos de consenso lo convierten en una plataforma poderosa para construir e implementar contabilidad distribuida que puede ser utilizada para una amplia gama de casos de uso.

¡El verano está aquí y es el momento de mejorar tus habilidades! ¡Más de 5,000 estudiantes han completado su viaje desde los conceptos básicos de DSA hasta programas de desarrollo de nivel avanzado como Full-Stack, Desarrollo Backend, Ciencia de Datos.
\
Y ¿por qué ir a otro lugar cuando nuestro DSA to Development: Guía de codificación¡te ayudará a dominar todo esto en unos meses! ¡Aplica ahora a nuestroDSA al Programa de Desarrolloy nuestros consejeros se pondrán en contacto contigo para más orientación y apoyo.

Descargo de responsabilidad:

  1. Este artículo es reimpreso de [ geeksforgeeks]. Todos los derechos de autor pertenecen al autor original [geeksforgeeks]. Si hay objeciones a esta reimpresión, por favor contacte al Gate Learnequipo, y lo manejarán rápidamente.
  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen asesoramiento de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
เริ่มตอนนี้
สมัครและรับรางวัล
$100