Ferramentas e SDKs

Consulta de negociações no Stellar Blockchain usando Couchbase e Python

Na Parte 1 desta série, Monitore os ativos da Stellar usando Couchbase e Python, apresentamos os conceitos básicos do Stellar Descentralizado (Blockchain) Exchange e mostramos como armazenar uma cópia da lista de ativos de uma conta no Couchbase. Nesta postagem, carregamos e consultamos as negociações de ativos. Em seguida, analisamos essas transações em um gráfico no console da Web do Couchbase para ver tendências e investimentos - tudo feito facilmente no console da Web do Couchbase.

Para isso, seguimos três etapas:

  • Acessar a lista de negociações de uma conta
  • Carregar as negociações no Couchbase
  • Executar uma consulta

Um aviso antes de começarmos - não sou um guru cripto-financeiro e abusarei do jargão comercial comum, com o objetivo de tornar o tópico em questão o mais acessível possível para os leitores que são novos na tecnologia.

Compreensão dos ativos Stellar

Na Stellar, o ativo nativo é o Stellar Lumens, ou XLM. Quando falamos sobre valores de ativos, sempre resumimos isso ao valor de um ativo em unidades XLM. Por exemplo, alguém pode negociar um Bitcoin ou um Ether, ambos atrelados a um valor específico de XLM. A XLM é como o dólar americano das redes de negociação que você pode usar em outros lugares.

Na postagem anterior, obtivemos os dados básicos da conta; nesta, vamos obter as negociações feitas nessa conta. Anteriormente, criamos um único documento no Couchbase que tinha todas as informações da conta, inclusive os saldos como objetos incorporados.

Com esse endpoint, podemos obter uma lista de todas as negociações para a mesma conta. Escolhemos aleatoriamente um ID de conta e o usamos no URL:

Ele listará até 200 entradas e também tem URLs de paginação usando uma variável de cursor nos resultados, mas não vamos usá-los aqui. Em vez disso, inseriremos parâmetros muito específicos para que possamos examinar determinados tipos de negociações.

Aqui estão as partes mais importantes de uma negociação retornada da solicitação GET acima:

Essa operação vendeu 0,057 do nativo ativo base (XLM) por 0,0105 USDC ativo/moeda digital.

A resposta tem um campo de data/hora e também entidades para o emissor de cada ativo de base/contrapartida. Esse é outro conceito central da Stellar. Cada ativo tem um código (por exemplo, USDC, XLM, BTC, ETH, etc.) e um emissor desse ativo (por exemplo, GA5ZSE...). Isso foi projetado para que, por exemplo, qualquer pessoa crie novos ativos na rede, mas você possa confiar nos emissores/fornecedores de ativos de endereços específicos que você sabe que são legítimos.

Podemos ajustar a solicitação da API REST para incluir pares específicos nos quais estamos interessados usando parâmetros, por exemplo, somente negociações de XLM e USDC.

Embora os resultados nos forneçam tudo o que precisamos saber, pode ser útil ter registros separados para as negociações nos dois sentidos. Podemos executar a consulta inversa, mostrando as negociações de USDC para XLM:

Obviamente, podemos fazer download de muito mais do que apenas um simples par de transações e carregá-los no banco de dados, mas vamos nos concentrar em apenas alguns casos de uso para simplificar este exemplo.

Python carregando negociações Stellar no Couchbase

Continuamos de onde paramos da última vez, mas alteraremos o URL principal para corresponder aos exemplos acima. Isso é muito detalhado e pode ser feito de forma muito mais eficiente com o comando SDK do Stellar mas ele adiciona alguma complexidade assíncrona que evitaremos por enquanto.

O código de exemplo abaixo conexões para o Couchbase, consultas o serviço Stellar Horizon e que analisa para cada negociação e lojas em seu próprio documento. As chaves do documento são definidas como a ID da negociação mais um registro de data e hora, o que não faz sentido para nós, mas nos ajuda a ter chaves de documento exclusivas.

(A última função adiciona explicitamente o campo de código de ativo XLM nos casos em que ele está ausente, pois quando se trata de um tipo de ativo nativo, o código de ativo fica em branco, o que o torna confuso).

O conjunto resultante de documentos é processado para as negociações em que a base é USDC e, em seguida, novamente usando o URL que busca negociações de XLM para USDC.

Agora haverá 20 documentos no bucket do Couchbase Stellar:

Couchbase Stellar Trade Documents

Documentos comerciais do Couchbase Stellar

Consulta de negociações Stellar no Couchbase

Usando a linguagem N1QL (SQL para JSON), agora podemos consultar facilmente nossa lista de negociações.

Primeiro, criamos um índice básico para os documentos usando a guia Query (Consulta) e executando essa consulta:

Em um exemplo de escala maior, você desejaria criar índices secundários nos campos que você tem interesse em consultar. Mas com esse pequeno conjunto de documentos, não se preocupe com isso.

Agora podemos executar a consulta propriamente dita. Nessa consulta, usamos algumas funções básicas para converter tipos, reformatar a data e selecionar os valores nos quais estamos interessados. Todos os documentos são formatados em JSON e qualquer consulta terá como padrão mostrar as correspondências do JSON de origem, como mostrado aqui:

Couchbase Query of Stellar Trades in JSON

Consulta Couchbase de negociações Stellar em JSON

Selecione o Tabela acima dos resultados para mostrá-los de forma mais estruturada:

Couchbase Query Stellar trades shown in a table

Couchbase Query Stellar trades mostrados em uma tabela

A tabela pode ser facilmente classificada. A tabela Gráfico agora também pode ser usado porque temos um bom campo para o eixo X (data) e o eixo Y (valores base ou contador). Selecione as opções depois de escolher o botão Chart, como mostrado aqui:

Couchbase query of Stellar trades shown in a chart

Consulta Couchbase de negociações Stellar mostradas em um gráfico

Essa é uma maneira simples, porém eficaz, de se aprofundar em seus dados.

O que mais podemos fazer?

Até o momento, mantivemos os exemplos muito simples: buscar alguns detalhes da conta e da negociação do Stellar e armazená-los em documentos NoSQL do Couchbase. Essa é apenas a ponta do iceberg!

Em postagens futuras, mostraremos mais alguns exemplos de vários tipos de uniões de documentos e investigaremos mais a fundo a compreensão do valor perdido ou ganho ao fazer as negociações acima.

Por enquanto, você pode tentar ajustar a consulta acessando os objetos de preço e ver quais cálculos podem ajudá-lo a descobrir o lucro/prejuízo. (Dica: o objeto de preço tem um numerador e um denominador e pode ser acessado como um campo usando preço.n e preço.d na consulta).

E agora?

Aqui estão alguns links adicionais para ler sobre os tópicos que discutimos:

 

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Tyler Mitchell - Gerente sênior de marketing de produtos

Trabalha como Gerente Sênior de Marketing de Produto na Couchbase, ajudando a levar o conhecimento sobre os produtos para o centro das atenções do público e, ao mesmo tempo, apoiando nossas equipes de campo com conteúdo valioso. Sua paixão pessoal são todas as coisas geoespaciais, tendo trabalhado em GIS durante metade de sua carreira. Agora, a IA e a pesquisa vetorial estão em sua mente.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.