GPT
S

smart-contract-fiesta

קוד פתוח

Zellicרישיון לא דווח2023-04-07

  • solidity
  • blockchain
  • ethereum
  • smart-contract

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

  • 7,221הורדות בחודש
  • 50לייקים

מה זה

הנתונים מבוססים על סנכרון מלא של רשת איתריום מבלוק הבראשית ועד בלוק 16860349 באמצעות מופע מותאם של Geth. המפרסמים יצרו אינדקס עולמי של 30,586,657 כתובות חוזים פעילות, תוך השמטת חוזים שביצעו השמדה עצמית. עבור 3,897,319 חוזים הם איתרו קוד מקור ממקורות ציבוריים ברשת. כדי למנוע כפילויות של חוזים זהים לחלוטין, הקוד סונן לפי גיבוב ה־EVM bytecode שלהם בשיטת Keccak256, וכך נותרו 149,386 קודי מקור ייחודיים בלבד.

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

מתאים ל

  • אימון מודלי השלמת קוד

    שימוש במאות אלפי שורות סולידיטי אותנטיות כדי ללמד מודלי שפה להשלים קוד חוזים חכמים.

  • מחקר כלי ניתוח סטטי

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

  • מיפוי היסטוריית קומפילציה

    ניתוח גרסאות קומפיילר והגדרות אופטימיזציה ששימשו פרויקטים שונים לאורך שנות פעילות הרשת.

איפה זה נופל

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

שאלות
נפוצות

האם מותר להשתמש במאגר לפיתוח מוצר מסחרי?

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

האם יש במאגר תמיכה בעברית?

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

איך נאספו הנתונים?

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

מה ההבדל בין מספר החוזים הכללי למספר הקבצים בפועל?

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

איך טוענים

המאגר מורכב מתיקיות קבצים ולא מטבלת חיצים סטנדרטית, כך שאי אפשר פשוט להריץ עליו load_dataset רגיל בלי לכתוב סקריפט עיבוד. כל חוזה שמור תחת תיקייה הנושאת את גיבוב הבייטקוד שלו, וכולל קובץ metadata.json עם שם החוזה, גרסת הקומפיילר והגדרות אופטימיזציה. קוד המקור מגיע באחד משלושה פורמטים: קובץ sol יחיד, מספר קובצי sol, או קובץ JSON שכולל את הגדרות הקומפיילר הרשמיות. כדי לחלץ את הטקסט לאימון תצטרכו לעבור רקורסיבית על התיקיות ולפרק את הפורמטים השונים לקובצי טקסט נקיים.

from datasets import load_dataset

ds = load_dataset("Zellic/smart-contract-fiesta")

הרישיון

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

הרישיון המלא ב־Hugging Face ↗