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:
{ "index": { "_index": "bxid", "_id": "397e947847ada93de80907d88a835419fb532b3ca1fd68b3c95ebab11cd24190" } }
{
"utime": "1707059413",
"epoch": "90",
"tick": "11867469",
"type": "1",
"src": "LZLDOEIBQWIUGGMZGOISLOAACDGAFVAMAYXSSJMLQBHSHWDBPMSDFTGAYRMN",
"dest": "QHQPMJVNGZJGZDSQREFXHHAZFYPBIYDOTFAOTTWGYCWGTIRNGBVMKBGGNDDA",
"amount": "1521139"
}
Use o sistema Charmed OpenSearch para processar essas linhas JSON:
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"
}
}
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
Seguinte →
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