متامسک (Metamask) | کیف پول بلاک چین
متامسک (Metamask) محبوب ترین کیف پول بلاک چین است. از کیف پول متامسک برای ذخیره ارزهای دیجیتال، مبادله رمز ارزهای مبتنی بر ETH یا ترید در صرافیهای غیرمتمرکز (دکس) مانند پنکیک سواپ (PancakeSwap) استفاده کنید.
برای اینکه بتوانید به راحتی از Metamask استفاده کنید، لازم است که ابتدا این ولت (Wallet) را خوب بشناسید. در این مقاله به روشی ساده، نحوه کار با متامسک آموزش داده شده است. همچنین نحوه اتصال متامسک با بلاکچین گاناش (Ganache) و مطالب مفید دیگری که هر برنامه نویس بلاکچین باید بداند.
متامسک چیست؟
متامسک بیش از 10 میلیون کاربر دارد. روی اتریوم (Ethereum) و همه بلاک چین های مبتنی بر اتریوم مانند بایننس اسمارت چین (BSC) یا پالیگان (Polygon) کار میکند. متامسک، کلید خصوصی (Private Key) کاربران را ذخیره می کند. هر کلید خصوصی با یک آدرس عمومی اتریوم مرتبط شده است. کلید خصوصی هرگز کیف پول را ترک نمی کند و برای امضای تراکنش ها (Transaction Sign) استفاده می شود. آدرس اکانت (Account Address) برای مشخص کردن یک حساب کاربری بوده و می تواند به هر کسی ارسال شود.
Metamask پل ارتباطی شما با محصولات وب غیرمتمرکز (Web3) می باشد:
- Web 3.0
- Dapps
- ERC721 NFTs
- ERC20 tokens
- ICOs
نصب متامسک روی مرورگر
متامسک روی مرورگرهای فایرفاکس، Brave، مایکروسافت ایج نیز قابل نصب می باشد.
برای نصب متامسک کروم، به فروشگاه گوگل کروم بروید، متامسک را جستجو کنید و آن را دانلود کنید. پس از دانلود کیف پول متامسک و نصب آن، باید یک نماد روباه را در قسمت اکستیشن های مرورگر کروم خود مشاهده کنید.
هنگامی که کیف پول متامسک را برای اولین بار باز می کنید، از شما می خواهد که اگر قبلا حساب کاربری داشتید، اطلاعات آن را وارد کنید یا یک رمز عبور و یک حساب کاربری جدید ایجاد کنید.
پس از اتمام نصب، چند آدرس (اکانت) با کلیدهای خصوصی مرتبط با آنها خواهید داشت. با باز کردن متامسک می توانید صفحه ای مشابه تصویر زیر را مشاهده نمایید که در حال نمایش موجودی و اطلاعات اکانت شما می باشد.
کاربرد متامسک در توسعه DApp ها
قبلا در مورد اپلیکیشن های غیر متمرکز (Decentralized Applications) صحبت کردیم و با خصوصیات آنها آشنا شدید. ویژگی اصلی که DApp ها را از App های سنتی وب2 متمایز می سازد این است که این سامانه ها غیرمتمرکز بوده و از مزایای وب3 (Web3) بهره می برند. در واقع بخش اعظمی از دیتای DApp ها به جای دیتابیس روی بلاکچین ذخیره می شوند. همچنین کاربران DApp به جای اهراز هویت متمرکز (KYC) کافی است یک آدرس اکانت بلاکچین در یک کیف پول مانند Metamask ایجاد کرده و وارد سامانه DApp شود. هر کاربر در فضای بلاکچین با آدرس اکانت شناخته می شود.
استفاده از متامسک در توسعه DApp
- ابتدا برنامه نویس قراردادهای هوشمند را به زبان سالیدیتی نوشته و در بلاکچین مربوطه دپلوی میکند.
- سپس برنامه نویس، کدهای فرانت (html ، css ، جاوا اسکریپت و …) پروژه Dapp را در هاست مورد نظر قرار میدهد.
- کاربر در مرورگر وب خود متامسک را نصب و لاگین می کند.
- سپس کاربر وارد سایت مربوط به DApp شده و از طریق دکمه در نظر گرفته شده در DApp ولت خود را کانکت می کند.
- کاربر با کلیک روی دکمه های مختلف DApp موجب اجرای کدهای مختلف و تولید تراکنش توسط DApp می شود.
- با ارسال هر تراکنش توسط DApp پنجره متامسک باز شده و کاربر باید تراکنش را تایید کند تا اجرا شود.
- در نهایت، تراکنش توسط Metamask به شبکه بلاکچین (اتریوم یا …) ارسال می شود.
ارتباط متامسک با گاناش
گاناش (Ganache) یک بلاکچین محلی (local blockchain) است که در برنامه نویسی بلاکچین مورد استفاده قرار می گیرد. گناش یک شبکه بلاکچین مبتنی بر اتریوم در کامپیوتر شما است که می توانید از آن به عنوان یک بلاکچین روی سیستم خودتان استفاده کنید. برای افزودن شبکه گاناش به متامسک، در تنظیمات Metamask به قسمت Networks بروید و Add a network را بزنید و اطلاعات مربوط به شبکه Ganache را وارد نمایید:
وارد کردن اکانت های گاناش در متامسک
وقتی گناش را نصب میکنید، 10 حساب کاربری با 100 اتر موجودی تستی به طور خودکار ایجاد می شود. وارد کردن حساب های Ganache در Metamask برای توسعه دهندگان DApp ضروری می باشد. برای این کار ابتدا باید شبکه گاناش روی Metamask تعریف شده باشد.
جهت وارد کردن اکانت گاناش در متامسک باید کلید خصوصی حساب را کپی کنید. ابتدا روی علامت key جلوی اکانت مورد نظر کلیک کرده و کلید خصوصی آن حساب را کپی کنید.
سپس باید در قسمت Import Account متامسک کلیک کنیم و کلید خصوصی کپی شده را در محل مناسب وارد کنیم.
اتصال به متامسک از طریق سورس DApp
در کد جاوا اسکریپت Dapp خود، برای اتصال به بلاکچین از کتابخانه هایی مانند Web3.js یا Ethers.js استفاده می کنیم. برای ادغام با Metamask، این کتابخانه ها باید منتظر بارگذاری متامسک باشند تا بتوانند به provider آن متصل شوند. برای برقرار کردن کانکشن و ایجاد یک provider می توانید از یک کتابخانه مانند @metamask/detect-provider استفاده کنید.
نحوه استفاده از این کتابخانه بسیار ساده است:
1 2 3 4 5 6 7 8 9 10 |
<script src="https://unpkg.com/@metamask/detect-provider/dist/detect-provider.min.js"></script> <script type="text/javascript"> const provider = await detectEthereumProvider() if (provider) { // handle provider } else { // handle no provider } </script> |
اگر به کتابخانه قدرتمندتری نیاز دارید از web3-react استفاده کنید.
مشکلات کیف پول متامسک
1- توجه داشته باشید که اگر در مرحله تعریف شبکه گاناش در متامسک، از chain ID ایراد بگیرد دلیلش این است که شما شبکه محلی (local network) دیگری در Metamask دارید که در اینصورت، ابتدا باید آن را حذف کنید. سپس می توانید اطلاعات شبکه گاناش را مطابق با تصویر مندرج در بخش “ارتباط متامسک با گاناش” وارد کنید و شبکه را ذخیره نمایید.
2- هر بار که Ganache را مجدداً اجرا می کنید، مطمئن شوید که در تنظیمات پیشرفته Metamask روی بازنشانی حساب ها (Reset Account) کلیک کرده اید. اگر این کار را انجام ندهید، تراکنش های شما بدون دلیل، Reject می شود.
نتیجه گیری
اکنون، می دانید Metamask چیست و چگونه آن را با Dapp خود ادغام کنید. اگر میخواهید در مورد ادغام کد با Metamask بیشتر بدانید، میتوانید راهنمای Ehereum Provider API یا EIP-1193: Ethereum Provider JavaScript API را مطالعه نمایید.
درباره مجید شبیری
کارشناس ارشد فناوری اطلاعات از دانشگاه صنعتی امیرکبیر. مدیر و مؤسس "علوم نوین امیرکبیر"، متخصص برنامه نویسی، شبکه، لینوکس و امنیت. از سال 84 همزمان با شروع تحصیلات دانشگاهی، وارد حوزه تخصصی مهندسی نرم افزار شدم و اکنون مشغول تحقیق، توسعه و آموزش در حوزه بلاک چین هستم و معتقدم بلاکچین به زودی فضای کسب و کارها را منقلب خواهد کرد.
نوشته های بیشتر از مجید شبیری
دیدگاهتان را بنویسید