TẠI SAO MỘT SỰ KIỆN BLOCKCHAIN KHÔNG GIỐNG “FINALITY”

Trước đây tôi từng nghĩ rằng một sàn giao dịch chủ yếu cần biết khi nào một giao dịch blockchain xảy ra. Nhưng khi xem Dusk, tôi bắt đầu nghi ngờ điều đó. Nếu một giao dịch vẫn có thể thay đổi, tôi không chắc sàn giao dịch nên xem sự kiện đó như tiền đã “final”.

Đó là lý do RUES (Rusk Universal Event System) thu hút sự chú ý của tôi. Dusk cụ thể liệt kê RUES cho hạ tầng, indexers và các sàn giao dịch. Với tôi, phần thú vị nằm ở việc sàn làm gì sau khi nhận được sự kiện.

Vòng đời giao dịch của Dusk tách bạch các giai đoạn: included (đã đưa vào), executed (đã thực thi), confirmed (đã xác nhận) và finalized (đã final). Tài liệu của họ nói rằng cần theo dõi transaction đã được executed, kiểm tra lỗi, xác nhận rằng block đã finalized và re-listen nếu một block bị revert. Tôi hiểu vì sao điều này quan trọng: ghi có cho sàn quá sớm có thể biến một trạng thái tạm thời thành số dư thực.

Tôi cứ nghĩ về việc theo dõi hành trình của nhân viên giao hàng. Nếu kiện hàng của tôi hiển thị “đang trên đường giao”, tôi biết là nó đang di chuyển, nhưng tôi sẽ chưa đánh dấu là “đã giao”. Có lẽ tôi đang cẩn thận quá, nhưng tôi hiểu vì sao một sàn giao dịch lại muốn có cùng khoảng cách giữa “đang di chuyển” và “đã giao”.

Chi tiết về idempotency cũng khiến tôi dừng lại lần nữa. Dusk hướng dẫn các deposit scanners dùng Dusk transaction ID làm khóa idempotency thay vì memo, và ghi credit cùng checkpoint của block theo kiểu nguyên tử (atomically). Như vậy, nếu scanner bị crash và quét lại cùng một dải, thì giao dịch đó sẽ không trở thành một khoản deposit thứ hai.

Và giờ tôi lại tự hỏi liệu tôi đang nhìn RUES quá đơn giản. Nếu một sàn phải cân nhắc riêng rẽ về sự kiện, finality, việc revert và xử lý trùng lặp, thì phần “công việc thực sự” đang diễn ra sau khi blockchain nói rằng điều gì đó đã xảy ra là bao nhiêu? @Dusk #dusk $DUSK