في فضاء Web3، غالبًا ما يأتي تطوير التطبيقات مع العديد من الاعتبارات المختلفة عما يتطلبه Web2. يتضمن ذلك مستويات التشفير، واتصالات الواجهة الأمامية بسلاسل متعددة، والوصول إلى البيانات خارج السلسلة، وتوسيع نطاق سياق الإجماع الموزع والمزيد.

لحسن الحظ، ظهرت العديد من الأدوات والمجموعات والوظائف الإضافية والمكونات الإضافية والموارد الأخرى المستقلة لمعالجة واحد أو أكثر من هذه المخاوف. لذا، إذا كنت تخطط لبدء مشروع Web3 مثل تطبيق DeFi، أو سوق NFT، أو الهوية اللامركزية، أو ترميز أصول العالم الحقيقي، أو بعض الخدمات الأخرى، فإليك أهم 8 أدوات أساسية يجب على منشئي Web3 مراعاتها:

1. Infura

عند بناء dApp، من المحتمل أنك ستحتاج إلى عدة عناصر مثل واجهات برمجة التطبيقات (APIs) لربط الواجهات الأمامية وخدمات Web 2.0 الأخرى بأصولك الموجودة على السلسلة (on-chain). قد تحتاج أيضًا إلى إعداد أو توفير بنية تحتية إضافية لاستضافة كل عناصر الربط هذه.

وبناءً على ذلك، تأتي Infura في هذا السياق. تجمع Infura بين واجهات برمجة تطبيقات البلوك تشين وأدوات تطوير أخرى لتوفير بيئة يمكنك فيها التركيز على كتابة الكود لربط مكوّنات برمجية منفصلة، وتقليل الوقت الذي تقضيه في إدارة البنية التحتية.

وبالنظر إلى النهج المُدار، تجعل Infura من الأسهل توسيع نطاق تطبيقك عبر طلب موارد إضافية. كما توفر توافرًا عاليًا عند الوصول إلى شبكات مختلفة، مع توفر يصل إلى 99.9%.

2. Truffle

Truffle هو إطار عمل يعتمد على JavaScript ولا يكتفي بالاستناد إلى نقطة قوة رئيسية واحدة، بل يجمع بين عدة موارد. يتيح لك إنشاء عقود ذكية لسلاسل EVM، وتشغيلها في بيئات اختبار، والعمل على سماتها الخاصة بالواجهة الأمامية (front-end).

باستخدام Truffle، يمكنك أيضًا إنشاء سكربتات لأتمتة العمليات المتكررة والحصول على فهم أفضل للأخطاء عبر التركيز على المعاملات (transactions). ومن الصفات المفيدة أيضًا في Truffle تخصيص بيئة الاختبار لمحاكاة سلسلة موجودة بالفعل.

ومع ذلك، تصبح هذه الميزة أكثر قوة عند البحث في العلاقة بين dApps وسلاسلها الداعمة، خاصة في مجالات مثل الأمان والأداء. من خلال تغيير بعض خصائص بيئة الاختبار وملاحظة تأثير ذلك على dApp الخاص بك، يمكنك اكتشاف طرق جديدة لجعل كلٍ من dApps والبلكتشين أكثر كفاءة وأمانًا.

وتذكر أن Truffle يضمن أن يحصل المطور على أفضل تجربة ممكنة. يمكنهم الاعتماد على الإضافات (extensions) لسير العمل من البداية إلى النهاية واستخدام واجهة سطر الأوامر (CLI) بشكل محدود جدًا. وبعبارة أخرى، يمكنه نقل بساطة أداة على مستوى مبتدئ مع حزم عدد كبير من الميزات المتقدمة.

3. Hardhat

Hardhat هي مجموعة أدوات أخرى تتضمن عقدة (node) شبكة Ethereum محلية وإمكانيات إضافة (extension) لبرنامج VS Code، لكن مع اختلاف بسيط. تحتوي هذه الحزمة أيضًا على Hardhat Runner، وهو مكوّن مركزي يمنحك قدرات أتمتة هائلة لإدارة المهام المتكررة بسهولة من منظور الجدولة والتركيب (composition).

اعتمادًا على الرسائل التي تحصل عليها عند تنفيذ إجراءات مثل التصحيح (debugging)، يمكنك إعادة هيكلة بعض العمليات وإعادة ترتيب الإجراءات داخل تسلسل لتقليل عدد المشكلات التي قد تواجهها لاحقًا، وتقليل تعقيد حلها.

4. Substrate

يقدّم هذا الإطار، الذي تم إنشاؤه بواسطة Parity، بنية تحتية لتطوير حلول تمكّن من التفاعل بين بلوك تشينات متباينة. باستخدام Substrate، يمكنك دمج أجهزة الهاتف المحمول وإنترنت الأشياء (IoT) بسهولة، ولن تحتاج بلوك تشينك إلى إجراء تفريع (fork) للترقية. بالإضافة إلى ذلك، أشاد المساهمون ببساطته، مؤكدين القدرة على إعداد بلوك تشين خلال ساعة.

كما أنه أداة موثوقة للأشخاص الذين يفضّلون نهج Rust وJavaScript. يوفّر Substrate مرونة أكبر في التعامل مع اختيارات استدعاءات غير متزامنة (asynchronous call optionality)، والتشفير والصلاحيات، وكذلك أساليب الحوكمة. علاوة على ذلك، يُعد Substrate خيارًا ممتازًا إذا كنت مهتمًا بآلية الإجماع الخاصة بإثبات الصلاحية (proof-of-authority).

5. WatchData

النقطة الأبرز في WatchData هي دمج بيانات بلوك تشين في الوقت الحقيقي مع أقل قدر ممكن من التعثرات. كلما كنت تعمل على dApp يحتاج إلى إرسال بيانات on-chain إلى خدمة أخرى مثل مستكشف بلوك تشين (block explorer)، أو بورصة مركزية، أو dApp آخر، قد تكون البيانات أحيانًا في صيغة مختلفة عما تريده.

ستحتاج إلى فهم ما الذي تتوقعه الجهة المستقبِلة لاستخلاصه من هذه البيانات، ثم تقدير الفجوة في مدى سهولة فهمها. بعد ذلك، يتعين عليك تحويل البيانات الخام أو غير المهيكلة إلى مجموعات بيانات أكثر اتساقًا، وأحيانًا تكييفها أكثر لتناسب المتلقين المحددين. تساعدك WatchData على تطوير نظام للقيام بذلك مع ضمان سلامة البيانات وجودتها.

6. Remix

Remix هو بيئة تطوير متكاملة Solidity تعمل داخل المتصفح (browser-based IDE) تتيح للمطورين تجميع (compile) العقود الذكية واختبارها وتصحيحها (debug) ونشرها (deploy). هذه الأداة أكثر بساطة ومناسبة جدًا للأشخاص الذين ينشئون dApps أو مكونات dApp بمنطق (logic) بسيط.

يتضمن Remix تحليلًا ثابتًا مدمجًا، ويمكنك إعداد سلاسل محلية وإجراء تجارب أولية (trial runs) على عقودك. ومع ذلك، قد تحتاج إلى إدخال عناصر مثل إضافة Hardhat (Hardhat add-on)، والتي ستساعدك على تقدير كمية الغاز (gas) المطلوبة لتشغيل تلك العقود.

تمت كتابة Remix بلغة JavaScript ويقدّم قوالب مشاريع (project templates) ويحتوي على عدة إضافات (plugins)، لذا فهو أداة ممتازة لتعلم الأساسيات الخاصة بالعقود الذكية. وهذا هو السبب في أنه أصبح معيارًا صناعيًا لدى العديد من مطوري Web3.

7. Foundry

تدعم مجموعة أدوات Foundry قابلية النقل (portability) والتصميم المعياري (modularity)، مما يمكّن المطورين من إنشاء dApps متوافقة مع EVM في بيئة مبنية على Rust. بالإضافة إلى ذلك، تأتي مع Forge، وهو إطار عمل لاختبار Ethereum يجعل تجميع العقود الذكية واختبارها أسرع بكثير.

لدى Foundry أيضًا Cast، المخصص لإرسال المعاملات (transactions)، واسترجاع بيانات البلوك تشين، والتفاعل مع عقود ذكية متوافقة مع EVM. توجد أيضًا Anvil، وهي عقدة محلية تساعدك على الحصول على معاينة لكيفية مزج تطبيقك مع بلوك تشين الهدف. من السهل جدًا تثبيت Foundry، ويتيح لك تجاوز حالة الجهاز الافتراضي (VM state)، وإجراء اختبارات fuzz، وتسجيل معلومات التصحيح عند الاختبار.

8. معالج عقود OpenZeppelin (OpenZeppelin Contracts Wizard)

هذه أداة أخرى تركز على تبسيط برمجة الجزء الخلفي (back-end). تُمكّنك من اتباع نهج تفاعلي لبناء dApps من خلال السماح لك بتحديد ما تريد لتطبيقك القيام به. وفي الوقت نفسه، في الخلفية، يقوم Contracts Wizard بتوليد كود Solidity لمعايير رموز ERC المختلفة مثل ERC-20 وERC-1155 وERC-721.

الخلاصة

في النهاية، لاختيار الأدوات المناسبة لمشروع Web3 الخاص بك، تحتاج إلى تحديد ما ترغب في تقديمه للمستخدمين، وما هي الأماكن (السلاسل) التي تريد تقديمه فيها، ومدى السرعة التي تريد بناءه بها.

#Binance #crypto2023 #web3 #dyor #BNB