Dịch vụ lưu trữ Qubic bxid
Một mã băm bxid độc đáo đại diện cho các giao dịch Qubic đã được xác nhận, đơn giản hóa tích hợp vào các hệ thống tiền điện tử truyền thống, chẳng hạn như ví và sàn giao dịch, thông qua một API được lập chỉ mục bởi bxid.
Qsilver · Ngày 6 tháng 1, 2024.
Giới thiệu
Các đặc điểm độc đáo của Qubic khiến việc kết nối trực tiếp với cơ sở hạ tầng tiền điện tử hiện có trở nên thách thức. Đề xuất này định nghĩa một mã băm độc đáo, bxid, đại diện cho một bằng chứng chuyển giá trị đã được xác nhận và hoàn thành ngay lập tức. Một API được lập chỉ mục bởi bxid sẽ đơn giản hóa việc tích hợp Qubic vào các hệ thống mong đợi txid đã được xác nhận truyền thống.
Định nghĩa bxid
Bxid (ID Chuyển Số Dư) có thể được tính toán cục bộ trước khi đưa vào tick, cho phép ví hiển thị bxid cho người dùng và truy vấn dịch vụ API. Nếu bxid không có mặt sau tick đã chỉ định, điều đó chỉ ra sự thất bại của giao dịch.
Đối với các chuyển khoản QU thông thường, bxid được định nghĩa bởi mã băm K12 của epoch + tick + srcpubkey + destpubkey + amount, trong một định dạng byte khớp với mục nhật ký. Đối với các loại giao dịch khác, bxid tuân theo cùng một quy ước bằng cách băm trực tiếp mục nhật ký, bỏ qua các trường ngày.
Xử lý các thay đổi số dư SC không giao dịch yêu cầu một bxid độc đáo cho mỗi thay đổi số dư. Bằng cách tính toán các thay đổi số dư SC với số tiền là 0, truy vấn cho bxid đó trả về tổng tất cả các thay đổi số dư cho đích đó trong tick.
Sử dụng bxid
1. Tính toán bxid
./bxid calcbxid epoch tick source dest amount
2. Lấy dữ liệu bxid
curl 93.190.139.223:9200/txid/_doc/(txid)
curl 93.190.139.223:9200/bxid/_doc/(bxid)
3. Xác thực thông tin bxid
- Nếu bxid tồn tại, txid phù hợp có thể được tìm thấy trong tick đã bao gồm và được xác thực.
- Nếu txid được bao gồm nhưng bxid không có mặt, xác thực thông tin thực thể để lấy số dư hiện tại. Tính tổng tất cả bxid cho epoch cho địa chỉ cụ thể, trừ đi dựa trên nguồn hoặc đích, và thêm thay đổi ròng vào tệp quang phổ epoch ban đầu. Nếu nó khớp với số dư sử dụng dữ liệu thực thể đã được xác thực bằng mật mã, bxid được xác nhận.
Triển khai
1. Thiết lập dịch vụ lưu trữ bxid
Sao chép và xây dựng kho lưu trữ:
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. Tạo đầu ra JSON
Ví dụ JSON từ một mục nhật ký:
{ "index": { "_index": "bxid", "_id": "397e947847ada93de80907d88a835419fb532b3ca1fd68b3c95ebab11cd24190" } }
{
"utime": "1707059413",
"epoch": "90",
"tick": "11867469",
"type": "1",
"src": "LZLDOEIBQWIUGGMZGOISLOAACDGAFVAMAYXSSJMLQBHSHWDBPMSDFTGAYRMN",
"dest": "QHQPMJVNGZJGZDSQREFXHHAZFYPBIYDOTFAOTTWGYCWGTIRNGBVMKBGGNDDA",
"amount": "1521139"
}
Sử dụng hệ thống Charmed OpenSearch để xử lý các dòng JSON này:
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. Thiết lập vòng lặp xử lý nhật ký
Tạo một vòng lặp xử lý nhật ký để duy trì dịch vụ lưu trữ và REST API:
while true; do
./bxid processlog
done
Kết luận
Triển khai dịch vụ lưu trữ bxid đơn giản hóa việc tích hợp Qubic vào các dịch vụ tiền điện tử hiện có bằng cách cung cấp một bằng chứng chuyển giá trị đã được xác nhận và hoàn thành ngay lập tức. Bằng cách tận dụng bxid và dịch vụ lưu trữ bxid, các giao dịch Qubic có thể được tích hợp một cách liền mạch vào cơ sở hạ tầng tiền điện tử truyền thống.
Để cập nhật thông tin mới nhất, tham gia Discord của Valis, theo dõi chúng tôi trên X, và đánh dấu blog của chúng tôi.
Tiếp theo →