פרטי הקורס
פרק 1: מבוא למטבעות קריפטוגרפיים ובלוקצ'יין
0/1
פרק 2: תכנון המטבע הקריפטוגרפי שלך
0/1
פרק 3: הגדרת סביבת הפיתוח שלך
0/1
פרק 4: בניית ליבת הבלוקצ'יין
0/1
פרק 5: פיתוח חוזים חכמים
0/1
פרק 6: הקמת נוד מלא
0/1
פרק 7: בניית סייר בלוקים
0/1
פרק 8: פיתוח ארנק
0/1
פרק 9: ולידטורים וסטייקינג
0/1
פרק 10: הגדרת עמלות עסקה
0/1
פרק 11: אבטחה ונהלים מומלצים
0/1
פרק 12: השקת המטבע הקריפטוגרפי שלך
0/1
פרק 13: פיתוח מתמשך ושדרוגים
0/1
קורס: בניית מטבע קריפטוגרפי מבוסס PoS כמו את'ריום
פרטי השיעור

פרק 9: ולידטורים וסטייקינג

מבוא

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

שלב 1: הגדרת ולידטורים

התקנת Go-Ethereum (Geth) לנוד חי

  1. התקן את Go-Ethereum (Geth):

sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt update
sudo apt install geth

אתחל את הבלוקצ'יין שלך עם בלוק הג'נסיס:

geth init path/to/genesis.json

הפעל את הנוד:

geth --networkid 1234 --http --http.addr "0.0.0.0" --http.port 8545 --http.api "eth,web3,personal,net,miner" --mine --miner.threads=1

שלב 2: יצירת מפתחות ולידטורים

  1. צור תיקייה חדשה לפרויקט הסטייקינג שלך:

mkdir my-staking
cd my-staking

אתחל פרויקט Node.js והתקן את הספריות הדרושות:

npm init -y
npm install web3 express body-parser

צור קובץ בשם staking.js עם התוכן הבא:

const Web3 = require('web3');
const express = require('express');
const bodyParser = require('body-parser');

const app = express();
const web3 = new Web3('http://localhost:8545'); // כתובת הנוד שלך

app.use(bodyParser.json());

const validators = {};

// יצירת ולידטור חדש
app.post('/createValidator', (req, res) => {
    const account = web3.eth.accounts.create();
    validators[account.address] = {
        address: account.address,
        privateKey: account.privateKey,
        stake: 0
    };
    res.json({
        address: account.address,
        privateKey: account.privateKey
    });
});

// הוספת סטייק
app.post('/stake', (req, res) => {
    const { address, amount } = req.body;
    if (validators[address]) {
        validators[address].stake += amount;
        res.json({ status: 'Staked successfully' });
    } else {
        res.status(400).json({ error: 'Validator not found' });
    }
});

// קבלת מידע על ולידטור
app.get('/validator/:address', (req, res) => {
    const validator = validators[req.params.address];
    if (validator) {
        res.json(validator);
    } else {
        res.status(400).json({ error: 'Validator not found' });
    }
});

app.listen(3001, () => {
    console.log('Staking server running on port 3001');
});

הרץ את שרת הסטייקינג:

הסבר:

  • /createValidator: מסלול ליצירת ולידטור חדש עם כתובת ומפתח פרטי.
  • /stake: מסלול להוספת סטייק לולידטור.
  • /validator/:address: מסלול לקבלת מידע על ולידטור מסוים.

שלב 3: בדיקת ולידטורים וסטייקינג

  1. שלח בקשה ליצירת ולידטור חדש:

curl -X POST http://localhost:3001/createValidator

שלח בקשה להוספת סטייק:

curl -X POST -H "Content-Type: application/json" -d '{"address": "<כתובת ולידטור>", "amount": 100}' http://localhost:3001/stake

שלח בקשה לקבלת מידע על ולידטור:

curl http://localhost:3001/validator/<כתובת ולידטור>

 
צפיות מבקרים: 20