הצעה לשיפור כספא KIP1

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

ה-KIP הבא פורסם בשרת הדיסקורד של כספא בתאריך 07/06/2022 (קישור להודעה), הוא יושם (rusty-kaspa), והוא מובא כאן לשלמות התמונה.

מניעים

  • בסיס קוד שעבר שינוי וניתן להרחבה.
    בסיס הקוד הנוכחי התפתח לאורך שנים של מחקר ופיתוח וחוסר ודאות ויש לו כמות נכבדה של חוב טכני. חלק מהרכיבים שבירים וקשים לתחזוקה ולהרחבה.
    רפורמה של בסיס הקוד היא קריטית להנגשתו למפתחים חדשים ולאפשרות הטמעת תכונות עיקריות חדשות (למשל, תמיכה בחוזים חכמים; שדרוג אלגוריתם הזמנת קונצנזוס).
  • יעילות וביצועים.
    על מנת להגיע ליעילות מקסימלית ולשיעורי בלוקים ועסקאות גבוהים יותר, אנו מציעים לכתוב מחדש את המערכת בשפת תכנות מוכוונת ביצועים ועם חשיבה מוכוונת ביצועים.
    שימוש ב-Rust לכתיבה מחדש יפתח הזדמנויות רבות בהיבט זה, תוך מתן מבנים רבים ברמה גבוהה החיוניים למימוש מערכת מורכבת כמו Kaspa.

מטרות

  • הטמעת הצומת המלא של Kaspa ב-Rust
  • הגעה ליעילות גבוהה יותר ושיפור ביצועים עם פרמטרי רשת נוכחיים
  • השוואת פרמטרי רשת שונים באמצעות רשתות פיתוח ורשתות בדיקה, ניתוח הפשרות והסכמה לגבי תצורת BPS ו-TPS לטווח ארוך.
  • בסיס קוד פשוט ומודולרי
  • שילוב תכונות ממתינות
  • תיעוד (כולל זרימות ופרוטוקולי משנה)
  • חבילת השוואות מקיפה

אבני דרך

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

    א. צומת מלא היברידי מסוג go-rust שיכול להתחבר לרשת הראשית ולרשת הבדיקה הנוכחית ולתפקד כראוי. רכיבים חיצוניים, כולל שכבות ה-P2P וה-RPC, יישארו ב-Go. שני חלקי המערכת יחוברו באמצעות API של אינטראופ בין-לשוני.
    ב. API קונצנזוס ברמת בדיקה ב-Rust שניתן לאמת אותו בהרחבה באמצעות בדיקות אינטגרציה קיימות וחדשות.
  2. הצומת החלקי הנ"ל עם יעדי ביצועים ספציפיים. ישנם שני סוגים של שיפור ביצועים אפשרי:
    א. שיפור ביצועים בליבה בודדת: אנו מצפים לרווח טבעי משימוש ב-Rust בלבד ומהיעדר GC. בנוסף, אופטימיזציות של מסדי נתונים כגון סידור בינארי ודחיסת Block Header יכולות להשפיע גם על זמן הריצה (יעד ראשוני: פי 5).
    ב. קנה מידה רב-ליבתית: יישום של מקביליות בתוך קונצנזוס. זה כולל ארגון עיבוד בלוקים ותהליכים של קונצנזוס באופן המאפשר מקביליות של משימות בלתי תלויות (יעד ראשוני: קנה מידה חזק; ייתכן שיידרש BPS גבוה כדי להיות משמעותי)
  3. תכונות חדשות ברמת קונצנזוס:
    א. גיזום כותרות. התוצאה של זה אמורה להיות צומת שיפעל למשך תקופות ארוכות עם גודל מסד נתונים כמעט קבוע (זה מושג כיום על ידי סנכרון מחדש).
  4. צומת מלא הממומש במלואו ב-Rust. זה כולל P2P, RPC, IBD, Mempool, Mining Manager וכל הרכיבים הנותרים. יש לעצב מחדש את RPC כדי לאפשר שינוי API מלא (אם רוצים בכך), אם כי תאימות לאחור עשויה להיות דרישה.
  5. תכונות חדשות ברמת הצומת/רשת:
    א. צמתי ארכיון P2P
    ב. דחיסת כותרות ברמת P2P
  6. יעדי ביצועים של רשת הבדיקות:
    א. 1000 TPS (באמצעות 1-5 BPS)
    ב. 10 BPS
    ג. 32 BPS
    ד. 100 BPS (או המקסימום האפשרי, מכיוון שיש פשרה של גודל כותרת מוגדל כאשר יותר בלוקים נכרים במקביל)
  7. (יעדי Mainnet BPS ו-TPS כפופים להיבטים ופשרות רבות ברחבי המערכת. מטרת הכתיבה מחדש הזו אינה לסיים עם Mainnet הפועל עם 100 BPS, אלא לאפשר לחקור את מרחב הפרמטרים הזה ולקבל את ההחלטות הנכונות)

נכתב במקור על ידי מיכאל סאטון, אורי נוימן.

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

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

המסמך תורגם לעברית על ידי צוות kaspa.co.il למען הקהילה
במידה ומצאתם טעות בתרגום נשמח אם תעדכנו אותנו בטופס יצירת קשר

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *