Logo
  • Início
  • Blog
  • Contato
Help us build Valis
🇧🇷

Um Guia Não Oficial para a Integração de Serviços Qubic

image

Um Guia Não Oficial para a Integração de Serviços Qubic

Integre o Qubic em serviços existentes via nó completo, nó remoto, servidor de arquivamento ou API, com diferentes níveis de controle e complexidade.

Qsilver · 17 de fevereiro de 2024.

Introdução

A integração do Qubic em serviços existentes pode ser realizada de quatro maneiras principais, cada uma oferecendo diferentes níveis de controle e complexidade:

  1. Executar um nó completo: Acesso direto aos dados na memória para operações.
  2. Executar um nó remoto: Consultar nós completos públicos para obter os dados necessários para operações.
  3. Executar um servidor de arquivamento: Construir um arquivo completo local de todos os dados do Qubic para operações.
  4. Interface com o servidor API do Qubic: Método mais simples, mas com menos controle sobre a disponibilidade dos dados.

Quanto menor o número, mais trabalho está envolvido, mas mais controle você tem sobre a disponibilidade dos dados. Independentemente do nível que você escolher, é essencial entender as diferenças críticas sobre o Qubic.

Diferenças Importantes sobre o Qubic

Para serviços que lidam com valor monetário, as duas diferenças mais importantes sobre o Qubic são:

  1. Mesmo que um txid esteja incluído em um tick validado, ele pode não ter feito nada.
  2. O saldo de um endereço pode ser alterado sem uma transação específica transferindo de A para B, por exemplo, por uma operação de contrato inteligente.

Devido a essas diferenças, o processamento do Qubic deve ser baseado nas mudanças de saldo dos endereços, garantindo que as mudanças por contratos inteligentes não confundam a lógica.

Tratamento de Depósitos

Para simplificar o tratamento de depósitos, é recomendável usar transações normais. Depósitos feitos usando contratos inteligentes podem ser ignorados ou tratados manualmente (com uma cobrança extra para cobrir os custos).

  1. Iterar por todas as transações em cada tick e identificar endereços de destino pertencentes a clientes.
  2. Marcar esses endereços para verificação de saldo.
  3. Obter informações da entidade para endereços marcados para ver quais receberam novos fundos.
  4. Atualizar as informações atuais da entidade para endereços que receberam novos fundos.

As mudanças de saldo podem não corresponder ao valor da transação devido a falhas de txid ou depósitos de contratos inteligentes. Ignorar depósitos de SC garante que o usuário seja creditado por depósitos de SC, mesmo se o txid falhar.

Processamento de Depósitos Baseados em Saldo

Este método pode exigir mais largura de banda, mas é viável para serviços de médio porte, consultando centenas de milhares de endereços pela rede via um nó remoto. Ele garante que todos os métodos de depósito sejam devidamente creditados, melhorando a experiência do usuário.

  1. Manter os dados da entidade validados mais recentes para cada endereço de usuário.
  2. Em um loop de polling, comparar os dados da entidade mais recentes com os dados da entidade validados.
  3. Validar os dados da entidade mais recentes usando a árvore de merkle.
  4. Se validar, atualizar os dados da entidade validados e gerar um evento de depósito com base na diferença nos depósitos totais.

Processamento de Saques

Pequenos Volumes

  1. Obter dados da entidade validados para o endereço de envio.
  2. Colocar em fila uma transação de saque com base no destino e no valor.
  3. Gerar os dados da entidade esperados para outgoingAmount e o outgoingAmount atual + valor do saque.
  4. Processar a fila criando e transmitindo a transação de saque.
  5. Após um tick especificado, verificar se o outgoingAmount dos dados da entidade mudou para o valor esperado.
  6. Se mudou, marcar o saque como completo, removê-lo da fila e atualizar os dados da entidade validados. Caso contrário, repetir o processo.

Volumes Médios

  1. Usar o comando SENDMANY SC para agrupar até 25 saques em uma única transação.
  2. Aplicar a mesma lógica para pequenos volumes, usando SENDMANY ao invés de transações de envio simples.
  3. Um único endereço usando SENDMANY pode alcançar cerca de 100 saques por minuto.

Altos Volumes

  1. Usar o aplicativo sendmany para enviar até 15.625 pagamentos, completando em cerca de 20 ticks (~8000 saques por minuto).
  2. O aplicativo sendmany usa o SENDMANY SC em uma ramificação de três níveis. Os pagamentos são especificados em um arquivo .csv, processados para calcular o valor total, e enviados para um endereço especial.
  3. Assim que os fundos chegarem, eles são distribuídos em três gerações (25 x 25 x 25 pagamentos).

Repositório sendmany

Para detalhes sobre o programa sendmany, visite o repositório:

Repositório GitHub sendmany

Conclusão

Integrar o Qubic em serviços existentes requer uma consideração cuidadosa do manuseio de dados, especialmente para transações monetárias. Ao escolher o método de integração apropriado e entender os aspectos únicos do Qubic, os serviços podem gerenciar efetivamente depósitos e saques em várias escalas.

Leia a série “Não Oficial” de Qsilver

  • 🇧🇷Um Qubic Interim Whitepaper Não Oficial
  • 🇧🇷Detalhes sobre Qubic
  • 🇧🇷Um Guia Não Oficial para a Integração de Serviços Qubic
  • 🇧🇷Um Guia Não Oficial para Escrever Contratos Inteligentes Qubic
Para obter as atualizações mais recentes, junte-se ao Discord do Valis, siga-nos no X e adicione nosso blog aos favoritos.

← Anterior

🇧🇷Qwallet, Qclient e Qserver

Próximo →

🇧🇷Configurando e Executando um Servidor de Arquivo Qubic

Nesta página

  • Um Guia Não Oficial para a Integração de Serviços Qubic
  • Introdução
  • Diferenças Importantes sobre o Qubic
  • Tratamento de Depósitos
  • Processamento de Depósitos Baseados em Saldo
  • Processamento de Saques
  • Pequenos Volumes
  • Volumes Médios
  • Altos Volumes
  • Repositório sendmany
  • Conclusão
  • Leia a série “Não Oficial” de Qsilver
Logo

Execution

|

Transparency

XRSSDiscordGitHub