Uma introdução ao Hyperledger Sawtooth e um guia para configurá-lo

LeewayHertz Blocked Unblock Seguir Seguindo 5 de julho Fonte da imagem: Hyperledger

Qual é o hype sobre o dente de serra Hyperledger

O Hyperledger Sawtooth é uma plataforma Blockchain de código aberto fundada pelo projeto blockchain de código aberto da Linux Foundation, o Hyperledger. Proposto pela Intel, é um livro-razão distribuído de nível empresarial e foi um dos primeiros projetos no âmbito do Hyperledger Umbrella.

Com um modelo de consenso conectável, o Hyperledger Sawtooth é:

  1. Modular
  2. Escalável
  3. Suporta Infra-estrutura Permissionless e Permissioned.

Seu design subjacente visa manter os livros distribuídos e adicionar a lógica de negócios aos contratos inteligentes.

Em muitas plataformas baseadas em blockchain padrão, os aplicativos e o núcleo são executados e hospedados em sua plataforma, o que pode causar problemas de desempenho e preocupações com a segurança.

No entanto, o Hyperledger Sawtooth é diferente de tais plataformas de forma que isola o sistema de contabilidade do núcleo do ambiente específico da aplicação. Como resultado, simplifica o desenvolvimento de aplicativos e ainda mantém o sistema seguro e protegido.

Com a arquitetura modular da Sawtooth, os desenvolvedores podem desenvolver aplicativos na linguagem de programação de sua escolha e podem hospedar, executar e operá-lo na periferia do sistema sem prejudicar o sistema blockchain principal.

Um aplicativo no Hyperledger Sawtooth pode ser baseado em uma lógica de negócios central para executar operações de negócios ou pode ser construído e executado como uma máquina virtual de contrato inteligente com um mecanismo autônomo para criar, notificar e executar os contratos entre vários membros. rede blockchain.

O sistema central do Sawtooth permite que esses dois aplicativos coexistam, permitindo que diferentes tipos de aplicativos permaneçam na mesma instância da rede blockchain.

Os aplicativos em Sawtooth podem selecionar regras de transação, definir os mecanismos de consenso e selecionar a permissão necessária para decidir o funcionamento do livro-razão digital de forma a atender aos requisitos de uma empresa.

Sendo extremamente escalável. O Hyperledger Sawtooth pode oferecer alta taxa de transferência de dados e é, portanto, uma ótima opção para lidar com cadeias de fornecimento de produção.

Recursos do dente de serra Hyperledger

  • Redes privadas com os recursos de permissão
    O Sawtooth supera os desafios da rede permitida, pois o cluster de seus nós pode ser implantado com permissão isolada. Nenhum serviço centralizado pode vazar informações confidenciais ou padrões de transação.

O blockchain gerencia as configurações que especificam identidades e funções para que os participantes da rede possam acessar as informações na rede.

  • Compatibilidade do Contrato Ethereum com Seth
    O projeto de integração Seth, Sawtooth-Ethereum permite a interoperabilidade da plataforma Sawtooth para a Ethereum. O projeto possibilita que os contratos inteligentes da Ethereum sejam implantados na plataforma Sawtooth com a família de transações Seth.
  • Execução de Transação Paralela
    Muitos blockchains precisam de execução de transação serial para garantir ordenação consistente em todos os nós da rede. No entanto, o Sawtooth contém um escalonador paralelo avançado que classifica transações em fluxos paralelos. Com base nas localizações no estado acessado por uma transação, o Sawtooth separa a execução das transações umas das outras enquanto manipula as alterações contextuais.

As transações no Sawtooth são executadas paralelamente para evitar o gasto duplo, mesmo com várias modificações no mesmo estado. Esse tipo de programação leva ao aumento potencial de desempenho em comparação à execução serial.

  • Isolamento entre o sistema principal e o nível de aplicativo
    O Hyperledger Sawtooth facilita o desenvolvimento e a implementação de um aplicativo, separando o nível do aplicativo do nível do sistema principal. Ele oferece abstração de contrato inteligente para permitir que os desenvolvedores criem lógica de contrato na linguagem de programação de sua escolha.
  • Cada aplicativo pode definir os processadores de transação personalizados para atender aos requisitos exclusivos. Ele fornece famílias de transações para servir como uma abordagem para funções de baixo nível, como o armazenamento de permissões on-chain, o gerenciamento de configurações de toda a cadeia e para aplicativos específicos, como salvar informações de bloco e análise de desempenho.
  • Mecanismos de consenso plugáveis
    O mecanismo de consenso é o processo de chegar a um acordo entre um grupo de participantes da rede blockchain. Algoritmos para alcançar consenso com falhas arbitrárias precisam de algum tipo de votação entre um conjunto específico de participantes.
    Abordagens gerais de consenso incluem o consenso ao estilo Nakamoto que seleciona um líder através da loteria e variantes dos mecanismos de tolerância a faltas bizantinas que executam múltiplas rodadas de votação explícita para formar um consenso.
    O Sawtooth suporta vários tipos de consenso no mesmo blockchain que é escolhido inicialmente durante a configuração da rede e pode ser alterado em um blockchain em execução com uma transação.

Suporta as seguintes implementações de consenso:

Prova do Tempo Decorrido (PoET):
É um consenso ao estilo Nakamoto, projetado como um protocolo de nível de produção que pode suportar grandes populações de redes. Contando com uma execução de instrução segura, ela pode alcançar a escalabilidade do mecanismo de consenso no estilo Nakamoto sem as desvantagens do consumo de energia do algoritmo PoW.

Simulador Poet:
Ele permite o consenso no estilo PoET em qualquer hardware e em um ambiente de nuvem virtualizado.

Modo Dev:
É um mecanismo de líder aleatório simplificado usado para desenvolvimento e teste.

  • Famílias de Transação de Amostra
    A linguagem de transação e o modelo de dados são implementados em uma família de transações. Embora os usuários possam criar famílias de transações personalizadas para representar seus requisitos exclusivos, o Sawtooth também fornece várias famílias de transações como modelos:
    1. IntegerKey para testar ledgers implantados.
    2. Identidade para gerenciar a permissão na cadeia para validador e chaves de transação para simplificar o gerenciamento de identidade para listas de chaves públicas.
    3. Configurações para fornecer uma implementação para salvar as configurações da cadeia.
    4. BlockInfo para fornecer uma abordagem para armazenar informações sobre vários blocos históricos.
    5. Smallbank para gerenciar a análise de desempenho para testes de desempenho e benchmarking ao fazer a comparação do desempenho dos sistemas blockchain.

Introdução ao Desenvolvimento de Aplicações do Hyperledger Sawtooth?

Fonte da imagem: Hyperledger Documentação Sawtooth

Você terá que configurar e executar um validador local para testar seu aplicativo antes de começar a desenvolver um aplicativo na plataforma Hyperledger Sawtooth. Quando a rede estiver em execução, você poderá conduzir novas transações e obter os dados do bloco e o estado resultante do blockchain via Sawtooth REST API e HTTP.

Os validadores Sawtooth podem ser executados a partir de contêineres Docker pré-construídos que são instalados usando o Ubuntu 16.904 ou implementados na AWS no mercado da AWS.

Vamos orientá-lo no processo de desenvolvimento de aplicativos Hyperledger Sawtooth usando o Docker Compose.

Instalando o Docker Engine e o Docker Compose

Janelas:
O Docker Compose pode ser instalado automaticamente quando você instala o Docker Engine no Windows .

Linux:
No sistema operacional Linux, você precisará instalar o Docker Engine e o Docker Compose .

Mac OS:
No macOS, você terá que instalar a versão mais recente do Docker Engine . Semelhante ao Windows, o Docker Compose também é instalado automaticamente com o Docker Engine no macOS.

Configurando o Ambiente

Um arquivo do Docker Compose é fornecido para indicar o processo de criação de um ambiente Sawtooth. O ambiente Sawtooth é composto pelos seguintes recipientes:

  • API REST conectada ao validador
  • Um contêiner de cliente para executar comandos do Sawtooth
  • Um único validador que usa o consenso de modo dev
  • As configurações, processadores de transação XO e IntegerKey

O arquivo Compose do Docker também representa as imagens do contêiner para obter do Docker Hub e as configurações de rede necessárias para que os contêineres interajam corretamente.

O Docker Compose File serve como base para o ambiente de desenvolvimento de aplicativos Sawtooth com vários contêineres. Faça o download do Docker Compose File e configure o ambiente para o desenvolvimento do aplicativo Sawtooth.

A inicialização do ambiente do Sawtooth envolve as seguintes tarefas:

  • Abra uma janela de terminal.
  • Alterne o diretório de trabalho para o mesmo diretório em que você armazenou o arquivo do Docker Compose.
  • Execute o comando:% docker-compose -f sawtooth-default.yaml up

O download das imagens do docker pode demorar alguns minutos. Depois de encontrar os contêineres registrando e construindo blocos iniciais, vá para a próxima etapa.

Caso o ambiente precise ser interrompido ou reconfigurado, você precisará efetuar logout do contêiner do cliente para retornar ao estado padrão e, em seguida, pressionar CTRL-C do sistema Windows no qual você executou inicialmente o docker-compose.

Como criar e enviar transações para a rede Sawtooth

Sawtooth fornece o comando intkey para fazer transações de amostra do tipo de transação IntegerKey (intkey) para teste. Esse método usa a tecla int para preparar lotes de transações intkey que atribuem algumas chaves a valores aleatórios, aumentando e diminuindo esses valores aleatoriamente.

Esses lotes são armazenados localmente e distribuídos para o validador dentro da rede.

Execute os comandos mencionados abaixo do contêiner do cliente:

$ intkey create_batch – contagem 10 – contagem de chaves 5 $ intkey load -f batches.intkey -U http: // restante-api: 8008
A janela do terminal na qual você executou o comando docker-compose iniciará o registro da saída como um validador e o processador de transação intkey gerenciará as transações enviadas recentemente.

Em vez de usar a carga intkey, você também pode usar o comando “sawtooth batch submit” para enviar transações. Por exemplo, envie as transações no arquivo batches.intkey com o comando:

$ lote dente de serra submissão -f batches.intkey – url http: // rest-api: 8008

Visualizando o Blockchain

A seguir estão os diferentes comandos para visualizar o bloco, lista de blocos, um bloco específico e estado global:

  • sawtoothblock
    Este subcomando é usado para ver os blocos salvos no blockchain.
  • sawtoothblocklist
    Este comando é usado para visualizar os blocos armazenados pelo estado.
  • show de bloco dente de serra – url http: // rest-api: 8008 {BLOCK_ID}
    Este comando é usado para visualizar um blockchain específico usando um ID de bloco.
  • sertanista
    Este comando é usado para listar os nós na árvore Merkle.
  • show de estado dente de serra – url http: // rest-api: 8008 {STATE_ADDRESS}
    Este comando é usado para exibir os dados em um endereço específico.

Conectando-se à API REST

Use o comando “$ curl http: // rest-api: 8008 / blocks” para garantir que você possa se conectar à API REST por meio do host.

Para conectar a API REST do host, use o comando: “$ curl http: // localhost: 8008 / blocks”.

Devido ao potencial do Hyperledger Sawtooth para construir aplicativos blockchain modulares e escalonáveis, ele está sendo amplamente utilizado por empresas de blockchain para fornecer soluções de negócios blockchain para empresas e startups.

Plug sem vergonha, também conhecido como nosso trabalho no dente de serra Hyperledger

Construímos uma plataforma de contabilidade distribuída chamada TraceRx no Hyperledger Sawtooth que permite rastreabilidade de ponta a ponta em toda a cadeia de suprimentos farmacêutica no blockchain. A plataforma permite que a UNO rastreie a distribuição de ajuda gratuita e realize recalls rapidamente.

Fonte da imagem: LeewayHertz

Na LeewayHertz, temos uma equipe de Consultores de Blockchain que podem ajudar empresas e indivíduos interessados em avançar suas operações de negócios com a tecnologia de contabilidade distribuída.