קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
ראשי ♦ בלוקציין ♦ קורס בלוקציין – חוזה חכם Smart Contract

קורס בלוקציין – חוזה חכם Smart Contract

וינר יאיר 5 במרץ 2022 אין תגובות

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

איך כותבים חוזה חכם

אז כפי שהצגנו בתחילת הקורס אנחנו נשתמש בסולידיטי (Solidity) שמאפשרת לנו לכתוב חוזה חכם על בסיס ethereum שזהו הבלוקציין הפופולארי ביותר . חשוב לציין שיש בלוקציינים שונים אחרים למשל של solana או algorand שכתיבת חוזה חכם בכל אחת מהרשתות הללו תיהיה שונה כמעט לחלוטין. אז אם אתם רוצים להיות מפתחי בלוקציין חשוב לציין איזה בלוקציין, כמובן שאפשר להכיר את כולם אבל זה מאוד מורכב ודורש המון זמן והשקעה כי יש המון רשתות שונות וכל אחת עלולה לבחור טכנולוגיה שונה לחלוטין ולכן עדיפות גבוהה להעמיק בבלוקציין מסויים או 2 ועדיף שיהיו פופולאריות.

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

VSCODE & SOLIDITY & REMIX

רובנו מכירים את vscode כ IDE נוח לעבודה, וגם אנחנו בחרנו לעבוד איתו בקורס זה. אז שלב ראשון יהיה עליכם להוריד תוסיף שנקרא solidity :

תוסף ל VScode  - solidity
תוסף ל VScode – solidity

תוכלו כבר לאחר ההתקנה של התוסף לכתוב קובץ חדש (תוכלו למקם אותו היכן שתרצו) ולשים לו את הסיומת

sol.

והנה לכם קובץ שמוכן לקבל קצת סולידיטי 🙂

ונתחיל עם ההגדרות הראשוניות שהם דרישות השפה:

יש להגדיר בהערה את הרישיון שיש לכם . לרוב נבחר את :

// SPDX-License-Identifier: MIT

ודבר שני שחשוב להגדיר זה הגרסה של סולידיטי שבה אתם משתמשים ונוכל לרשום משהו כזה:

pragma solidity ^0.8.0;

אפשר גם לרשום 0.6.0 מעלה (^) .

וניגש לדוגמה הראשונה שלנו:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;



contract SimpleContract {
    string public storedData;

    function set(string memory myText) public {
        storedData = myText; 

    }

    function get() public view returns (string memory) {
        return storedData;
    }
} 

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

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

מה שיש לנו שהוא מעניין זה ההגדרה של ה string memory שבעצם מאפשרת לנו לשמור משתנה "בזיכרון" של רשת האיתריום (בגדול יש טכנולוגיה הזו אפשרות לשמור משתנים בשלושה מקומות: storage, memory and stack. חוץ מזה הפונקציות מאד ברורות ופשוטות לקריאה ולהבנה.

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

נא לגשת לכתובת הבאה:remix.ethereum.org .זהו IDE מבוסס ווב.

בצד ימין תוכלו לפתוח workspace חדש ולמחוק את כל הקצבים שיש בתיקיית הcontracts ולהקים קובץ חדש ולהעתיק את הקוד שלנו אליו.

לאחר מכן ישנם כמה שלבים שיש לעבור:

  1. לעשות compile – בטאב האמצעי המופיע בצד השמאלי ביותר.
Remix Ethereum compile
Remix Ethereum compile

לאחר שתראו כי מופיע וי ירוק על האייקון של הטאב תוכלו לעבור לטאב האחרון

2. deploy – מעלים את החוזה החכם לרשת. כמו כן חשוב ביותר לבחור את הסביבה שתיהיה על איזו רשת של טסטים במקרה שלנו ganache תוודאו שמטה מסק מוגדר על ganache כמובן.

Remix Ethereum deploy
Remix Ethereum deploy

לאחר מכן תוכלו ללחוץ על Deploy ולאחר מכן (תוך כמה שניות) יופיע לכם בחלק התחתון החוזה שלכם שהועלה.

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

לסיכום שיעור זה – קורס בלוקציין – חוזה חכם Contract

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

פוסטים קשורים:

קורס blockchain – הארנק Walletקורס blockchain – הארנק Wallet קורס בלוקציין שיעור הקדמהקורס blockchain – הקדמה והכנה לפרויקט קורס חינם React GraphQL שיעור רביעי graphQL מגדירים schema.קורס חינם React & GraphQL – שיעור רביעי – graphQL מגדירים schema. קורס-חינם-React-GraphQL-שיעור-ראשוןקורס חינם React & GraphQL – שיעור ראשון – אתחול צד לקוח
ethers smart contract solidity איתריום חוזה חכם מפתח בלוק מתכנת בלוקציין קורס בלוקציין

אודות המחבר

יאיר וינר להציג את כל הפוסטים של וינר יאיר


« פוסט קודם
פוסט הבא »

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
29 בדצמבר 2023 עידן יצחקי

שדה טקסט עשיר עם תמונות

אתם הולכים להיות מופתעים עד כמה HTML יכול להיות חכם ולבצע משהו כל כך מורכב, שאם אנחנו היינו רוצים ליצור

1 באוקטובר 2021 עידן יצחקי

איך למשוך דינמית favicon של אתרים אחרים ב-JS

בפוסט זה נראה איך אפשר על פי לינקים בדף למשוך את ה-favicon מהדומיין שלהם באופן דינמי, בדיקה של תקינות התמונה

פופולרי
Javascript functions – היכרות עם סוגי פונקציות
Javascript
21 בדצמבר 2024 אין תגובות
Nested routing in angular standalone component
Typescript
15 בנובמבר 2024 תגובה אחת
בחרו לפי תגיות
angular blockchain css ethers express front-end fullstack GQL html javascript next js nextjs nodejs react hooks reactjs solidity webgl אנגולר בלוקציין וורדפרס לימודי אנגולר לימודי וורדפרס לימוד ריאקט מדריך front-end מדריך GQL מדריך אנגולר מדריך וורדפרס מדריך חינם react מדריך ריאקט מפתח בלוק מפתח בלוקציין מתכנת front-end מתכנת בלוקציין מתכנת פרונט סולידיטי קורס front end קורס fullstack קורס nextjs קורס אנגולר קורס בלוקציין קורס בלוקציין בחינם קורס סולידיטי קורס ריאקט קורס תכנות קורס תכנות בחינם
סינון על פי קטגוריות
CSS fullstack HTML IIS Javascript nodeJs SEO Typescript אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד
דילוג לתוכן
פתח סרגל נגישות כלי נגישות

כלי נגישות

  • הגדל טקסטהגדל טקסט
  • הקטן טקסטהקטן טקסט
  • גווני אפורגווני אפור
  • ניגודיות גבוההניגודיות גבוהה
  • ניגודיות הפוכהניגודיות הפוכה
  • רקע בהיררקע בהיר
  • הדגשת קישוריםהדגשת קישורים
  • פונט קריאפונט קריא
  • איפוס איפוס