פרטי הקורס
פרק 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 כמו את'ריום
פרטי השיעור

פרק 10: הגדרת עמלות עסקה

מבוא

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

שלב 1: הגדרת עמלות קבועות

  1. צור קובץ בשם transactionFees.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 transactionFee = web3.utils.toWei('0.01', 'ether'); // עמלה קבועה של 0.01 את'ר
    
    // שליחת טרנזקציה עם עמלה
    app.post('/sendTransactionWithFee', async (req, res) => {
        const { from, to, amount, privateKey } = req.body;
    
        const totalAmount = web3.utils.toBN(web3.utils.toWei(amount, 'ether')).add(web3.utils.toBN(transactionFee)).toString();
    
        const signedTx = await web3.eth.accounts.signTransaction({
            from,
            to,
            value: totalAmount,
            gas: 2000000
        }, privateKey);
    
        const receipt = await web3.eth.sendSignedTransaction(signedTx.rawTransaction);
        res.json({ receipt });
    });
    
    app.listen(3002, () => {
        console.log('Transaction fee server running on port 3002');
    });
    

     

    הרץ את שרת העמלות:

    שלב 2: הגדרת עמלות דינמיות

    1. עדכן את הקובץ transactionFees.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 calculateFee = () => {
        const baseFee = web3.utils.toWei('0.01', 'ether');
        const dynamicFee = web3.utils.toBN(baseFee).add(web3.utils.toBN(Math.random() * 10000000000000000)).toString();
        return dynamicFee;
    };
    
    // שליחת טרנזקציה עם עמלה דינמית
    app.post('/sendTransactionWithDynamicFee', async (req, res) => {
        const { from, to, amount, privateKey } = req.body;
        const transactionFee = calculateFee();
    
        const totalAmount = web3.utils.toBN(web3.utils.toWei(amount, 'ether')).add(web3.utils.toBN(transactionFee)).toString();
    
        const signedTx = await web3.eth.accounts.signTransaction({
            from,
            to,
            value: totalAmount,
            gas: 2000000
        }, privateKey);
    
        const receipt = await web3.eth.sendSignedTransaction(signedTx.rawTransaction);
        res.json({ receipt, transactionFee: web3.utils.fromWei(transactionFee, 'ether') });
    });
    
    app.listen(3003, () => {
        console.log('Dynamic transaction fee server running on port 3003');
    });
    

    הרץ את שרת העמלות הדינמיות:

    שלב 3: בדיקת עמלות העסקה

    1. שלח בקשה לשליחת טרנזקציה עם עמלה קבועה:

    curl -X POST -H "Content-Type: application/json" -d '{"from": "<כתובת>", "to": "<כתובת>", "amount": "0.1", "privateKey": "<מפתח פרטי>"}' http://localhost:3002/sendTransactionWithFee
    

    שלח בקשה לשליחת טרנזקציה עם עמלה דינמיות:

    curl -X POST -H "Content-Type: application/json" -d '{"from": "<כתובת>", "to": "<כתובת>", "amount": "0.1", "privateKey": "<מפתח פרטי>"}' http://localhost:3003/sendTransactionWithDynamicFee
    

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