رابط کاربری web3.js چیست؟

وب 3 دات ج اس ( Web3.js ) کتابخانه مشهور متن باز است که به توسعه دهندگان اجازه می دهد با بلاکچین اتریوم تعامل داشته باشند. این یک زبان جاوا اسکریت برای رابط JSON-RPC است که آن را مستقیما در فن آوری وب قابل استفاده می کند؛ چراکه جاوا اسکریپت تقریبا در همه مرورگرهای وب پشتیبانی می شود.

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

- آدرس قرارداد هوشمند

- تابعی که می خواهید فراخوانی کنید

- متغیرهایی که می خواهید به آن تابع ارسال کنید.

گره های اتریوم با زبانی به نام JSON-RPC صحبت می کنند که خوانایی توسط انسان را ندارند. یک پرس و‌جوی نمونه به یک گره جهت فراخوانی یک تابع بر روی یک قرارداد هوشمند به صورت زیر است:

// Yeah... Good luck writing all your function calls this way!
{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{"from":"0xb60e8dd61c5d32be8058bb8eb970870f07233155","to":"0xd46e8dd67c5d32be8058bb8eb970870f07244567","gas":"0x76c0","gasPrice":"0x9184e72a000","value":"0x9184e72a","data":"0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"}],"id":1}

خوشبختانه Web3.js این پرس و جو را پنهان می کند و رابط جاوا اسکریپت راحت تری را ارائه می دهد. در نتیجه به جای ایجاد پرس جوی فوق، فراخوانی یک تابع در کد شما شبیه به این خواهد بود:

CryptoZombies.methods.createRandomZombie("Vitalik Nakamoto")
.send({ from: "0xb60e8dd61c5d32be8058bb8eb970870f07233155", gas: "3000000" })

بستگی به نوع پروژه، شما می توانید Web3.js را به پروژه خودتان اضافه کنید. و یا می توانید فایل .js را از گیت هاب دانلود و در پروژه خود قرار دهید:

<script language="javascript" type="text/javascript" src="web3.min.js">

کانفیگ یک ارائه دهنده Web3 در Web3.js به کد ما می گوید که برای مدیریت خواندن و نوشتن باید با کدام گره صحبت کنیم. به نوعی شبیه تنظیم آدرس وب سرور از راه دور برای فراخوانی API در برنامه های وب است.

استفاده از متامسک (Metamask) به عنوان یک فراهم کننده Web3.js

متامسک (Metamask) یک پلاگین مرورگر برای کروم، فایرفاکس و اُپرا است که به کاربران امکان می دهد حساب های اتریوم و کلیدهای خصوصی خود را به طور ایمن مدیریت کنند و از این حساب ها برای تعامل با وبسایت هایی سازگار با Web3.js استفاده کنند.

با استفاده از متامسک در ترکیب با Web3.js در یک رابط وب، روشی مناسب برای تعامل با شبکه اتریوم را فراهم می کند.