Brownie
- Brownie: تطوير واختبار العقود الذكية على الإيثريوم
Brownie هو إطار عمل بايثون لتطوير واختبار ونشر العقود الذكية على شبكة الإيثريوم و شبكات الإيثريوم الاختبارية. يهدف Brownie إلى تبسيط عملية التطوير، وتقديم أدوات قوية للمطورين لإنشاء تطبيقات اللامركزية (DeFi) وتطبيقات NFTs وغيرها. هذه المقالة موجهة للمبتدئين وتهدف إلى تقديم نظرة شاملة على Brownie، بدءًا من الإعداد وحتى كتابة ونشر العقود الذكية.
ما هو Brownie ولماذا نستخدمه؟
تعتبر عملية تطوير العقود الذكية معقدة، خاصة للمطورين الجدد في عالم البلوك تشين. هناك العديد من الأدوات واللغات التي يجب تعلمها، مثل Solidity (لغة العقود الذكية الأساسية للإيثريوم)، و Ganache (محاكي بلوك تشين محلي)، و Truffle (إطار عمل تطوير آخر). Brownie يهدف إلى تبسيط هذا التعقيد من خلال:
- سهولة الاستخدام: يعتمد Brownie على لغة بايثون، وهي لغة برمجة شائعة وسهلة التعلم. هذا يجعله في متناول المطورين الذين لديهم خبرة في بايثون بالفعل.
- التكامل: يتكامل Brownie بسلاسة مع أدوات تطوير بايثون الأخرى، مثل المحررات المتكاملة (IDEs) وأدوات الاختبار.
- المرونة: يوفر Brownie مرونة كبيرة في كيفية تنظيم مشاريعك واختبار عقودك.
- الدعم القوي: يتمتع Brownie بمجتمع نشط من المطورين الذين يقدمون الدعم والمساعدة.
الإعداد والتثبيت
قبل البدء في استخدام Brownie، يجب التأكد من تثبيت بعض المتطلبات الأساسية:
1. بايثون: يجب تثبيت بايثون (الإصدار 3.7 أو أحدث) على جهازك. يمكنك تنزيل بايثون من [[١]]. 2. pip: يأتي pip (مدير الحزم لبايثون) مثبتًا عادةً مع بايثون. 3. Brownie: يمكن تثبيت Brownie باستخدام pip:
``` pip install eth-brownie ```
4. MetaMask: للتفاعل مع شبكات الإيثريوم الحقيقية، قد تحتاج إلى محفظة مثل MetaMask.
بعد تثبيت Brownie، يمكنك التحقق من التثبيت عن طريق تشغيل الأمر التالي في سطر الأوامر:
``` brownie --version ```
إنشاء مشروع Brownie جديد
لبدء مشروع جديد، استخدم الأمر التالي:
``` brownie init my_project ```
سيؤدي هذا إلى إنشاء دليل جديد باسم "my_project" يحتوي على بنية مشروع Brownie الأساسية. تتضمن هذه البنية:
- contracts: دليل يحتوي على ملفات عقود Solidity الخاصة بك.
- scripts: دليل يحتوي على نصوص بايثون لتفاعلات مع العقود.
- tests: دليل يحتوي على اختبارات بايثون لعقودك.
- brownie-config.yaml: ملف تكوين يحدد إعدادات المشروع، مثل الشبكات المستخدمة والمحفظات.
كتابة عقد ذكي بسيط
لنبدأ بكتابة عقد ذكي بسيط يقوم بتخزين رقم وإرجاعه. أنشئ ملفًا جديدًا باسم `SimpleStorage.sol` داخل دليل `contracts` وأضف الكود التالي:
```solidity pragma solidity ^0.8.0;
contract SimpleStorage {
uint256 public storedData;
function set(uint256 x) public { storedData = x; }
function get() public view returns (uint256) { return storedData; }
} ```
هذا العقد يحتوي على متغير عام `storedData` من النوع `uint256` (عدد صحيح غير سالب 256 بت). يحتوي أيضًا على دالتين:
- `set(uint256 x)`: تقوم بتعيين قيمة `x` إلى `storedData`.
- `get()`: تقوم بإرجاع قيمة `storedData`.
تجميع العقود
لتجميع عقود Solidity الخاصة بك، استخدم الأمر التالي:
``` brownie compile ```
سيؤدي هذا إلى تجميع `SimpleStorage.sol` وإنشاء ملفات bytecode (الكود الثنائي) و ABI (واجهة التطبيق الثنائي) في دليل `build`.
اختبار العقود
الآن، لنكتب بعض الاختبارات للتأكد من أن العقد يعمل بشكل صحيح. أنشئ ملفًا جديدًا باسم `test_simple_storage.py` داخل دليل `tests` وأضف الكود التالي:
```python from brownie import SimpleStorage
def test_set_and_get():
# قم بتوزيع العقد (deploy the contract) storage = SimpleStorage.deploy()
# قم بتعيين قيمة storage.set(1337)
# تحقق من أن القيمة تم تعيينها بشكل صحيح assert storage.get() == 1337
```
هذا الاختبار يقوم بما يلي:
1. يقوم باستيراد عقد `SimpleStorage`. 2. يقوم بتوزيع العقد على شبكة اختبار (بشكل افتراضي، يستخدم Brownie شبكة اختبار محلية تسمى Ganache). 3. يقوم بتعيين القيمة 1337 باستخدام الدالة `set`. 4. يقوم بالتحقق من أن القيمة التي تم إرجاعها بواسطة الدالة `get` هي 1337.
لتشغيل الاختبارات، استخدم الأمر التالي:
``` brownie test ```
نشر العقود
بعد اختبار العقود والتأكد من أنها تعمل بشكل صحيح، يمكنك نشرها على شبكة الإيثريوم الحقيقية أو شبكة اختبار. للنشر، يجب عليك تحديد الشبكة التي تريد النشر عليها في ملف `brownie-config.yaml`.
على سبيل المثال، لإضافة شبكة اختبار Goerli، أضف ما يلي إلى `brownie-config.yaml`:
```yaml networks:
default: development goerli: url: <URL_Goerli_Node> chain_id: 5 gas_price: 5000000000
```
استبدل `<URL_Goerli_Node>` بعنوان URL لعقدة Goerli.
بعد ذلك، يمكنك نشر العقد باستخدام الأمر التالي:
``` brownie run scripts/deploy.py --network goerli ```
(يجب عليك إنشاء ملف `deploy.py` في دليل `scripts` يحتوي على الكود لنشر العقد).
مثال على محتوى ملف `deploy.py`:
```python from brownie import SimpleStorage
def main():
storage = SimpleStorage.deploy() print(f"Deployed to: {storage.address}")
```
مفاهيم متقدمة في Brownie
- الحسابات: Brownie يوفر إدارة سهلة للحسابات (accounts) المستخدمة لتوزيع العقود والتفاعل معها. يمكنك تكوين حسابات متعددة في ملف `brownie-config.yaml`.
- واجهات العقود: يمكنك الوصول إلى العقود المنشورة باستخدام واجهات Brownie، مما يسمح لك باستدعاء دوالها وقراءة بياناتها.
- التعامل مع الأحداث: يمكن لـ Brownie الاستماع إلى الأحداث (events) التي تنبعث من العقود الذكية.
- التحكم في الوقت: يوفر Brownie أدوات للتحكم في الوقت عند الاختبار، مما يسمح لك بمحاكاة سيناريوهات مختلفة.
- التكامل مع أدوات أخرى: يمكن لـ Brownie التكامل مع أدوات أخرى، مثل Hardhat و Foundry.
استراتيجيات التداول المتعلقة بالعقود الذكية
فهم العقود الذكية يمكن أن يساعد في تطوير استراتيجيات تداول متقدمة:
- Arbitrage: استغلال فروق الأسعار بين بورصات مختلفة.
- Yield Farming: إيداع العملات المشفرة في بروتوكولات DeFi لكسب المكافآت.
- Liquidity Mining: توفير السيولة لبروتوكولات DeFi وكسب المكافآت.
- Flash Loan Arbitrage: استخدام القروض السريعة (Flash Loans) للاستفادة من فرص المراجحة.
- Front Running: (غير أخلاقي في أغلب الحالات) استغلال المعاملات المعلقة لربح سريع.
التحليل الفني وحجم التداول للعقود الذكية
- مؤشرات التحليل الفني: استخدام مؤشرات مثل المتوسطات المتحركة (Moving Averages)، ومؤشر القوة النسبية (RSI)، و MACD لتحليل اتجاهات الأسعار.
- أنماط الشموع اليابانية: التعرف على أنماط الشموع اليابانية للتنبؤ بتحركات الأسعار.
- تحليل حجم التداول: مراقبة حجم التداول لتأكيد قوة الاتجاهات وتحديد نقاط الدخول والخروج المحتملة.
- كتاب الأمر (Order Book Analysis): تحليل كتاب الأمر لتحديد مستويات الدعم والمقاومة المحتملة.
- تحليل تدفق الأوامر (Order Flow Analysis): فهم كيفية تدفق الأوامر في السوق لتحديد سلوك المتداولين الكبار.
موارد إضافية
- Brownie Documentation: [[٢]]
- Solidity Documentation: [[٣]]
- Remix IDE: [[٤]] (IDE عبر الإنترنت لكتابة وتجميع ونشر العقود الذكية)
- Ganache: [[٥]] (محاكي بلوك تشين محلي)
الخلاصة
Brownie هو إطار عمل قوي وسهل الاستخدام لتطوير واختبار ونشر العقود الذكية على شبكة الإيثريوم. من خلال استخدام بايثون، يوفر Brownie تجربة تطوير مألوفة وفعالة للمطورين. مع فهم أساسيات Brownie، يمكنك البدء في بناء تطبيقات البلوك تشين الخاصة بك واستكشاف عالم التمويل اللامركزي و الرموز غير القابلة للاستبدال. من خلال الجمع بين فهم قوي للعقود الذكية واستراتيجيات التداول والتحليل الفني، يمكنك تحقيق أقصى استفادة من هذه التكنولوجيا الثورية.
القائمة الرئيسية للعملات المشفرة العقود الذكية الإيثريوم Solidity DeFi NFTs Web3 MetaMask Ganache Truffle Hardhat Foundry تحليل فني حجم التداول Arbitrage Yield Farming Liquidity Mining Flash Loans Front Running RSI المتوسطات المتحركة MACD
منصات تداول العقود الآجلة الموصى بها
المنصة | مميزات العقود الآجلة | التسجيل |
---|---|---|
Binance Futures | رافعة مالية تصل إلى 125x، عقود USDⓈ-M | سجّل الآن |
Bybit Futures | عقود دائمة عكسية | ابدأ التداول |
BingX Futures | التداول بالنسخ | انضم إلى BingX |
Bitget Futures | عقود مضمونة بـ USDT | افتح حساب |
BitMEX | منصة العملات المشفرة، رافعة مالية تصل إلى 100x | BitMEX |
انضم إلى مجتمعنا
اشترك في قناة Telegram @strategybin للحصول على المزيد من المعلومات. أفضل منصات الربح – اشترك الآن.
شارك في مجتمعنا
اشترك في قناة Telegram @cryptofuturestrading للحصول على التحليل، الإشارات المجانية والمزيد!