Análise Técnica da Plataforma Credits

CREDITS Brasil
5 min readMar 30, 2019

Descrição Geral da Plataforma Credits

A Credits é uma plataforma baseada em tecnologia blockchain e contratos inteligentes para o desenvolvimento e execução de aplicações descentralizadas. Serve uma mediação entre a tecnologia e o negócio. Alta velocidade de transações, descentralização, escalabilidade e as baixas taxas oferecidas permitem a transformação de modelos tradicionais de negócios, eliminando os problemas de segurança, transparência e confiança.

A plataforma tem os seguintes recursos:

  • Alta capacidade de rede — mais de 50 mil transações por segundo;
  • O tempo mínimo para processar uma transação é de cerca de 0,1 segundo;
  • Taxas baixas que variam partindo de US $ 0,001;
  • Contratos inteligentes com recursos e ferramentas avançadas.

Descrição das tecnologias

1. A Credits usa as seguintes linguagens de programação para sua plataforma:

  • C ++ — Para desenvolvimento do núcleo da plataforma
  • Java — Para o desenvolvimento do núcleo para processar contratos inteligentes

2. Uso de funções multithreading e safe-thread para atender às tarefas que requerem muitos recursos.

3. Uso de bibliotecas de rede da família Boost.ASIO.

4. módulo de rede:

  • Rede P2P
  • IPv4 <-> IPv6
  • CTDP (Credits Transfer Data Protocol) — protocolo de rede baseado em UDP com envio e processamento de confirmações de entrega de pacotes pelos nodes da rede

5. Módulo de armazenamento:

  • Armazenamento em bloco distribuído
  • Solução NoSQL
  • Núcleo de banco de dados de Berkeley otimizado para tarefas de alta carga e operações de leitura / gravação rápida.

6. Módulo Solver (módulo de tomada de decisão):

  • CDCA (Credits Decision Consensus Algorithm) — algoritmo de consenso exclusivo com recursos de DPoS e BFT;
  • Gerenciamento do processo de sincronização;
  • Gestão do processo de tomada de decisão

7. módulo API:

  • Thrift como possibilidade de padronizar interações entre a plataforma e sistemas de terceiros;
  • Configurações de portas para interações

8. Módulo de contratos inteligentes:

  • Java — linguagem Java padrão para desenvolvimento de contrato inteligente;
  • JVM — Java Virtual Machine padrão

Ecossistema do Projeto

Credits Node

O Node é um aplicativo interativo que se comunica através da rede com outros nodes por meio de pacotes UDP. Todos os nodes formam um gráfico conectado nos princípios de DLT. A tarefa de um node no nível da rede é fornecer consistência de rede e trocar mensagens com outros nodes. Um node é um aplicativo instalado no computador, processa e armazena transações, confirma condições de contratos inteligentes, processa chamadas de sistemas de terceiros e fornece os dados mediante solicitação deles. Todos os nodes da rede possuem a mesma funcionalidade definida.

Existem vários tipos de nodes na rede:

1. Writing Node (Node de Escrita). Um node pode ser escolhido como um Writing Node no caso de ele participar de um consenso, passá-lo quando uma decisão tomada sobre o conjunto de transações e consequentemente o bloco formado corresponder à decisão tomada por outro Trusted Node (Node Confiável) daquela rodada. O Writing Node pode gravar blocos previamente formados no armazenamento e distribuí-los a outros nodes para posterior adição ao seu armazenamento. Também transmite para a rede uma lista dos Nodes Confiáveis da próxima rodada (1ª etapa do consenso). O bloco e a lista de nodes confiáveis para a próxima rodada devem ser assinados pelos nodes confiáveis da rodada atual e essa decisão pode ser validada em qualquer node da rede.

2. Trusted Node (Node Confiável). É um node escolhido pelos resultados da votação entre Trusted Nodes da rodada anterior para validar o conjunto atual de transações, formar um novo bloco a partir de transações processadas e validadas e selecionar os nodes a serem incluídos na lista Trusted Nodes da próxima rodada. Qualquer bloco ou roundtable enviado para a rede para validação deve ser assinado por Trusted Nodes. Depois que o bloco é formado, ele deve ser validado por todos os Trusted Nodes e enviado para o Writing Node para adicioná-lo ao armazenamento. Para a sincronização de uma pool de transações que está sendo validado por Trusted Nodes, os nodes classificam todas as transações na mesma ordem, sincronizando seus metadados.

3. Common Node (Node Comum). É um node que acabou de se unir à rede ou um node que não participa do consenso. Sua principal função é a sincronização e armazenamento atualizado (blockchain). Ele pode enviar blocos para outros nodes ao receber uma solicitação de sincronização deles, enviar o hash da versão de armazenamento atual no node para participação na seleção dosTrusted Nodes.

Credits Desktop Wallet

A Desktop Wallet possui duas funções. A primeira função permite transferir CS e executar os métodos e funções de contratos inteligentes. A segunda é um ambiente de desenvolvimento onde o programa de computador pode ser apresentado como um contrato inteligente, desenvolvido em Java.

A Carteira virtual do Google Desktop deve estar instalada para criar e implantar contratos inteligentes na plataforma da Credits.

A Desktop Wallet permite que você explore o histórico de transações, crie, edite e execute métodos de um contrato inteligente escrito com Java sem instalar um ambiente de desenvolvimento integrado, somente a JVM deve ser instalada.

Tem as seguintes funções:

  • Saldo de exibição;
  • Explorar o histórico de transações;
  • Explorar operações com contratos inteligentes;
  • Fazer transações;
  • Criar um token via contrato inteligente;
  • Operações com contratos inteligentes já implantados;
  • Criar contrato inteligente;
  • Implantar contrato inteligente.

Credits Monitor

O Credits Monitor é um aplicativo/serviço da Web que fornece a capacidade de explorar o ledger público com uma lista completa de transações. O monitor é desenvolvido na linguagem de programação С#. Extensões são escritas com JS. Ele se conecta à rede via API. Estatísticas de rede estão sendo atualizadas a cada segundo.

O Monitor fornece as seguintes informações:

  • Número total de nodes da rede;
  • Estatísticas de transações;
  • Exibir saldo;
  • Informações detalhadas sobre transações da carteira selecionada;
  • Informações gerais sobre um contrato inteligente;
  • Visão geral do contrato inteligente aberto.

O Monitor é implementado na arquitetura do node e fornece informações reais recebidas sobre todas as alterações nos blocos, ele também não participa do consenso.

https://developers.credits.com/en/Articles/a_About_the_Monitor

Credits Web-Wallet

A Credits Web Wallet é um aplicativo da Web fácil de usar, flexível e ajustável para interação segura e fácil com a rede da Credits. Ela permite a transferência da moeda de um usuário para outro, operando com um contrato inteligente já implementado (se não for necessário compilar por conta própria) sem a instalação do node do cliente completo.

Ele sincroniza automaticamente com a rede em tempo real e se conecta à rede via API.

A Web Wallet tem as mesmas funções da Desktop Wallet, excluindo a capacidade de criar e carregar novos contratos inteligentes.Tem as seguintes funções:

  • Saldo de exibição;
  • Explorar o histórico de transações;
  • Explorar operações com contratos inteligentes;
  • Fazar transações;
  • Criar um token via contrato inteligente;
  • Operações com contratos inteligentes já implantados.

https://developers.credits.com/en/Articles/a_How_to_use_Web_Wallet

Acompanhe a CREDITS nas mídias sociais!

TWITTER — https://twitter.com/CREDITSBrasil
FACEBOOK — https://www.facebook.com/CREDITSBrasil
TELEGRAM — https://t.me/creditsPortuguese

--

--

CREDITS Brasil

CREDITS é uma plataforma blockchain aberta com contratos inteligentes e uma criptomoeda interna. https://credits.com/pt