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:
- Executar um nó completo: Acesso direto aos dados na memória para operações.
- Executar um nó remoto: Consultar nós completos públicos para obter os dados necessários para operações.
- Executar um servidor de arquivamento: Construir um arquivo completo local de todos os dados do Qubic para operações.
- 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:
- Mesmo que um txid esteja incluído em um tick validado, ele pode não ter feito nada.
- 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).
- Iterar por todas as transações em cada tick e identificar endereços de destino pertencentes a clientes.
- Marcar esses endereços para verificação de saldo.
- Obter informações da entidade para endereços marcados para ver quais receberam novos fundos.
- 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.
- Manter os dados da entidade validados mais recentes para cada endereço de usuário.
- Em um loop de polling, comparar os dados da entidade mais recentes com os dados da entidade validados.
- Validar os dados da entidade mais recentes usando a árvore de merkle.
- 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
- Obter dados da entidade validados para o endereço de envio.
- Colocar em fila uma transação de saque com base no destino e no valor.
- Gerar os dados da entidade esperados para outgoingAmount e o outgoingAmount atual + valor do saque.
- Processar a fila criando e transmitindo a transação de saque.
- Após um tick especificado, verificar se o outgoingAmount dos dados da entidade mudou para o valor esperado.
- 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
- Usar o comando SENDMANY SC para agrupar até 25 saques em uma única transação.
- Aplicar a mesma lógica para pequenos volumes, usando SENDMANY ao invés de transações de envio simples.
- Um único endereço usando SENDMANY pode alcançar cerca de 100 saques por minuto.
Altos Volumes
- Usar o aplicativo sendmany para enviar até 15.625 pagamentos, completando em cerca de 20 ticks (~8000 saques por minuto).
- 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.
- 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:
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
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