آموزش ساخت توکن روی بستر اتریوم | آموزش ساخت ارزدیجیتال جدید
ساخت توکن روی اتریوم ، ما قصد داریم در مقاله زیر به شما آموزش دهیم که چگونه یک توکن را روی بستر بلاکچین بنویسید . به عبارتی می خواهیم آموزش ساخت یک توکن را به شما آموزش دهیم .شایان ذکر است برای ساخت توکن نیاز داریم که با مرورگر کروم کار کنید . همچنین به دلیل اینکه برای ساخت ترن روی شبکه واقعی نیاز است که هزینه ای را پرداخت کنید ، ما تصمیم گرفتیم که توکن را روی شبکه آزمایشی بسازیم .در ادامه همراه ما باشد تا با زبانی ساده به شما آموزش دهیم توکن خود را در بستر بلاکچین اتریوم ایجاد نمایید.
آموزش ساخت توکن در بستر اتریوم:
برای انجام این کار نیاز به 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 ) شوید.توجه داشته باشید که این توکن ها هیچ ارزش مالی ندارند و صرفا جهت آزمایش می باشد.
گام سوم :
در مرحله سوم باید بریم سراغ برنامه نویسی برای ایجاد یک توکن ، قطعا برای انجام این کار شما نیاز دارید به یک محیط نرم افزاری تا در آنجا کد های نوشته شده خود را تست نمایید . برای انجام این کار وارد لینک زیر شوید .
زمانی که بر روی لینک بالا کلیک می نمایید به صفحه مقابل روبرو می شوید که برای ایجاد یک پروژه جدید نیاز است بر روی (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 دقیقا مثل تنظیمات بالا قرار بگیرد . حالا مانند شکل زیر به تب 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
بیشتر بخوانید
- رمز ارز ERD چیست ؟ | آشنایی با ارزدیجیتال Elrond و بلاکچین آن
- رمز ارز XEM چیست ؟ | همه چیز درباره ارزدیجیتال XEM وبلاکچین نم Nem
- آموزش زبان برنامه نویسی سالیدیتی solidity – فصل اول: انواع متغیرها (بخش سوم)
- آموزش زبان برنامه نویسی solidity – فصل اول:انواع متغیرها (بخش دوم)
- آموزش زبان برنامه نویسی solidity – فصل اول:انواع متغیرها
سلام ، وقت بخیر ، عالی بود و کامل
من می توانم توکن مربوط به یک کارگاه شیرینی فروشی را بسازم ؟
بله
روی بستر ترون هم میشه نوشت ؟
بله
آموزش برنامه نویسی سالیدیتی را دارد؟
بله در لینک زیر
https://www.zoomarz.com/learn-solidity-programming-language
روی چه بلاکچین هایی می شود قرار داد هوشمند نوشت؟
بلاکچین اتریوم ، بیت کوین ، ایاس ، ترون و…
توکن حتما باید روی اتریوم ساخته بشه.
خیر می تونه روی ارزهای دیگه ای که بلاکچین خودشون رو دارن هم ساخته بشه مثل ترون ،ایاس و..
ممنون از مطلب خوب شما.
برنامه نویسی بلاک چین با php امکان پذیر است؟
بله
سلام
برای ارسال بیت کوین به صورت دستی نیاز دارم که با پرایوت کی بیت کوین انتقال بدم.
اگر کسی رو میشناسید که انجام بده ممنون میشم معرفی کنید یا با ایمیل در ارتباط باشید.
با تشکر.