در این مقاله مراحل لازم برای ایجاد رمزنگاری خود در blockchain اتریوم نشان داده شده است. من نشانه خودم را به نام Kahawanu ایجاد کردم و در شبکه تست Rinkby در دسترس است. Kahawanu یک ارز قرون وسطایی از سریلانکا است. https://en. wikipedia. org/wiki/kahavanu
اگر تازه وارد فناوری blockchain هستید ، لطفاً به مقاله قبلی من در مورد blockchain Ethereum و زبان استحکام مراجعه کنید.
Ethereum blockchain "سلام جهان" قرارداد هوشمندانه با جاوا
این آموزش مجموعه کامل مراحل لازم برای توسعه اولین قرارداد هوشمند خود را در یک گره خصوصی اتریوم را پوشش می دهد ...
نشانه چیست؟
نشانه های موجود در اکوسیستم Ethereum می توانند نمایانگر هرگونه کالای قابل معامله قارچ باشند: سکه ها ، امتیازات وفاداری ، گواهی های طلا ، موارد IOUS ، موارد درون بازی و غیره. از آنجاسازگار با کیف پول Ethereum و هر مشتری یا قراردادی دیگر که از همان استانداردها استفاده می کند.
کد استحکام را برای یک نشانه درک کنید
یک نشانه می تواند به عنوان یک قرارداد هوشمند در اتریوم ایجاد شود. کد منبع کامل قرارداد را می توان در https://www. ethereum. org/token یافت. برای ایجاد یک نشانه جدید ، ما فقط باید نام توکن را در این کد تغییر دهیم. نام توکن Kahawanu باید به نام قرارداد خود تغییر یابد.
استحکام پراگما ^0. 4. 16 ؛قرارداد متعلق به مالکیت عمومی ؛سازنده () مالک عمومی = msg. sender ؛>فقط اصلاح کننده نیاز دارد (msg. sender == مالک) ؛_; >عملکرد Transfeownership (آدرس NewOwner) OnlyOwner مالک عمومی = NewOwner ؛>>نشان دهنده رابطقرارداد Tokenerc20 // متغیرهای عمومی توکننام عمومی رشته ؛نماد عمومی رشته ؛اعشار عمومی uint8 = 18 ؛// 18 اعشار به طور پیش فرض به شدت پیشنهاد شده است ، از تغییر آن خودداری کنیدUint256 Totalsupply عمومی ؛// این یک آرایه با تمام مانده ها ایجاد می کندmapping (address =>uint256) تعادل عمومی ؛mapping (address => mapping (address =>uint256)) کمک هزینه عمومی ؛// این یک رویداد عمومی در blockchain ایجاد می کند که به مشتریان اطلاع می دهدانتقال رویداد (آدرس فهرست شده از ، آدرس فهرست شده به ، مقدار UINT256). // این یک رویداد عمومی در blockchain ایجاد می کند که به مشتریان اطلاع می دهدتأیید رویداد (آدرس فهرست شده _owner ، آدرس فهرست شده _spender ، uint256 _value) ؛// این به مشتری در مورد مقدار سوخته اطلاع می دهدسوختگی رویداد (آدرس فهرست شده از ، مقدار UINT256) ؛/** * عملکرد constrCtor* * قرارداد را با نشانه های عرضه اولیه به خالق قرارداد آغاز می کند*/ سازنده (Uint256 InitialSupply ،نام TOKENNEND ،توکن های رشته ای) Public TotalSupply = InitialSupply * 10 ** UINT256 (اعشار) ؛// عرضه کل را با مقدار اعشاری به روز کنیدتعادل [msg. sender] = totalsupply ؛// به خالق همه نشانه های اولیه بدهیدname = tokeame ؛// نام را برای اهداف نمایش تنظیم کنیدنماد = توکنسیمبول ؛// نماد را برای اهداف نمایش تنظیم کنید>/** * انتقال داخلی ، فقط با این قرارداد قابل فراخوانی است*/ عملکرد _transfer (آدرس _ از آدرس _to ، uint _value) داخلی // جلوگیری از انتقال به آدرس 0x0. به جای آن از Bu () استفاده کنیدنیاز (_to! = 0x0) ؛// بررسی کنید که آیا فرستنده به اندازه کافی داردrequire(balanceOf[_from]>= _value) ؛// برای سرریزها بررسی کنیدrequire(balanceOf[_to] + _value>تعادل [_to]) ؛// این را برای ادعای در آینده ذخیره کنیدUINT قبلی تعادل = تعادل [_from] + تعادل [_to] ؛// تفریق از فرستندهتعادل [_from] -= _value ؛// همان را به گیرنده اضافه کنیدتعادل [_to] += _value ؛انتقال انتشار (_from ، _to ، _value) ؛// از ادعا برای استفاده از تجزیه و تحلیل استاتیک برای یافتن اشکالات موجود در کد شما استفاده می شود. آنها هرگز نباید شکست بخورندادعا (تعادل [_from] + تعادل [_to] == تعادل قبلی) ؛>/** * انتقال نشانه ها* * از حساب خود نشانه های _ Value` را به `_to` ارسال کنید* * param _to آدرس گیرنده* param _value مبلغ ارسال شده*/ انتقال تابع (آدرس _to ، uint256 _value) بازده عمومی (موفقیت بول) _transfer (msg. sender ، _to ، _value) ؛بازگشت واقعی ؛>/** * نشانه ها را از آدرس دیگر انتقال دهید* * به نمایندگی از "_to" به نمایندگی از `_from` ارسال کنید.* * param _ از آدرس فرستنده* param _to آدرس گیرنده* param _value مبلغ ارسال شده*/ عملکرد انتقال (آدرس _FROM ، آدرس _to ، uint256 _value) بازده عمومی (موفقیت بول) نیاز به (_value کمک هزینه [_from] [msg. sender] -= _value ؛_transfer (_from ، _to ، _value) ؛بازگشت واقعی ؛>/** * کمک هزینه برای آدرس دیگر* * به "_spender" اجازه می دهد تا از طرف شما چیزی بیش از `_value` صرف کند* * param _spender آدرس مجاز به خرج کردن* param _value حداکثر مقدار آنها می توانند هزینه کنند*/ عملکرد تأیید (آدرس _spender ، uint256 _value) عمومیبازده (موفقیت بول) کمک هزینه [msg. sender] [_ spender] = _value ؛تأیید انتشار (msg. sender ، _spender ، _value) ؛بازگشت واقعی ؛>/** * کمک هزینه را برای آدرس دیگر تنظیم کرده و به آن اطلاع دهید* * به "_spender" اجازه می دهد تا از طرف شما چیزی بیش از `_value` صرف کند ، و سپس قرارداد را در مورد آن پینگ کند* * param _spender آدرس مجاز به خرج کردن* param _value حداکثر مقدار آنها می توانند هزینه کنند* param _extradata برخی از اطلاعات اضافی برای ارسال به قرارداد تأیید شده*/ عملکرد ApproveAndCall (آدرس _spender ، uint256 _value ، بایت _extradata)عمومیبازگشت (موفقیت بول) spender tokenrecipient = tokenrecipient (_spender) ؛if (تأیید (_spender ، _value)) spender. ReceiveAppraval (msg. sender ، _value ، این ، _extradata) ؛بازگشت واقعی ؛> >/** * نشانه ها را نابود کنید* * نشانه های _ Value` را از سیستم به طور برگشت ناپذیر خارج کنید* * param _value مقدار پول برای سوزاندن*/ function bu(uint256 _value) public retus (bool success) require(balanceOf[msg.sender]>= _value) ؛// بررسی کنید که آیا فرستنده به اندازه کافی داردتعادل [msg. sender] -= _value ؛// تفریق از فرستندهtotalsupply -= _value ؛// به روزرسانی TotalSupplyانتشار سوختگی (msg. sender ، _value) ؛بازگشت واقعی ؛>/** * نشانه ها را از حساب دیگر نابود کنید* * نشانه های _ Value` را از سیستم به صورت برگشت ناپذیر به نمایندگی از `_from` حذف کنید.* * param _ از آدرس فرستنده* param _value مقدار پول برای سوزاندن*/ function buFrom(address _from, uint256 _value) public retus (bool success) require(balanceOf[_from]>= _value) ؛// بررسی کنید که آیا تعادل هدفمند کافی استنیاز به (_value talleof [_from] -= _value ؛ // تفریق از تعادل هدفمندکمک هزینه [_from] [msg. sender] -= _value ؛// از کمک هزینه فرستنده تفریق می کندtotalsupply -= _value ؛// به روزرسانی TotalSupplyانتشار سوختگی (_FROM ، _VALUE) ؛بازگشت واقعی ؛>>/******************************************//* نام قرارداد را از Kahawanu به نام توکن خود تغییر دهید*//******************************************/قراردادKahawanu متعلق به ، Tokenerc20 استUINT256 Public Sellprice ؛Uint256 Public BuyPrice ؛mapping (address =>BOOL) منجمد عمومی ؛/ * این یک رویداد عمومی در blockchain ایجاد می کند که به مشتریان اطلاع می دهد */رویداد FrozenFunds (آدرس آدرس ، Bool Frozen) ؛/ * قرارداد را با نشانه های عرضه اولیه به خالق قرارداد *//سازنده (Uint256 InitialSupply ،نام TOKENNEND ،توکن های رشته ای) Tokenerc20 (InitialSupply ، Tokeame ، Tokensymbol) عمومی<>/ * انتقال داخلی ، فقط با این قرارداد می توان فراخوانی کرد */عملکرد _transfer (آدرس _FROM ، آدرس _to ، uint _value) نیاز داخلی (_to! = 0x0) ؛// از انتقال به آدرس 0x0 جلوگیری کنید. به جای آن از Bu () استفاده کنیدrequire (balanceOf[_from]>= _value) ؛// بررسی کنید که آیا فرستنده به اندازه کافی داردrequire (balanceOf[_to] + _value>= تعادل [_to]) ؛// برای سرریزها بررسی کنیدنیاز (! FrozeNaccount [_from]) ؛// بررسی کنید که آیا فرستنده یخ زده استنیاز (! FrozeNaccount [_to]) ؛// بررسی کنید که آیا گیرنده یخ زده استتعادل [_from] -= _value ؛// تفریق از فرستندهتعادل [_to] += _value ؛// همان را به گیرنده اضافه کنیدانتقال انتشار (_from ، _to ، _value) ؛>/// notice نشانه های mintedamount` را ایجاد کنید و آن را به "هدف" ارسال کنید/// param آدرس هدف برای دریافت نشانه ها///param mintedamount مقدار نشانه های دریافت شدهتابع minttoken (آدرس آدرس ، uint256 mintedamount) تنها تعادل عمومی [هدف] += mintedamount ؛totalsupply += mintedamount ؛انتقال انتشار (0 ، این ، mintedamount) ؛انتقال انتشار (این ، هدف ، mintedamount) ؛>/// notice `یخ زد؟جلوگیری از |از ارسال و دریافت نشانه ها اجازه می دهد/// param آدرس هدف برای یخ زده///param برای یخ زدن یا نه یخ زدعملکرد freezeaccount (هدف آدرس ، یخبندان بول) فقط صاحبخانه یخ زده [هدف] = یخ زدگی ؛منتشر شده FrozenFunds (هدف ، یخ) ؛>/// notice به کاربران اجازه می دهد تا نشانه های ETH «NewBuyPrice» را بخرند و نشانه های "Newsellprice" ETH را بفروشند///param newsellprice قیمت کاربران می توانند به قرارداد بفروشند///param newbuyprice قیمت کاربران می توانند از قرارداد خریداری کنندعملکرد SetPrices (UINT256 NewsellPrice ، UINT256 NewBuyPrice) OnloWowner SalesPrice = NewsellPrice ؛BuyPrice = NewBuyPrice ؛>/// notice با ارسال اتر توکن را از قرارداد خریداری کنیدتابع خرید () مبلغ UINT عمومی قابل پرداخت = msg. value / buyPrice ؛// مقدار را محاسبه می کند_transfer (این ، msg. sender ، مقدار) ؛// نقل و انتقالات را انجام می دهد>/// notice فروش توکن `مبلغ" را به قرارداد بفروشید///param مقدار توکن های فروخته شدهعملکرد فروش (مبلغ uint256) آدرس عمومی myAddress = این ؛require(myAddress.balance>= مبلغ * SellPrice) ؛// بررسی می کند که آیا قرارداد اتر کافی برای خرید دارد_transfer (msg. sender ، این ، مقدار) ؛// نقل و انتقالات را انجام می دهدmsg. sender. transfer (مبلغ * sellPrice) ؛// اتر را به فروشنده می فرستد. انجام این کار آخر برای جلوگیری از حملات بازگشت مهم است>>
توکن را در مرورگر ریمیکس آزمایش کنید
کپی و چسباندن بالای کد قرارداد هوشمند در مرورگر وب ریمیکس.
اطمینان حاصل کنید که هیچ خطای تلفیقی وجود ندارد. اکنون می توانید قرارداد را با استفاده از مورد منو Run در Remix مستقر کنید. شما باید قبل از فشار دادن دکمه استقرار ، نام نشانه ، چند نشانه را ایجاد کنید و نماد نشانه را مشخص کنید. ریمیکس یک گره اتریوم داخلی در حال اجرا دارد.
دکمه معامله را فشار دهید. قرارداد به گره محلی اتریوم اعزام می شود.
می توانید قرارداد را گسترش داده و سپس با کارکردهای قرارداد تعامل برقرار کنید.
پس از آزمایش توکن در گره ریمیکس محلی اتریوم ، ما در موقعیتی قرار داریم که این کار را در شبکه تست Rinkeby آزمایش کنیم. Rinkeby یک شبکه آزمایشی برای آزمایش قراردادهای شما قبل از انتشار به شبکه اصلی است. استقرار یک قرارداد هوشمند به عنوان معامله در blockchain در نظر گرفته می شود. بنابراین ما باید برای اعزام قرارداد خود به افراد زیر سن قانونی بپردازیم. ما می توانیم اتر را از شبکه Rinkeby به کیف پول خود بدست آوریم. کیف پول را می توان با استفاده از نرم افزار ارائه دهنده کیف پول مانند Metamask ایجاد کرد.
ایجاد کیف پول با استفاده از metamask
نرم افزار Metamask Wallet Manager یک برنامه افزودنی Google Chrome است. شما باید آن را به شرح زیر بارگیری و نصب کنید.
پس از نصب ، با مشخص کردن رمز عبور ، یک حساب کاربری (جفت کلید) ایجاد کنید. شبکه تست Rinkeby را در کشویی انتخاب کنید.
مقداری تست اتر دریافت کنید
ما می توانیم با استفاده از برنامه زیر وب ، اتر را به کیف پول خود آزمایش کنیم. لازم است یک پست عمومی را در توییتر ، فیس بوک یا گوگل پلاس مطابق با اولین قدم در زیر قرار دهید.
من از Google Plus برای انتشار پست استفاده می کنم. آدرس حساب خود را از Metamask کپی کنید.
در کادر ارسال Google Plus خود در زیر متن را کپی و چسباندن کنید.
درخواست وجوه شیر آب به 0x *** you_address ******************* در شبکه تست #rinkeby #ethereum.
پست را به صورت عمومی به اشتراک بگذارید.
پست خود را باز کنید و URL را کپی کنید. این URL در فرم درخواست اتر مورد نیاز است.
به صفحه وب زیر بروید.
URL پست Google+ خود را در جعبه متن بالا بچسبانید و دکمه "Give Me Ether" را فشار دهید.
حساب شما با تست اتر تأمین می شود. می توانید مانده حساب خود را در کیف پول Metamask بررسی کنید.
Token را در شبکه تست Rinkeby مستقر کنید
اکنون محیط را به "تزریق Web3" در مرورگر ریمیکس تغییر دهید. نام قرارداد ، عرضه اولیه و نماد را برای قرارداد مشخص کنید و دکمه Transact را فشار دهید. شما به Metamask ارسال صفحه معامله هدایت می شوید. به یاد داشته باشید که شبکه تست Rinkeby را در Metamask انتخاب کنید. مقداری اتر را برای معامله مشخص کنید و دکمه ارسال را فشار دهید. قرارداد ما مستقر خواهد شد.
پس از استقرار ، قرارداد آدرس خاص خود را خواهد داشت. از این آدرس می توان برای ردیابی نشانه های ما در برنامه های کیف پول استفاده کرد.
مشاهده توکن در اترکان
مشاهده معامله خود در https://rinkeby. etherscan. io/ برنامه وب امکان پذیر است. آدرس حساب خود را در کادر جستجو جایگذاری کرده و دکمه GO را فشار دهید. کلیه معاملات آغاز شده از حساب شما به شرح زیر نشان داده می شود.
تأیید را تأیید کنید
کد منبع قرارداد ما باید به منظور ذکر شده در اترسان تأیید شود. کد قرارداد برای تأیید باید به اترسان ارسال شود. اترسان کد را کامپایل کرده و با کد بایت مستقر در شبکه مقایسه می کند. ما باید همان نسخه کامپایلر را انتخاب کنیم که برای تهیه کد در مرورگر ریمیکس استفاده شده است.
به کیف پول اضافه کنید
می توانید با کلیک بر روی دکمه افزودن توکن و مشخص کردن آدرس قرارداد ، توکن تازه ایجاد شده خود را به برنامه کیف پول Metamask اضافه کنید.
سلام ، من الان ثروتمند هستم.
توکن را در شبکه اصلی مستقر کنید
استقرار قرارداد همان استقرار آن در شبکه تست Rinkeby است. تنها تفاوت ها این است:
- ما در کیف پول خود به اتر واقعی احتیاج داریم. هزینه استقرار قرارداد حدود 2 تا 3 دلار است.
- شبکه اصلی باید در MetaMask انتخاب شود
- تأیید باید با ارسال ایمیل به اترسان انجام شود
نتیجه
ایجاد cryptocurrency خود یک فعالیت پیچیده نیست. ساده و سرگرم کننده است. چرا خودت را امتحان نمی کنی؟
اگر می خواهید برخی از Kahawanu و ثروتمند شوید ، کلید عمومی حساب خود را به من اطلاع دهید.
اگر مقاله را دوست دارید. من مقالات بیشتری را در مورد آینده به اشتراک می گذارم ، بنابراین فراموش نکنید که دنبال کنید و اگر فکر می کنید هر یک از دوستان شما می تواند از این نکات استفاده کند ، بنابراین مقاله را با آنها به اشتراک بگذارید. با تشکر از خواندن تجارت گزینه های دودویی در ایران...
ما را در سایت تجارت گزینه های دودویی در ایران دنبال می کنید
برچسب :
نویسنده : زینالعابدین مراغهای
بازدید : <-PostHit->
تاريخ : جمعه
20 مرداد
1402 ساعت: 14:28