آموزش ساخت Dapp پرریسک بر روی بلاکچین ترون

آموزش ساخت Dapp پرریسک بر روی بلاکچین ترون

در دوره‌ی آموزش برنامه نویسی بلاکچین solidity شما با توسعه یک قرارداد هوشمند ترون آشنا خواهید شد. برنامه نویسی قراردادهای هوشمند، یا Smart Contracts موضوع محبوبی در دنیای بلاک‌چین است و این باعث شده که تکنولوژی‌های توسعه و همینطور حوزه استفاده به طور مداوم گسترش یابند. معمولا در نوشته‌های مربوط به معرفی قرارداد هوشمند، از مثال دستگاه‌های فروش خودکار یا vending machine برای بیان مفهوم اسمارت کانترکت استفاده می‌شود. این دستگاه‌ها در جاهایی مثل فرودگاه‌ها و ایستگاه‌های مترو کاربرد دارند و به ازای دریافت وجهی، نوشیدنی، قهوه یا حتی کتاب به مشتری تحویل می‌دهند. وقتی شما با این دستگاه مواجه می‌شوید، با فرض این‌که دستگاه روشن و سالم باشد، به محض انداختن سکه توسط شما، نوشیدنی یا قهوه ارائه خواهد داد. یعنی یک سیستم بسته و بدون احتیاج به دخالت بیرونی به طوری که شما می توانید به تصویری که از ماشین فروش دارید اعتماد کنید و به راحتی با آن کار کنید. این مثال را می توان برای عملکرد قراردادهای هوشمند استفاده کرد. خارج از این مثال، شاید جالب باشد که بدانید، بیت‌کوین اولین قرارداد هوشمندی بود که به دنیا عرضه شد و قابلیت آن ثبت تراکنش بود. 

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

بلاک‌چین ترون، دومین بلاک‌چین محبوب در دنیای توسعه قراردادهای هوشمند (بعد از اتریوم) است و سادگی توسعه، باعث شده که برنامه نویسان زیادی به توسعه قراردادهای هوشمند در این بلاک چین مشغول شوند. زبانی که برای توسعه قرارداد هوشمند در بستر بلاک‌چین ترون استفاده می‌شود زبان برنامه‌نویسی Solidity است. Solidity سالیدیتی زبانی‌ است که توسط توسعه دهندگان بلاک‌چین اتریوم برای نوشتن قرارداد هوشمند روی بلاک‌چین اتریوم، ابداع شد. با توجه انشعاب بلاک‌چین ترون از اتریوم، از همان زبان برای توسعه DApp های ترون استفاده گردید.

DApp چیست ؟

برنامه‌های پیاده‌سازی قرادادهای هوشمند را اپلیکیشن های غیر متمرکز یا DApp (Decentralized Application) می‌نامند. کلیدواژه هایی شبیه «بهترین قرارداد هوشمند ترون»، «پروژه‌های سرمایه‌گذاری ترون» یا خود عبارت « قرارداد هوشمند ترون » در ایران بیشتر مرتبط با موضوع High-risk DApp ها هستند. بنظر می‌رسد عدم وجود مستندات آموزشی کافی باعث سوء استفاده از کاربران غیر حرفه‌ای در این موضوع شده است. در اینجا خوب است به پروژه سرمایه‌گذاری شارک دیفای (Shark Defi) اشاره‌ای کنیم، که میانه سال ۹۹ مشخص شد کلاهبرداری بوده، و در کشور ما سر و صدای زیادی به پا کرد.

آموزش ساخت قرارداد هوشمند ترون

این موضوع انگیزه اصلی ما در انتشار دوره آموزشی با موضوع «توسعه یک high-risk DApp روی بلاکچین ترون» بود. این دانش در اختیار افراد بسیار محدودی بود و آن‌ها با این تصور که خیلی کار عجیبی انجام می‌دهند، امکانی برای خودشان فراهم کرده بودند که بتوانند به شکل غیرمنصفانه، کاری شبیه کلاهبرداری انجام دهند. همچنین به عقیده ما Smart contractها در دانش برنامه‌نویسی آینده بسیار مهم هستند و قصد داشتیم به طریقی این موضوع را آموزش دهیم. به همین جهت این دوره را حول موضوع High-risk DApp پیش بردیم که اقبال و آشنایی عمومی با آن وجود دارد. ما در این دوره آموزشی تمام مراحل مربوط به طراحی و توسعه یک اپلیکیشن غیر متمرکز را کاملاً به صورت کاربردی و پروژه محور آموزش می دهیم. این دوره از دو بخش تشکیل شده است: قرارداد هوشمند: در بخش اول با زبان برنامه نویسی سالیدیتی، نحوه توسعه قراردادهای هوشمند، و همچنین با نحوه انتشار قرارداد هوشمند نوشته شده بر روی بلاک چین ترون آشنا می شویم. اپلیکیشن وب: بخش دوم به موضوع نحوه اتصال یک اپلیکیشن وب به قرارداد هوشمند و صدا زدن توابع قرارداد هوشمند و همچنین خواندن رویدادهای آن اختصاص دارد.

چه چیزهایی یاد میگیریم؟

  • ساختار معماری یک اپلیکیشن غیر متمرکز
  • زبان برنامه نویسی Solidity و برنامه نویسی قراردادهای هوشمند
  • کامپایل و انتشار قرارداد هوشمند بر روی بلاک چین ترون
  • کار کردن با کتابخانه جاوا اسکریپتی tronweb
  • توسعه لایه وب یک اپلیکیشن غیر متمرکز

این دوره برای چه کسانی مناسب است؟

این دوره برای کسانی ساخته شده است که با مفاهیم پایه برنامه نویسی وب آشنا هستند و تجربه برنامه نویسی در سمت کلاینت به زبان جاوا اسکریپت را دارند. لازم نیست که شما در این زمینه حرفه‌ای باشید. همین قدر که کمی با زبان جاوا اسکریپت کار کرده باشید و با مفاهیم پایه ای مانند html و css آشنا باشید، برای شروع این دوره کافیست. البته کمی تجربه عملی در دنیای اپلیکیشن های غیر متمرکز هم ضروری به نظر می‌رسد. به طور مثال شما با طریقه استفاده از کیف پول ترون آشنا باشید.   در ادامه بر اهم مطالب ارائه شده در قسمت‌های مختلف این دوره مروری خواهیم داشت:

قراردادهای هوشمند در بلاک چین

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

 

Dapp چیست و آشنایی با معماری اپلیکشن های غیر متمرکز و وجه تمایز آن

معماری یک اپلیکیشن غیر متمرکز تفاوت های اساسی با برنامه های کلاینت-سرور دارد. برای برنامه نویس های دنیای اپلیکیشن های متمرکز ضروری است که قبل از شروع به فراگیری برنامه نویسی DAPP، با این نوع جدید از معماری آشنا شوند و این چیزی است که ما در این ویدیو در مورد آن صحبت می کنیم.

مفهوم High-risk DApp

در این ویدیو ابتدا به مفهوم High-risk DAPP، مخاطرات و ابهامات پیرامون آن در دنیای اپلیکیشن‌های غیر متمرکز می پردازیم و سپس با کلمات کلیدی موجود در موضوع یک High-risk DAPP و عملکرد آنها آشنا می شویم.

 

مفهوم زبان برنامه نویسی solidity

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

محیط توسعه و زبان سالیدیتی و افزونه های مورد نیاز

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

ساختار توابع مورد نیاز در قرارداد هوشمند

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

مفهوم کلیدی mapping در قرارداد هوشمند و تعریف ساختار داده

این بخش ابتدا با مفهوم کلیدی mapping در قرارداد هوشمند برای تعریف آرایه های key=>value آغاز می‌شود. سپس یاد میگیریم که ساختار داده اختصاصی خود را برای ذخیره اطلاعات در قرارداد هوشمند تعریف کنیم.

افزودن سرمایه‌گذار جدید به قرارداد هوشمند و نحوه محاسبه پاداش ارجاع

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

توابع و متغیرهای خاص قرارداد هوشمند

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

محاسبات مربوط به مبلغ قابل برداشت

این قسمت به محاسبات مربوط به مبلغ قابل برداشت بر اساس نوع طرح سرمایه گذاری و زمان سرمایه گذاری اختصاص دارد.

آشنایی با مفاهیم memory و storage و توسعه تابع برداشت

در این قسمت با مفاهیم memory و storage آشنا شده و سپس تابع برداشت را توسعه می دهیم.

آشنایی با خصوصیت‌هایpure ، view ،payable در توابع زبان solidity و مفهوم event در قرارداد هوشمند

در این بخش ابتدا با خصوصیت هایpure ،view ،payable در توابع زبان solidity آشنا می شویم سپس یاد می گیریم که از مفهوم event برای ثبت رویدادهای اتفاق افتاده در قرارداد هوشمند خود بهره ببریم.

بلاک چین تستی Shasta در شبکه Tron چیست؟

اینجا ابتدا با مفهوم بلاک چین تستی Shasta در شبکه Tron آشنا شده و سپس یاد می‌گیریم که قرارداد نوشته شده را ابتدا کامپایل کرده و سپس بر روی بلاکچین Shasta منتشر کنیم.

تعامل با قراردادهای هوشمند ترون با استفاده از رابط کاربری وب سایت tronscan

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

پکیج جاوا اسکریپتی tronweb چیست؟

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

فراخوانی توابع قراردادهوشمند و نمایش میزان سرمایه‌گذاری و تعداد سرمایه گذار در صفحه وب

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

توابع نوشتنی و فراخوانی تابع invest

در این قسمت با نمایش جزئیات اطلاعات مربوط به کاربر جاری بخش توابع خواندنی قرارداد هوشمند را تمام کرده و وارد موضوع توابع نوشتنی می شویم و نحوه صدا زدن تابع Invest و سرمایه‌گذاری در قرارداد هوشمند را آموزش می بینیم.

نحوه برداشت، شیوه نمایش مبلغ قابل برداشت و رویدادهای قرارداد هوشمند ترون

یاد می گیریم که چگونه مبلغ قابل برداشت را نمایش دهیم، چگونه از قرارداد برداشت کنیم و همچنین نحوه نمایش رویدادهای اتفاق افتاده در قرارداد مانند سرمایه‌گذاری یا برداشت را فرا میگیریم.

حرکت به سمت برنامه نویسی پیشرفته

بعد از یاد گرفتن مفاهیم پایه برنامه نویسی قراردادهای هوشمند، در این ویدیو با کلید واژه های مهم برای حرکت به سمت حرفه ای شدن در برنامه نویسی قراردادهای هوشمند آشنا می شویم."

پیش‌نیازها

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

توسعه قرارداد هوشمند

155 دقیقه
قراردادهای هوشمند در بلاک چین 06:46
dapp چیست و آشنایی با معماری اپلیکشن های غیر متمرکز و وجه تمایز آن با سایر اپلیکیشن‌ها 05:09
مفهوم High-risk DApp 08:27
مفهوم زبان برنامه نویسی solidity 10:48
محیط توسعه و زبان سالیدیتی و افزونه های مورد نیاز 11:52
نیاز به خرید دوره
ساختار توابع مورد نیاز در قرارداد هوشمند 11:18
نیاز به خرید دوره
مفهوم کلیدی mapping در قرارداد هوشمند و تعریف ساختار داده 12:09
نیاز به خرید دوره
افزودن سرمایه‌گذار جدید به قرارداد هوشمند و نحوه محاسبه پاداش ارجاع 11:21
نیاز به خرید دوره
توابع و متغیرهای خاص قرارداد هوشمند 11:13
نیاز به خرید دوره
محاسبات مربوط به مبلغ قابل برداشت 13:59
نیاز به خرید دوره
آشنایی با مفاهیم memory و storage و توسعه تابع برداشت 14:38
نیاز به خرید دوره
آشنایی با خصوصیت‌هایpure ، view ،payable در توابع زبان solidity و مفهوم event در قرارداد هوشمند 10:54
نیاز به خرید دوره
بلاک چین تستی Shasta در شبکه Tron چیست؟ 13:12
نیاز به خرید دوره
تعامل با قراردادهای هوشمند ترون با استفاده از رابط کاربری وب سایت tronscan 13:33
نیاز به خرید دوره

توسعه Web Application 

55 دقیقه
پکیج جاوا اسکریپتی tronweb چیست؟ 13:03
نیاز به خرید دوره
فراخوانی توابع قراردادهوشمند و نمایش میزان سرمایه‌گذاری و تعداد سرمایه گذار در صفحه وب 14:03
نیاز به خرید دوره
توابع نوشتنی و فراخوانی تابع invest 12:11
نیاز به خرید دوره
نحوه برداشت، شیوه نمایش مبلغ قابل برداشت و رویدادهای قرارداد هوشمند ترون 11:21
نیاز به خرید دوره
حرکت به سمت برنامه نویسی پیشرفته 04:51

نظرات (۱۹)

elyas bardast quchani

1400-10-17

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

علیرضا سپهری اصل

1400-09-10

سلام استاد سوالی داشتم من چند اسمارت کانتراکت از bsc کپی کردم و تنها اسم و آدرس ولت کانترکت عوض کردم ولی بر روی شبکه BSC هرکاری میکنم کامپایل نمیشه در حالی که همین کانتراکت کامپایل شده بوده که من کپی برداشتم به نظر شما علت چی میتونه باشه؟

aa1111

1400-08-24

با سلام و وقت بخیر ، کجا میتونم به سورس کد پروژه دسترسی داشته باشم ؟

وحید فرزام

1400-08-24

سلام دوست عزیز, تمام کدهای نوشته شده برای هر قسمت از دوره به صورت فایل پیوست در هر درس قابل دانلود می باشد

محمد صادق

1400-04-20

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

محسن علاقمند

1399-11-27

سلام جناب فرزام روزتون بخیر ممنون بابت دوره بسیار عالیتون یه سوال داشتم،سمت کلاینت رو با چی کار کردید؟یعنی علاوه بر html+css دیگه از چی استفاده شده؟ و اینکه الان آموزش کامل و قابل استفاده هست همش به همراه سورس؟ ممنونم

وحید فرزام

1399-11-28

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

elyas bardast quchani

1399-11-18

سلام عرض ادب احترام من میخوام بجای کوین ترون توکن تتر usdt رو به قرارداد هوشمند ارسال کنم با تشکر

وحید فرزام

1399-11-19

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

ali rafati

1399-11-04

سلام استاد، من تو tronide یه قرارداد ساده solidity معرفی کردم حالا می خوام تو وب سایت شخصی خودم به توابع دسترسی داشته باشم. آیا تو دوره شما به این مبحث اشاره شده؟

وحید فرزام

1399-11-19

سلام بلی، به موضوع صدا زدن توابع قرارداد هوشمند توسط جاوااسکریپت در این دوره به طور کامل پرداخته شده است

Arash Htm

1399-10-26

سلام خسته نباشید از دوره بسیار عالیتون من تو درس چهارم متاسفانه هر کاری میکنم نمیتونم فایل سالیدیتی رو که به عنوان تست هست کامپایل کنم تو ترمینال vscode و اینکه جهت انتقال کل فایلها برو روی هاست فقط فایلهای پروژه رو کپی کنم کافی هست یا کار دیگه ای هم رو هاست انجام بدم و اینکه سورس کد این دروس رو هم میشه ازتون گرفت ؟ بی نهایت سپاسگذارم

وحید فرزام

1399-10-30

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