Qubic bxid 存档服务
一个独特的 bxid 哈希代表确认的 Qubic 交易,通过一个由 bxid 索引的 API 简化集成到传统加密系统中,如钱包和交易所。
Qsilver · 2024 年 1 月 6 日。
介绍
Qubic 的独特特性使其难以直接与现有的加密基础设施对接。本提案定义了一个独特的哈希,bxid,代表一个确认且即时最终的价值转移证明。由 bxid 索引的 API 将简化 Qubic 集成到期望传统确认 txid 的系统中。
定义 bxid
bxid(余额转移 ID)可以在包含到一个 tick 之前本地计算,允许钱包向用户显示 bxid 并查询一个 API 服务。如果在指定的 tick 之后 bxid 不存在,则表示交易失败。
对于正常的 QU 转移,bxid 是由 epoch + tick + srcpubkey + destpubkey + amount 的 K12 哈希定义的,格式为与日志文件条目匹配的字节格式。对于其他交易类型,bxid 遵循相同的惯例,直接对日志文件条目进行哈希,跳过日期字段。
处理无交易的 SC 余额变动需要对每个余额变动计算一个唯一的 bxid。通过计算金额为 0 的 SC 余额变动,对该 bxid 的查询返回该 tick 中该目的地的所有余额变动的总和。
使用 bxid
1. 计算 bxid
./bxid calcbxid epoch tick source dest amount
2. 获取 bxid 数据
curl 93.190.139.223:9200/txid/_doc/(txid)
curl 93.190.139.223:9200/bxid/_doc/(bxid)
3. 验证 bxid 信息
- 如果 bxid 存在,可以在包含的 tick 中找到并验证匹配的 txid。
- 如果包含了 txid 但 bxid 不存在,验证实体信息以获得当前余额。对特定地址的 epoch 中的所有 bxid 求和,根据源或目的地减去,并将净变动添加到 epoch 光谱文件的开头。如果与使用加密验证的实体数据计算的余额匹配,则确认 bxid。
实施
1. 设置 bxid 存档服务
克隆并构建存储库:
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. 创建 JSON 输出
日志文件条目的 JSON 示例:
{ "index": { "_index": "bxid", "_id": "397e947847ada93de80907d88a835419fb532b3ca1fd68b3c95ebab11cd24190" } }
{
"utime": "1707059413",
"epoch": "90",
"tick": "11867469",
"type": "1",
"src": "LZLDOEIBQWIUGGMZGOISLOAACDGAFVAMAYXSSJMLQBHSHWDBPMSDFTGAYRMN",
"dest": "QHQPMJVNGZJGZDSQREFXHHAZFYPBIYDOTFAOTTWGYCWGTIRNGBVMKBGGNDDA",
"amount": "1521139"
}
使用 Charmed OpenSearch 系统处理这些 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. 设置日志处理循环
创建一个日志处理循环以维护存档服务和 REST API:
while true; do
./bxid processlog
done
结论
实施 bxid 存档服务通过提供确认且即时最终的价值转移证明,简化了 Qubic 集成到现有加密服务中。通过利用 bxid 和 bxid 存档服务,Qubic 交易可以无缝集成到传统加密基础设施中。
要获取最新更新,加入Valis Discord,在X上关注我们,并将我们的博客加入书签。
← 上一页
下一页 →