https://github.com/crefax/sha256-pow
https://github.com/crefax/sha256-pow
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/crefax/sha256-pow
- Owner: Crefax
- License: mit
- Created: 2025-01-24T01:16:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-24T02:32:39.000Z (over 1 year ago)
- Last Synced: 2025-02-10T19:39:25.481Z (over 1 year ago)
- Language: Rust
- Size: 24.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rust Proof of Work (PoW) Sistemi
Bu proje, dağıtık bir Proof of Work (PoW) sistemi implementasyonudur. Sistem, client-server mimarisi kullanarak SHA-256 hash algoritması ile belirli bir zorluk seviyesinde hash hesaplaması yapar.
## Geliştirme Ortamı
- Cursor IDE kullanılarak geliştirilmiştir
- Rust programlama dili
- Rayon kütüphanesi (paralel işlemler için)
- SHA-256 hash algoritması
## Sistem Mimarisi
### Server
- İş paketlerini yönetir ve dağıtır
- Her iş paketi 10 milyon sayılık bir aralığı kapsar
- Timeout kontrolü ile yarım kalan işleri tekrar dağıtır
- İş durumlarını ve istatistikleri takip eder
### Client
- Sunucudan iş paketi alır
- Paralel işlem ile hash hesaplaması yapar
- Belirtilen zorluk seviyesinde (sıfır sayısı) hash arar
- Sonuçları sunucuya bildirir
## Özellikler
- Multi-threaded çalışma
- Paralel hash hesaplama
- Otomatik iş dağıtımı
- Timeout yönetimi
- İş tamamlanma takibi
- Detaylı loglama
- İlerleme göstergesi
## Kurulum
1. Rust ve Cargo'yu yükleyin
2. Projeyi klonlayın
3. Server ve client klasörlerinde bağımlılıkları yükleyin:
```bash
cd server
cargo build
cd ../client
cargo build
```
## Çalıştırma
1. Önce server'ı başlatın:
```bash
cd server
cargo run
```
2. Yeni bir terminal açın ve client'ı başlatın:
```bash
cd client
cargo run
```
Birden fazla client aynı anda çalıştırılabilir.
## Konfigürasyon
### Server
- Port: 22900 (varsayılan)
- İş paketi büyüklüğü: 10 milyon
- Timeout süresi: 300 saniye
### Client
- Hash zorluk seviyesi: Başlangıçta 8 sıfır
- Bağlantı deneme sayısı: 5
- İlerleme gösterme aralığı: Her 1 milyon hash'te bir
## Teknik Detaylar
- TCP/IP tabanlı iletişim
- SHA-256 hash algoritması
- Rayon ile paralel işlem
- Arc ve Mutex ile thread-safe veri yapıları
- Atomik sayaçlar
- Hata yönetimi ve geri bildirim sistemi
## Lisans
MIT License
## Katkıda Bulunma
1. Fork edin
2. Feature branch oluşturun
3. Değişikliklerinizi commit edin
4. Branch'inizi push edin
5. Pull request açın