چگونه بدون صرف هیچ هزینه ای، پورتفولیوی برنامه غیرمتمرکز بسازید
ساختن یک پورتفولیوی برنامه غیرمتمرکز (DApp)، بهترین راه برای نشان دادن جهان بلاک چین است که شما در آن در حال توسعه می باشید. شاید با خود فکر کنید که داشتن یک برنامه پورتفولیویی که به صورت عمومی نیز باشد، هزینه بسیار بالایی را در برخواهد داشت؛ هزینه هایی همچون هاست (میزبان وب سایت)، دامین (دامنه) و غیره.
شما می توانید بدون پرداخت هیچ هزینه ای برای هاستینگ یا حتی یک وی در شبکه ی اصلی اتریوم، چندین دی اپ (DApp) اتریوم برای خود بسازید و توسعه دهید و از آن بهره ببرید.
استفاده از تست نت ها (Testnets)
شبکه های تست (تست نت)، شبکه هایی هستند که مبتنی بر بلاکچین می باشند و به صورت عمومی نیز در دسترس هستند. این شبکه ها محیط های تولید شبکه اصلی یا همان ” mainnet” را ارائه می دهند. همچنین این امکان را در اختیار توسعه دهندگان هسته قرار می دهند تا امکانات جدید خود مانند مکانیزم های خرد کردن و یا اجماع را قبل از ارسال نهایی به شبکه ی اصلی تست کنند.
تست نت های بسیاری وجود دارد، که می توان از میان آن ها گزینه ی مورد نظر خود را انتخاب کرد. هر کدام از این تست نت ها، خصوصیات متفاوتی دارند که البته خیلی نیز محسوس نمی باشد. این تفاوت ها در مکانیزم های اجماع و پشتیبانی از نرم افزار نود(node) می باشد.
تست نت راپستن (Ropsten) بسیار شبیه به شبکه ی اصلی اتریوم می باشد. افزونه ی متامسک (MetaMask) کروم، از تست نت های راپستن، کووان (Kovan)، رینک بای (Rinkeby) و گورلی (Goerli) پشتیبانی می کند.
به دست آوردن اتر در این تست نت ها به سادگی باز کردن شیر آب می باشد. بیشتر شبکه ها یک ربات چت استایل دارند که در آن، شما آدرس عمومی حساب کاربری که در آن توسعه ی خود را انجام می دهید، را می چسبانید(paste).
توسعه قرارداد هوشمند
این مثال با این پیش فرض ارائه شده است که شما با ترافل سوییت (Truffle Suite) آشنایی دارید. البته اگر آشنایی ندارید هم نگران نباشید. آموزش های بسیاری وجود دارد که می توانید آن ها را دنبال کنید و با نحوه ی توسعه ی دی اپ ها با استفاده از ترافل سوییت آشنا شوید.
حال، با این مثال ادامه می دهیم:
زمانی که شما از هر تست نت دلخواهی، چندین اتر تهیه می کنید، نیاز دارید که یک اتریون نود داشته باشید تا بتوانید قراردادهای خود را در آن توسعه دهید. نودها زمان طولانی ای برای تنظیم شدن نیاز دارند و یادگیری دانش تکنیکی آن ها نیز، نیاز به زمان بیشتر و طولانی تری دارد… این چیزی است که آن را بسیار آزار دهنده کرده است.
خوشبختانه سرویس های زیرساختی بلاک چین، وجود دارد که تمام این پیچیدگی های تنظیم نود را بر عهده می گیرد. زیرساخت مورد علاقه ی من نیز، Infura می باشد.
یک حساب کاربری اینفورا (Infura) بسازید و یک پروژه ی جدید در آن ایجاد کنید. به قسمت تنظیمات (setting) بروید، جایی که در آن می توانید شبکه ای که می خواهید با آن تعامل داشته باشید را انتخاب کنید. این کار را انجام دهید.
اندپوینت (endpoint) HTTPS ای که می خواهید از آن برای توسعه بهره ببرید را ثبت کنید.
در اینجا می خواهیم مثالی از فایل truffle-config.js که برای توسعه در محیط تست نت کووان می باشد را به شما نشان دهیم.
در ابتدا اطمینان حاصل کنید که پکیج هایی که در ادامه گفته شده است را در مخزن (repository) خود دارید. این پکیج ها را می توانید با npm نصب کنید:
“truffle-hdwallet-provider”: “1.0.4”,
“truffle-hdwallet-provider-privkey”: “1.0.3”,
“web3”: “1.0.0-beta.46”
یادداشت: در اینجا ازweb3 نسخه ی1.0.0 استفاده شده است. شما باید از این نسخه یا نسخه های بعدی آن برای توسعه ی موفق استفاده کنید.
در گام بعدی، فایل truffle-config.js خود را تغییر دهید تا شبکه جدید به شی networks اضافه شود.
پروژه ی شما اکنون تنظیم شده است و می توانید قرارداد هوشمند خود را به تست نت کووان منتقل کنید؛ این کار را می توانید با دستور زیر انجام دهید:
truffle migrate –network kovan
وب سرویس های رایگان
حالا که قرارداد هوشمند شما بر روی یک شبکه ی عمومی وجود دارد، نیاز دارید که از فرانت اند (Front End) خود را بر روی وب میزبانی کنید تا اینکه کاربران بتوانند با دی اپ شما کار کنند.
گزینه های مختلفی پیش روی شماست.اینکه می توانید یک وب سرویس را اجرا کنید که زمانبر است و هزینه نیز دربردارد یا اینکه از هاست های برجسته در صنعت استفاده کنید؛ سرویس هایی مانند دیجیتال اوشن (DigitalOcean) یا AWS که به صورت ماهانه شارژ می شوند.
چیزی که شما به آن احتیاج دارید، یک سرویس هاستینگ رایگان می باشد. این سرویس باید سریع باشد و استفاده از آن پیچیده نباشد. در نهایت نیز باید یک پلتفرم برای تست بتای دی اپ، ارائه دهد.
این سرویس ها موجود هستند. در اینجا می خواهیم درباره ی دو تا از همین سرویس ها صحبت کنیم. این دو شامل هروکو(Heroko) و گیت هاب (GitHub) می باشند.
هروکو (Heroko)
هروکو یک پلتفرم، مانند یک سرویس می باشد که توسعه دهنده را قادر می سازد، برنامه های خود را به طور کامل بر روی بستر کلود (ابری) ایجاد، اجرا و عملیاتی کند.
هروکو از بسیاری از فناوری ها پشتیانی می کند و به طور مخصوص، برای توسعه ی برنامه های ارائه شده با نود مناسب و خوب می باشد. اگر از ترافل سوییت برای پروژه ی خود استفاده می کنید، هیچ مشکلی برای توسعه با هروکو نخواهید داشت.
برای توسعه بر روی هروکو، ابتدا باید به خط فرمان(command line) بروید. در ابتدا نیاز خواهید داشت تا به صفحه ی دانلودها(downloads) بروید و رابط خط فرمان هروکو (CLI) را نصب کنید.
به Heroku.com بروید، حساب کاربری خود را ایجاد کنید و یک برنامه ی جدید بسازید. پس از انجام تنظیمات اولیه، به صفحه ی تنظیمات(setting) بروید و Heroku git URL خود را مشخص کنید.
در گام بعدی ترمینال را باز کنید و به پوشه ی روت پروژه ی خود بروید. فرض بر این است که قبلاً از Git برای کنترل نسخه خود استفاده کرده اید. از URL Heroku Git برای اضافه کردن ریموت جدید استفاده کنید:
git remote add heroku [heroku_git_url]
پس از آن به خط فرمان هروکو(CLI) رفته و به حساب کاربری خود وارد شوید:
heroku login
با این کار باید مرورگر شما برای تایید باز شده باشد. زمانی که با موفقیت وارد شدید، تنها چیزی که باقی مانده است مرتبط با محیط توسعه ای و توسعه ی برنامه می باشد! از دستور زیر برای پوش کردن(push) به هروکو استفاده کنید:
git push heroku master
منتظر بمانید تا لاگ ها به پایان برسند؛ اکنون دی اپ(DApp) شما آماده است. هروکو با توجه به نام پروژه شما، یک url به شما اختصاص می دهد. برای باز کردن آن، به Heroku.com بروید و بر روی “Open app” کلیک کنید.یک حساب کاربری اینفورا (Infura) بسازید و یک پروژه ی جدید در آن ایجاد کنید. به قسمت تنظیمات (setting) بروید، جایی که در آن می توانید شبکه ای که می خواهید با آن تعامل داشته باشید را انتخاب کنید. این کار را انجام دهید.
GitHub Pages
GitHub Pages، یک سرویس میزبانی استاتیک می باشد که فایل های HTML، CSS و جاوااسکریپت را مستقیما از مخزن بر روی گیت هاب می گیرد.
هر کسی که تاکنون از گیت هاب استفاده کرده باشد، با آن آشنایی دارد. گیت هاب بزرگ ترین پلتفرم کنترل ورژن می باشد که open source می باشد و در روز تعداد بسیار زیادی از افراد از آن استفاده می کنند.
GitHub Pages سرویسی است که وب سایت های استاتیک را به طور مستقیم از مخزن گیت هاب، میزبانی می کند. این بدین معناست که حتی اگر برنامه شما از سرورسایدهایی مانند php هم استفاده نکرده باشد، می تواند از آن بهره ببرد.
اگر تاکنون از مخزن های گیت هاب استفاده نکرده اید به شما توصیه می کنم که حتما این کار را انجام دهید و از مزایای آن بهره ببرید. فرض ما بر این است که شما، از قبل با این سرویس آشنایی دارید و پروژه ی شما نیز از ترافل سوییفت استفاده کرده است. حالا به خط فرمان بروید و وارد پوشه ی روت پروژه ی خود شوید.
پکیج gh-pages را با استفاده از فرمان زیر نصب کنید:
حالا نیاز است که کمی جزییات به فایل package.json اضافه کنید. این فایل را در ادیتور خود باز کنید.
در درون آبجکت اصلی،در جایی [user-name] و [repo-name] شما در مخزن گیت هاب وجود دارد، خط زیر را وارد کنید:
"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 می باشد.
دی اپ (DApp) شما اکنون بر روی GitHub Pages آماده می باشد.
نتیجه گیری
با استفاده از هروکو (Heroku)، GitHub Pages و همچنین تست نت اتریوم، می توانید پروژه ی خود را بسازید و به صورت عمومی در اختیار دیگران قرار دهید و آن را قابل استفاده برای همگان کنید. البته نکته ای که در این بین وجود دارد، آن است که افرادی که می خواهند از این دی اپ ها استفاده کنند، باید مرورگرهای سازگار با وب3 (web3) داشته باشند و یا از افزونه هایی مانند متامسک (MetaMask) بهره ببرند.
منبع: آی ماینر