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

آشنایی با برنامه‌نویسی بلاکچین با Solidity

Solidity یکی از زبان‌های برنامه‌نویسی تخصصی برای توسعه قراردادهای هوشمند بر روی بلاکچین اتریوم است. این زبان به دلیل سازگاری با محیط‌های غیرمتمرکز و قابلیت ایجاد قراردادهای امن و پیچیده، به یکی از پرکاربردترین زبان‌ها در حوزه توسعه بلاکچین تبدیل شده است. Solidity به دلیل ویژگی‌هایی همچون شبیه‌سازی رفتارهای مالی و امکان اجرای اتوماتیک قراردادها در حوزه‌هایی مانند DeFi، بازی‌های بلاکچینی و اپلیکیشن‌های غیرمتمرکز (dApps) کاربرد دارد.

Solidity چیست؟

Solidity یک زبان برنامه‌نویسی سطح بالا و شیءگرا است که برای نوشتن قراردادهای هوشمند طراحی شده است. این قراردادها به طور خودکار و بدون واسطه بر روی بلاکچین اجرا می‌شوند. Solidity که بر اساس سینتکس‌های شبیه به JavaScript و C++ ساخته شده، به توسعه‌دهندگان کمک می‌کند تا قراردادهایی را پیاده‌سازی کنند که بتوانند تراکنش‌های مالی، ذخیره‌سازی داده‌ها و منطق‌های کسب‌وکاری را به صورت غیرمتمرکز و با امنیت بالا انجام دهند.

چرا Solidity برای توسعه بلاکچین مناسب است؟

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

تاریخچه Solidity

Solidity در سال ۲۰۱۴ توسط Gavin Wood و تیم توسعه‌دهنده اتریوم معرفی شد. این زبان با هدف ساده‌سازی توسعه قراردادهای هوشمند و بهبود امنیت آنها طراحی شد. از آن زمان، Solidity به‌طور مداوم به‌روزرسانی شده و امکانات جدیدی مانند پشتیبانی از انواع داده‌های پیچیده و بهینه‌سازی عملکرد به آن افزوده شده است.

کاربردهای Solidity

Solidity در حوزه‌های مختلفی از بلاکچین کاربرد دارد، از جمله:

  • قراردادهای هوشمند: پیاده‌سازی قراردادهای خودکار برای اجرای توافقات مالی.
  • DeFi: توسعه پروتکل‌های مالی غیرمتمرکز که کاربران را بدون نیاز به واسطه‌ها به یکدیگر متصل می‌کنند.
  • توکن‌های NFT و ERC-20: پیاده‌سازی و مدیریت توکن‌های غیرقابل تعویض و قابل تعویض بر بستر بلاکچین.
  • dApps: اپلیکیشن‌های غیرمتمرکزی که بر روی شبکه بلاکچین اجرا می‌شوند و تعامل کاربران را با قراردادهای هوشمند فراهم می‌کنند.

امنیت در Solidity

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

مزایای Solidity

  • امنیت بالا: قراردادهای هوشمند اجراشده بر روی بلاکچین ایمن هستند و نیاز به واسطه‌ها را حذف می‌کنند.
  • شفافیت: تمامی تراکنش‌ها و داده‌ها بر روی شبکه بلاکچین ثبت و قابل مشاهده برای همه کاربران هستند.
  • غیرمتمرکز بودن: اپلیکیشن‌ها و قراردادهای توسعه‌یافته با Solidity به طور کامل در محیط‌های غیرمتمرکز اجرا می‌شوند.
  • پشتیبانی از انواع داده‌ها: Solidity از انواع داده‌های پیچیده پشتیبانی می‌کند که به توسعه‌دهندگان امکان پیاده‌سازی منطق‌های پیچیده‌تری را می‌دهد.

چالش‌های استفاده از Solidity

یکی از چالش‌های اصلی استفاده از Solidity، پیچیدگی و حساسیت بالای توسعه قراردادهای هوشمند است. یک اشتباه کوچک می‌تواند به مشکلات امنیتی بزرگی منجر شود و خسارات مالی زیادی به بار آورد. همچنین، هزینه‌های اجرای قراردادها (Gas Fee) ممکن است بالا باشد و مدیریت بهینه منابع بلاکچین یکی از دغدغه‌های مهم توسعه‌دهندگان است.

سرفصل های آموزشی طبق استاندارد فنی و حرفه ای کشور

زمان آموزش نظری
0
زمان آموزش عملی
0
طول دوره آموزش
0
هزینه دوره (تومان)
0
هزینه دوره ویژه (تومان)
0

بکارگیری مفاهیم بلاک چین، توکن و کوین

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

دانش:
  • مفاهیم و اصطلاحات بلاکچین
  • نحوه کار بلاکچین
  • تراکنش ها در بلاکچین
  • آموزش بلاک و آموزش آن
  • نحوه آشنایی با اقتصاد توکنی مبتنی بر ارزهای دیجیتال
  • نحوه آموزش توکن
  • انواع توکن
  • تفاوت کوین و توکن
  • نحوه بکارگیری استیبل کوین
  • نحوه بکارگیری NFT
مهارت:
  • مفاهیم پایه ای بلاک چین
  • بکارگیری Explorer ها در بلاک چین
  • بکارگیری توکن
  • بکارگیری کوین
  • استفاده از توکن و کوین در بستر شبکه های مختلف ارز دیجیتال
سال 1400 (زمان تدوین استاندارد فنی‌وحرفه‌ای):

تمرکز اصلی بر مفاهیم ابتدایی بلاکچین، توکن‌ها، و تفاوت آن‌ها با کوین‌ها بود. همچنین مفاهیمی مانند استیبل‌کوین‌ها و تراکنش‌ها بیشتر از دیدگاه تئوریک آموزش داده می‌شد.

زمان حال و بازار کار:

توجه بازار به توسعه کاربردهای عملی، مانند ایجاد توکن‌های قابل معامله و پلتفرم‌های DeFi افزایش یافته است. همچنین، تقاضا برای استفاده از NFT در صنایع مختلف و گسترش اقتصاد توکنی افزایش یافته است​.

بکارگیری پلتفرم بلاکچین (Blockchain)، رمزنگاری و ارز های دیجیتال

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

دانش:
  • مفاهیم و اصطلاحات رایج ارزهای دیجیتال
  • کاربردهای ارز دیجیتال
  • نقاط ضعف و قوت ارزهای دیجیتال
  • تاریخچه ارزهای دیجیتال
  • توابع یا درهم ساز (توابع یک طرفه)
  • کلید خصوصی (Private Key)
  • کلید عمومی (Public Key)
  • امضاء دیجیتال (Digital Signature)
مهارت:
  • ثبت ارزهای دیجیتال و کاربرد های آن ها
  • نصب و راه اندازی یک کیف پول ارز دیجیتال
  • حفظ و نگه داری امن از کلید خصوصی
سال 1400 (زمان تدوین استاندارد فنی‌وحرفه‌ای):

مفاهیم اولیه رمزنگاری مانند کلید عمومی و خصوصی، و امضای دیجیتال مورد بحث قرار می‌گرفت.

زمان حال و بازار کار:

با رشد شبکه‌های لایه دوم و پیاده‌سازی‌های پیشرفته امنیتی، تقاضا برای یادگیری روش‌های مدیریت کلیدهای خصوصی و فناوری‌های امنیتی مانند کیف‌پول‌های چندامضایی و ابزارهای جدید امنیتی بالا رفته است. همچنین، بحث درباره بهینه‌سازی مصرف انرژی و استفاده از PoS به جای PoW بسیار مهم شده است​.

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

این سرفصل شامل آشنایی با مبانی برنامه‌نویسی در Solidity است، مانند نحوه استفاده از Constructor، انواع متغیرها، توابع و سطح دسترسی آنها. همچنین مفاهیمی مانند Mapping، Struct، Enum و Modifier در این زبان توضیح داده می‌شود. در این بخش، دانشجویان یک قرارداد هوشمند ساده را ایجاد و اجرا می‌کنند.

دانش:
  • Constructor در قرارداد های هوشمند
  • متغیرها و type ها در سالیدیتی
  • سطح دسترسی متغیرها در سالیدیتی
  • انواع تابع در سالیدیتی
  • سطح دسترسی توابع در سالیدیتی
  • نحوه بررسی Mapping در سالیدیتی
  • نحوه بررسی Address در سالیدیتی
  • نحوه بررسی Modifier و موارد کاربرد آن در سالیدیتی
  • نحوه بررسی Struct و Array در سالیدیتی
  • نحوه بررسی Enum دیتا تایپ تعریف شده توسط کاربر
مهارت:
  • ساختن یک قرارداد هوشمند ساده
  • بکارگیری تابع ساده
  • بکارگیری تابع پیشرفته
  • بکارگیری انواع متغیر ها
  • بکارگیری Modifier
  • بکارگیری Struct
  • بکارگیری Enum

سال 1400 (زمان تدوین استاندارد فنی‌وحرفه‌ای):

آموزش مفاهیم پایه‌ای مانند متغیرها، توابع و Mapping‌ها در Solidity.

زمان حال و بازار کار:

اکنون تمرکز بیشتری روی بهینه‌سازی قراردادهای هوشمند، مقیاس‌پذیری، و امنیت در توسعه DApp ها وجود دارد. برنامه‌نویسان همچنین باید با فناوری‌های Layer 2 و ZK-rollups برای بهبود سرعت و هزینه‌های کمتر در شبکه‌های بلاکچین آشنا باشند​

برنامه نویسی پیشرفته در Solidity

در این سرفصل تکنیک‌های پیشرفته‌ای مانند ارث‌بری، بررسی خطاها با REQUIRE و ASSERT، و نحوه استفاده از توابع انتقال موجودی (transfer, send, call) آموزش داده می‌شود. همچنین نحوه انتشار DApp، کامپایل و Deploy کردن قراردادهای هوشمند بر روی شبکه‌های تست اتریوم بررسی می‌شود. دانشجویان با مفهوم اوراکل‌ها و مدیریت داده‌های خارج از زنجیره نیز آشنا می‌شوند.

دانش:
  • تکنیک های افزایش قابلیت کنترل و بازنگری برنامه (Auditability) در سالیدیتی
  • ارث بری (Inheritance)
  • کاهش خطا توسط چک کردن کد با عبارات REQUIRE, ASSERT, REVERT
  • نحوه کار با توابع transfer و send و call جهت انتقال موجودی به یک اکانت دیگر
  • فرایند انتشارار DApp
  • نحوه کامپایل کدهای سالیدیتی و انتشارار قرارداد هوشمند
  • Deploy کردن DApp توسط Rinkeby Test-Ether و io
  • مفهوم دیتای خارج از زنجیره (Off-Chain)
  • ساختاراوراکل ها در (دیتاسورس/ساختمان داده های شخص ثالث)
مهارت:
  • ساختن یک قرارداد هوشمند فرزند
  • نصب و کار با IPFS
  • چک کردن خطا های کد قرارداد هوشمند
  • انجام تراکنش از یک قرارداد هوشمند
  • اجرای Deploy کردن یک قرارداد هوشمند بروی شبکه تست اتریوم
  • پیاده سازی آپلود فایل با استفاده از IPFS
  • استفاده از یک Oracle
سال 1400 (زمان تدوین استاندارد فنی‌وحرفه‌ای):

ارث‌بری و توابع انتقال در قراردادهای هوشمند.

زمان حال و بازار کار:

توجه به بحث Auditing و بررسی امنیتی قراردادها و ابزارهای پیشرفته برای انجام آزمون‌های امنیتی بیشتر شده است. ابزارهایی مانند Slither برای تحلیل قراردادهای هوشمند به‌صورت گسترده استفاده می‌شوند​.

بکارگیری کتابخانه JavaScript

در این سرفصل، نحوه کار با کتابخانه‌های Web3.js و Ether.js برای تعامل با بلاکچین اتریوم آموزش داده می‌شود. دانشجویان یاد می‌گیرند که چگونه با استفاده از این ابزارها DApp بسازند، رویدادهای شبکه را مدیریت کنند و از توابع مختلف برای ارتباط با بلاکچین استفاده نمایند.

دانش:
  • نحوه بررسی ماژول های مختلف js و Ether.js
  • نحوه بررسی event ها جهت رویدادهای شبکه بلاکچین
  • نحوه استفاده از توابع Web3 util
مهارت:
  • ساختن یک DApp با استفاده از Ether.js
  • ساختن یک DApp با استفاده از Web3.js
سال 1400 (زمان تدوین استاندارد فنی‌وحرفه‌ای):

کار با Web3.js و تعامل با شبکه‌های بلاکچین.

زمان حال و بازار کار:

استفاده از کتابخانه‌های جدیدتر مانند Hardhat و Foundry برای توسعه قراردادهای هوشمند و تست‌های خودکار جایگزین روش‌های قدیمی شده‌اند. این ابزارها، امکانات بهتری برای توسعه‌دهندگان فراهم می‌کنند و کار با آن‌ها در بازار کار حیاتی شده است​.

پیاده سازی بستر فروش، واگذاری توکن و NFT ها

این سرفصل به آموزش ساخت و پیاده‌سازی توکن‌های ERC-20 و NFTهای ERC-721 و ERC-1155 می‌پردازد. همچنین، نحوه راه‌اندازی یک پروژه ICO، Airdrop و ایجاد مارکت NFT برای فروش آثار هنری پوشش داده می‌شود. دانشجویان با نحوه درج امکاناتی مثل بازگشت هزینه در صورت شکست پروژه آشنا می‌شوند.

دانش:
  • انواع و ساخت توکن ساده در سالیدیتی
  • استاندارد توکن ERC-20
  • نحوه ساخت یک NFT ساده در سالیدیتی
  • استاندارد توکن ERC-721 و ERC-1155
  • نحوه درج امکان refund هزینه ها در صورت شکست پروژه یا به نتیجه نرسیدن ICO
  • اصول توسعه یک مارکت جهت فروش و گذاری آثار هنری در قالب NFT های ERC-721 و ERC-1155
مهارت:
  • راه اندازی یک پروژه کامل ICO جهت عرضه توکن های ERC-20
  • پیاده سازی یک توکن معمولی
  • یاده سازی یک NFT
  • پیاده سازی یک ICO
  • پیاده سازی Airdrop
  • پیاده سازی یک Airdrop
  • پیاده سازی یک مارکت خرید و فروش NFT
سال 1400 (زمان تدوین استاندارد فنی‌وحرفه‌ای):

توسعه استانداردهای توکن‌های ERC-20 و ERC-721 و پیاده‌سازی پروژه‌های ICO.

زمان حال و بازار کار:

بازار به سمت ایجاد کاربردهای پیچیده‌تر برای NFT‌ها و استانداردهای جدیدتر مانند ERC-1155 و استفاده از مکانیزم‌های بازپرداخت هزینه‌ها در صورت شکست پروژه‌های DeFi حرکت کرده است. کاربرد NFT در صنایع گوناگون از جمله بازی‌های ویدیویی و هنرهای دیجیتال به‌شدت رشد کرده است.

ثبت نام در دوره

انواع فایل های مجاز : jpg, gif, png, pdf, حداکثر اندازه فایل‌ها : 10 MB.
انواع فایل های مجاز : jpg, gif, png, pdf, حداکثر اندازه فایل‌ها : 10 MB.
انواع فایل های مجاز : jpg, gif, png, pdf, حداکثر اندازه فایل‌ها : 10 MB.
انواع فایل های مجاز : jpg, gif, png, pdf, حداکثر اندازه فایل‌ها : 10 MB.
دوره های آموزشی(الزامی)
این زمینه برای اعتبار سنجی است و باید بدون تغییر باقی بماند .