Qubic bxid arkiveringstjänst
En unik bxid-hash representerar bekräftade Qubic-transaktioner, vilket förenklar integrationen i traditionella kryptosystem, såsom plånböcker och börser, via ett API indexerat av bxid.
Qsilver - 6 januari 2024.
Introduktion
Qubics unika egenskaper gör det utmanande att integrera direkt med befintlig kryptoinfrastruktur. Detta förslag definierar en unik hash, bxid, som representerar ett bekräftat och omedelbart slutgiltigt bevis på värdeöverföring. Ett API indexerat av bxid skulle förenkla integreringen av Qubic i system som förväntar sig traditionella bekräftade txid.
Definition av bxid
Bxid (Balance Transfer ID) kan beräknas lokalt innan det inkluderas i en tick, vilket gör det möjligt för plånböcker att visa bxid för användare och fråga en API-tjänst. Om bxid saknas efter den angivna ticken indikerar det ett transaktionsfel.
För normala QU-överföringar definieras bxid av K12-hashvärdet av epoch + tick + srcpubkey + destpubkey + amount, i ett byteformat som matchar loggfilsposten. För andra transaktionstyper följer bxid samma konvention genom att hasha loggfilsposten direkt och hoppa över datumfält.
Hantering av transaktionslösa SC-saldoförändringar kräver ett unikt bxid per saldoförändring. Genom att beräkna SC-saldoförändringar med ett belopp på 0, returnerar frågan för det bxid summan av alla saldoförändringar för den destinationen i krysset.
Använda bxid
1. Beräkning av bxid
./bxid calcbxid epoch tick source dest amount
2. Hämta bxid-data
curl 93.190.139.223:9200/txid/_doc/(txid)
curl 93.190.139.223:9200/bxid/_doc/(bxid)
3. Validering av bxid-information
- Om bxid finns, kan matchande txid hittas i den inkluderade markeringen och valideras.
- Om txid ingår men bxid saknas, validera enhetsinformationen för att få det aktuella saldot. Summera alla bxid för epoken för den specifika adressen, subtrahera baserat på källa eller destination och lägg till nettoförändringen i början av epokens spektrumfil. Om det matchar saldot med hjälp av kryptografiskt validerade enhetsdata bekräftas bxid.
Genomförande
1. Konfigurera bxid-arkivtjänsten
Klona och bygg upp arkivet:
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. Skapa JSON-utdata
Exempel på JSON från en loggfilspost:
{ "index": { "_index": "bxid", "_id": "397e947847ada93de80907d88a835419fb532b3ca1fd68b3c95ebab11cd24190" } }
{
"utime": "1707059413",
"epoch": "90",
"tick": "11867469",
"type": "1",
"src": "LZLDOEIBQWIUGGMZGOISLOAACDGAFVAMAYXSSJMLQBHSHWDBPMSDFTGAYRMN",
"dest": "QHQPMJVNGZJGZDSQREFXHHAZFYPBIYDOTFAOTTWGYCWGTIRNGBVMKBGGNDDA",
"amount": "1521139"
}
Använd Charmed OpenSearch-systemet för att bearbeta dessa JSON-rader:
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. Konfigurera slingan för bearbetning av loggar
Skapa en loggbearbetningsslinga för att underhålla arkivtjänsten och REST API:
while true; do
./bxid processlog
done
Slutsats
Genom att implementera en bxid-arkiveringstjänst förenklas integreringen av Qubic i befintliga kryptotjänster genom att tillhandahålla ett bekräftat och omedelbart slutgiltigt bevis på värdeöverföring. Genom att utnyttja bxid och bxid-arkiveringstjänsten kan Qubic-transaktioner sömlöst införlivas i traditionell kryptoinfrastruktur.
För de senaste uppdateringarna, gå med i Valis Discord, följ oss på X och bokmärk vår blogg.
← Föregående
Nästa →