تور وب 3: قراردادهای Ethereum & Smart با استحکام

ساخت وبلاگ

A Tour of Web 3: Ethereum & Smart Contracts with Solidity

برنامه های وب 3 (DAPP) می توانند چشم انداز توسعه را تغییر دهند. بیاموزید که با استحکام قراردادهای هوشمند را در اتریوم ایجاد و مستقر کنید. سپس از آنها به node. js و مرورگرها ارتباط برقرار کنید. شما با مفاهیم چالش برانگیز مانند طرح حافظه ، تماس های نماینده و عملکردهای برگشت پذیر مقابله خواهید کرد. سرانجام ، الگوی الماس را پیاده سازی کنید و به شما امکان می دهد قراردادهای هوشمندانه ای با اندازه دلخواه ایجاد کنید. این دوره و دیگران مانند آن به عنوان بخشی از اشتراک ویدیویی Masters Masters ما در دسترس هستند.

منتشر شده: 10 فوریه 2022 فهرست مطالب

معرفی

00:00:00 - 00:09:04

معرفی

ThePrimeagen دوره را با یک مرور کلی از Ethereum و پیاده روی از طرح دوره آغاز می کند. این دوره با یک مثال اساسی "Hello World" آغاز می شود و سپس سرعت را با نمونه های برنامه نویسی زیادی و کاوش در انواع مختلف قراردادها انتخاب می کند.

خیس شدن پاهای ما

00:09:05 - 00:17:20

اولین قرارداد هوشمند خود را ایجاد کنید

ThePrimeagen پوشه پروژه را ایجاد می کند و Hardhat را نصب می کند که ماژول گره است که برای تهیه قراردادها استفاده می شود. اولین قرارداد سلام جهانی کدگذاری و گردآوری شده است. برخی از خطاهای کامپایل مشترک نیز در این بخش مورد بحث قرار گرفته است.

00:17:21 - 00:26:24

تنظیم و استقرار برای آزمایش شبکه

ThePrimeagen وابستگی های آزمایشی لازم را نصب می کند و آزمون واحد را برای قرارداد Helloworld می نویسد. آزمون را بررسی می کند تا مطمئن شوید روش Hello () در قرارداد رشته "سلام جهان" را برمی گرداند.

00:26:25 - 00:40:16

یک اسکریپت استقرار ایجاد کنید

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

00:40:17 - 00:44:54

برنامه افزودنی MetaMask تنظیم

ThePrimeagen برنامه افزودنی مرورگر Metamask را نصب می کند. هنگامی که کلید خصوصی وارد می شود و شبکه تست LocalHost انتخاب می شود ، پسوند تعادل اتریوم فعلی را نشان می دهد و هرگونه فعالیت را ردیابی می کند.

00:44:55 - 01:01:25

قرارداد را مستقر کنید و Metamask را به هم وصل کنید

ThePrimeAgen برای دسترسی به شبکه تست از طریق مرورگر وب ، جبهه ای را کد می کند. برای دسترسی به قرارداد ، صفحه آدرس و رابط و ارائه دهنده ارائه می شود. ارائه دهنده یک شیء اتریوم است که توسط پسوند metamask به شیء پنجره اضافه شده است.

01:01:26 - 01:08:06

اصطلاحات web3

ThePrimeagen برخی از اصطلاحات مشترک مانند Web3 ، Ethereum ، ارائه دهنده ، قرارداد و کیف پول را توضیح می دهد. کتابخانه اتر در حال انتزاع ارتباط بین برنامه و شبکه است. کتابخانه Hardhat پشتیبانی کامپایل ، آزمایش و استقرار را ارائه می دهد.

01:08:07 - 01:13:55

مبانی زبان استحکام

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

اصول استحکام

01:13:56 - 01:22:20

قرارداد متقابل

ThePrimeagen یک قرارداد ضد و همچنین یک اسکریپت مستقر ایجاد می کند. بر خلاف مثال سلام جهان ، این قرارداد وضعیت را تغییر می دهد. تغییر در ایالت یک بلوک جدید ایجاد می کند و هزینه گاز را ایجاد می کند.

01:22:21 - 01:31:04

مشاهده روشها در مقابل روشهای معامله

ThePrimeAgen قرارداد را اصلاح می کند ، بنابراین روش های جداگانه ای برای مشاهده شمارش و جهش شمارش وجود دارد. این بهترین عمل اجازه می دهد تا تماس های روش بدون هزینه گاز یا تأیید در سراسر blockchain رخ دهد. کار با اعداد بزرگتر از JavaScript که از آنها پشتیبانی می کنند نیز در این بخش پوشش داده شده است.

01:31:05 - 01:37:08

نمایش شمارش قرارداد در وب سایت

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

01:37:09 - 01:46:05

امضا کنندگان و منتظر معاملات

ThePrimeAgen یک امضا کننده به برنامه اضافه می کند که امتیازات تغییر دولت را فراهم می کند. یک امضا کننده مورد نیاز است زیرا یک ارائه دهنده فقط نحوه دسترسی به قرارداد را مشخص می کند و نمی تواند حالت را تغییر دهد. از آنجا که یک معامله ناهمزمان است ، برنامه قبل از به روزرسانی UI باید منتظر بماند تا معامله کامل شود. اشکال زدایی خطاهای غیرخطی نیز در این بخش پوشش داده شده است.

01:46:06 - 01:56:44

وقایع قرارداد

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

01:56:45 - 02:07:00

شبکه تست کیمیاگری

ThePrimeAgen نشان می دهد که چگونه کیمیاگری برای استقرار قرارداد به یک شبکه آزمایش زنده استفاده می شود. در این حالت ، شبکه آزمایش Rinkeby است. یک نقطه پایانی API کیمیاگری در پرونده Hardhat. config. ts مشخص شده است. سپس Metamask به یک حساب مجاز برای Rinkeby نیاز دارد.

02:07:01 - 02:12:03

نمای کلی گاز

ThePrimeagen توضیح می دهد که اصطلاح "گاز" به هزینه معامله اشاره دارد. وی واحد اساسی اتر است. gwei یا Gigawei اندازه گیری معمولی برای گاز است.

02:12:04 - 02:20:04

خبرنگار گاز

ThePrimeagen نحوه استفاده از ماژول hardhat-gas-reporter را برای تخمین هزینه گاز برای یک قرارداد نشان می دهد. ماژول در فایل پیکربندی hardhat گنجانده شده است. پس از ایجاد قرارداد، یک اسکریپت آزمایشی برای فراخوانی متدها در قرارداد نوشته می شود. گزارش گاز در کنسول نمایش داده می شود.

بازی

02:20:05 - 02:32:06

تنظیم قرارداد بازی

ThePrimeagen شروع به ساخت یک بازی RPG اساسی می کند و برخی از ویژگی های زبان اضافی Solidity را معرفی می کند. قرارداد ایجاد شده و از نوع enum برای مدیریت انواع مختلف بازیکن استفاده می کند. تعدیل کننده پرداخت به هر عملکردی که نیاز به پرداخت پولی در فراخوانی تابع دارد اضافه می شود.

02:32:07 - 02:36:41

ذخیره سازی قرارداد بازی

ThePrimeagen از نقشه برداری برای ذخیره قهرمانان تولید شده توسط کاربر استفاده می کند. نقشه برداری از آدرس کاربر به عنوان کلید استفاده می کند. آدرس به لیستی از مقادیر uint اشاره می کند.

02:36:42 - 02:47:55

تولید اعداد تصادفی

ThePrimeagen از یک مولد اعداد تصادفی برای انتخاب یک ویژگی بازیکن و اختصاص یک مقدار استفاده می کند. سپس این ویژگی به آرایه addressToHeroes فشار داده می شود. مسائل مربوط به تولید اعداد تصادفی در زنجیره بلوک یکسان نیز در این بخش مورد بحث قرار می گیرد.

02:47:56 - 03:01:10

بیت و تغییر بیت

ThePrimeagen تفاوت بین اعداد base10، base16 و base2 را توضیح می دهد. عملگر شیفت چپ (<<) shifts the bits in a binary number to the left by adding zeros to the right of the number. It's the binary equivalent of multiplying a decimal number by 10.

03:01:11 - 03:09:28

عملیات منطقی روی بیت ها

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

03:09:29 - 03:23:50

خواندن از روش های ذخیره سازی

ThePrimeagen توابع کمکی را برای خواندن ویژگی های پخش کننده از حافظه ایجاد می کند. از آنجایی که مقادیر مشخصه در مکان های بایت خاصی در نقشه برداری ذخیره می شوند، تابع کمکی به سمت چپ تغییر مکان می دهد و از عملگر AND (&) منطقی برای برگرداندن مقدار استفاده می کند.

03:23:51 - 03:38:54

تست روش های ذخیره سازی

ThePrimeagen تست هایی را برای چند ویژگی بازیکن ایجاد می کند. از آنجایی که ویژگی ها به صورت تصادفی تولید می شوند، قرارداد Hero تمدید می شود و متد generateRandom لغو می شود تا مقدار تعیین شده توسط اسکریپت تست را برگرداند.

03:38:55 - 03:41:31

قرارداد استقرار

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

الماس

03:41:32 - 03:52:25

الگوهای الماس فال

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

03:52:26 - 04:04:42

تماسهای نماینده الگوی الماس

ThePrimeAgen یک عملکرد نماینده ایجاد می کند که می تواند با استفاده از متن قرارداد فعلی ، یک روش را در قرارداد دیگر فراخوانی کند. این شبیه به استفاده از روش CALL () در JavaScript است. داده ها در قرارداد الماس باقی مانده و آدرس خارجی تغییر نمی کند.

04:04:43 - 04:13:26

نمای کلی ذخیره سازی الگوی الماس

ThePrimeAgen نشان می دهد که چگونه حافظه در الگوی الماس ذخیره می شود. استحکام تلاش می کند تا تا حد امکان محکم بسته شود. آنها به ترتیب اعلام شده به ذخیره سازی اضافه می شوند. متغیرها اگر به اندازه کافی کوچک باشند ، شکافهای مجاور را به اشتراک می گذارند.

04:13:27 - 04:26:17

ذخیره سازی برنامه الگوی الماس

ThePrimeAgen یک ساختار AppStorage ایجاد می کند تا به عنوان یک مکان مشترک برای ذخیره داده های برنامه عمل کند. تنها مسئله این راه حل ذخیره سازی این است که این امکان را دارد که در یک بلوک ذخیره سازی از قبل اختصاص یافته بنویسد. راه حل استفاده از مونتاژ برای انتخاب یک مکان ذخیره سازی تصادفی است.

04:26:18 - 04:45:51

پیمایش قرارداد الماس

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

04:45:52 - 04:50:34

تعویض توابع از الماس

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

04:50:35 - 04:54:43

Q&A

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

پیچیدن

04:54:44 - 04:57:20

پیچیدن

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

نرم افزار مفید تریدر...
ما را در سایت نرم افزار مفید تریدر دنبال می کنید

برچسب : نویسنده : احمد شاملو بازدید : 49 تاريخ : يکشنبه 27 فروردين 1402 ساعت: 12:49