RiqKKas / blockchain-application

Aplicação Blockchain Simples em python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Blockchain Application

💡  Sobre o projeto

Introdução

A tecnologia blockchain é um sistema de registro distribuído que viabiliza a criação de um livro-razão público imutável. Este documento abordará a criação de uma blockchain básica em Python, conforme exemplificado no código fornecido.

Estrutura do Bloco

Um bloco na blockchain possui elementos como índice, carimbo de data e hora, transações, prova de trabalho e o hash do bloco anterior. A conexão entre os blocos é estabelecida por meio dos hashes.

Criação da Cadeia de Blocos

A cadeia de blocos é, essencialmente, uma lista de blocos. O primeiro bloco, conhecido como "bloco gênesis", é gerado durante a fase inicial. Novos blocos são acrescentados à cadeia por meio do processo de mineração.

Mineração

A mineração de novos blocos emprega o algoritmo de prova de trabalho. Isso implica encontrar um valor (nonce) de maneira que o hash do bloco atenda a critérios específicos, como iniciar com zeros. A recompensa pela mineração é uma transação fictícia, com o mineiro como destinatário.

Transações

As transações são incorporadas ao bloco por meio do método new_transaction(). Cada transação inclui informações sobre o remetente, destinatário e quantidade.

Consenço e Resolução de Conflitos

A garantia de consenso na rede requer a implementação do algoritmo de resolução de conflitos. Cada nó verifica a validade da cadeia e a substitui pela própria se uma cadeia mais longa e válida for encontrada.

Nós

Os nós da rede são adicionados dinamicamente por meio do método register_node(), possibilitando a comunicação entre eles para alcançar consenso.

Cadeia

A validação da cadeia é conduzida pelo método is_valid_chain(), que verifica a integridade dos hashes e a prova de trabalho.

Sistema

A aplicação da blockchain foi concretizada como uma aplicação Flask. Os endpoints /mine, /transactions/new, /chain, /nodes/register e /nodes/resolve proporcionam funcionalidades para mineração, criação de transações, visualização da cadeia, registro de nós e resolução de conflitos, respectivamente.

Conclusão

A implementação da blockchain em Python oferece uma compreensão prática dos conceitos fundamentais subjacentes a essa tecnologia. Este documento enfatizou os aspectos cruciais do código e a lógica por trás da criação de uma blockchain simples, servindo como uma base sólida para a compreensão de blockchains mais complexas.


🚀  Como executar

# Clone o repositório
git clone git@github.com:the-riquelme/blockchain-application.git

# Execute o programa
python3 src/blockchain.py

👨‍💻  Autor

👤 Riquelme Damião Silva

About

Aplicação Blockchain Simples em python

License:MIT License


Languages

Language:Python 100.0%