إعداد web3.js لاستخدام بلوكتشين إيثريوم في جافا سكريبت
في هذا البرنامج التعليمي، سنرى كيفية البدء في استخدام web3.js (opens in a new tab) للتفاعل مع بلوكتشين إيثريوم. يمكن استخدام ويب3.جي إس في كل من الواجهات الأمامية والخلفية لقراءة البيانات من البلوكتشين أو إجراء المعاملات وحتى نشر العقود الذكية.
الخطوة الأولى هي تضمين web3.js في مشروعك. لاستخدامه في صفحة ويب، يمكنك استيراد المكتبة مباشرةً باستخدام شبكة توصيل المحتوى (CDN) مثل JSDeliver.
1<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>إذا كنت تفضل تثبيت المكتبة لاستخدامها في الواجهة الخلفية أو مشروع الواجهة الأمامية الذي يستخدم بنية، فيمكنك تثبيتها باستخدام npm:
npm install web3 --saveبعد ذلك، لاستيراد ويب3.جي إس إلى نص برمجي لـ نود.جي إس أو مشروع واجهة أمامية لـ Browserify، يمكنك استخدام سطر جافا سكريبت التالي:
1const Web3 = require("web3")الآن بعد أن قمنا بتضمين المكتبة في المشروع، نحتاج إلى تهيئتها. يجب أن يكون مشروعك قادرًا على الاتصال بالبلوكتشين. تتواصل معظم مكتبات إيثريوم مع عقدة من خلال استدعاءات RPC. لبدء موفر ويب3 الخاص بنا، سنقوم بإنشاء نسخة من ويب3 مع تمرير عنوان URL الخاص بالموفر كمنشئ. إذا كانت لديك عقدة أو مثيل ganache يعمل على جهاز الكمبيوتر الخاص بك (opens in a new tab)، فسيبدو الأمر كما يلي:
1const web3 = new Web3("http://localhost:8545")إذا كنت ترغب في الوصول مباشرة إلى عقدة مستضافة، فيمكنك العثور على خيارات في العُقَد كخدمة.
1const web3 = new Web3("https://cloudflare-eth.com")لاختبار أننا قمنا بتهيئة مثيل ويب3 الخاص بنا بشكل صحيح، سنحاول استرداد رقم أحدث كتلة باستخدام دالة getBlockNumber. تقبل هذه الدالة رد اتصال كمعلمة وتُرجع رقم الكتلة كرقم صحيح.
1var Web3 = require("web3")2const web3 = new Web3("https://cloudflare-eth.com")3
4web3.eth.getBlockNumber(function (error, result) {5 console.log(result)6})إذا قمت بتنفيذ هذا البرنامج، فسيطبع ببساطة رقم أحدث كتلة: أعلى البلوكتشين. يمكنك أيضًا استخدام استدعاءات دالة await/async لتجنب تداخل ردود الاتصال في الكود الخاص بك:
1async function getBlockNumber() {2 const latestBlockNumber = await web3.eth.getBlockNumber()3 console.log(latestBlockNumber)4 return latestBlockNumber5}6
7getBlockNumber()يمكنك رؤية جميع الدوال المتاحة في مثيل ويب3 في توثيق web3.js الرسمي (opens in a new tab).
معظم مكتبات ويب3 غير متزامنة لأنه في الخلفية، تجري المكتبة استدعاءات JSON-RPC إلى العقدة التي تعيد النتيجة.
إذا كنت تعمل في المتصفح، فإن بعض المحافظ تقوم بإدخال مثيل ويب3 مباشرةً ويجب أن تحاول استخدامه كلما أمكن ذلك خاصةً إذا كنت تخطط للتفاعل مع عنوان إيثريوم الخاص بالمستخدم لإجراء المعاملات.
إليك المقتطف للكشف عما إذا كانت محفظة ميتاماسك متاحة ومحاولة تمكينها إذا كانت كذلك. سيسمح لك لاحقًا بقراءة رصيد المستخدم وتمكينهم من التحقق من صحة المعاملات التي تود أن يقوموا بها على بلوكتشين إيثريوم:
1if (window.ethereum != null) {2 state.web3 = new Web3(window.ethereum)3 try {4 // طلب الوصول إلى الحساب إذا لزم الأمر5 await window.ethereum.enable()6 // الحسابات مكشوفة الآن7 } catch (error) {8 // رفض المستخدم الوصول إلى الحساب...9 }10}توجد بدائل لـ web3.js مثل إيثرز.جي إس (opens in a new tab) وهي شائعة الاستخدام أيضًا. في البرنامج التعليمي التالي، سنرى كيفية الاستماع بسهولة إلى الكتل الواردة الجديدة على البلوكتشين ومعرفة ما تحتويه (opens in a new tab).
آخر تحديث للصفحة: 3 مارس 2026