Nas arquiteturas tradicionais de aplicações, os programadores recorrem habitualmente a servidores para processar pedidos. Na rede Internet Computer, por outro lado, a lógica das aplicações executa diretamente na blockchain, o que proporciona ao utilizador uma perspetiva completamente distinta sobre o funcionamento das aplicações.
A diferença incide principalmente em três aspetos: arquitetura da aplicação, execução de pedidos e validação do consenso. Estes elementos, em conjunto, definem o ciclo operacional completo de uma aplicação Dfinity, desde a implementação até à execução.
As aplicações Dfinity assentam numa arquitetura de computação on-chain, em claro contraste com as aplicações web tradicionais.
Nos modelos convencionais, as aplicações adotam uma estrutura por camadas: frontend, backend e base de dados. A Dfinity, pelo contrário, integra estas funções nos Canisters, permitindo que a lógica da aplicação e os dados residam diretamente on-chain.
Do ponto de vista estrutural, uma aplicação Dfinity consiste numa interface frontend e em múltiplos Canisters. Cada Canister gere a lógica de negócio e o armazenamento de dados, reduzindo significativamente a dependência de servidores centralizados.
Esta abordagem permite às aplicações operar de forma completamente descentralizada, mantendo todas as funcionalidades.

Os programadores implementam Canisters para publicar a lógica da aplicação na rede.
O processo envolve a escrita do código da aplicação, a sua compilação em Canisters e a implementação nas subnets designadas, recorrendo a ferramentas especializadas. A implementação consome Cycles, que correspondem a taxas de recursos computacionais.
A implementação segue três passos principais: empacotamento do código, alocação de recursos e registo na subnet. Após a implementação, o Canister está preparado para receber pedidos dos utilizadores.
Este procedimento transforma uma aplicação de um ambiente local numa entidade operacional on-chain.
Os Canisters são as unidades centrais de execução das aplicações Dfinity.
Cada Canister contém tanto o código como o estado, o que lhe permite processar pedidos dos utilizadores e atualizar dados. Os Canisters asseguram o processamento e fornecem armazenamento persistente de dados.
Cada Canister funciona como um microserviço independente e pode interagir com outros Canisters, formando um sistema de aplicação completo.
Este mecanismo permite à blockchain suportar funcionalidades de backend comparáveis às dos sistemas convencionais.
Os pedidos dos utilizadores são processados dentro das subnets.
O pedido é enviado para a subnet onde se encontra o Canister destinatário. Os nós da subnet colaboram para processar o pedido e gerar o resultado.
Cada subnet é composta por vários nós que trabalham em conjunto para processar pedidos e assegurar um estado consistente. Os resultados são então devolvidos ao utilizador.
Este processo descentralizado garante uma execução distribuída e consistente dos pedidos.
O mecanismo de consenso assegura que todos os nós concordam com os resultados da execução.
Os nós sincronizam o estado e validam os resultados computacionais através de um protocolo de consenso, evitando forks e incoerências nos dados.
O sistema de consenso liga todos os nós da subnet, garantindo um estado unificado durante a execução.
Este mecanismo proporciona processamento fiável num ambiente distribuído.
Os Canisters permitem atualizações in-place e manutenção contínua.
Os programadores podem atualizar o código do Canister sem comprometer os dados existentes. Este método de atualização previne a perda de dados.
As atualizações são geridas colaborativamente pelos módulos de implementação e gestão de estado, promovendo a evolução contínua da aplicação.
Este modelo assegura a sustentabilidade das aplicações on-chain a longo prazo.
As aplicações Dfinity operam por etapas sequenciais:
Etapa 1: Implementação de Canister Os programadores implementam a lógica da aplicação como Canisters e alocam recursos computacionais.
Etapa 2: Pedido Iniciado pelo Utilizador Os utilizadores interagem com o frontend para enviar pedidos aos Canisters.
Etapa 3: Pedido Encaminhado para Subnet O pedido é dirigido à subnet adequada para processamento.
Etapa 4: Execução da Lógica pelos Nós Os nós da subnet colaboram para executar o código do Canister e atualizar o estado.
Etapa 5: Consenso Confirma os Resultados Os nós utilizam o mecanismo de consenso para confirmar a consistência dos resultados.
Etapa 6: Devolução de Resultados ao Utilizador O resultado processado é devolvido ao utilizador, concluindo a interação.
Cada etapa envolve diferentes módulos do sistema, criando um percurso transparente e rastreável de execução.
Este processo converte pedidos dos utilizadores em cálculos on-chain verificáveis.
As aplicações Dfinity utilizam Canisters, subnets e mecanismos de consenso para criar uma estrutura operacional on-chain completa—permitindo a implementação, execução e manutenção descentralizadas.
O que é um Canister?
Um Canister é um smart contract em Dfinity utilizado para executar a lógica da aplicação.
As aplicações têm de funcionar dentro de uma subnet?
Sim. A execução decorre de forma colaborativa entre os nós da subnet.
Como são processados os pedidos dos utilizadores?
Os pedidos são processados pelos Canisters e os resultados são confirmados por consenso.
É possível atualizar os Canisters?
Sim. As atualizações preservam os dados originais.
Qual é a principal diferença entre Dfinity e as aplicações tradicionais?
A lógica e os dados da aplicação executam diretamente na blockchain.





