ساختن پورتفولیوی برنامه غیر متمرکز (DApp)، بهترین روش برای مطرح کردن خود به عنوان یک توسعهدهنده بلاک چین است. ممکن است با خود فکر کنید که ایجاد پورتفولیو با استفاده از یک برنامه غیر متمرکز نیازمند هزینه بسیار است. وبسایتهای میزبان و دامنهها هزینه دارند و استفاده از قراردادهای هوشمند نیز نیازمند هزینه کردن اتر است. ما در این مقاله به شما خواهیم گفت که برای ایجاد و استفاده از برنامههای غیر متمرکز اتریوم نیاز به صرف هیچ هزینهای نخواهید داشت.
استفاده از شبکههای آزمایشی
شبکههای آزمایشی شبکههای بلاک چین عمومی هستند که محیطی شبیه به شبکههای اصلی دارند. این شبکههای آزمایشی به توسعهدهندگان اجازه میدهند که قبل از ورود به شبکه اصلی ویژگیهایی جدید مانند مکانیسمهای اجماع و غیره را آزمایش کنند. آنها به توسعهدهندگان برنامه غیر متمرکز اجازه میدهند که برنامه خود را قبل از کدگذاری نهایی در شبکه اصلی، آزمایش کنند.
شبکههای آزمایشی زیادی برای انتخاب وجود دارد که هر کدام از آنها دارای تفاوتهایی جزئی هستند. شبکه آزمایشی Ropsten بیشترین شباهت را به شبکه اصلی اتریوم دارد. افزونه متامسک (MetaMask) به طور پیش فرض از شبکههای آزمایشی Ropsten، Kovan، Rinkeby و Goerli پشتیبانی میکند. این افزونه یکی از افزونههای گوگل کروم است.
کسب اتر در این شبکههای آزمایشی ساده است و مانند دریافت آن از یک فاست (faucet) است. بسیاری از شبکهها یک فاست به سبک چت بات (chatbot) دارند و کافی است که در آنجا آدرس عمومی اکانت خود را درج کنید.
گسترش و نصب قراردادهای هوشمند مربوط به برنامه غیر متمرکز خود
در این مثال چنین فرض میشود که شما با Truffle Suite آشنایی دارید. اگر چنین نیست، نگران نباشید زیرا راهنماها و آموزشهای زیادی برای آن در فضای وب موجود است.
زمانی که مقداری اتر در شبکه آزمایشی دلخواه دریافت کردید، به یک نود اتریوم برای ایجاد قراردادهای خود نیاز خواهید داشت. راهاندازی نودها زمان و دانش فنی زیادی نیاز دارد. خوشبختانه سرویسهای زیرساخت بلاک چینی برای این منظور وجود دارند که همه پیچیدگیها را از میان برمیدارند. سرویس محبوب من (نویسنده مقاله) در این میان Infura است.
یک اکانت Infura ایجاد کنید و پروژه جدیدی بسازید. به تب تنظیمات بروید و در آنجا قادر به انتخاب شبکهای خواهید بود که دوست دارید برای تعاملات خود از آن استفاده کنید.
یادداشتی از نقطه نهایی HTTPS برای شبکه مورد استفاده خود ایجاد کنید. من در اینجا مثال یک فایل truffle-config.js را که برای استفاده در شبکه آزمایشی Kovan ایجاد شده است، ارائه میدهم.
مطمئن شوید که بستههای زیر را در مخزن خود داشته باشید که این بستهها را با npm باید نصب کنید:
“truffle-hdwallet-provider”: “1.0.4”,
“truffle-hdwallet-provider-privkey”: “1.0.3”,
“web3”: “1.0.0-beta.46”
سپس فایل truffle-config.js را برای اضافه کردن یک شبکه جدید به شی networks تغییر دهید. نتیجه این تغییر به صورت زیر خواهد بود.
پروژه شما حالا آماده شده است و میتوانید قراردادهای هوشمند خود را به شبکه آزمایشی Kovan انتقال دهید که برای این کار باید از دستور زیر استفاده کنید:
truffle migrate –network kovan
سرویسهای رایگان وب
حالا قراردادهای هوشمند شما بر روی یک شبکه آزمایشی عمومی راهاندازی شدهاند؛ شما لازم است فرانت اند (front end) خود را بر روی شبکه میزبانی کنید و به این ترتیب کاربران میتوانند استفاده از برنامه غیر متمرکز شما را شروع کنند.
چندین گزینه در این میان موجود است. شما میتوانید یک سرور وب را از خانه خود راهاندازی کنید که نیازمند وقت و هزینه است و یا میتوانید از سرویسهای میزبانی پیشگام این صنعت مانند DigitalOcean استفاده کنید که دارای هزینه ماهیانه هستند.
چیزی که شما نیاز دارید یک سرویس میزبانی رایگان است که سریع و دارای استفاده آسان باشد و پلتفرمی را برای آزمایش برنامه غیر متمرکز شما فراهم کند. چنین سرویسهایی وجود دارند و در اینجا دو مورد از آنها یعنی Heroku و GitHub Pages معرفی میشوند.
Heroku
Heroku پلتفرمی است که به توسعهدهندهها اجازه میدهد که به ساخت و راهاندازی برنامههای خود تماما در کلود (cloud) بپردازند. این پلتفرم جنبههای فنی زیادی را پشتیبانی میکند. فرض کنید که شما از Truffle Suite برای پروژه خود استفاده میکنید، با استفاده از این پلتفرم مشکلی برای نصب و گسترش آن نخواهید داشت.
برای استفاده از Heroku با استفاده از خط فرمان، لازم است که ابتدا به صفحه دانلودهای آن بروید و سطح کاربری خط فرمان آن (CLI) را نصب کنید.
وارد Heroku.com شوید، اکانت ایجاد کنید و یک برنامه جدید بسازید. زمانی که چیدمان اصلی انجام شد، به تب تنظیمات رفته و Heroku git URL را پیدا کنید. در شکل پایین، مکان پیدا کردن آن نمایش داده شده است.
پایانه خود را باز کنید و به فولدر ریشه پروژه بروید. فرض کنید که شما قبلا از Git برای کنترل نسخه استفاده کردهاید، از Heroku Git URL برای اضافه کردن ریموت (remote) ایجاد استفاده کنید:
git remote add heroku [heroku_git_url]
سپس با استفاده از CLI جدیدا نصب شده به داخل اکانت خود وارد شوید:
heroku login
مرورگر شما برای تایید باز خواهد شد. زمانی که با موفقیت وارد شدید، تنها کاری که باقی مانده همان نصب است. دستور زیر را وارد کنید:
git push heroku master
منتظر تمام شدن لاگها (log) شوید، حال برنامه غیر متمرکز شما آماده است!
Heroku با توجه به نام پروژه شما یک URL تعیین میکند. برای باز کردن آن به Heroku.com بروید و بر روی گزینه Open app کلیک کنید.
حال برنامه غیر متمرکز شما بر روی Heroku عملکرد دارد.
GitHub Pages
یک سرویس میزبان سایت ایستا است که فایلهای HTML، CSS و جاوا اسکریپت (JavaScript) را مستقیما از مخزنی در GitHub میگیرد.
هر فردی که از Git استفاده کرده باشد، در مورد GitHub میداند. آن بزرگترین پلتفرم کنترل نسخه متن باز جهان است و هر روزه توسط توسعهدهندههای زیادی مورد استفاده قرار میگیرد.
GitHub Pages سرویسی است که اجازه میزبانی وبسایتهای استاتیک را مستقیما از مخزن GitHub میدهد. این یعنی تا زمانی که برنامه شما محاسبه سرور جانبی انجام نمیدهد، شما مشکلی نخواهید داشت.
اگر قبلا از GitHub برای مخزن خود استفاده نکردهاید، شدیدا به شما توصیه میکنم که از آن استفاده کنید. فرض میکنیم که شما از GitHub استفاده کردهاید و پروژه شما هم از Truffle Suite استفاده میکند. در این حالت، لازم است که به خط فرمان بروید و به سمت دایرکتوری (Directory) ریشه پروژه خود هدایت شوید.
بسته gh-pages را با اجرای فرمان زیر نصب کنید:
npm install –save gh-pages
سپس لازم است جزئیات دیگری به فایلpackage.json خود اضافه کنید. فایل بسته را در تکست ادیتور (text editor) باز کنید.
در داخل شی اصلی، دستور زیر را وارد کنید:
“homepage”: “https://[user-name].github.io/[repo-name]/”,
گزینههای زیر را به بخش“scripts” از package.json اضافه کنید:
“predeploy”: “npm run build”,
“deploy”: “gh-pages -d build”,
حالا تنها کافی است که npm run deploy را برای نصب برنامه غیر متمرکز خود اجرا کنید.
برنامه غیرمتمرکز شما حالا روی GitHub Pages آماده است.
نتیجهگیری
ایجاد یک پورتفولیو از برنامههای غیر متمرکز هزینهای ندارد. با استفاده از Heroku، GitHub Pages و شبکههای آزمایشی اتریوم، میتوانید پروژههای خود را عمومی و قابل استفاده همگان کنید، به شرطی که آنها دارای مرورگرها و یا افزونههایی سازگار با شبکه نسل سوم یا همان web3 داشته باشند.