O que é o Hyperledger Fabric?¶
A Fundação Linux fundou o projecto Hyperledger em 2015 para avançar com as tecnologias de cadeias de blocos da indústria. Ao invés de declarar um padrão de cadeia de bloqueio único, ela encoraja uma abordagem colaborativa para o desenvolvimento de tecnologias de cadeia de bloqueio através de um processo comunitário, com direitos de propriedade intelectual que encorajam o desenvolvimento aberto e a adoção de padrões-chave ao longo do tempo.
Hyperledger Fabric é um dos projetos de blockchain dentro do Hyperledger. Como outras tecnologias de blockchain, ele tem um ledger, usa contratos inteligentes,e é um sistema pelo qual os participantes gerenciam suas transações.
Quando o Hyperledger Fabric quebra de alguns outros sistemas de blockchain, ele é privado e com permissão. Ao invés de um sistema aberto sem permissões que permite a participação de identidades desconhecidas na rede (exigindo protocolos como “prova de trabalho” para validar transações e proteger a rede), o membro de uma rede Hyperledger Fabric inscreve-se através de um Membership Service Provider (MSP) confiável.
Hyperledger Fabric também oferece várias opções plugáveis. Os dados do ledger podem ser melhorados em vários formatos, mecanismos de consenso podem ser trocados para dentro e para fora e diferentes MSPs são suportados.
Hyperledger Fabric também oferece a capacidade de criar canais, permitindo que um grupo de participantes crie um ledger separado de transações. Esta é uma opção especialmente importante para redes onde alguns participantes podem ser concorrentes e não querem cada transação que fazem – um preço especial que estão oferecendo a alguns participantes e não a outros, por exemplo – conhecido por todos os participantes. Se dois participantes formam um canal, então esses participantes – e nenhum outro – têm cópias do ledger para esse canal.
Ledger Compartilhado
Hyperledger Fabric tem um subsistema de ledger composto por dois componentes: o worldstate e o log de transações. Cada participante tem uma cópia do ledger para todo o Hyperledger Fabric network ao qual pertencem.
O componente world state descreve o estado do ledger em um determinado momento. É a base de dados do ledger. O componente log de transações registra todas as transações que resultaram no valor atual do estado mundial; é o histórico de atualização do estado mundial. O ledger, então, é uma combinação do banco de dados do estado mundial e do histórico do log de transações.
O ledger tem um armazenamento de dados substituível para o estado mundial. Por padrão, este é um banco de dados de valores-chave do LevelDB. O log de transações não precisa ser plugável. Ele simplesmente registra os valores antes e depois do banco de dados do ledger usado pela rede de blockchain.
Smart Contracts
Hyperledger Fabric smart contracts são escritos em chaincode e são invocados por uma aplicação externa ao blockchain quando essa aplicação precisa interatuar com o ledger. Na maioria dos casos, o chaincode interage apenas com o componente da base de dados do ledger, o estado do mundo (consultando-o, por exemplo), e não o log de transação.
Chaincode pode ser implementado em várias linguagens de programação. Atualmente, Go, Node.js e Java chaincode são suportados.
Privacy
Dependente das necessidades de uma rede, os participantes de uma rede Business-to-Business(B2B) podem ser extremamente sensíveis sobre quanta informação eles compartilham.Para outras redes, a privacidade não será uma preocupação principal.
Hyperledger Fabric suporta redes onde a privacidade (usando canais) é um requisito operacional chave, assim como redes que são comparativamente abertas.
Consenso
Transações devem ser escritas no ledger na ordem em que ocorrem, mesmo que possam estar entre diferentes conjuntos de participantes dentro da rede. Para que isso aconteça, a ordem das transações deve ser estabelecida e um método para rejeitar transações ruins que foram inseridas no livro-razão por erro (ou maliciosamente) deve ser colocado em prática.
Esta é uma área da ciência da computação que foi pesquisada minuciosamente, e há muitas maneiras de alcançá-la, cada uma com diferentes trade-offs. Por exemplo, PBFT (PracticalByzantine Fault Tolerance) pode fornecer um mecanismo para que as réplicas de arquivos se comuniquem entre si para manter cada cópia consistente, mesmo no evento de corrupção. Alternativamente, em Bitcoin, o pedido acontece através de um processo de mineração onde computadores concorrentes correm para resolver um quebra-cabeça criptográfico que define a ordem em que todos os processos subseqüentemente são construídos.
Hyperledger Fabric foi projetado para permitir que os iniciantes da rede escolham o mecanismo de aconselhamento que melhor represente as relações que existem entre os participantes. Assim como a privacidade, há um espectro de necessidades; desde as redes que são altamente estruturadas em suas relações até aquelas que são mais de ponta a ponta.