چگونه یک توسعه دهنده بلاک چین شویم ؟ راهنمای گام به گام
صنعت بلاک چین و رمز ارزها اکنون جای خود را به خوبی در فضای اقتصاد جهانی باز کردهاند و شاهد علاقه بسیار بیشتر شرکتها به این فناوری هستیم. به همین جهت، افراد زیادی سعی دارند با نحوه توسعه بلاک چین آشنا شوند تا بلکه بتوانند از این راه سودآوری داشته باشند. مقاله پیش رو برنامهای کامل را در اختیار خوانندگان قرار میدهد تا بتوانند با منابع مختلف آشنا شده و کار آسانتری در راستای تبدیل شدن به یک توسعه دهنده بلاک چین داشته باشند.
آیا قصد دارید به یک توسعه دهنده بلاک چین تبدیل شوید؟ با توجه به درآمدهای بالا، گزارشهای به دست آمده از موفقیت اپلیکشن های غیرمتمرکز (Dapps) اتریوم و همچنین چالشهای فنی جالب توجه، بلاک چین به پروژهای جذاب برای توسعهدهندگان تبدیل شده است.
توسعه دهنده بلاک چین چه کسی است؟
پیش از آنکه مسیر تبدیل شدن به توسعه دهنده بلاک چین را آغاز کنیم، باید تعریف مشخصی از آن را ارائه دهیم.
“توسعه دهنده بلاک چین کسی است که به دنبال ارتقاء و توسعه اپلیکیشنهای غیرمتمرکز، قراردادهای هوشمند، پروتکل و معماری شبکه مبتنی بر فناوری بلاک چین است.”
این مسئولیت با تعهد بسیار زیادی همراه است و به قابلیتهایی مانند جزئیات نگری، دانش و توانایی غلبه بر چالشها نیاز دارد.
انواع توسعهدهندگان بلاک چین
درست همانند فناوریهای دیگر، انواع مختلفی از توسعه دهنده بلاک چین وجود دارد:
- توسعهدهندگان اصلی بلاک چین
- توسعهدهندگان نرمافزار بلاک چین
هر کدام از این موارد دارای نقشهای خاص خود هستند. بگذارید آنها را به طور مفصل شرح دهیم.
توسعهدهندگان اصلی بلاک چین
توسعهدهندگان اصلی بلاک چین مسئول طراحی شبکه هستند. آنها پروتکلهای مورد نیاز برای اجراء بلاک چین را طراحی میکنند. همچنین در میان جنبههای مهم دیگری که باید به آنها رسیدگی کنید میتوان به طراحی پروتکل اجماع (Consensus Protocol) و تصمیمگیریهای حائز اهمیت اشاره کرد.
به منظور فهم بهتر این مسئله میتوانیم مسئولیتهای کلیدی توسعهدهندگان اصلی بلاک چین را به صورت لیست درآوریم:
- فهمیدن و بکارگیری ویژگیها و کاربردهای بلاک چین
- طراحی پروتکلهای بلاک چین و پروتکلهای اجماع
- طراحی ویژگیهای امنیتی برای شبکه
- اطمینان حاصل کردن از کارآیی شبکه مطابق انتظارات
توسعهدهندگان نرمافزار بلاک چین
توسعهدهندگان نرمافزار بلاک چین کار متفاوتی انجام میدهند. نقش آنها توسعه و بکارگیری بلاک چین با استفاده از طرحهای ارائهشده توسط توسعهدهندگان اصلی بلاک چین است.
توسعهدهندگان نرمافزار بلاک چین به طراحی اپلیکیشنهای غیرمتمرکز (Dapps) میپردازند. به منظور فهم بهتر این مسئله میتوانیم مسئولیتهای اصلی توسعهدهندگان نرمافزار بلاک چین را به صورت لیست درآوریم.
- استفاده از طراحیها برای بکارگیری قراردادهای هوشمند
- توسعه بکاند (Backend) و فرانتاند (Fronend) اپلیکیشنهای غیرمتمرکز
- اطمینان حاصل کردن از اینکه اپلیکیشنهای غیرمتمرکز به صورت مطلوب کار میکنند
- مراقبت از یکپارچگی شبکه با استفاده از سرویس و اپلیکیشنهای دیگر
با این وجود، چنین مسئولیتهایی ممکن است برای افراد تازه وارد مبهم و مشکلساز باشند:
- از کجا میتوانم کار توسعه بلاک چین را آغاز کنم؟
- برای تبدیل شدن به توسعه دهنده بلاک چین باید چه چیزهایی بدانم؟
- آیا برای وارد شدن به فضای بلاک چین باید در امر رمزنگاری متخصص باشم؟
- چگونه میتوانم از یک توسعه دهنده مبتدی به یک توسعه دهنده مجرب تبدیل شوم؟
- در کدام شرکتهای بلاک چینی میتوانم کار پیدا کنم؟
در این مقاله به سوالات مطرحشده پاسخ خواهیم داد و برنامهای قدم به قدم را برای تبدیل شدن به یک توسعه دهنده بلاک چین ترسیم خواهیم کرد. اگر این برنامه را دنبال کنید میتوانید در عرض ۳ تا ۶ ماه به یک توسعه دهنده بلاک چین تبدیل شوید و همچنین قادر خواهید بود شغل مورد علاقه خود را در یک استارتآپ کریپتویی پیدا کنید.
خلاصه:
- قدم اول: هدف خود را تعیین کنید
- قدم دوم: یک بلاک چین را انتخاب کنید
- قدم سوم: در مورد اپلیکیشنهای غیرمتمرکز کنونی نکاتی را یاد بگیرید
- قدم چهارم: با اتریوم آشنا شوید
- قدم پنجم: ابزار و کتابخانههای توسعه بلاک چین را بیاموزید
- قدم ششم: با قراردادهای هوشمند و سالیدیتی (Solidity) آشنا شوید
- قدم هفتم: اپلیکیشن غیرمتمرکز خود را بسازید
- قدم هشتم: خود را برای مصاحبههای بلاک چینی آماده کنید
- قدم نهم: در شرکتهای بلاک چینی درخواست کار کنید
- قدم دهم: از انجمن بلاک چین کمک بگیرید
پیش از ادامه این بحث لازم است که به یکی از نگرانیهای رایج در میان توسعهدهندگانی بپردازیم که میخواهند وارد صنعت بلاک چین شوند: “آیا توانایی این را دارم که به یک توسعه دهنده بلاک چین تبدیل شوم؟”
بگذارید یک سوءتفاهم رایج را از میان برداریم: برای تبدیل شدن به یک توسعه دهنده بلاک چین لازم نیست در زمینه رمزنگاری یا سیستمهای توزیعشده (Distributed Systems) متخصص باشید. زمانی به این موارد نیاز خواهید داشت که قصد داشته باشید نرمافزار اصلی بلاک چین را توسعه دهید، اما بیشتر افراد اپلیکیشنها را بر روی بلاک چین به وجود میآورند، به همان شیوهای که توسعهدهندگان وب بیشتر به توسعه اپلیکیشنهای تحت وب میپردازند و کاری به توسعه مرورگرهای وب ندارند.
در هر صورت، چنین فرض میکنیم که پیش از این به مدت ۱ سال توسعه دهنده بودهاید. اگر چنین نیست، در ابتدا مواردی در مورد توسعه وب مطالعه کنید و سپس ادامه این مقاله را بخوانید.
قدم اول: هدف خود را تعیین کنید
تعدادی از مقالات در مورد نحوه تبدیل شدن به یک توسعه دهنده بلاک چین تنها اطلاعات مختلفی را در اختیار خوانندگان قرار میدهند، بدون اینکه هدف واقعی آنها را از نظر بگذرانند. چنین چیزی یک اشتباه بسیار بزرگ است. اگر زمان مشخصی را صرف فکر کردن در مورد اهداف و انگیزههای خود نکنید، ممکن است به آسانی ناامید شده و حتی به پایان مسیر نزدیک هم نشوید.
انگیزه شما از این کار چیست؟

بسیاری از توسعهدهندگان تازهوارد تنها به این دلیل وارد دنیای بلاک چین میشوند که سودهای کلانی از رمز ارزها به دست آورند. میفهمم که چنین چیزی بسیار هیجانانگیز است و پول درآوردن بسیار عالی است، اما اگر تنها به چنین هدفی اکتفاء کنید، ممکن است در مدتزمانی کوتاه انگیزه خود را از دست بدهید. در بهترین حالت، باید حداقل یک هدف دیگر نیز برای خود تعیین کنید.
برای مثال:
- ایجاد بخشی اساسی از یک اکوسیستم جدید
- مقابله با صنایع به هم ریخته و بهبود جهان (کسی از مسائل مالی حرف زد؟)
- کمک به جوامع مختلف با استفاده از قابلیت تمرکززدایی فراهم آمده توسط بلاک چین
کارمند یا کارآفرین؟
آیا میخواهید شغلی در یک شرکت بلاک چینی برای خود دست و پا کنید، یا قصد دارید پروژه بلاک چینی خود را راهاندازی کنید؟
صنعت بلاک چین با سرعت بسیار زیادی به پیش میرود و فرصتهای زیادی برای سودآوری در آن وجود دارد. کارآفرینان بلاک چینی بیشترین سهم این سودها را در اختیار خواهند داشت، اما توسعهدهندگان نیز میتوانند انتظار درآمدزایی داشته باشند.
طبق یکی از تحقیقات صورتگرفته توسط Computerworld، متوسط درآمد توسعهدهندگان بلاک چینی در هر سال برابر با ۱۴۰ هزار دلار آمریکا است. این رقم تقریبا ۴۰% بیشتر از درآمد توسعهدهندگان وب است. در میان مزایای دیگری که به عنوان توسعه دهنده بلاک چین از آن برخوردار خواهید شد میتوان به گزینههای بیشتر در خصوص شغلهای از راه دور اشاره کرد.
به عنوان یک کارآفرین، یکی از مزایای اصلی بلاک چین دسترسی آسانتر به سرمایه است. به لطف مکانیزم نوآورانه رویدادهای عرضه اولیه سکه (ICO)، تعدادی از پروژههای بلاک چینی توانستهاند میلیونها دلار جمعآوری سرمایه داشته باشند. برای مثال، زمانی که برندان آیک (Brendan Eich) (توسعه دهنده جاوا اسکریپت) مرورگر Brave را راهاندازی کرد، تنها در عرض ۲۵ ثانیه توانست ۳۶ میلیون دلار جمعآوری کند. در هر صورت به یاد داشته باشید که دوران شکوفایی رویدادهای عرضه اولیه سکه به پایان رسیده و روند جمعآوری سرمایه برای چنین پروژههایی به دلیل نظارتهای دولتی کاهش یافته است، اما فعالیت در این فضا باز هم نسبت به صنایع دیگر بسیار آسانتر است. یکی دیگر از مزایایی که به عنوان کارآفرین از آن برخوردار خواهید شد دسترسی آسانتر به کاربران است. بلاک چین یک پلتفرم جدید است و اپلیکیشن شما لازم نیست با پروژههای زیادی رقابت کند تا مورد توجه کاربران قرار گیرد. یکی از نقاط ضعف موجود این است که تعداد کاربران هنوز هم در مقایسه با پلتفرمهای دیگر پایین است، اما این مقدار به سرعت در حال افزایش است. زمانی که پلتفرم Cryptokitties در اواخر سال ۲۰۱۷ راهاندازی شد، به شیوهای ناگهانی موفقیت زیادی به دست آورد. آنها اخیرا اعلام کردند که توانستهاند ۱۲ میلیون دلار برای سهامداران خود (شامل Andreessen Horowitz) درآمدزایی داشته باشند.
کار بر روی پروتکلهای بلاک چینی یا اپلیکیشنهای آن؟
همانطور که در مقدمه این مقاله نیز در مورد آن حرف زدیم، “توسعه دهنده بلاک چین” میتواند دو معنی داشته باشد:
- توسعه دهندهای که بر روی نرمافزار اجراءکننده بلاک چین کار میکند (به عبارت دیگر، یک کلاینت بلاک چینی مانند Bitcore یا Geth)
- توسعه دهندهای که بر روی اپلیکیشنهای موجود در بلاک چین مانند Cryptokitties کار میکند
افراد تازهوارد به این فضا تصور میکنند که بیشتر توسعهدهندگان بلاک چینی به دسته اول تعلق دارند، اما چنین چیزی واقعیت ندارد. بیشتر توسعهدهندگان بلاک چینی به دسته دوم تعلق میگیرند.
بیشتر پلتفرمهای دیگر نیز بدین صورت هستند:
- در وب، بیشتر توسعهدهندگان به کار توسعه اپلیکیشنها میپردازند، نه مرورگرهای وب
- در دسکتاپ، بیشتر توسعهدهندگان به کار بر روی اپلیکیشنهای مختلف دسکتاپ میپردازند، نه سیستمعامل
این مقاله بیشتر برای افرادی نوشته شده است که قصد دارند در فضای بلاک چین فعالیت کنند، اما برای توسعهدهندگانی که میخواهند خود نرمافزار بلاک چین را توسعه دهند نیز نکات مفیدی وجود دارد.
چه بازه زمانی را برای خود مشخص کردهاید؟
اگر مدتزمان مشخصی را برای رسیدن به هدف خود تعیین نکنید، به احتمال زیاد به اندازه کافی به خود فشار نخواهید آورد تا آن را انجام دهید. باید یک بازه زمانی مشخص را برای خود تعیین کنید. هدف و بازه زمانی خود را به شیوهای واضح مشخص کنید. برای مثال:
- قصد دارم در مدتزمان ۳ ماه یک اپلیکیشن بلاک چینی را به وجود آورم.
- قصد دارم در مدتزمان ۲ ماه در روند ایجاد یک پروژه بلاک چینی مشارکت داشته باشم.
- میخواهم در عرض ۱ ماه سه پروژه بلاک چینی را به اتمام برسانم.
هماکنون حدود ۲۰۰۰ رمز ارز مبتنی بلاک چین در CoinMarketCap ثبت شدهاند و هر روز به این تعداد افزوده میشود. باید روشی منطقی برای جستجو در میان این اطلاعات بیپایان در اختیار داشته باشید.
قدم دوم: یک بلاک چین را انتخاب کنید
برای تبدیل شدن به یک توسعه دهنده بلاک چین نیازی نیست که با همه بلاک چینها آشنا شوید. در واقع، باید بر روی آن دسته از فناوریهای بلاک چین تمرکز کنید که واقعا اهمیت دارند و اجازه ندهید که پروژههای دیگر حواس شما را پرت کنند.
محبوبترین بلاک چینها شامل این موارد هستند:
- بیت کوین
- اتریوم
- EOS
بیت کوین باثباتترین و پایدارترین بلاک چین را در اختیار دارد. این شبکه تقریبا یک دهه است که تراکنشهای مختلف را پردازش میکند و پرکاربردترین بلاک چین نیز محسوب میشود. با این وجود، بیت کوین تنها قادر است تراکنشهای ساده را پردازش کند و برای بسیاری از موارد کاربرد چندانی ندارد.
اتریوم به منظور رفع محدودیتهای بیت کوین به وجود آمد و قابلیت اجراء برنامههایی کوچک با نام قراردادهای هوشمند (Smart Contracts) را در اختیار کاربران قرار میدهد. اتریوم را مانند یک ماشین مجازی کوچک در نظر بگیرید که در فضای بلاک چین قرار گرفته است. این بلاک چین یکپارچگی دادهها را تضمین کرده و قراردادهای هوشمند قابلیت انجام رایانش را در اختیار ما قرار میدهند. همین امر باعث شده است که اتریوم نسبت به بیت کوین انعطافپذیری بسیار بیشتری داشته باشد.
.
پلتفرم EOS به عنوان جایگزینی مدرن برای اتریوم ساخته شد. این پلتفرم نیز میتواند همانند اتریوم قراردادهای هوشمند را به مرحله اجراء درآورد. برخلاف اتریوم، تراکنشها روی EOS رایگان هستند. همچنین EOS نسبت به اتریوم مقیاسپذیری بسیار بیشتری دارد. در هر حال به یاد داشته باشید که این مقیاسپذیری با متمرکزسازی بیشتری همراه است و به همین خاطر نمیتوانیم آن را چندان زیاد به عنوان یک “بلاک چین” در نظر بگیریم.
ممکن است چنین به نظر برسد که EOS بهترین گزینه است. با این حال، یک عامل اساسی وجود دارد که EOS را از این عنوان دور میکند: تاثیرات شبکه (Network Effects). تاثیرات شبکه به این معناست که یک شبکه با ورود کاربران بیشتر ارزش بیشتری پیدا میکند. فیسبوک یک مثال بسیار مناسب است. به محض اینکه قدرت فیسبوک به اندازهای مشخص رسید، هیچ شانس رقابتی را برای شرکتهای دیگر باقی نگذاشت، چرا که کاربران جدید نمیخواستند از دوستان خود جدا بمانند که در فیسبوک حضور داشتند.
تاثیرات شبکه در بلاک چین نیز مشهود است، چرا که کاربران میخواهند قادر باشند با افراد دیگر به تراکنش بپردازند. تاثیرات شبکه همچنین در مورد آن دسته از انجمنهای توسعه دهنده کاربرد دارد که بر مبنای بلاک چینهای مختلف بنیان نهاده شدهاند. به منظور توسعه اپلیکیشنها با هزینه و مدتزمانی منطقی، نه تنها باید اکوسیستمی غنی و بزرگ از ابزارهای مختلف و همچنین کتابخانههای آنلاین توسعه اپلیکیشن در اختیار داشته باشیم، بلکه باید در بطن یک انجمن توسعه دهنده فعال و رقابتی قرار بگیریم.
چنین چیزی تنها زمانی اتفاق میافتد که انجمن به اندازه مشخصی برسد. انجمن توسعهدهندگان اتریوم بسیار بزرگتر از EOS بوده و مقابله با پیشروی آنها برای کاربران EOS بسیار مشکل است.
بلاک چین | پستهای اصلی در Reddit | پستهای توسعهدهندگان در Reddit | # اپلیکیشنهای غیرمتمرکز |
---|---|---|---|
اتریوم | ۴۰۰k | ۱۵k | ۲۰۰۰+ |
EOS | ۶۰k | ۳k | ۱۰۰+ |
به همین دلیل است که به شما پیشنهاد میکنم اتریوم را انتخاب کنید.
اگر اتریوم را انتخاب کردهاید، پیش از آنکه به سراغ یادگیری آن بروید، باید با نوع اپلیکیشنهایی آشنا شوید که توسعهدهندگان بر روی این شبکه به وجود میآورند.
قدم سوم: در مورد اپلیکیشنهای غیرمتمرکز نکاتی را یاد بگیرید
هماکنون حدود ۲۰۰۰ اپلیکیشن در شبکه اتریوم وجود دارد و هر روز به این عدد اضافه میشود. این اپلیکیشنها را با نام اپلیکیشن های غیرمتمرکز یا Dapps میشناسیم.
یکی از راههای مناسب برای پیدا کردن اپلیکیشنهای غیرمتمرکز محبوب این است که به وبسایتهای لیستکننده آنها سری بزنیم. در میان این وبسایتها میتوانیم به StateOfTheDapps و DappRadar اشاره کنیم. من شخصا DappRadar را ترجیح میدهم، چرا که دسترسی به لیست اپلیکیشنها در آن آسانتر بوده و از فاکتورهای زیادی مانند DAU (کاربران فعال روزانه) یا تعداد تراکنشها در هر روز برای طبقهبندی وبسایتها استفاده میکند.
محبوبترین انواع اپلیکیشنهای غیرمتمرکز که کاربران بر روی شبکه اتریوم به وجود میآورند شامل ۴ مورد هستند:
- صرافیهای غیرمتمرکز (Decentralized Exchanges)
- بازی
- اپلیکیشنهای شرطبندی
- بازارهای غیرمتمرکز
صرافیهای غیرمتمرکز (DEX) به آن دسته از بازارهای معاملاتی گفته میشوند که قابلیت معامله توکنهای ERC20 را به صورت همتا به همتا (Peer to Peer) فراهم میآورند. این صرافیها همچنین امکان معامله آن دسته از توکنهای کمتر شناخته شده را ممکن میسازند که نقدینگی کمتری دارند. صرافیهای متمرکز (کوینبیس، بیتفینکس و غیره) توکنهای ERC20 و دارای نقدینگی کم را در لیست خود قرار نمیدهند و همین امر فرصت معامله چنین توکنهایی را برای DEXها افزایش میدهد. محبوبترین صرافی غیرمتمرکز Idex است، اما میتوان به شرکتهای دیگری مانند Bancor یا Token Store نیز اشاره کرد.
اپلیکیشنهای غیرمتمرکز گیمینگ را بیشتر با عنوان بازیهای جمعکردنی (Collectible Games) میشناسیم. کاربران در ابتدا کاراکترهای بازی را از سازندگان بازی خریداری و سپس به شیوههای مختلف با کاراکترهای دیگر تعامل میکنند: جنگ، تولیدمثل و غیره. در مقایسه با بازیهای غیربلاک چینی، بارزترین ویژگی بازیهای بلاک چینی بخش اقتصادی آنها است. کاربران به لطف بلاک چین میتوانند کاراکترهای خود را بدون هزینههای اضافی به کاربران دیگر بفروشند و به هیچ عنوان نگران دخالت تولیدکنندگان بازی نباشند. معروفترین بازی غیرمتمرکز کنونی Cryptokitties است و کاربران در آن به جمع کردن گربههایی میپردازند که میتوانند زاد و ولد کنند.
اپلیکیشنهای شرطبندی در میان اولین مواردی بودند که در شبکه اتریوم ساخته شدند. پلتفرم Fomo3D یکی از محبوبترین آنها است. کاربران در این پلتفرم باید دائما از اترهای خود برای سرمایهگذاری استفاده کنند تا اجازه ندهند کاربر آخری تمامی پول را برنده شود. به یاد داشته باشید که اپلیکیشنهای شرطبندی در اتریوم آوازه چندان جالبی ندارند، چرا که بسیاری از آنها (به وضوح) برای کلاهبرداری ساخته شدهاند. این دسته از اپلیکیشنها بیشتر با عنوان برنامههای هرمی یا برنامههای پانزی (Ponzi Schemes) شناخته میشوند.
آخرین مورد شامل بازارهای غیرمتمرکز است. هماکنون بازارهای کمی در اتریوم وجود دارد، اما یکی از معروفترین آنها که سر و صدای زیادی نیز به پا کرده Decentraland است. این بازار به شکل واقعیت مجازی بوده و در شبکه اتریوم ساخته شده است.
میخواهید چه چیزی بسازید؟ اپلیکیشن گیمینگ؟ صرافی غیرمتمرکز؟ یا اینکه چیزی کاملا متفاوت در ذهن دارید؟ در هر صورت، به یاد داشته باشید که اگر کاربران بتوانند در Dapp شما با استفاده از توکنهای اتریوم به معامله بپردازند، مطمئنا بیشترین میزان سود را به دست خواهید آورد.
به محض اینکه در این مورد تصمیمگیری کردید، باید به فکر این باشید که به چه صورت میخواهید آن را بسازید. برای ساختن اپلیکیشن غیرمتمرکز باید با سه مولفه آشنایی داشته باشید:
- با نحوه عملکرد پروتکل اتریوم آشنا شوید
- نحوه نوشتن قراردادهای هوشمند در سالیدیتی را یاد بگیرید
- شیوه سر هم کردن تمامی قطعات در یک Dapp را بیاموزید
در ادامه این مقاله به بررسی موارد مذکور خواهیم پرداخت و بهترین منابع جهت یادگیری در مورد آنها را معرفی خواهیم کرد.
قدم چهارم: با اتریوم آشنا شوید
پروتکل اتریوم مبنای قراردادهای هوشمند و اپلیکیشنهای غیرمتمرکز است. به همین دلیل باید با اصول اتریوم آشنا شوید تا مابقی فرآیند توسعه در شبکه اتریوم را یاد بگیرید. با این وجود، اگر با جزئیات رمزنگاری و سیستمهای توزیعشده آشنایی چندانی ندارید نگران نباشید، مخصوصا اگر قصد دارید اپلیکیشنهای خود را در شبکه اتریوم به وجود آورید و نمیخواهید به توسعه پروتکل آن بپردازید.
در ابتدا وایت پیپر اتریوم را مطالعه کنید، چرا که توصیفات دقیقی از اتریوم ارائه میدهد. این وایت پیپر توسط ویتالیک بوترین (Vitalik Buterin)، خالق اتریوم، نوشته شده است.
مطالعه وایت پیپر میتواند یک شروع مناسب باشد، اما آشنایی با جزئیات اتریوم به تنهایی کافی نیست. اگر میخواهید بیش از اینها پیش بروید، میتوانید اوراق زرد (Yellow Paper) اتریوم را مطالعه کنید که توسط گوین وود (Gavin Wood) نوشته شده است. این اوراق شامل مشخصات فنی مورد استفاده توسط توسعهدهندگانی است که پروتکل اتریوم را به کار میگیرند. در این اسناد از قوانین ریاضیاتی زیادی استفاده شده است و مطالعه آنها کار آسانی نخواهد بود. من نیز چندین بار آنها را مطالعه کردم تا از آنها سردرآورم.

جای دیگری که میتوانید نکات زیادی را در مورد اتریوم یاد بگیرید انجمن تحقیقاتی اتریوم است. در این انجمن آنلاین، تیم تحقیقاتی بنیاد اتریوم (Ethereum Foundation) و ویتالیک بوترین به طور دائمی در مورد آخرین توسعههای صورتگرفته در پروتکل اتریوم به گفتگو میپردازند.
در روند یادگیری شبکه اتریوم میتوانید کد منبع چندین کلاینت اتریوم را نیز مطالعه کنید. میتوانید کد کلاینتهای اصلی مانند Geth یا Parity را مطالعه کنید، اما خواندن آنها ممکن است بسیار دشوار باشد. به جای آن میتوانید کلاینت Python یا جاوا اسکریپت را بخوانید.
پیش از آنکه ادامه دهیم این نکته را به خاطر بسپارید: در بلاک چین از واژه کلاینت (Client) برای نرمافزارهایی استفاده میکنیم که از پروتکل بلاک چین استفاده میکنند. برای مثال، Bitcore کلاینت اصلی بیت کوین و Geth نیز کلاینت اصلی اتریوم است. به این دلیل از واژه کلاینت استفاده میکنیم که بلاک چین به صورت غیرمتمرکز است و استفاده از کلمه سرور (Server) به معنی متمرکز بودن شبکه خواهد بود. اما عملکرد کلاینتها در بلاک چین شباهت بسیار زیادی به سرور دارد.
در نهایت اینکه کتاب یادگیری کامل اتریوم (Mastering Ethereum)، نوشته آندریاس آنتونوپولوس (Andrea Antonopoulos) و گوین وود که در نوامبر ۲۰۱۸ منتشر شد را مطالعه کنید. آنتونوپولوس کتاب یادگیری کامل بیت کوین (Mastering Bitcoin) را نیز نوشته است. این کتاب نیز ارزش مطالعه را دارد.
اکنون که چیزهایی را در مورد اتریوم یاد گرفتهاید، احتمالا میخواهید بدانید اپلیکیشنهای غیرمتمرکز را به چه صورت بر روی آن میسازیم. اما پیش از دانستن نحوه ساختن Dappها، باید با ابزار مورد نیاز و قراردادهای هوشمند آشنا شوید.
قدم پنجم: ابزار و کتابخانههای مورد نیاز برای توسعه بلاک چین را یاد بگیرید
برای توسعه قراردادهای هوشمند و اپلیکیشنهای غیرمتمرکز به این ابزارها نیاز خواهید داشت:
- Solc
- Web3
- Remix
- Truffle
- Ganache
- Metamask
Solc
ابزار Solc گردآورنده زبان برنامهنویسی سالیدیتی است. این ابزار به زبان C++ نوشته شده و دارای توافقنامه بازخرید GitHub نیز میباشد. میتوانید این ابزار را مستقیما از منبع به دست آورده یا اینکه با استفاده از زبان مورد علاقه خود به کار بگیرید.
برای Nodejs، میتوانید از Solcjs استفاده کنید.
به احتمال زیاد نیازی به استفاده مستقیم از کامپایلر سالیدیتی نخواهید داشت، اما آشنایی با آن میتواند مفید باشد.

Web3
Web3 یکی از کتابخانههای آنلاین است که برای ارتباط با کلاینتهای اتریوم مانند Geth یا Parity مورد استفاده قرار میگیرد. مهمترین قابلیت Web3 ایجاد عناصری است که قراردادهای هوشمند را فراهم میآورند. این عناصر میتوانند ارتباط با قراردادهای هوشمند را بسیار سادهتر سازند و میتوانید به گونهای از آنها استفاده کنید که گویی اتریوم برای هر کدام از بخشهای قرارداد هوشمند یک API (رابط برنامهنویسی کاربردی) قرار داده است.
به منظور یادگیری نکات بیشتر در مورد Web3، وبسایت رسمی و همچنین ویدیوهای ارائهشده در مورد نحوه بکارگیری قراردادهای هوشمند با استفاده از Web3 را مشاهده کنید.
همچنین اگر قصد استفاده از Python را دارید، مطمئنا خوشحال میشوید اگر بدانید یک پورت Python برای Web3 وجود دارد.
زمانی که از ویدیو و مقالات مختلف برای یادگیری در مورد Web3 استفاده میکنید، به نسخه مورد استفاده در آنها توجه کنید: نسخههای پیش و پس از Web3 1.0 با هم سازگار نیستند.

Remix
Remix یک محیط یکپارچه توسعه نرمافزاری (IDE) برای قراردادهای هوشمند سالیدیتی است. این ابزار ممکن است به سادگی نرمافزارهای ویرایش کد مانند Sublime Text یا Visual Studio Code نباشد، اما باز هم به عنوان جامعترین ابزار برای نوشتن کدهای سالیدیتی شناخته میشود. منابع زیادی برای یادگیری در مورد نحوه عملکرد این ابزار وجود ندارد، اما در یوتیوب میتوانید نکاتی را در مورد آن یاد بگیرید.

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

Ganache
Ganache یک بلاک چین اتریوم محلی است که برای توسعه نرمافزارهای مختلف مورد استفاده قرار میگیرد. با استفاده از Ganache و تنها با یک دستور ساده میتوانید یک نود (Node) اتریوم را اجراء کنید و ۱۰ آدرس دارای اتر به وجود آورید (البته این اترها فیک هستند)، که برای کار توسعه بسیار مفید است.
Ganache دارای CLI (رابط خط فرمان) و GUI (رابط کاربری گرافیکی) نیز است. راهنمای چندانی برای استفاده از GUI وجود ندارد، اما میتوانید از ویدیوهای منتشرشده در یوتیوب استفاده کنید.

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

اکنون که نکاتی را در مورد ابزارها و کتابخانههای آنلاین یاد گرفتهاید، زمان آن است که با نحوه عملکرد قراردادهای هوشمند آشنا شوید.
قدم ششم: با قراردادهای هوشمند و سالیدیتی (Solidity) آشنا شوید

قراردادهای هوشمند اجزاء اصلی تشکیلدهنده اپلیکیشنهای غیرمتمرکز هستند. برنامههای کوچکی وجود دارند که در بلاک چین اتریوم به کار گرفته شده و به محض راهاندازی به صورت خودکار اجراء میشوند. این یعنی بعد از راهاندازی، شبکه مسئول اجراء آنها خواهد بود و لازم نیست کاری انجام دهید. همچنین گفتنیست که پس از بکارگیری این برنامهها قادر نخواهید بود در شبکه اتریوم به عنوان ادمین اصلی عمل کنید. برای مثال، دیگر نمیتوانید کدها را تغییر دهید. این برنامهها برای همیشه و به دور از کنترل هر شخصی به کار خود ادامه میدهند.
سالیدیتی زبان اصلی مورد استفاده برای نوشتن قراردادهای هوشمند است. ساختار این زبان با جاوا اسکریپت شباهت دارد، اما این شباهت تنها ظاهری است.
سالیدیتی برخلاف جاوا اسکریپت یک زبان گردآوریشده است و این یعنی نمیتوانید قرارداد هوشمند را نوشته و مسئولیت اجراء آن را بر عهده اتریوم بگذارید. باید در این میان کارهای دیگری نیز انجام دهید که در آن کد سالیدیتی به صورت بایتکد (Bytecode) درمیآید تا ماشین مجازی اتریوم (جزئی از اتریوم که قراردادهای هوشمند را اجراء میکند) بتواند آن را بفهمد.
همچنین سالیدیتی برخلاف جاوا اسکریپت یک زبان تایپی است و این یعنی باید نوع هر متغیر را تعیین کنید.
این زبان برخلاف جاوا اسکریپت و بیشتر زبانهای دیگر بسیار ابتداییتر بوده و محدودیتهای بیشتری دارد. در طی فرآیند یادگیری خود باید منتظر غافلگیری های زیادی باشید!
بسیاری از افراد در مرحله اول کار با سالیدیتی دوست دارند با CryptoZombies کار کنند. CryptoZombies یکی از بازیهای بلاک چینی است که به شما اجازه میدهد اصول کار را از طریق ساختن ارتشی از زامبیها در یک قرارداد هوشمند یاد بگیرید. بیش از ۳۰۰,۰۰۰ نفر از آن استفاده میکنند و کار با آن بسیار جالب است. اگر میخواهید با بازیهای مختلف نیز آشنا شوید، احتمالا از Ethernaut خوشتان خواهد آمد. در این بازی باید قراردادهای هوشمند را هک کنید.
در ادامه پیشنهاد میکنم که اسناد رسمی سالیدیتی را مطالعه کنید. آنها جامعترین اطلاعات را در مورد این زبان برنامهنویسی ارائه میدهند و به شیوهای منظم بروزرسانی میشوند. لازم نیست همه مطالب آن را بخوانید، اما حداقل اطمینان حاصل کنید که با اصول این زبان آشنا میشوید. برای مثال:
- چه نوع متغیرهایی در آن وجود دارند
- ساختارهای اصلی آن در خصوص کنترل جزئیات
- ساختار کلی قراردادهای هوشمند
در یوتیوب نیز میتوانید نکات زیادی را در مورد سالیدیتی و قراردادهای هوشمند یاد بگیرید.

اکنون که حرف یوتیوب به میان آمده است، میتوانید از کانال What’s Solidity نکات زیادی را در مورد این زبان یاد بگیرید. مالک این کانال آشنایی زیادی با سالیدیتی داشته و مباحث پیشرفتهای را مورد بررسی قرار میدهد.
همچنین ممکن است مایل باشید نحوه نوشتن قراردادهای هوشمند به شیوهای ایمن را یاد بگیرید. در قراردادهای هوشمند با پول کاربران دیگر سر و کار دارید و به همین خاطر ممکن است به هدفی برای هکرها تبدیل شوید. این لیست میتواند مطالب مفیدی را در مورد ایمنی قراردادهای هوشمند در اختیار شما قرار دهد:
- Awesome Solidity Security، لیستی از منابع مختلف در مورد ایمنی سالیدیتی
- Solidity Security Blogs، لیستی از بلاگهای مختلف که بر ایمنی قراردادهای هوشمند تمرکز دارند
- Smart contract security best practices، نکات ایمنی مهم برای توسعهدهندگان قراردادهای هوشمند که توسط شرکت Consensys آماده شده است
- CaptureTheEther، یکی از بازیهایی که میتواند نکاتی را در مورد ایمنی زبان سالیدیتی به شما بیاموزد
یادگیری سالیدیتی قدمی بزرگ در راستای تبدیل شدن به یک توسعه دهنده بلاک چین است، اما کافی نیست. از آنجایی که قراردادهای هوشمند چندان رابط کاربرپسندانهای ندارند، نمیتوانیم از کاربران انتظار داشته باشیم به طور مستقیم با آنها کار کنند. در عوض، باید رابط کاربری سادهای را برای کاربران به وجود آوریم. این امر هدف اصلی اپلیکیشنهای غیرمتمرکز نیز هست و در ادامه باید آن را یاد بگیرید.
قدم هفتم: اپلیکیشن غیرمتمرکز خود را بسازید
پیش از خواندن این مقاله ممکن است اسم Cryptokitties به گوشتان خورده باشد. کاربران در این بازی به خرید، تولید مثل و معامله بچه گربهها میپردازند. این بازی در اتریوم ساخته شده و مثالی مناسب از یک اپلیکیشن غیرمتمرکز است. بگذارید با عملکرد آن آشنا شویم.
در ابتدا باید وارد وبسایت Cryptokitties شویم. در تصویر بالا میتوانید رابط کاربری بازی را مشاهده کنید. بکاند (Backend) این بازی توسط سرورهای خصوصی پشتیبانی میشود و فرانتاند (Frontend) آن یک اپلیکیشن تحت وب عادی است. چیز چندانی جدیدی در مورد آن وجود ندارد. کاربران Cryptokitties از Metamask برای ارسال اتر در بازی استفاده میکنند.
سپس به سراغ قرارداد هوشمند Cryptokitties میرویم که دادههای بازی در آن ذخیره میشوند. برای مثال، اگر کاربر یک بچه گربه را خریداری کند، اطلاعات آن در قرارداد هوشمند Cryptokitties ذخیره میشود. قرارداد هوشمند این بازی در بلاک چین اتریوم قرار دارد. هیچ کامپیوتری وجود ندارد که بتواند ادعا کند میزبانی قرارداد هوشمند را به تنهایی بر عهده دارد و تمامی کامپیوترها در شبکه اتریوم به عنوان میزبان آن عمل میکنند.
این سه بخش با یکدیگر تعامل دارند تا یک اپلیکیشن غیرمتمرکز را به وجود آورند. به منظور ساختن یک اپلیکیشن غیرمتمرکز، باید این سه بخش را به وجود آورده و کاری کنید که با یکدیگر تعامل داشته باشند.
میتوانید از این ویدیو در مورد نحوه ساختن اپلیکیشن غیرمتمرکز در اتریوم کمک بگیرید. در این راهنمای ۸ مرحلهای سعی شده یک اپلیکیشن غیرمتمرکز را با استفاده از قراردادهای هوشمند و فرانتاند به وجود آورند:
همچنین اگر به دنبال دورههای آموزشی آنلاین برای یادگیری نحوه ساختن اپلیکیشنهای غیرمتمرکز در اتریوم میگردید، میتوانید لینکهای زیر را بررسی کنید:
- EatTheBlocks Pro – بزرگترین منبع ویدیوهای آموزشی باکیفیت در مورد سالیدیتی و اتریوم.

- Ethereum Dapps In Motion – دوره آموزشی که در آن یک والت رمز ارز و یک صرافی غیرمتمرکز را برای توکنهای ERC20 میسازیم. ساعتها ویدیوی آموزشی باکیفیت به همراه توضیحات روشن و قدم به قدم.
اگر تا این مرحله را انجام دهید، بخش زیادی از مسیر تبدیل شدن به یک توسعه دهنده بلاک چین و پیدا کردن کار در یک شرکت بلاک چینی را پیمودهاید:
- اکنون از دانشی مناسب در مورد فضای بلاک چین و همچنین مقایسه اتریوم با بلاک چینهای دیگر برخوردار هستید.
- میدانید قراردادهای هوشمند و سالیدیتی را به چه صورت برنامهریزی کنید
- یک اپلیکیشن غیرمتمرکز ساختهاید که میتوانید به کارفرمایان احتمالی نشان دهید
چنین چیزی خارقالعاده خواهد بود و اکنون میتوانید در یک استارتآپ کریپتویی تقاضای کار کنید. اما پیش از آنکه چنین کاری انجام دهید باید خود را برای چنین مصاحبههایی آماده کنید.
قدم هشتم: خود را برای مصاحبههای بلاک چینی آماده کنید
مصاحبههای بلاک چینی شامل این موارد هستند:
- دانش کلی در مورد بلاک چین و بیت کوین
- نحوه کارکرد اتریوم
- نحوه کارکرد قراردادهای هوشمند و سالیدیتی
- نحوه کارکرد اپلیکیشنهای غیرمتمرکز
دانش کلی در مورد بلاک چین و بیت کوین
کارفرمایان از شما خواهند خواست در مورد کارکرد و مولفههای مختلف بلاک چین صحبت کنید. از آنجایی که بلاک چین با بیت کوین مطرح و شناخته شد، این دو فناوری اغلب با همدیگر مورد بحث قرار میگیرند.
از سوالات مهمی که در این زمینه ممکن است از شما پرسیده شود، میتوان به این موارد اشاره کرد:
- تفاوت میان بلاک چین و کریپتوکارنسی
- بلاک چین چگونه عمل میکند
- بیت کوین چیست
- الگوریتم اثبات کار چیست و چه معایبی دارد
- درخت مرکل چیست
- تفاوت بین بلاک چین های عمومی و خصوصی چیست
- تفاوت های اصلی بین اتریوم و بیت کوین
- توضیح مشکل مقیاس پذیری
- تعریف Gas در اتریوم
همچنین میتوانید کتاب “یادگیری کامل بیت کوین”، نوشته آندریاس آنتونوپولوس را مطالعه کنید. زمانی که برای اولین بار وارد فضای بلاک چین شدم، با این کتاب برخورد کردم. در عرض چند روز آن را کاملا مطالعه کردم و به خاطر آن به بلاک چین علاقهمند شدم. خواندن این کتاب کمک زیادی به فهمیدن بلاک چین و اتریوم در عرض چند سال گذشته به من کرده است و به لطف این کتاب دانش مناسبی در مورد فناوری بلاک چین و بیت کوین به دست آوردم. دانستن اینکه بیشتر سیستمهای بلاک چینی به طریقی بر مبنای بیت کوین ساخته شدهاند به پیشرفت شما کمک خواهد کرد.

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

همچنین میتوانید به بعضی از انجمنهای آنلاین سری بزنید:

در نهایت پیشنهاد میکنم که در رویدادها و کنفرانسهای محلی در مورد بلاک چین و اتریوم شرکت کنید تا با کاربران دیگر و کارفرمایان احتمالی آشنا شوید.
قدم دهم: از انجمن بلاک چین کمک بگیرید
در روند تبدیل شدن به یک توسعه دهنده بلاک چین مطمئنا به کمک نیاز خواهید داشت. خوشبختانه در این مسیر تنها نیستید و انجمنهای آنلاین بسیاری وجود دارند که میتوانید از آنها تقاضای کمک کنید.
پلتفرم Ethereum stack exchange جایی مناسب برای پیدا کردن جوابهای مورد نظر است. تاکنون هزاران درخواست پاسخ داده شدهاند و این انجمن بسیار فعال است. با این وجود، آنها اغلب قوانین سفت و سختی در مورد شیوه پرسیدن سوالات مناسب یا حتی قابل قبول دارند. آنها در واقع اجازه پرسیدن آن دسته از سوالات را که به دنبال نظر و عقیده کاربران دیگر هستند نمیدهند، مانند “بهترین راه حل این مشکل فنی چیست؟”.
میتوانید از این انجمنها نیز استفاده کنید:
- Solidity gitter، (مکالمه)
- Truffle gitter، (مکالمه)
- Dapp Dev Slack، گروهی برای توسعهدهندگان Dapp
یکی از راههای دیگر برای کمک گرفتن، آشنایی با توسعهدهندگان است. برای این کار میتوانید در رویدادها و کنفرانسهای اتریوم شرکت کنید. میتوانید از انجمن meetup برای پیدا کردن چنین رویدادهایی در کشور یا شهر خود استفاده کنید. آن دسته از رویدادها را انتخاب کنید که عمدتا بر فناوری بلاک چین تمرکز دارند. بیشتر آنها در مورد جنبه تجاری این فناوری هستند و سعی دارند آخرین محصولات خود را به شما بفروشند. همچنین میتوانید در DevCon به دنبال کنفرانسهای مختلف در مورد اتریوم بگردید. در سال جاری شاهد برگزاری چندین کنفرانس مانند TruffleCon یا DappCon بودیم. این کنفرانسها نسبت به DevCon ارزانتر بوده و جمعیت کمتری در آنها شرکت میکنند.
همچنین اگر میخواهید از آخرین اخبار در مورد اکوسیستم اتریوم مطلع شوید، میتوانید از این منابع استفاده کنید:
- Week in Ethereum Newsletter، خبرنامه هفتگی در مورد اتریوم
- Ethereum dev Reddit
منابع دیگر:
در ایران نیز طی سالهای اخیر توجه به فناوری بلاک چین و فعالیت ها در این حوزه بیشتر شده و هر ساله شاهد برگزاری رویدادهای بلاک چینی متعدد در تهران و دیگر شهرهای بزرگ هستیم. برای آشنایی با جامعه بلاک چین ایران و عضویت در گروه های مختلف و همچنین آگاهی از رویدادها و دوره های آموزشی میتوانید به انجمن بلاکچین ایران سر بزنید و یا سایت هایی مانند ایوند را دنبال کنید.
امیدواریم با برنامه ریزی و مدیریت درست و دنبال کردن مراحلی که در این مطلب عنوان شد بتوانید به یکی از اعضای موفق جامعه بلاک چین تبدیل شده و نقش مهمی در انقلاب بلاک چین و متحول کردن جهان پیرامون خود ایفا کنید.
پست بعدی