Aujourd'hui, nous examinons le Vérificateur de Violations d'Atomicité : Notre quatrième vérificateur Rust dans la série en cours de fils Chain-Fox sur les problèmes de concurrence et de sécurité dans les projets Rust. Des bogues subtils de concurrence peuvent saper silencieusement vos systèmes. Notre prochain outil les met en lumière. Cela marque la continuation de notre plongée approfondie dans les vérificateurs Chain-Fox pour Rust.🧵
𝗤𝘂'𝗲𝘀𝘁-𝗰𝗲 𝗰𝗵𝗲𝗰𝗸𝗲𝗿 𝗱𝗲 𝗽𝗼𝘁𝗲𝗻𝘁𝗶𝗲𝗹𝘀 𝗽𝗿𝗼𝗯𝗹𝗲𝗺𝗲𝘀 𝗱𝗲 𝗿𝗮𝗰𝗲 ? Il détecte les conditions de course potentielles causées par des opérations atomiques entrelacées dans des programmes Rust multi-threads. Les opérations atomiques qui semblent sûres isolément peuvent violer la logique lorsqu'elles sont combinées sans synchronisation appropriée.
𝗟𝗲 𝗽𝗿𝗼𝗯𝗹𝗲𝗺𝗲 Lorsque plusieurs opérations atomiques accèdent à la même variable, et que ces accès sont entrecoupés par les opérations atomiques d'un autre fil, cela peut rompre les invariants du programme. Cela entraîne des bogues logiques qui sont difficiles à reproduire et encore plus difficiles à déboguer.
𝗖𝗼𝗺𝗺𝗲𝗻𝘁 𝗰'𝗲𝘀𝘁 𝗶𝗺𝗽𝗼𝗿𝘁𝗮𝗻𝘁 Ces bugs ne font pas planter votre programme Ils le font se comporter de manière incorrecte Dans les systèmes blockchain ou les applications concurrentes, cela peut entraîner des messages perdus, un consensus rompu ou un état obsolète.
𝗖𝗼𝗺𝗺𝗲𝗻𝘁 𝗹𝗲 𝗰𝗵𝗲𝗰𝗸𝗲𝗿 𝗮 𝗳𝗼𝗻𝗰𝘁𝗶𝗼𝗻𝗻𝗲 Le Vérificateur de Violation d'Atomicité analyse la Représentation Intermédiaire de Niveau Moyen (MIR) de votre code Rust Il identifie les motifs où les opérations atomiques manquent de synchronisation appropriée Il signale : • Les types des opérations atomiques • Les emplacements du code où elles se produisent
𝗜𝗺𝗽𝗮𝗰𝘁 𝗿𝗲𝗮𝗹-𝘄𝗼𝗿𝗹𝗱 Ce n'est pas juste une théorie. Voici un bug que nous avons découvert dans parity-ethereum 𝗙𝗶𝘅 𝗮𝘁𝗼𝗺𝗶𝗰𝗶𝘁𝘆 𝘃𝗶𝗼𝗹𝗮𝘁𝗶𝗼𝗻 𝗱𝗮𝗻𝘀 𝗻𝗲𝘁𝘄𝗼𝗿𝗸-𝗱𝗲𝘃𝗽𝟮𝗽 par Chain-Fox · Pull Request #11277 openethereum/parity-ethereum
𝗖𝗼𝗺𝗺𝗲𝗻𝘁 𝗶𝗹 𝗲𝘀𝘁 𝗰𝗿𝘂𝗰𝗶𝗮𝗹 𝗽𝗼𝘂𝗿 𝗹𝗲𝘀 𝗱𝗲́𝘃𝗲𝗹𝗼𝗽𝗽𝗲𝘂𝗿𝘀 𝗥𝘂𝘀𝘁 • Rust offre une sécurité mémoire mais la concurrence reste un champ de mines logique • Les opérations atomiques peuvent interagir silencieusement entre les threads • Notre vérificateur détecte ce que le compilateur ne peut pas Construisez du code concurrent correct avec confiance.
𝗦𝗼 𝗳𝗮𝗿 𝘄𝗲’𝘃𝗲 𝗲𝘅𝗽𝗹𝗮𝗶𝗻𝗲𝗱 𝗳𝗼𝘂𝗿 𝗥𝘂𝘀𝘁 𝗰𝗵𝗲𝗰𝗸𝗲𝗿𝘀 𝗶𝗻 𝘁𝗵𝗲 𝗖𝗵𝗮𝗶𝗻-𝗙𝗼𝘅 𝘀𝘂𝗶𝘁𝗲 • Vérificateur Double-Lock • Vérificateur Conflict-Lock • Vérificateur de Mauvaise Utilisation de Condvar • Vérificateur de Violation d'Atomicité D'autres sont en route. Nous couvrirons le prochain dans notre prochain fil.
Afficher l’original
Le contenu de cette page est fourni par des tiers. Sauf indication contraire, OKX n’est pas l’auteur du ou des articles cités et ne revendique aucun droit d’auteur sur le contenu. Le contenu est fourni à titre d’information uniquement et ne représente pas les opinions d’OKX. Il ne s’agit pas d’une approbation de quelque nature que ce soit et ne doit pas être considéré comme un conseil en investissement ou une sollicitation d’achat ou de vente d’actifs numériques. Dans la mesure où l’IA générative est utilisée pour fournir des résumés ou d’autres informations, ce contenu généré par IA peut être inexact ou incohérent. Veuillez lire l’article associé pour obtenir davantage de détails et d’informations. OKX n’est pas responsable du contenu hébergé sur des sites tiers. La détention d’actifs numériques, y compris les stablecoins et les NFT, implique un niveau de risque élevé et leur valeur peut considérablement fluctuer. Examinez soigneusement votre situation financière pour déterminer si le trading ou la détention d’actifs numériques vous convient.