MultiChain 2.1: משתנים וספריות

צומת המקור: 1587135

הפיכת מסננים חכמים לחכמים הרבה יותר

היום, אנו שמחים לשחרר את MultiChain 2.1, עם שתי תכונות חדשות וחשובות למפתחי MultiChain.

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

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

שני סוגי המסנן החכם נכתבים ב-JavaScript ופועלים בגרסה דטרמיניסטית של גוגל V8, מנוע ה-JavaScript המהיר במיוחד שמניע את Chrome, Node.js ופלטפורמות רבות אחרות. קל לקוד ולהבין מסננים פשוטים - לדוגמה, הנה מסנן זרמים המאמת שלפריטים יש לפחות שני מפתחות:

function filterstreamitem()
{
    var item=getfilterstreamitem(); // callback function
    if (item.keys.length2)
        return "At least two keys required";
}

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

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

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

משתנים

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

ערך המשתנה עצמו יכול להכיל כל מבנה JSON, כולל מספרים, מחרוזות, בוליאנים, אובייקטים מקוננים ומערכים, והוא מאוחסן על השרשרת ב-efficient אובז'סון פורמט סריאליזציה. כמובן, מסננים חכמים יכולים לבצע שאילתות על הערך הנוכחי של משתנה באמצעות פונקציית התקשרות חוזרת פשוטה. אבל מכיוון שמדובר בבלוקצ'יין, ההיסטוריה המלאה של ערכי המשתנה וכותבי המשתנה זמינה גם היא, וניתן לאחזר אותה באופן חלקי או מלא באמצעות פונקציית callback אחרת. כדי להקל על הפיתוח, התקשרויות אלו זמינות גם דרך ה-API הפונה לאפליקציה.

ספריות

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

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

הקוד של ספריה כתוב ב-JavaScript רגיל, ומגדיר פונקציה אחת או יותר לשימוש ב-Smart Filters. כמו משתנים, ספריות נוצרות או מתעדכנות בטרנזקציה מיוחדת, הנשלחת בקלות באמצעות ה-API. כאשר נוצר מסנן חכם, הספריות הנדרשות שלו מסופקות בפרמטר אופציונלי. ספרייה פועלת תמיד בהקשר של המסנן שדורש זאת, כך שהיא יכולה להשתמש בהתקשרות חוזרת של מסנן חכם במידת הצורך. MultiChain מספק פונקציונליות נרחבת לבדיקת (וחזרה לאחור) של ספריות והעדכונים שלהן באופן מקומי, לפני ביצוע שינוי בבלוקצ'יין.

עוטפת אותו

כמו בכל התכונות הקשורות לחוקי הבלוקצ'יין, משתנים וספריות זמינים הן במהדורות הקהילה והן במהדורות הארגוניות של MultiChain 2.1. תיעוד המפתחים שלנו מספק תיאור מפורט של החדש ממשקי API של JSON-RPC ו סינון חכם להתקשרות חוזרת זמין. כדי להשתמש בתכונות החדשות בבלוקצ'יין שכבר פועל, העבר תחילה את הצמתים ל-MultiChain 2.1, ולאחר מכן שדרוג פרוטוקול הרשת לגרסה 20012.

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

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

אנא פרסם הערות ב LinkedIn.

בול זמן:

עוד מ רב-שרשראות