تخطي إلى المحتوى الرئيسي

البدء في تطوير إيثيريوم

JavaScript
ethers.js
العقد
الاستعلام
Alchemy
مبتدئ
إيلان هالبرن
30 أكتوبر 2020
4 دقيقة للقراءة

Ethereum and Alchemy logos

هذا دليل للمبتدئين للبدء في تطوير إيثيريوم. في هذا البرنامج التعليمي، سنستخدم Alchemy (يفتح في علامة تبويب جديدة)، وهي منصة تطوير سلسلة الكتل الرائدة التي تدعم ملايين المستخدمين من 70% من أفضل تطبيقات سلسلة الكتل، بما في ذلك Maker و 0x و MyEtherWallet و Dharma و Kyber. ستمنحنا Alchemy إمكانية الوصول إلى نقطة نهاية API على سلسلة إيثيريوم حتى نتمكن من قراءة المعاملات وكتابتها.

سنأخذك من التسجيل في Alchemy إلى كتابة أول برنامج نصي لـ Web3! لا يلزم وجود خبرة سابقة في تطوير سلسلة الكتل!

1. التسجيل للحصول على حساب Alchemy مجاني

إنشاء حساب في Alchemy أمر سهل، سجل مجانًا هنا (يفتح في علامة تبويب جديدة).

2. إنشاء تطبيق Alchemy

للتواصل مع سلسلة إيثيريوم واستخدام منتجات Alchemy، ستحتاج إلى مفتاح API لمصادقة طلباتك.

يمكنك إنشاء مفاتيح API من لوحة التحكم (يفتح في علامة تبويب جديدة). لإنشاء مفتاح جديد، انتقل إلى "Create App" (إنشاء تطبيق) كما هو موضح أدناه:

شكر خاص لـ ShapeShift (يفتح في علامة تبويب جديدة) لسماحهم لنا بعرض لوحة التحكم الخاصة بهم!

Alchemy dashboard

املأ التفاصيل ضمن "Create App" (إنشاء تطبيق) للحصول على مفتاحك الجديد. يمكنك أيضًا رؤية التطبيقات التي قمت بإنشائها سابقًا وتلك التي أنشأها فريقك هنا. اسحب المفاتيح الحالية بالنقر فوق "View Key" (عرض المفتاح) لأي تطبيق.

Create app with Alchemy screenshot

يمكنك أيضًا سحب مفاتيح API الحالية عن طريق التمرير فوق "Apps" (التطبيقات) وتحديد أحدها. يمكنك "View Key" (عرض المفتاح) هنا، بالإضافة إلى "Edit App" (تعديل التطبيق) لإدراج نطاقات معينة في القائمة البيضاء، ورؤية العديد من أدوات المطورين، وعرض التحليلات.

3. إجراء طلب من سطر الأوامر

تفاعل مع سلسلة كتل إيثيريوم من خلال Alchemy باستخدام JSON-RPC و curl.

بالنسبة للطلبات اليدوية، نوصي بالتفاعل مع JSON-RPC عبر طلبات POST. ما عليك سوى تمرير ترويسة Content-Type: application/json واستعلامك كجسم POST مع الحقول التالية:

  • jsonrpc: إصدار JSON-RPC — حاليًا، الإصدار 2.0 فقط هو المدعوم.
  • method: طريقة API الخاصة بـ ETH. راجع مرجع API.
  • params: قائمة بالمعلمات لتمريرها إلى الطريقة.
  • id: مُعرّف طلبك. سيتم إرجاعه بواسطة الاستجابة حتى تتمكن من تتبع الطلب الذي تنتمي إليه الاستجابة.

إليك مثال يمكنك تشغيله من سطر الأوامر لاسترداد سعر الغاز الحالي:

curl https://eth-mainnet.alchemyapi.io/v2/demo \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}'

ملاحظة: استبدل https://eth-mainnet.alchemyapi.io/v2/demo بمفتاح API الخاص بك https://eth-mainnet.alchemyapi.io/v2/**your-api-key.

النتائج:

{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 10000000000000 }

4. إعداد عميل Web3 الخاص بك

إذا كان لديك عميل حالي، فقم بتغيير عنوان URL لمزود العقدة الحالي إلى عنوان URL الخاص بـ Alchemy مع مفتاح API الخاص بك: “https://eth-mainnet.alchemyapi.io/v2/your-api-key"

ملاحظة: يجب تشغيل البرامج النصية أدناه في سياق عقدة (node context) أو حفظها في ملف، وليس تشغيلها من سطر الأوامر. إذا لم يكن لديك Node أو npm مثبتين بالفعل، فاتبع إرشادات تثبيت Node.js (يفتح في علامة تبويب جديدة).

هناك الكثير من مكتبات Web3 التي يمكنك دمجها مع Alchemy، ومع ذلك، نوصي باستخدام Alchemy Web3 (يفتح في علامة تبويب جديدة)، وهو بديل جاهز لـ Web3.js، تم إنشاؤه وتكوينه للعمل بسلاسة مع Alchemy. يوفر هذا مزايا متعددة مثل إعادة المحاولة التلقائية ودعم WebSocket القوي.

لتثبيت AlchemyWeb3.js، انتقل إلى دليل مشروعك وقم بتشغيل:

باستخدام Yarn:

yarn add @alch/alchemy-web3

باستخدام NPM:

npm install @alch/alchemy-web3

للتفاعل مع البنية التحتية لعقدة Alchemy، قم بالتشغيل في NodeJS أو أضف هذا إلى ملف JavaScript:

const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
const web3 = createAlchemyWeb3(
  "https://eth-mainnet.alchemyapi.io/v2/your-api-key"
)

5. كتابة أول برنامج نصي لـ Web3!

الآن للبدء في العمل العملي مع القليل من برمجة Web3، سنكتب برنامجًا نصيًا بسيطًا يطبع أحدث رقم كتلة من شبكة إيثيريوم الرئيسية.

1. إذا لم تكن قد فعلت ذلك بالفعل، فقم بإنشاء دليل مشروع جديد في جهازك الطرفي (terminal) وانتقل إليه باستخدام cd:

mkdir web3-example
cd web3-example

2. قم بتثبيت تبعية Alchemy Web3 (أو أي Web3) في مشروعك إذا لم تكن قد قمت بذلك بالفعل:

npm install @alch/alchemy-web3

3. قم بإنشاء ملف باسم index.js وأضف المحتويات التالية:

يجب عليك في النهاية استبدال demo بمفتاح HTTP API الخاص بـ Alchemy.

async function main() {
  const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
  const web3 = createAlchemyWeb3("https://eth-mainnet.alchemyapi.io/v2/demo")
  const blockNumber = await web3.eth.getBlockNumber()
  console.log("The latest block number is " + blockNumber)
}
main()

لست على دراية بالأمور غير المتزامنة (async)؟ تحقق من منشور Medium (يفتح في علامة تبويب جديدة) هذا.

4. قم بتشغيله في جهازك الطرفي باستخدام node

node index.js

5. يجب أن ترى الآن أحدث رقم كتلة معروضًا في وحدة التحكم الخاصة بك!

The latest block number is 11043912

رائع! تهانينا! لقد كتبت للتو أول برنامج نصي لـ Web3 باستخدام Alchemy 🎉

لست متأكدًا مما يجب فعله بعد ذلك؟ جرب نشر أول عقد ذكي لك وابدأ العمل العملي مع بعض برمجة Solidity في دليل العقد الذكي Hello World الخاص بنا، أو استمر في استكشاف مستندات Alchemy (يفتح في علامة تبويب جديدة) لمزيد من الأمثلة.

سجل مع Alchemy مجانًا (يفتح في علامة تبويب جديدة)، وتحقق من وثائقنا (يفتح في علامة تبويب جديدة)، وللحصول على أحدث الأخبار، تابعنا على Twitter (يفتح في علامة تبويب جديدة).