סולאנה כדי למנוע כיבוי עתידי של הרשת אם יתעורר שוב באג בזמן ריצה: פרטים

אל האני רשת סולנה חווה את ההפסקה האחרונה שלו ב-1 ביוני, כאשר אשכול Solana Mainnet Beta הפסיק ליצור בלוקים עקב קונצנזוס עצוב. זה נוצר על ידי באג בזמן ריצה בתכונת עסקאות שאינן עמידות, השולטת כיצד הבלוקצ'יין מטפל בצורה ספציפית של העסקה המיועדת לשימוש לא מקוון.

לאחר השבתת "עסקאות שאינן עמידות" אלה, החלו המאמתים להפעיל מחדש את הרשת ארבע וחצי שעות מאוחר יותר. למחרת, בשעה 9:00 UTC, ייצור החסימה הופעל מחדש, ומפעילי הרשת המשיכו לשחזר את שירותי הלקוחות במהלך השעות הבאות.

ההפסקה האחרונה רמזה על כשל ביכולתה של סולאנה להתמודד עם חוסרים עמידים. המאמתים של הרשת ספרו פעמיים את כניסות הנישה הללו כעסקה בודדת בשני גבהים נפרדים של בלוק, במקום להתייחס אליהם כעסקה אחת. מנגנון הקונצנזוס של סולאנה נשבר למעשה על ידי המצב הבלתי אפשרי הזה.

סולנה נוקטת צעד יזום

כדי להגדיל את התפוקה, סולאנה משתמשת בעיבוד מקביל של עסקאות לא חופפות. רשתות שמבצעות עסקאות באופן סדרתי יכולות לשמש אי-נקה. סולנה משתמשת במנגנון אחר כדי להבטיח שעסקאות לא יטופלו פעמיים. מכיוון שעסקאות שאינן מתמשכות אינן אמורות לפוג, הן דורשות גישה שונה כדי למנוע עיבוד כפול והן מטופלות ברצף.

מודעות

העיבוד של עסקת nonce עמיד חשף באג בזמן הריצה שעצר את התקדמות הרשת לאורך ההפסקה. עסקה מוצלחת לא הייתה גורמת לבעיה זו מכיוון שעסקת הבלתי עמידה הייתה נכשלת.

הפונקציונליות של עסקאות שאינן עמידה הושבתה במהדורות v1.9.28/v1.10.23 כדי למנוע מהרשת להיתקע אם אותה נסיבות התעוררו שוב. עסקאות שאינן מתמשכות לא יבוצעו עד שההקלה תפרוס והתכונה תופעל מחדש בגרסה עתידית.

מקור: https://u.today/solana-to-prevent-future-network-shutdown-if-runtime-bug-arises-again-details