תכנות בלוקצ’יין: כמה שפות תכנות אתה צריך בשביל בלוקצ’יין?

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

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

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

שפות התכנות הפופולריות ביותר בבלוקצ’יין

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

ג++

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

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

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

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

יתרונות: עצמאי ומולטי-פלאט, מהיר, דומה ל- C

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

המתאים ביותר ל: משתמשים מתקדמים, הבנת עקרונות של ביטקוין

C #

C # צעיר מ- C ++, אך גם הוא די ישן. נוצר בסוף שנות ה -90 בתוך מיקרוסופט, היא צברה במהירות כוח בקהילת המפתחים. זו שפת OOP (תכנות מונחה אובייקטיבי) המספקת תכונות נהדרות ליישומים ברמה ארגונית, ענן ופיתוח פלטפורמות. מגובה במידה רבה על ידי מיקרוסופט, שפה זו היא כלי נוח הן עבור אנשי מקצוע והן קודנים מזדמנים.

לא רק ש- C # גמיש וקל להבנה אם אתם מכירים את C ++ או Java, אלא שהוא גם עמוס בתכונות. בנוסף לחלק מהפונקציונליות של C ++, C # offers.NET framework & ספריית הכיתות שלה, זמן הריצה השפה הנפוץ ומסגרות הפיתוח (כגון WPF, XAML ו- ASP.NET).

C # מועדף על ידי שחקנים גדולים בבלוקצ’יין מכמה סיבות:

  • התחביר שלה קל להבנה לגבי נתח המפתחים הגדול שכבר מכיר את C ++ (4.4 מיליון devs).

  • זה קוד פתוח.

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

  • זה זול בגלל תוכנית BizSpark.

בין הסטארט-אפים הבולטים שמבססים את הקוד שלהם על C # הם NEO ו- Stratis. בנוסף, ל- C # מסגרת ביטקוין ייעודית (NBitcoin). מיקרוסופט לא נקלעת לפיגור ומציגה את בלוקצ’יין vNext לפלטפורמת Azure שלה.

יתרונות: תמיכה בקוד דינמי מונחה עצמים, מוקלדת מאוד,

חסרונות: תמיכה חלשה בלינוקס

המתאים ביותר ל: בניית חסימות תשתית, משתמשי Windows

JavaScript

זו אולי ללא ספק שפת התכנות המוכרת ביותר בעולם. דפי האינטרנט שאתה גולל בכל יום משתמשים ב- JavaScript עבור מראה מהודר ופונקציונליות מתקדמת. בשנת 2007 טבע ג’ף אטווד חוק:

“כל יישום שניתן לכתוב ב- JavaScript ייכתב בסופו של דבר ב- JavaScript.”

JavaScript היא שפת OOP שקל ללמוד אותה תוך שהיא תכליטית למדי. באמצעות JS, מפתחים יכולים לקודד עבור לקוחות & שרתים, מכשירי IoT ולמידת מכונה. אחד היתרונות העיקריים של JavaScript מבחינת הבלוקצ’יין הוא התכונה של הפעלת אירועים בצורה אסינכרונית, כלומר היא מאפשרת לצמתים לתקשר באופן חופשי ויעיל. חוזק נוסף של JS הוא שהוא לא דורש קומפילציה. יחד עם זאת, לפשטות יש מחיר. למרות כל התכונות שלו, JS רחוקה מאוד מ- C ++, אך זו שפה נהדרת למתחילים.

JavaScript לא היה פופולרי במיוחד בקרב מפתחי הבלוקצ’יין עד להתפרצות ה- ICO בשנת 2017. נכון לעכשיו, ישנם מספר סטארט-אפים עם דרגות גבוהות ב- CoinMarketCap המבוססים על שפה זו, כגון Lisk, Ark ו- Nimiq. אחת המתחרות הבולטות ביותר של את’ריום, Tron, תומכת גם ב- JavaScript.

יתרונות: מונחה עצמים, מבוסס אב-טיפוס, תומך בתכנות פונקציונאלי

חסרונות: דינמי, מוקלד חלש

המתאים ביותר ל: כניסה לשטח blockchain, בניית dApps

פִּיתוֹן

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

פייתון היא שפת OOP. זו שמחה לקודד וזה אוניברסלי. כדי לקודד בלוקצ’יין פשוט, לא תזדקק ליותר מ -50 שורות. לאחר כתיבת הקוד, ניתן להריץ אותו על פני מספר מכשירים עם מערכת הפעלה שונה המותקנת. יש גם ספרייה ענקית של מסגרות, כמו Tensorflow ו- Django, אם כי במקרים מסוימים התיעוד שלהם עשוי להיות לא שלם. כדי להוסיף לכך, כרגע ישנן ספריות ספציפיות, המוקדשות לפיתוח בלוקצ’יין. כמו JavaScript, Python אינו דורש אוסף, אם כי ניתן להרכיב אותו כמו C # ו- C ++. שלב אותו עם סביבת בדיקות ייעודית שמגיעה איתו ותקבל סכין צבאית שוויצרית למסע הבלוקצ’יין שלך.

פייתון הוכר על ידי כוכבי העל בתעשייה. IBM Hyperledger יישמה את זה ב- Sawtooth ואת’ריום יצרה איטרציה משלה לשפה זו: Pyethereum.

יתרונות: קל מאוד ללמוד, ספריות ומסגרות מוכנות מראש, יעיל

חסרונות: משמש בעיקר כשפת שרת, לא כה חכם

המתאים ביותר ל: בניית אפליקציות למתחילים

ללכת

Golang (או Go) היא שפת קוד פתוח שמקורה ב- C. זו שפה צעירה מאוד שהושקה בשנת 2007 על ידי devs מגוגל. יישום התחביר הוא דומה יותר לפיתון – הוא פשוט לספק יעילות ולהפוך פרויקטים שנעשו עמו לעתיד..

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

גו היא שפה ידועה בתחום הבלוקצ’יין. שקול את IBM Hyperledger המשמש Golang לצורך קידוד חוזים חכמים ב- Fabric שלו. Docker אינו סטארט-אפ של בלוקצ’יין, אך הוא עובד עם המערכות המבוזרות ונבנה עם Go.

יתרונות: אבטחת זיכרון, איסוף אשפה, מוקלדת מאוד

חסרונות: לא כל כך קל ללמוד, קהילה קטנה יחסית, מספר קטן של חבילות

המתאים ביותר ל: בניית dApps בענן

מוּצָקוּת

המוצקות היא צעירה, כמו גולנג. זה שוחרר בשנת 2014 על ידי כריסטיאן רויטוויסנר וצוותו. זו שפה שנוצרה במטרה לכתוב חוזים חכמים על Ethereum, ולכן היא הפופולרית ביותר במערכת האקולוגית של Ethereum. ראוי לציין כי המערכת האקולוגית גדלה מאות פעמים בשנתיים האחרונות בגלל הסטארטאפים השונים שמציפים את השוק. כתוצאה מכך, ל- Solidity בסיס משתמשים גדול. התקן שלה (ERC20) הפך למרכיב העיקרי של התעשייה.

המוצקות היא OOP ושפה מוכוונת קשר. זה גם טיורינג שלם, כלומר הוא יכול לפרש כללים שונים למניפולציה של נתונים. התחביר של מוצקות דומה לזה של JavaScript, אך יש כמה קווי דמיון עם C++ & גם פיתון. למרות השלב המוקדם שלה, המוצקות היא שפה פונקציונאלית, היא מספקת ירושה, ספריות שונות וכו ‘. החיסרון של הצעירות הוא הבעיות עם תיעוד שיכולות להשאיר כמה מכשולים במצב קשה..

נכון לעכשיו, מקרי השימוש העיקריים ב- Solidity הם EVM וחוזים חכמים. זה לא הרבה, אבל אלה הם חשובים ביותר וספציפיים לבלוקצ’יין ככל שיכול להיות. אם ברצונך לבנות dApp, מוצקות היא בחירתך ללכת.

יתרונות: הקלדה סטטית, קל ללמוד, אופנתי

חסרונות: לא אוניברסלי, פגיע

המתאים ביותר ל: פיתוח חוזים חכמים

יסודות הקידוד בבלוקצ’יין

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

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

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

  1. ג++

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

    חסימת C ++תמונה של אוטודיי

    עכשיו נוכל ליצור חסום נוסף. על מנת לעשות זאת, נקליד getLatestBlock ().

    C ++ להוסיף בלוקיםתמונה של אוטודיי

קונצנזוס C ++תמונה של אוטודיי

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

  1. C #

    מבנה הנתונים של blockchain ב- C # פשוט למדי. יש לו בלוק & שיעורי בלוקצ’יין. הנה הם.

    חסימת C #תמונה של אוטודייC # blockchainתמונה של אוטודיי

    אם אנו מדמיינים את המבנה, זה נראה כך:

מבנה C # blockchainתמונה מ https://www.c-sharpcorner.com/

כך אנו מוסיפים חסימות חדשות:

C # הוסף בלוקיםתמונה של אוטודיי

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

קונצנזוס C #תמונה של אוטודיי

  1. JavaScript

    כעת אנו מגיעים לטריטוריות של שפות נגישות יותר, זה אמור להיות מהנה יותר אם אין לך שום ניסיון בקידוד. על מנת ליצור בלוקצ’יין, אנו זקוקים לסביבת זמן ריצה, כמו Node.js. לכל אחד מהבלוקים הנוספים יהיו הנתונים הבאים: אינדקס, זמן היצירה, שונות (כמו השולח & כתובות המקלט והסכום שהועבר), חשיש החסימה הקודם, חשיש משלו. ברגע שזה נעשה, הגיע הזמן לעבור לקידוד קשה של גוש הג’נסיס:

    חסימת ג'נסיספ JavaScriptתמונה של אוטודיי

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

    חסום ליצור JavaScriptתמונה של אוטודיי

JavaScript להוסיף חסימותתמונה של אוטודיי

  1. פִּיתוֹן

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

    עסקת פיתוןתמונה של אוטודיי

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

חסימת פיתוןתמונה של אוטודיי

נשתמש ב- SHA-256 המשמש בביטקוין ליצירת חשיפות לאימות שלמות הבלוקצ’יין שלנו.

חשיש פייתוןתמונה של אוטודיי

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

פייתון PoWתמונה של אוטודיי

אחרי שזה נעשה, ברור לנו להתחיל את הבלוקצ’יין.

  1. ללכת

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

    גוש גולנגתמונה של אוטודיי

    על מנת ליצור בלוקים, עלינו לנתב חשיש בהם ולשרשר אותם לפי תוצאות מתאימות. הקוד לחשיפת נתונים בתוך בלוק ב- Go נראה כך:

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

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

    חשיש גולנגתמונה של אוטודיי

  2. מוּצָקוּת

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

    חוזה יציבותתמונה של אוטודיי

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

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

    משתני סולידציהתמונה של אוטודיי

סיכום

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

אם אתה צריך לבחור שפה אחת, עליך לשקול את ההקשר. אם תרצה להתמקד בבניית פרויקטים של תשתית, C ++ ו- C # יתאימו לך יותר. אם אתה מרותק יותר מפיתוח האפליקציות על גבי רשתות החסום הקיימות, JavaScript, Python ו- Go הן אפשרויות טובות שיש לקחת בחשבון. אם אתה רק רוצה להשיק אסימון ERC20 משלך, ללא ספק כיסוי יכסה את הצרכים שלך.

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