برنامه نویسی بلاکچینبلاک چین

آموزش ساخت توکن روی بستر اتریوم | آموزش ساخت ارزدیجیتال جدید

salamcrypto

ساخت توکن روی اتریوم ، ما قصد داریم در مقاله زیر به شما آموزش دهیم که چگونه یک توکن را روی بستر بلاکچین بنویسید . به عبارتی می خواهیم آموزش ساخت یک توکن را به شما آموزش دهیم .شایان ذکر است برای ساخت توکن نیاز داریم که با مرورگر کروم کار کنید . همچنین به دلیل اینکه برای ساخت ترن روی شبکه واقعی نیاز است که هزینه ای را پرداخت کنید ، ما تصمیم گرفتیم که توکن را روی شبکه آزمایشی بسازیم .در ادامه همراه ما باشد تا با زبانی ساده به شما آموزش دهیم توکن خود را در بستر بلاکچین اتریوم ایجاد نمایید.

آموزش ساخت توکن در بستر اتریوم:

برای انجام این کار نیاز به 3 گام اصلی است ، که ما آن را مرحله به مرحله با شما جلو می رویم .

گام اول :

برای ایجاد توکن در این آموزش نیاز است که در کیف پول متامسک (افزونه مروروگر کروم) یک حساب کاربری ایجاد کنیم برای انجام این کار نیاز است از طریق لینک زیر ابتدا افزونه متامسک را به مرورگر خود اضافه نمایید.

https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn

زمانی که بر روی لینک بالا کلیک میکنید با صفحه زیر روبرو می شوید.ابتدا بر روی (add to chrome) کلیک نمایید.

نصب کیف پول متامسک روی کروم
نصب کیف پول متامسک روی کروم

بعد از کلیک بر روی (add to chrome) با عکس زیر مواجه می شوید که باید بر روی add to extension  کلیک نمایید.

اضافه کردن افزونه کیف پول متامسک
اضافه کردن افزونه کیف پول متامسک

سپس شما با صفحه زیر مواجه می شوید که باید بر روی Get Started  کلیک نمایید.

اضافه کردن افزونه متامسک روی کروم
اضافه کردن افزونه متامسک روی کروم

سپس در مرحله بعد نیاز است یک کیف پول را ایجاد نمایید.

ایجاد کیف پول در افزونه متامسک
ایجاد کیف پول در افزونه متامسک

سپس شما با صفحه مقابل روبرو می شوید .

ایجاد کیف پول در افزونه متامسک
ایجاد کیف پول در افزونه متامسک

سپس بعد از گذاراندن این مرحله بر باید پسورد را انتخاب نمایید . این پسورد را باید حتما نگهداری کنید و در صورتی که قصد دارید با این حساب کار کنید، از یک پسورد با امنیت بالا استفاده نمایید .

ایجاد کیف پول در افزونه متامسک
ایجاد کیف پول در افزونه متامسک

سپس صفحه زیر را مشاهده می کنید که با کلیک بر روی آن قسمت مشخص شده کلمات را جهت بازیابی کیف پول خود ذخیره نمایید .که بعد از کلیک دکمه next  برای شما فعال می شود.

آموزش ایجاد کیف پول در افزونه متامسک
آموزش ایجاد کیف پول در افزونه متامسک

در قسمت بعدی شما باید کلمه صفحه قبل را وارد کنید.

آموزش ایجاد کیف پول در افزونه متامسک
آموزش ایجاد کیف پول در افزونه متامسک

بعد ار آورد کردن صحیح کلمات ، با صفحه زیر روبرو می شوید .

تایید ساخت کیف پول در افزونه متامسک
تایید ساخت کیف پول در افزونه متامسک

صفحه بالا صفحه نمایی شما است که شما با زدن بر روی دکمه all done  می توانید به حساب کاربری خودتان دسترسی داشته باشید . و از طریق حساب کاربری خود ارز ها و توکن های خود را جابجا نمایید.

شایان ذکر است که این کیف پول به افزونه های کروم شما اضافه می شود و برای دسترسی مجدد نیاز است از قسمت افزونه های کروم ، متامسک را انتخاب نمایید سپس پسورد خود را وارد نمایید و مانند عکس زیر از حساب کاربری خود با خبر باشید .

ایجاد کیف پول در افزونه متامسک
ایجاد کیف پول در افزونه متامسک

گام دوم :

شما زمانی که می خواهید درباره 1 توکن یا ارز صحبت کنید قطعا آن ارز یا توکن را با نامی صدا می زنید و حتما آن توکن دارای یک نماد منحصر به فرد خود می باشد . همچنین ارقام اعشاری توکن را قطعا مشاهده کردید ، مثلا ارز دیجیتال بیت کوین دارای 14 رقم اعشار می باشد .

پس در مرحله دوم شما باید مواردی را برای خود تعیین نمایید.

  • نام توکن
  • نماد توکن
  • ارقام اعشاری توکن
  • تعداد توکن های در حال گردش

نکته بسیار مهم :

همانطور که د ربالا توضیح دادیم برای ساخت یک توکن در بستر اتریوم باید یک هزینه پرداخت نمایید جهت پرداخت نکردن این هزینه باید توکن را روی شبکه آزمایشی (Ropsten)، تست نماییم برای اینکار باید بر روی افزونه متامسک خود کلیک نمایید ، سپس (main etherum network)  را به (Ropsten test network ) تبدیل نمایید.(مانند شکل زیر)

ساخت توکن روی شبکه ازمایشی اتریوم
ساخت توکن روی شبکه ازمایشی اتریوم

در حال حاضر شما روی شبکه آزمایشی قرار دارید ، اما برای ادامه کار شما نیاز دارید که مقداری اتریوم آزمایشی نیز داشته باشید .تا بتوانید هزینه گس بر روی شبکه آزمایشی را داشه باشید برای انجام این کار و دریافت توکن اتریوم آزمایشی نیاز است که وارد لینک( https://faucet.metamask.io ) شوید.توجه داشته باشید که این توکن ها هیچ ارزش مالی ندارند و صرفا جهت آزمایش می باشد.

گام سوم :

در مرحله سوم باید بریم سراغ برنامه نویسی برای ایجاد یک توکن ، قطعا برای انجام این کار شما نیاز دارید به یک محیط نرم افزاری تا در آنجا کد های نوشته شده خود را تست نمایید . برای انجام این کار وارد لینک زیر شوید .

https://remix.ethereum.org/

زمانی که بر روی لینک بالا کلیک می نمایید به صفحه مقابل روبرو می شوید که برای ایجاد یک پروژه جدید نیاز است بر روی (new file)  کلیک نمایید . سپس نام پروژه خود را قرار دهید و حتما با پسوند sol  قرار دهید .

ایجاد پروژه جدید برای ساخت توکن روی اتریوم
ایجاد پروژه جدید برای ساخت توکن روی اتریوم
ایجاد پروژه جدید برای ساخت توکن روی اتریوم
ایجاد پروژه جدید برای ساخت توکن روی اتریوم
ایجاد پروژه جدید برای ساخت توکن روی اتریوم
ایجاد پروژه جدید برای ساخت توکن روی اتریوم

حال شما باید کد زیر را در محیط بالا قرار دهید .

pragma solidity ^0.4.4;
contract zoomarz {
/// @return total amount of tokens
function totalSupply() constant returns (uint256 supply) {}
/// @param _owner The address from which the balance will be retrieved
/// @return The balance
function balanceOf(address _owner) constant returns (uint256 balance) {}
/// @notice send `_value` token to `_to` from `msg.sender`
/// @param _to The address of the recipient
/// @param _value The amount of token to be transferred
/// @return Whether the transfer was successful or not
function transfer(address _to, uint256 _value) returns (bool success) {}
/// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
/// @param _from The address of the sender
/// @param _to The address of the recipient
/// @param _value The amount of token to be transferred
/// @return Whether the transfer was successful or not
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {}
/// @notice `msg.sender` approves `_addr` to spend `_value` tokens
/// @param _spender The address of the account able to transfer the tokens
/// @param _value The amount of wei to be approved for transfer
/// @return Whether the approval was successful or not
function approve(address _spender, uint256 _value) returns (bool success) {}
/// @param _owner The address of the account owning tokens
/// @param _spender The address of the account able to transfer the tokens
/// @return Amount of remaining tokens allowed to spent
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {}
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);

}
contract StandardToken is zoomarz {
function transfer(address _to, uint256 _value) returns (bool success) {
//Default assumes totalSupply can’t be over max (2²⁵⁶ — 1).
//If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn’t wrap.
//Replace the if with this one instead.
//if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
if (balances[msg.sender] >= _value && _value > 0) {
balances[msg.sender] -= _value;
balances[_to] += _value;
Transfer(msg.sender, _to, _value);
return true;
} else { return false; }
}
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
//same as above. Replace this line with the following if you want to protect against wrapping uints.
//if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
balances[_to] += _value;
balances[_from] -= _value;
allowed[_from][msg.sender] -= _value;
Transfer(_from, _to, _value);
return true;
} else { return false; }
}
function balanceOf(address _owner) constant returns (uint256 balance) {
return balances[_owner];
}
function approve(address _spender, uint256 _value) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
return allowed[_owner][_spender];
}
mapping (address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
uint256 public totalSupply;
}
//name this contract whatever you’d like
contract Token is StandardToken {
function () {
//if ether is sent to this address, send it back.
throw;
}
/* Public variables of the token */
/*
NOTE:
The following variables are OPTIONAL vanities. One does not have to include them.
They allow one to customise the token contract & in no way influences the core functionality.
Some wallets/interfaces might not even bother to look at this information.
*/
string public name; //fancy name: eg Simon Bucks
uint8 public decimals; //How many decimals to show. ie. There could 1000 base units with 3 decimals. Meaning 0.980 SBX = 980 base units. It’s like comparing 1 wei to 1 ether.
string public symbol; //An identifier: eg SBX
string public version = ‘H1.0’; //human 0.1 standard. Just an arbitrary versioning scheme.
//
//مقادیر دلخواه خود را وارد نمایید
//
//make sure this function name matches the contract name above. So if you’re token is called TutorialToken, make sure the //contract name above is also TutorialToken instead of ERC20Token
function Token(
) {
balances[msg.sender] = 100000; // تمام توکنهای ساخته شده سازنده برسد -عددی وارد کنید مثلا 100000
totalSupply = 100000; // تمام عرضه
name = ‘zoomarz’; // نام توکن
decimals = 1; // اعشار
symbol = ‘zmz’; // نماد توکن
}
/* Approves and then calls the receiving contract */
function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
//call the receiveApproval function on the contract you want to be notified. This crafts the function signature manually so one doesn’t have to include a contract in here just for this.
//receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData)
//it is assumed that when does this that the call *should* succeed, otherwise one would use vanilla approve instead.
if(!_spender.call(bytes4(bytes32(sha3(‘receiveApproval(address,uint256,address,bytes)’))), msg.sender, _value, this, _extraData)) { throw; }
return true;
}
}

بیشتر بخوانید:  بلاکچین چیست ؟

زمانی که این کد را در محیط برنامه نویسی قرار می دهید میتوانید در تایع مربوط به توکن نام ارز و مقادیر که در گام دوم گفته شد را تغییر دهید.

قرار دادن کد در محیط برنامه نویسی ساخت توکن بر روی اتریوم
قرار دادن کد در محیط برنامه نویسی ساخت توکن بر روی اتریوم

در حال حاضر شما کد مربوط به ایجاد یک توکن را نوشتید . فقط نیاز است که کد خود را تست نمایید و از آن خروجی بگیرید . پس باید به سراغ خروجی گرفتن پروژه برویم.

حال باید به سراغ run کردن پروژه رویم . جهت انجام اینکار در سمت چپ تبی وجود دارد به نام (Deploy & Run Transaction) (مانند شکل زیر)

run کردن پروژه ساخت توکن روی اتریوم
run کردن پروژه ساخت توکن روی اتریوم

باید توجه داشت که تنظیمات داخل تب run  دقیقا مثل تنظیمات بالا قرار بگیرد . حالا مانند شکل زیر به تب compiler  روید و در این قسمت نیز تنظیمات را مانند عکس قرار دهید .و حتما توجه داشته باشید (گزینه‌ی Auto compile (کامپایل خودکار)، فعال و Enable Optimization (فعال کردن بهینه‌سازی)، غیر فعال باشد.) . همچنین از تب COMPILER  ، نسخه ۰.۴.۲۵ commit را انتخاب نمایید.سپس پروژه خود را کامپایل می کنید . و دوباره به تب run  بازمیگردیم .و بر روی گزینه Deploy  کلیک می کنیم .

در صورتی که اتریومی جابجا نشده ناراحت نباشید . این صرفا در یک شبکه آزمایشی می باشد .

حال باید دوباره به سراغ متامسک خود رویم و بر روی گزینه Contract Deployment کلیک نمایید و سپس وارد لینک View On Etherscan شوید . که با این کار شما وارد سایت Etherscan شدید و از طریق این سایت شما می توانید شناسه قرار داد یا همان contract ID را کپی نمایید . سپس دوباره به سراغ متامسک خود رفته و بر روی گزینه add token  کلیک نمایید . حال با کلیلک بر روی اسن گزینه با صفحه زیر روبرو می شوید.

در قیمت بالا شما باید رشته ای را که در اتراسکن کپی کردید را در قسمت ( Token Contract Address ) قرار دهید . سپس در قسمت (Token Symbol) نام توکن خود را قرار دهید و همچنین در قسمت آخر (Decimals of Precision) اعشار مربوط به توکن خود را که در پروژه نوشتید در این قسمت نیز وارد نمایید.

در حال حاضر بنده به شما تبریک می گوییم . شما توانستید توکن مربوط به خود را بسازید . و همچنین کل اعتبار توکن به حساب شما تعلق گرفته است و شما می توانید از طریق کیف پول متامسک آن را به دیگر کیف پول ها ارسال نمایید .


کلام آخر درباره آموزش ساخت توکن روی اتریوم

در مطلب بالا ما به صورت کامل به شما آموزش دادیم که چگونه یک توکن را در بستر اتریوم بسازید . البته در شبکه آزمایشی آن را تیت کردیم . اگر شما بخواهید بر روی شبکه اتریوم اصلی توکن را ایجاد نمایید باید هزینه آن را به اتریوم پرداخت نمایید.سپس تمام مراحل بالا را تکرار نمایید با این تفاوت که به جای شبکه‌ی روپستن از شبکه‌ی اتریوم اصلی استفاده نمایید.

همچنین باید در این پروژه برای شما بیان کنم که می توان توکن های مختلفی را ساخت اما تا زمانی که این توکن ها هدف خاصی را دنبال نکنن، می توان گفت این توکن ها بی ارزش هستند .و همچنین نمی توان برای توکن های بی هدف و بی ارزش مارکتی برای خرید و فروش آن در نظر گرفت . پس ابتدا باید یک پروژه با ارزش وجود داشته باشد و برای ان پروزه توکن تعریف شود .

شما می توانید سوالات خود  و همچنین مشکلت خود را در قسمت کامنت از شما بپرسید .

ممنون از اینکه تا پایان ” ساخت توکن روی اتریوم ” همراه ما بودید.

منبع : زوم ارز

لینک مطلب : http://bit.do/fLyo3


بیشتر بخوانید

عاطفه قاضی حصاری

دکتری معماری کامپیوتر | مولف کتاب آموزش و پرورش | مدرس دانشگاه | محقق و پژوهشگر در زمینه های ارزهای دیجیتال و بلاک چین

نوشته های مشابه

41 دیدگاه

      1. سلام. عالی. فقط توضیح ندادید که عکس مربوط به توکن اختصاصی رو کجا و چطور باید قرار بدیدم. کد خاصی داره؟ لطفا اگه میشه راهنمایی کنید و واسم ایمیل کنید. ممنون از لطفتون

      1. سلام وقتتون بخیر ، خیلی مطالبتون مفید بود ممنون ، من یه ایده دارم که میخوام عملیش کنم اما نمیدونم چجوری و از کجا باید شروع کنم ، میخواستم بدونم چجوری میشه یه صرافی غیر متمرکز DEX مثل پنکیک سواپ یا یونی سواپ ساخت ، کار کد نویسی بلد نیستم اما میخواستم بدونم میشه کدای صرافی دیگه رو کپی کرد و باهاش یه صرافی جدید ساخت؟ ممنون

  1. سلام
    برای ارسال بیت کوین به صورت دستی نیاز دارم که با پرایوت کی بیت کوین انتقال بدم.
    اگر کسی رو میشناسید که انجام بده ممنون میشم معرفی کنید یا با ایمیل در ارتباط باشید.
    با تشکر.

  2. با سلام
    ممنون از پست عالی شما سوال من این است:
    بر پایه بلاکچین ترون هم با استفاده از همین کد می توان توکن ساخت؟ یعنی منظورم این است همین دستورالعمل را دنبال کنیم یا باید جور دیگری عمل کنیم؟

  3. با عرض سلام و خسته نباشید ؟ آیا شما برای اموزش حضوری میتونید وقت بذارید ؟ و اگه اره هزینه ساعتی چقدر میشه

  4. باسلام خدمت شما میخواستم بپرسم این توکن هایی که اینجوری برپایه تست ساخته میشن و حتی روی ادراسکن هم بالا میان. آیا قابل خرید فروش هستن؟

  5. سلام
    من توکن بصورت تستی می سازم ولی وقتی به والت متا مسک وصل میشم و توکن را اضافه می کنم توکن ساخته میشه ولی تعداد توکن را صفر عدد نشون میده ،چندین بار هم امتحان کردم با اعداد مختلف هم امتحان کردم بازهم تعداد توکن را صفر نشون می ده
    لطفا راهنمایی کنید که اشتباه و خطای ایجاد شده را برطرف و حلش کنم
    تشکر

  6. سلام وقت بخیر
    دارم توکن میسازم همین طور که شما تصویری دارید آموزش میدید ولی تو ریمیکس
    تو این قسمت شماره 86 رنگ قرمز اومده و error میده لطف کنید راهنمایی کنید ممنون میسم
    string public version = ‘H1.0’; //human 0.1 standard. Just an arbitrary versioning scheme.
    رنگ قرمز زده رو شماره این قسمت کد

  7. سلام ببخشید اگه من توکن خودم رو روی شبکه اتریوم آزمایشی بسازم امکان فروش اون توکن به صورت واقعی وجود داره یه نه

    1. توکن ساخت شما باید دارای وایت پیپر ، اهداف مشخص ، تیم حرفه ای ، اسپانسر قوی باشد که صرافی ها برای لیست کردن آن مطمئن باشند.هر ارزی را نمی توان به راحتی وارد بازار کرد

  8. توکنهایی رو که در ماین نت اتریوم میسازیم چگونه میتونیم بفروشیم؟یعنی چگونه در یک صرافی لیست کنیم واسه فروش؟

    1. توکن شاید به سادگی ساخته بشه ولی به سادگی دارای ارزش نمیشه ! یعنی توکن ساخته شده باید دارای وایت پیپر و یک اسپانسر قوی و همچنین اهداف مشخص باشه .سپس با رایزنی با صرافی ها و بررسی اون ها از توکن شما با لیست کردنش موافقت یا مخالفت می کنند

  9. شماره قرار داد رو از کجا پیدا کنم . سایت باز میشه فقط یه ادرس وجود داره که کپی میکنم میگه ادرس شخصیه .قبول نمی کنه

  10. سلام کد رو من وارد کردم ولی اختار میده و کامپایلر کاری انجام نمیده . شما میتونید یکی واسم بسازید هزینشو پرداخت کنم؟

  11. سلام و ادب برای ساخت توکن جهت توسعه فعالیت های گردشگری یک مجموعه فعال، چطور میتونم ازتون کمک بگیرم؟
    ممنون میشم اگر امکان صحبت داشته باشم با شما
    شهابی هستم
    9129151280

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا