Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Bitcoin Mining Pool Server

حوض تعدين بيتكوين مبسط مبني بلغة Python مع دعم بروتوكول Stratum.

📁 هيكلية المشروع (Folder Structure)

bitcoin_mining_pool/
├── 📂 core/                    # النواة الأساسية
│   ├── __init__.py
│   ├── stratum_server.py       # خادم Stratum
│   └── bitcoin_rpc.py          # عميل RPC للعقدة
│
├── 📂 pool/                    # منطق الحوض
│   ├── __init__.py
│   ├── job_manager.py          # إدارة المهام
│   └── share_processor.py      # معالجة الشيرات
│
├── 📂 utils/                   # أدوات مساعدة
│   ├── __init__.py
│   └── database.py             # إدارة قاعدة البيانات
│
├── 📂 config/                  # ملفات الإعدادات
│   └── config.yaml             # ملف الإعدادات الرئيسي
│
├── 📂 logs/                    # ملفات السجلات
│   └── pool.log
│
├── 📂 data/                    # قاعدة البيانات
│   └── mining_pool.db
│
├── main.py                     # نقطة الدخول الرئيسية
├── requirements.txt            # الحزم المطلوبة
├── .env.example                # مثال للإعدادات البيئية
└── README.md                   # هذا الملف

⚡ التثبيت السريع

1️⃣ إنشاء البيئة الافتراضية

# إنشاء مجلد المشروع
cd bitcoin_mining_pool

# إنشاء بيئة افتراضية
python3 -m venv venv

# تفعيل البيئة الافتراضية
# على Linux/macOS:
source venv/bin/activate

# على Windows:
venv\Scripts\activate

2️⃣ تثبيت الحزم

# تثبيت جميع الحزم المطلوبة
pip install -r requirements.txt

3️⃣ إعداد ملف التكوين

# نسخ ملف الإعدادات البيئية
cp .env.example .env

# تعديل الإعدادات حسب احتياجاتك
nano config/config.yaml

🔧 الإعدادات المطلوبة

إعدادات عقدة البيتكوين (bitcoin.conf)

# ملف bitcoin.conf في عقدة البيتكوين
server=1
rpcuser=bitcoin
rpcpassword=your_secure_password_here
rpcallowip=127.0.0.1
rpcport=8332

إعدادات الحوض (config.yaml)

pool:
  host: "0.0.0.0"      # عنوان الاستماع
  port: 3333           # منفذ Stratum

bitcoin:
  rpc_host: "127.0.0.1"
  rpc_port: 8332
  rpc_user: "bitcoin"
  rpc_password: "your_password"

🏃 تشغيل الخادم

الخطوة الأولى - التشغيل الأساسي

# تأكد من تفعيل البيئة الافتراضية
source venv/bin/activate  # Linux/macOS

# تشغيل الخادم
python main.py

تشغيل مع إعدادات مخصصة

# تحديد ملف إعدادات مختلف
python main.py --config /path/to/config.yaml

# تشغيل في الخلفية
nohup python main.py > logs/output.log 2>&1 &

📡 الاتصال بالخادم

اختبار الاتصال يدوياً

# استخدام netcat للاختبار
nc localhost 3333

# إرسال طلب subscribe
{"id":1,"method":"mining.subscribe","params":[]}

إعداد برنامج التعدين (مثل cgminer/bmminer)

# مثال لإعدادات cgminer
./cgminer --btc-only -o stratum+tcp://127.0.0.1:3333 -u worker1 -p x

🔌 أوامر Stratum المدعومة

الأمر الوصف
mining.subscribe الاشتراك في الحوض
mining.authorize تفويض العامل
mining.submit إرسال الشير
mining.configure تكوين المعدن
mining.suggest_difficulty اقتراح الصعوبة
mining.ping اختبار الاتصال

📊 المراقبة والإحصائيات

عرض السجلات

# عرض السجلات في الوقت الحقيقي
tail -f logs/pool.log

# فلترة الأخطاء
grep "ERROR" logs/pool.log

Prometheus Metrics

# الوصول للمقاييس
curl http://localhost:9090/metrics

🛠️ أوامر مفيدة

# التحقق من المنفذ
netstat -tlnp | grep 3333

# قتل العملية
pkill -f main.py

# إعادة تشغيل الخدمة
systemctl restart mining-pool  # إذا كانت خدمة systemd

🧪 اختبار المكونات

# اختبار عميل RPC
python -m core.bitcoin_rpc

# اختبار قاعدة البيانات
python -m utils.database

⚠️ ملاحظات هامة

  1. هذا مشروع تعليمي - لا يستخدم في بيئة إنتاج فعلية
  2. الأمان - قم بتغيير كلمات المرور الافتراضية
  3. الاختبار - استخدم testnet أولاً قبل mainnet
  4. الموارد - تأكد من موارد كافية للخادم

📞 الدعم

للمشاكل والاقتراحات، يرجى فتح issue في المشروع.


⚠️ تنويه: هذا المشروع للأغراض التعليمية فقط. استخدم على مسؤوليتك الخاصة.

About

⛏️ Bitcoin Mining Pool - Stratum Protocol Server with Simulator

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages