Logo
  • Home
  • Blog
  • Contact
Help us build Valis
🇵🇹

Serviço Arquival bxid do Qubic

image

Serviço de arquivo bxid do Qubic

Um hash bxid único representa as transacções Qubic confirmadas, simplificando a integração em sistemas de criptografia tradicionais, como carteiras e bolsas, através de uma API indexada por bxid.

Qsilver - 6 de janeiro de 2024.

Introdução

As caraterísticas únicas da Qubic tornam difícil a sua interface direta com as infra-estruturas de criptografia existentes. Esta proposta define um hash único, bxid, que representa uma prova de transferência de valor confirmada e instantaneamente final. Uma API indexada por bxid simplificaria a integração do Qubic em sistemas que esperam um txid tradicional confirmado.

Definição de bxid

O bxid (Balance Transfer ID) pode ser calculado localmente antes de ser incluído num tick, permitindo que as carteiras apresentem o bxid aos utilizadores e consultem um serviço API. Se o bxid estiver ausente após o tick especificado, isso indica uma falha na transação.

Para transferências QU normais, o bxid é definido pelo hash K12 de epoch + tick + srcpubkey + destpubkey + amount, num formato de byte que corresponde à entrada do ficheiro de registo. Para outros tipos de transação, o bxid segue a mesma convenção, fazendo diretamente o hash da entrada do ficheiro de registo, ignorando os campos de data.

O tratamento das alterações de saldo do SC sem transacções requer um bxid único por alteração de saldo. Ao calcular as alterações de saldo SC com um montante de 0, a consulta para esse bxid devolve a soma de todas as alterações de saldo para esse destino no tick.

Utilizar o bxid

1. Cálculo de bxid

./bxid calcbxid epoch tick source dest amount

2. Obtenção de dados bxid

curl 93.190.139.223:9200/txid/_doc/(txid)
curl 93.190.139.223:9200/bxid/_doc/(bxid)

3. Validar a informação do bxid

  • Se o bxid existir, o txid correspondente pode ser encontrado na marca incluída e validado.
  • Se o txid estiver incluído mas o bxid estiver ausente, validar a informação da entidade para obter o saldo atual. Somar todos os bxid da época para o endereço específico, subtrair com base na origem ou no destino e adicionar a alteração líquida ao ficheiro de espetro do início da época. Se corresponder ao saldo utilizando dados de entidade validados criptograficamente, o bxid é confirmado.

Implementação

1. Configuração do serviço de arquivo bxid

Clonar e construir o repositório:

git clone <https://github.com/Qsilver97/qubic-cli>
cd qubic-cli
mkdir build
cd build
cmake ..
make
g++ -I.. ../bxid.cpp ../connection.cpp -o bxid

2. Criando saída JSON

Exemplo de JSON de uma entrada de ficheiro de registo:

Use o sistema Charmed OpenSearch para processar essas linhas JSON:

3. Configuração do loop de processamento de logs

Crie um loop de processamento de logs para manter o serviço de arquivamento e a API REST:

while true; do
  ./bxid processlog
done

Conclusão

A implementação de um serviço de arquivo bxid simplifica a integração do Qubic nos serviços de criptografia existentes, fornecendo uma prova de transferência de valor confirmada e instantaneamente final. Ao tirar partido do bxid e do serviço de arquivo bxid, as transacções Qubic podem ser perfeitamente incorporadas na infraestrutura criptográfica tradicional.

Para as últimas atualizações, junta-te ao Discord da Valis, segue-nos no X e adiciona o nosso blog aos marcadores.

← Anterior

🇵🇹Arbitro não é um Jacaré

Seguinte →

🇵🇹Servidor de API Test bxid/txid

Nesta página

  • Serviço de arquivo bxid do Qubic
  • Introdução
  • Definição de bxid
  • Utilizar o bxid
  • 1. Cálculo de bxid
  • 2. Obtenção de dados bxid
  • 3. Validar a informação do bxid
  • Implementação
  • 1. Configuração do serviço de arquivo bxid
  • 2. Criando saída JSON
  • 3. Configuração do loop de processamento de logs
  • Conclusão

Publicações relacionadas

Logo

Execution

|

Transparency

XRSSDiscordGitHub
{ "index": { "_index": "bxid", "_id": "397e947847ada93de80907d88a835419fb532b3ca1fd68b3c95ebab11cd24190" } }
{
  "utime": "1707059413",
  "epoch": "90",
  "tick": "11867469",
  "type": "1",
  "src": "LZLDOEIBQWIUGGMZGOISLOAACDGAFVAMAYXSSJMLQBHSHWDBPMSDFTGAYRMN",
  "dest": "QHQPMJVNGZJGZDSQREFXHHAZFYPBIYDOTFAOTTWGYCWGTIRNGBVMKBGGNDDA",
  "amount": "1521139"
}
curl --cacert demo-ca.pem -XGET https://<username>:<password>@<ipaddr>:9200/bxid/_doc/397e947847ada93de80907d88a835419fb532b3ca1fd68b3c95ebab11cd24190
{
  "_index": "bxid",
  "_id": "397e947847ada93de80907d88a835419fb532b3ca1fd68b3c95ebab11cd24190",
  "_version": 2,
  "_seq_no": 32754,
  "_primary_term": 1,
  "found": true,
  "_source": {
    "utime": "1707059413",
    "epoch": "90",
    "tick": "11867469",
    "type": "1",
    "src": "LZLDOEIBQWIUGGMZGOISLOAACDGAFVAMAYXSSJMLQBHSHWDBPMSDFTGAYRMN",
    "dest": "QHQPMJVNGZJGZDSQREFXHHAZFYPBIYDOTFAOTTWGYCWGTIRNGBVMKBGGNDDA",
    "amount": "1521139"
  }
}