Hôm nay chúng ta sẽ xem xét Công cụ Kiểm tra Vi phạm Atomicity: Đây là công cụ kiểm tra Rust thứ tư trong chuỗi chủ đề Chain-Fox đang diễn ra về các vấn đề đồng thời và an toàn trong các dự án Rust. Các lỗi đồng thời tinh vi có thể âm thầm làm suy yếu hệ thống của bạn. Công cụ tiếp theo của chúng tôi sẽ làm sáng tỏ chúng. Điều này đánh dấu sự tiếp tục của cuộc khảo sát sâu vào các công cụ kiểm tra Chain-Fox cho Rust.🧵
𝗖𝗵𝗼 𝗺𝗶𝗲̂́𝗻 𝗱𝗼𝗮𝗻𝗵 𝗻𝗮̀𝗼 𝗰𝗵𝗼 𝗰𝗵𝗲𝗰𝗸𝗲𝗿 𝗻𝗵𝗮́𝗻 𝗱𝗼𝗮𝗻𝗵 𝗻𝗮̀𝗼 Nó phát hiện các điều kiện đua tiềm ẩn do các thao tác nguyên tử xen kẽ trong các chương trình Rust đa luồng. Các thao tác nguyên tử có vẻ an toàn khi tách biệt có thể vi phạm logic khi kết hợp mà không có đồng bộ hóa thích hợp.
Vấn đề Khi nhiều thao tác nguyên tử truy cập vào cùng một biến, và những truy cập đó bị xen kẽ bởi các thao tác nguyên tử của một luồng khác, điều này có thể phá vỡ các bất biến của chương trình. Điều này dẫn đến các lỗi logic khó tái tạo và thậm chí còn khó gỡ lỗi hơn.
𝗪𝗵𝘆 𝗶𝘁 𝗺𝗮𝘁𝘁𝗲𝗿𝘀 Những lỗi này không làm chương trình của bạn bị sập Chúng khiến nó hoạt động không đúng cách Trong các hệ thống blockchain hoặc ứng dụng đồng thời, điều đó có thể dẫn đến mất tin nhắn, đồng thuận bị hỏng hoặc trạng thái lỗi thời.
𝗛𝗼𝘄 𝘁𝗵𝗲 𝗰𝗵𝗲𝗰𝗸𝗲𝗿 𝘄𝗼𝗿𝗸𝘀 Trình kiểm tra Vi phạm Tính nguyên tử phân tích Đại diện Trung gian Cấp giữa (MIR) của mã Rust của bạn Nó xác định các mẫu mà các phép toán nguyên tử thiếu đồng bộ hóa thích hợp Nó báo cáo: • Các loại phép toán nguyên tử • Các vị trí mã nơi chúng xảy ra
𝗘𝗺𝗽𝗮𝗰𝘁 𝗰𝗵𝗶𝗻𝗵 𝘁𝗵𝗮̀𝗻𝗵 Đây không chỉ là lý thuyết. Đây là một lỗi mà chúng tôi đã phát hiện trong parity-ethereum 𝗙𝗶𝘅 𝗮𝘁𝗼𝗺𝗶𝗰𝗶𝘁𝘆 𝘃𝗶𝗼𝗹𝗮𝘁𝗶𝗼𝗻 𝗶𝗻 𝗻𝗲𝘁𝘄𝗼𝗿𝗸-𝗱𝗲𝘃𝗽𝟮𝗽 của Chain-Fox · Pull Request #11277 openethereum/parity-ethereum
𝗟𝗮̀𝗺 𝗺𝗼̣̂𝘁 𝗰𝗵𝗶𝗻𝗵 𝗰𝗮́𝗰 𝗰𝗵𝗶𝗻𝗵 𝗰𝗵𝗼 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 𝗥𝘂𝘀𝘁 • Rust cung cấp an toàn bộ nhớ nhưng đồng thời vẫn là một mảnh đất logic đầy cạm bẫy • Các thao tác nguyên tử có thể tương tác một cách âm thầm qua các luồng • Trình kiểm tra của chúng tôi phát hiện những gì mà trình biên dịch không thể Xây dựng mã đồng thời chính xác với sự tự tin
𝗖𝗵𝗼 𝗱𝗼 𝗳𝗮𝗿, 𝘁𝗵𝗮𝗻𝗵 𝗽𝗵𝗮̂𝗻 𝗵𝗮𝗻𝗵 𝗰𝗵𝗼 𝗳𝗼𝗿 𝗥𝘂𝘀𝘁 𝗰𝗵𝗲𝗰𝗸𝗲𝗿𝘀 𝗻𝗵𝗼́𝗺 𝗰𝗵𝗮𝗶𝗻-𝗳𝗼𝘅 • Kiểm tra Double-Lock • Kiểm tra Conflict-Lock • Kiểm tra Condvar Misuse • Kiểm tra Violation Atomicity Còn nhiều cái khác đang trên đường. Chúng tôi sẽ đề cập đến cái tiếp theo trong chủ đề sắp tới.
Hiển thị ngôn ngữ gốc
87
4,79 N
Nội dung trên trang này được cung cấp bởi các bên thứ ba. Trừ khi có quy định khác, OKX không phải là tác giả của bài viết được trích dẫn và không tuyên bố bất kỳ bản quyền nào trong các tài liệu. Nội dung được cung cấp chỉ nhằm mục đích thông tin và không thể hiện quan điểm của OKX. Nội dung này không nhằm chứng thực dưới bất kỳ hình thức nào và không được coi là lời khuyên đầu tư hoặc lời chào mời mua bán tài sản kỹ thuật số. Việc sử dụng AI nhằm cung cấp nội dung tóm tắt hoặc thông tin khác, nội dung do AI tạo ra có thể không chính xác hoặc không nhất quán. Vui lòng đọc bài viết trong liên kết để biết thêm chi tiết và thông tin. OKX không chịu trách nhiệm về nội dung được lưu trữ trên trang web của bên thứ ba. Việc nắm giữ tài sản kỹ thuật số, bao gồm stablecoin và NFT, có độ rủi ro cao và có thể biến động rất lớn. Bạn phải cân nhắc kỹ lưỡng xem việc giao dịch hoặc nắm giữ tài sản kỹ thuật số có phù hợp hay không dựa trên tình hình tài chính của bạn.