تبدیل شدن به یک توسعه دهنده بلاکچین یکی از بهترین تصمیماتی است که میتوانید این روزها بگیرید. امروزه بلاکچین و ارزهای دیجیتال به یک ترند داغ در جهان تبدیل شدهاند. هزاران پروژه در این فضا در حال فعالیت هستند و نیاز به برنامهنویسهای خبره جدی است. از آنجایی که ما هنوز در مراحل اولیه توسعه بلاک چین هستیم، رقابت برای یافتن شغل نیز به سختی حوزههای رایج مانند وب، موبایل، دسکتاپ یا توسعه بازیهای ویدئویی نیست. باید گفت که یک توسعه دهنده بلاکچین در بالاترین سطح دریافت حقوق در حوزه توسعه نرمافزار قرار دارند.
در این مقاله از فکت کوینز، ابزارها و فناوریهای اصلی بلاکچین را که برای شروع سفر خود به آن نیاز دارید، معرفی میکنیم.
1 – بلاکچینهای مبتنی بر قرارداد هوشمند/dApps
قبل از بحث در مورد ابزارها و فناوریها، باید به یک نکته مهم اشاره کنیم. فعلاً همه بلاکچینها از قراردادهای هوشمند و دپها (dApps) پشتیبانی نمیکنند.
برای مثال، چنین مفاهیمی هنوز در بلاکچین بیتکوین وجود ندارد. بیتکوین عمدتاً یک سیستم تراکنش همتا به همتا است و به عنوان یک ذخیره ارزش عمل میکند. بنابراین، شما نمیتوانید به یک توسعه دهنده بیتکوین تبدیل شوید. خب … از لحاظ تئوری میتوانید! اما حتی اگر این اتفاق بیفتد، شما روی نرمافزار اصلی بیتکوین (نه روی قراردادهای هوشمند یا دپها) کار خواهید کرد. از این رو:
قبل از اینکه به ابزارها و فناوریها فکر کنید، باید در مورد بلاکچین/ پلتفرمهایی تحقیق کنید که به شما امکان میدهند قراردادهای هوشمند یا اپلیکیشنهای غیرمتمرکز (dApps) را توسعه دهید.
در اینجا یک لیست ناقص از این اکوسیستمها آورده شده است:
- اتریوم
- سولانا
- پولکادات
- زنجیره هوشمند بایننس
- کاردانو
- تزوس
- نئو
- الگوراند
- فانتوم
- زیلیکا
یکی از راههای خوب برای یافتن فهرست این بلاکچینها، جست و جوی پروژههای مبتنی بر قرارداد هوشمند در وبسایتهایی مانند CoinGecko است. در همه این پلتفرمها، قابلیت «قراردادهای هوشمند» فعال است. این یعنی که شما میتوانید از ابزارهای ارائه شده در این اکوسیستمها برای ساخت اپلیکیشنهای بلاکچینی استفاده کنید.
منظور از جعبه ابزار اینهاست:
- زبانهای برنامه نویسی
- محیطهای برنامهنویسی/IDE ها
- کیف پولهای ارز دیجیتال
- بلاک چین آزمایشی
- کتابخانهها و چارچوبهای بلاک چین
- کتابخانهها و چارچوبهای فرانت اند
از این رو در 6 قسمت بعدی به معرفی برخی از ابزارهای هر یک از این دستهها میپردازیم. قابل به ذکر است که این لیست به هیچ وجه کامل نیست زیرا پوشش همه ابزارها و بلاکچینهای مبتنی بر قراردادهای هوشمند نیاز به تحقیقات جامعتری دارد.
2 – زبانهای برنامه نویسی
اولین و مهمترین مهارت فنی که برای تبدیل شدن به یک توسعه دهنده بلاکچین نیاز دارید، آشنایی با زبانهای برنامه نویسی است. ابتدا باید تصمیم بگیرید که در کدام بلاک چین میخواهید کدنویسی کنید. خواندن مقاله فوق ممکن است ایده خوبی از معروفترین زبانهای برنامه نویسی در این فضا به شما بدهد.
به طور کلی، سه بازیگر بزرگ در بازار وجود دارد:
- سالیدیتی (Solidity) زبان برنامه نویسی برای توسعه قراردادهای هوشمند و دپهای بلاک چین اتریوم است. این زبان محبوبترین انتخاب در بین توسعهدهندگان نرمافزار است. دلیل اصلی پذیرش گسترده بلاکچین اتریوم، سرعت یادگیری بالا و کامیونیتی بزرگ آن است.
- راست (Rust) یکی دیگر از گزینههای محبوب است. پروژههایی مانند سولانا یا پولکادات از Rust به عنوان زبان برنامه نویسی اصلی خود استفاده میکنند. راست یک زبان برنامه نویسی مدرن با قابلیتهای جالب فراوان است. با این حال، به سادگی C یا Solidity نیست.
- هسکل (Haskell) زبان برنامه نویسی اکوسیستم کاردانو است. این یک زبان برنامه نویسی است که عمدتاً توسط محققان دانشگاهی یا ریاضیدانان استفاده میشود. با این حال، این زبان به دلیل قابلیتهای امنیتی که دارد، یک گزینه جذاب برای برنامهنویسی بلاک چین است.
به غیر از این سه گزینه، زبانهای برنامه نویسی کمتر معروف دیگری نیز وجود دارد، از جمله:
- Michelson (Tezos)
- OCaml (Zilliqa)
- C# (NEO)
- Python (Algorand)
- Scala (Fantom)
- Clarity (Algorand)
3 – محیطهای برنامهنویسی / IDE ها
IDE (محیط برنامهنویسی یکپارچه) ابزاری است که به توسعه دهنده بلاکچین کمک میکند کدهای منبع خود را ویرایش، باگ زدایی، آزمایش و اجرا کنند. IDE یک محیط یکپارچه و کامل است که به برنامه نویسان کمک میکند تا به پرکاربردترین قابلیتهای برنامه نویسی دسترسی داشته باشند.
صدها IDE تک منظوره یا عمومی در بازار وجود دارد. استفاده از برخی از آنها رایگان است. برای برخی دیگر، باید پول پرداخت کنید. در قراردادهای هوشمند و برنامه نویسی بلاک چین، هر پلتفرم و اکوسیستمی پیشنهادهایی برای IDE های بومی یا طرف سوم دارد. در اینجا چند نمونه آورده شده است:
- اتریوم: Remix, EthFiddle (Web), Visual Studio Code (Desktop)
- زنجیره هوشمند بایننس: BSC Studio
- کاردانو: Sublime-Haskell
- سولانا: SWI (Web), Visual Studio Code (Desktop)
- فانتوم: Eclipse F4, Netbeans Fantom IDE
- تزوس: SmartPy, LIGO
4 – کیف پولهای ارز دیجیتال
کیف پولها دروازههای ورود به اپلیکیشنهای بلاک چین هستند. آنها به شما اجازه میدهند حسابها، رمزارزها و کلیدهای امنیتی خود را مدیریت کنید.
در طول فرآیند توسعه دپها یا قراردادهای هوشمند خود، باید عملکردهای مختلف کد خود را در موارد مختلف آزمایش کنید. در اینجا یکی از ابزارهای مورد استفاده شما کیف پول است. به عنوان مثال، یک کیف پول به شما امکان ارسال/دریافت توکن در زنجیرههای آزمایشی را میدهد.
کیف پولهای نرمافزاری زیادی در بازار وجود دارد. با این حال، اکثر توسعهدهندگان از کیف پول متامسک (Metamask) برای آزمایشهای خود استفاده میکنند. متامسک یک رابط کاربری بسیار ساده و کاربرپسند دارد. کار با متامسک بسیار ساده است. علاوه بر این، متامسک را میتوان به عنوان یک افزونه در مرورگرهایی مانند کروم نصب کرد. این به شما امکان میدهد از مرورگر و کیف پول خود به طور همزمان برای برنامه نویسی و آزمایش استفاده کنید.
یکی از نکات مهم این است که باید سازگاری کیف پول با بلاک چین انتخابی خود را بررسی کنید. در صورت عدم سازگاری، بلاکچینهای مختلف معمولاً والتهایی را به شما پیشنهاد میدهند. به عنوان مثال، Phantom و Terra Station والتهای پیشنهادی و رسمی اکوسیستمهای سولانا و ترا (Terra) هستند.
5 – کتابخانهها و چارچوبهای بلاک چین
یکی از جنبههای ضروری توسعه قرارداد هوشمند/دپها، تعریف کانالهای ارتباطی مختلف برای باگ زدایی، تست کردن و پیاده سازی آنهاست. ابزارهایی مانند IDE یا کیف پولها امکانات و گزینههای فوق العاده ای را در اختیار توسعهدهندگان این حوزهها قرار میدهند. اما دامنه قابلیتهای این ابزارها محدود است. به همین دلیل، ممکن است لازم باشد به عنوان یک توسعه دهنده بلاکچین از کتابخانهها (Libraries) و چارچوبها (Frameworks) استفاده کنید.
«کتابخانهها و چارچوبهای بلاکچین» معمولاً مجموعهای از ابزارهایی هستند که برای موارد زیر استفاده میشوند:
- اجرای بلاک چین آزمایشی
- تعریف کانال ارتباطی برای قراردادهای هوشمند/دپها
- تعریف یونیت تستها (unit-tests)
- تعریف تستهای یکپارچه سازی (integration test)
- اجرا و پیاده سازی قراردادها
- تزریق مصنوعات به پلتفرمهای خارجی (وب و غیره)
- برقراری ارتباط با وب
برای مثال، در اکوسیستم اتریوم، سه کتابخانه/چارچوب ضروری وجود دارد:
- Ganache: بلاکچین شخصی اتریوم برای تست قراردادهای سالیدیتی
- Truffle: ابزار برنامه نویسی برای اجرا، آزمایش و پیاده سازی قراردادهای هوشمند روی بلاکچین اتریوم.
- web3.js: مجموعهای از کتابخانهها که به شما امکان میدهد با استفاده از HTTP، IPC یا WebSocket با یک گره اتریوم تعامل داشته باشید.
قابل به ذکر است که همچون سایر ابزارها، باید کتابخانهها/چارچوبهای بومی یا طرف سوم بلاکچین مورد نظر خود را نیز بررسی کنید. به عنوان مثال، اکوسیستم «کاردانو» از پلتفرم «پلوتوس» برای توسعه قراردادهای هوشمند خود استفاده میکند. این یک ابزار بومی است که توسط این پروژه توسعه یافته و به صورت داخلی توسط توسعهدهندگان کاردانو برای اهداف مختلف استفاده میشود.
6 – کتابخانهها و چارچوبهای فرانت اند
یکی از جنبههای ضروری دی اپهای مبتنی بر بلاکچین، رابط کاربری آنها است. اگر یک توسعه دهنده بلاکچین نتواند یک رابط کاربرپسند برای پروژهها ایجاد کند، اکثر این برنامهها بیارزش خواهند بود. رابط کاربری قراردادهای هوشمند/دپها برای موارد زیر مفید است:
- معرفی اپلیکیشنها
- ارتباط کاربر با اپلیکیشنها
- ارتباط کاربر با بلاکچین
خبر خوب این است که این کتابخانهها/چارچوبها بسیار عمومی هستند. به عبارت دیگر، شما فقط یک بار برنامه نویسی فرانت اند (Frontend) را یاد میگیرید و میتوانید از این دانش در بلاکچینهای مختلف استفاده کنید.
اجزای اساسی برنامه نویسی فرانت اند عبارتاند از HTML، CSS و Javascript. هر توسعه دهندهای باید با استفاده از این سه ابزار، برنامه نویسی وب را آغاز کند. با این حال، برای طراحی وبسایتها و رابطهای کاربری بهتر، یادگیری برخی از کتابخانهها/چارچوبهای استاندارد مانند Angular، Vue یا React JS توصیه میشود.
7 – بلاک اکسپلورر
آخرین دسته از ابزارهایی که هر توسعه دهنده بلاکچین باید با آن آشنا باشد بلاک اکسپلورر (Block Explorers) است. بلاک اکسپلوررها وبسایتهایی هستند که از طریق آنها همه میتوانند فعالیتهای روی بلاکچین مانند تاریخچه تراکنشها و جزئیات قرارداد هوشمند را مشاهده کنند.
شما باید مکانیزم پشت بلاک اکسپلوررها را بشناسید زیرا موقعیتهای زیادی پیش میآید که باید جزئیات را مشاهده کنید، مانند اجرای تراکنشها روی بلاکچین. ما میدانیم که میتوان از نمونههای محلی بلاک چین (به عنوان مثال گاناش) برای اهداف آزمایشی استفاده کرد. اما در نهایت باید اپلیکیشنهای خود را روی شبکههای آزمایشی یا شبکههای اصلی (Main net) بلاکچینهای مختلف پیاده سازی و آزمایش کنید. به همین دلیل، باید از Block Explorer استفاده کنید.
در اینجا چند نمونه از این اکسپلوررها در بلاکچینهای مختلف آورده شده است:
- اتریوم: https://etherscan.io/
- کاردانو: https://explorer.cardano.org/
- سولانا: https://explorer.solana.com/
- تزوس: https://tzstats.com/
در این وبسایتها اطلاعات ارزشمند زیادی وجود دارد. بسته به بلاک چین انتخابی خود، باید مدتی را برای آموزش خود در مورد آپشنها و بخشهای مختلف هر اکسپلورر اختصاص دهید.
نکات کلیدی تبدیل شدن به توسعه دهنده بلاکچین
توسعه بلاکچین این روزها به یک ترند داغ در حوزه برنامه نویسی تبدیل شده است. به عنوان یک توسعه دهنده بلاکچین ، شما باید مهارتهایی را در رابطه با ابزارها و فناوریهای مختلف فرا بگیرید.
در این مقاله به طور خلاصه هفت نوع ابزار را توضیح دادیم که در آنها باید به مهارت برسید:
✔️پلتفرمهای بلاک چین مختلفی وجود دارند که با قراردادهای هوشمند یا اپلیکیشنهای غیرمتمرکز سازگاری دارند. قبل از هر چیزی، باید اکوسیستمی را انتخاب کنید که میخواهید کدنویسی خود را در ان شروع کنید.
✔️زمانی که بلاکچین خود را انتخاب کردید، باید شروع به یادگیری زبانهای برنامه نویسی بومی اکوسیستم کنید (به عنوان مثال، Solidity، Rust).
✔️محیطهای برنامه نویسی یکپارچه (IDE) به شما کمک میکند در زمان نوشتن، باگزدایی، آزمایش و انتشار کدهای برنامه نویسی صرفهجویی کنید.
✔️شما باید با کیف پولهای مختلف آشنا باشید. اتصال قراردادهای هوشمند/دپها به کیف پولها به شما کمک میکند تراکنشها و بلاک چین خود را آزمایش کنید.
✔️کتابخانهها و چارچوبهای بلاک چین ابزارهایی هستند که به شما در نوشتن کد، باگزدایی، آزمایش یا پیاده سازی قراردادهای هوشمند کمک میکنند.
✔️کتابخانهها و چارچوبهای فرانت اند به شما کمک میکنند تا برای برنامههای خود رابط کاربری ایجاد کنید.
✔️از طریق بلاک اکسپلوررها، میتوانید فعالیتهای روی زنجیره را زیر نظر بگیرید و اطلاعات مفیدی درباره قراردادها و تراکنشهای هوشمند دریافت کنید.
انتخاب مکانیسم مناسب بلاک چین، انتخاب زبان برنامه نویسی مناسب، انتخاب پلتفرم توسعه بلاکچین، ایجاد یک استراتژی برای ادامه فرایند توسعه، طراحی ساختار بلاکچین، توسعه برنامهها و اپلیکیشنهای بلاک چین، تست و عرضه نسخه آلفا اپلیکیشن و … از وظایف یک توسعه دهنده بلاکچین است.
کتابخانهها و چارچوبهای بلاکچین ابزارهایی هستند که برای اجرای بلاک چین آزمایشی، تعریف کانال ارتباطی برای قراردادهای هوشمند/دپها، تعریف یونیت تستها (unit-tests)، تعریف تستهای یکپارچه سازی (integration test)، اجرا و پیاده سازی قراردادها و برقراری ارتباط با وب مورد استافده قرار میگیرند.
1- توسعه دهندگان زیرساخت بلاکچین (Core Blockchain Developer)
2- توسعه دهندگان نرم افزار بلاکچین (Blockchain Developer Software)