تثبيت بيئة عمل Solana وإطار عمل Anchor لتسهيل كتابة العقود
تثبيت بيئة عمل Solana وإطار عمل Anchor لتسهيل كتابة العقود
عند الانتقال من عالم Ethereum إلى شبكة Solana يكتشف المطور سريعاً أن نمط بناء العقود الذكية مختلف جذرياً. في Solana لا نتعامل مع عقد تقليدي فقط، بل مع Program وحسابات Accounts يتم تمريرها صراحةً لكل عملية.
ولهذا السبب يظهر إطار Anchor كطبقة إنتاجية مهمة تختصر كثيراً من التعقيد. فهو يوفر قوالب جاهزة، ونظام توصيف للحسابات، وأدوات اختبار ونشر تجعل تجربة التطوير أقرب إلى أطر العمل الحديثة. إذا كنت قد قرأت سابقاً استكشاف البلوكتشين البديلة: لماذا يفضل المطورون Solana للسرعة العالية؟ فهذه المقالة تمثل الخطوة العملية التالية.
وسنربط هنا بين تثبيت الأدوات وفهم سبب الحاجة إليها، مع التركيز على بناء بيئة احترافية مستقرة صالحة للتجربة المحلية ثم النشر على شبكات Devnet وTestnet.
لماذا نحتاج إلى Anchor فوق أدوات Solana CLI؟
يمكن كتابة برامج Solana باستخدام Rust مباشرةً مع الحزم الأساسية، لكن ذلك يضع على المطور عبئاً كبيراً في إدارة التسلسل الثنائي للبيانات، تعريف الحسابات، التحقق من الملكية، وبناء ملفات الواجهة للتكامل مع الواجهة الأمامية.
إطار Anchor يعالج هذه النقاط عبر:
- توليد هيكل مشروع قياسي قابل للصيانة.
- استخدام
Macrosلتبسيط تعريف التعليمات والحسابات. - إنتاج ملف
IDLالذي يشبه عقد الواجهة البرمجية. - توفير أوامر مدمجة للاختبار، البناء، والنشر.
- تسهيل الربط لاحقاً مع الواجهات عبر مكتبات مثل
TypeScriptوweb3.js.
ومن الناحية التعليمية، فإن استخدام Anchor يختصر المسافة بين فهم أساسيات نظرة سريعة على لغة Rust: أساسيات لبرمجة العقود الذكية على شبكة Solana وبين بناء تطبيقات عملية قابلة للاختبار.
المتطلبات الأساسية قبل التثبيت
قبل تثبيت الأدوات، يجب التأكد من وجود بيئة تطوير حديثة تحتوي على حزم البناء الأساسية. يفضل العمل على نظام Linux أو macOS، بينما يمكن العمل على Windows غالباً عبر WSL لتجنب مشاكل التوافق.
الأدوات المطلوبة
Rustمع مدير الحزمcargo.Solana CLI.Anchor CLI.Node.jsلتشغيل اختبارات الواجهة والملفات المساعدة.- محفظة للتجربة على الشبكات العامة، ومعرفة آلية المفاتيح كما شرحنا في التشفير والمفاتيح: كيف تعمل المحافظ الرقمية (Public & Private Keys) برمجياً؟.
تثبيت Rust أولاً
بما أن برامج Solana تُكتب عادةً باستخدام Rust، فهذه هي أول طبقة يجب إعدادها. بعد التثبيت ستحتاج إلى التأكد من أن أوامر rustc وcargo متاحة في المسار التنفيذي.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustc --version
cargo --version
إذا ظهرت أرقام الإصدارات بشكل سليم، فهذا يعني أن مترجم Rust جاهز. من الأفضل أيضاً تنفيذ تحديث دوري:
rustup update
تثبيت Solana CLI وضبط الشبكة
أداة Solana CLI تمثل البوابة الأساسية لإنشاء المحافظ، طلب العملات التجريبية، تشغيل المدقق المحلي، ونشر البرامج. بدونها لن تتمكن من اختبار دورة التطوير الكاملة.
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
solana --version
بعد التثبيت، أنشئ زوج مفاتيح محلياً أو استخدم الملف الافتراضي:
solana-keygen new
solana config set --url devnet
solana address
solana config get
أمر solana config set --url devnet يحدد الشبكة المستهدفة، بينما يسمح solana address بمعرفة العنوان العمومي للمحفظة الحالية.
وللحصول على رصيد تجريبي للتطوير يمكن استخدام أمر airdrop، وهي فكرة تشبه ما شرحناه في الحصول على عملات تجريبية مجانية (Faucet) للبدء في نشر واختبار العقود الذكية.
solana airdrop 2
solana balance
تثبيت Anchor CLI
الآن نصل إلى الطبقة الأهم في هذه البيئة. يمكن تثبيت Anchor CLI بعدة طرق، لكن الأكثر شيوعاً هو عبر cargo.
cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
avm install latest
avm use latest
anchor --version
أداة avm هي مدير إصدارات خاص بـ Anchor، وتشبه في فائدتها مديري الإصدارات في بيئات أخرى. وجودها مهم لأن توافق الإصدارات بين Solana وAnchor يؤثر مباشرة على نجاح البناء والاختبار.
احرص دائماً على تثبيت إصدارات متوافقة بين
Solana CLIوAnchor. كثير من أخطاء البناء ليست أخطاء برمجية، بل ناتجة عن تضارب الإصدارات أو تغيّر بنية الحزم الداخلية.
إنشاء أول مشروع Anchor
بعد اكتمال التثبيت، أنشئ مشروعاً جديداً لتتأكد أن جميع المكونات تعمل بتناغم:
anchor init my-solana-app
cd my-solana-app
anchor build
سيقوم الأمر الأول بإنشاء هيكل مجلدات قياسي يضم:
- مجلد
programsلكود البرنامج المكتوب بـRust. - مجلد
testsللاختبارات. - ملف
Anchor.tomlلإعدادات المشروع. - ملف
Cargo.tomlلإدارة تبعياتRust.
إذا نجح anchor build فهذا دليل قوي على صحة البيئة. كما سيتم توليد ملف IDL الذي ستستخدمه لاحقاً في الواجهة الأمامية، وهي فكرة قريبة من الربط الذي شرحناه في هندسة الويب اللامركزي (Web3.js & Ethers.js): كيف نربط الواجهات بالعقود الذكية؟ ولكن ضمن منظومة Solana.
تشغيل شبكة محلية واختبار المشروع
من أفضل ميزات هذا المسار أنك لست بحاجة إلى استهلاك شبكة عامة في كل خطوة. يمكن تشغيل مدقق محلي عبر solana-test-validator لمحاكاة البيئة الحقيقية.
solana-test-validator
anchor test
الأمر الأول يشغّل سلسلة محلية، بينما ينفذ الأمر الثاني الاختبارات ويبني البرنامج وينشره مؤقتاً داخل البيئة المحلية. هذه الدورة تشبه فلسفة الاختبار المحلي التي ناقشناها سابقاً في اختبار العقود الذكية محلياً: كتابة اختبارات الوحدة (Unit Tests) باستخدام Chai & Mocha، لكن بأدوات متوافقة مع بنية Solana.
في
Solana، الخطأ في تعريف الحسابات أو الصلاحيات أخطر من الخطأ المنطقي البسيط، لأن البرنامج يتعامل مع حسابات خارجية تمرَّر في كل استدعاء. لذلك اجعل مراجعة الملكية، الموقّعين، وحجم البيانات جزءاً ثابتاً من أيSecurity Auditing.
أشهر المشكلات أثناء التثبيت وكيفية تجاوزها
1) عدم تعرف الطرفية على الأوامر
غالباً يكون السبب أن المسارات الخاصة بـ cargo أو Solana CLI لم تُحمّل داخل ملف البيئة مثل .bashrc أو .zshrc.
2) فشل البناء بسبب الإصدارات
إذا ظهر خطأ غير مفهوم أثناء anchor build، فتحقق أولاً من التوافق بين إصدار rustc وإصدار Solana وAnchor.
3) عدم كفاية الرصيد على Devnet
عند النشر أو الاختبار على الشبكات العامة، قد تحتاج إلى طلب رصيد إضافي باستخدام airdrop. ورغم أن رسوم Solana منخفضة جداً مقارنة بشبكات أخرى، فإن إنشاء الحسابات وتخصيص المساحة التخزينية يظل له تكلفة يجب احتسابها.
تحسين استهلاك الموارد في
Solanaلا يتعلق فقط برسوم المعاملات، بل أيضاً بحجم بيانات الحسابات وعدد العمليات الحسابية داخل التعليمات. التصميم الجيد للحسابات منذ البداية يوفر تكلفة التخصيص ويجعل الأداء أكثر استقراراً.
خاتمة عملية
تثبيت بيئة Solana مع Anchor ليس مجرد خطوة إعداد تقني، بل هو تأسيس لمنهج تطوير مختلف عن بيئات EVM. عندما تضبط Rust وSolana CLI وAnchor CLI بشكل صحيح، فأنت تفتح الباب لبناء برامج عالية الأداء، قابلة للاختبار، وسهلة الدمج مع الواجهات الحديثة.
الخطوة التالية منطقياً هي إنشاء برنامج بسيط يحتوي على حساب مخصص وتعليمة تحديث، ثم كتابة اختبار يثبت صحة الانتقال في الحالة. عندها تبدأ فعلياً الرحلة الحقيقية في تطوير تطبيقات Web3 على واحدة من أسرع الشبكات العامة في السوق.
4 comments