Tohum bilgisayar kurulumu (Windows 11)
Tohum bilgisayar, ağa yeni katılan düğümlerin ilk bağlandığı, sürekli açık duran bilgisayardır. Ağ onsuz da çalışır: düğümler birbirlerinin adreslerini paylaşır ve tohum kapalıyken de birbirine bağlanır. Ama yeni gelenlerin ilk kapıyı bulması için tohumun açık olması gerekir.
Bu bilgisayar aynı zamanda herkese açık zincir izleme ekranını sunar.
1. Programı tohum olarak başlat
VS Code terminalinde:
.\bin\bitcoin101.exe dugum --web-genel --kaz --tek-basina
--web-genel: İzleme ekranı sadece bu bilgisayardan değil, dışarıdan da açılır.--kaz: Aynı anda blok da kazar. Sadece tohum olsun istiyorsan bunu yazma.--tek-basina: Ana ağda madencilik normalde en az bir eşle eşleşene kadar bekler (aksi halde ağa bağlanmamış yeni bir bilgisayar kendi zincirini kazar ve ana zincirle bir daha birleşmez). Ağın ilk / tek düğümü olduğun sürece bu bayrakla eş beklemeden kazarsın. Başka madenciler katıldıktan sonra bu bayrağı kaldır.- Kapatmak için Ctrl+C.
İlk çalıştırmada Windows Güvenlik Duvarı bir pencere açar ve "Bu uygulamanın ağa erişmesine izin verilsin mi?" diye sorar. Özel ağlar ve Ortak ağlar kutularını işaretleyip İzin ver'e bas.
2. Güvenlik duvarı kurallarını kalıcı yap (önerilir)
Başlat menüsünde Terminal'e sağ tıkla, Yönetici olarak çalıştır de ve şu üç satırı yapıştır:
netsh advfirewall firewall add rule name="Bitcoin101 Es" dir=in action=allow protocol=TCP localport=10102
netsh advfirewall firewall add rule name="Bitcoin101 Izleme" dir=in action=allow protocol=TCP localport=10103
netsh advfirewall firewall add rule name="Bitcoin101 Kesif" dir=in action=allow protocol=UDP localport=10101
| Port | Protokol | Ne işe yarar |
|---|---|---|
| 10101 | UDP | Aynı Wi-Fi'daki düğümlerin birbirini bulması |
| 10102 | TCP | Düğümler arası zincir ve işlem paylaşımı |
| 10103 | TCP | İzleme ekranı (web) |
3. Bilgisayar uyumasın
Ayarlar → Sistem → Güç → "Ekran ve uyku" altında, prize takılıyken uyku süresini Hiçbir zaman yap. Ya da yönetici terminalinde:
powercfg /change standby-timeout-ac 0
4. Modemde sabit yerel IP ve port yönlendirme
Bu kısım modemin markasına göre değişir. Adımlar genelde şöyledir:
- Bilgisayarın yerel IP'sini öğren:
.\bin\bitcoin101.exe davetkomutu gösterir (örneğin192.168.1.35). - Tarayıcıda modemin arayüzünü aç. Çoğu modemde adres
192.168.1.1veya192.168.0.1'dir; kullanıcı adı ve şifre modemin altındaki etikette yazar. - DHCP rezervasyonu / Statik IP bölümünden bu bilgisayara her zaman aynı yerel IP'nin verilmesini sağla.
- Port yönlendirme / NAT / Sanal sunucu bölümünde iki kural ekle:
- TCP 10102 → bilgisayarın yerel IP'si, port 10102
- TCP 10103 → bilgisayarın yerel IP'si, port 10103
5. Genel (public) IP'ni öğren ve CGNAT kontrolü yap
- Modem arayüzünde "WAN IP", "İnternet IP" veya "Genel IP" diye geçen adrese bak.
- Bu adres 100.64.x.x ile 100.127.x.x arasındaysa, ya da internetteki "IP adresim nedir" sitelerinin gösterdiğinden farklıysa, internet sağlayıcın CGNAT kullanıyor demektir. Bu durumda dışarıdan gelen bağlantılar modemine hiç ulaşmaz. Sağlayıcını arayıp sabit IP veya genel (public) IP talep etmen gerekir. Bu hizmet bazı sağlayıcılarda ücretli olabilir.
- Bilgisayarında IPv6 varsa, dışarıdan bağlantı çoğu zaman yönlendirmeye gerek kalmadan çalışır. Ama bu, modem ve sağlayıcı ayarlarına bağlıdır.
6. Dışarıdan test et
Telefonunu Wi-Fi'dan çıkarıp mobil veriye geç, tarayıcıda şu adresi aç:
http://<genel IP>:10103
İzleme ekranını görüyorsan hem port yönlendirme hem güvenlik duvarı doğru ayarlanmıştır.
7. Diğer kullanıcılara dağıt
tohumlar.txt dosyasına genel IP'ni yaz:
203.0.113.10:10102
Sonra paylaşım paketini hazırla. Proje klasörünü olduğu gibi gönderme.
.\derle.bat
.\paketle.bat imzali
dagitim\Bitcoin101-<sürüm>.zip sadece programı, kaynak kodunu, belgeleri ve tohumlar.txt'yi içerir. Cüzdan,
zincir ve jeton dosyaları pakete giremez; biri bulunursa betik durur. Betiğin yazdığı SHA-256 özetlerini ve
imzalayan adresi zip'ten ayrı bir kanaldan duyur (BENIOKU.md, "Programı paylaşmak").
Paketi açıp programı çalıştıran herkes önce senin bilgisayarına bağlanır, sonra öğrendiği diğer adresleri kendi
veri klasöründeki esler.txt dosyasına kaydeder. Kendi cüzdanını kendisi oluşturur; seninkini göremez.
Ev internetinin IP'si değişirse:
- Ağ zaten tanışmış düğümler arasında çalışmaya devam eder.
- Yeni kullanıcılar için
tohumlar.txtdosyasındaki adresi güncellemen gerekir. - Sağlayıcıdan sabit IP almak bu sorunu tamamen çözer.
Güvenlik notları
- İzleme ekranı sadece okuma yapar. Sadece GET isteklerine cevap verir, cüzdan dosyasına hiçbir şekilde erişmez. Notlar ve adresler sayfada hiçbir zaman HTML olarak yorumlanmaz.
- Eşlerden gelen her blok ve işlem baştan sona doğrulanır: iş kanıtı, ASERT, imzalar ve UTXO. Geçersiz veri (bozuk imza dahil) gönderen eş atılır; IP adresi bir saat boyunca gelen bağlantı olarak da kabul edilmez.
- Bağlantı sayısı sınırlıdır: en fazla 64 gelen eş (aynı IP'den 4), izleme ekranında 64 eş zamanlı bağlantı (aynı IP'den 8). Cüzdan arayüzünün ayrı bir havuzu vardır; izleme ekranına yüklenen biri senin cüzdan pencereni kilitleyemez.
- Dışarıdan bakanlar izleme ekranında bağlı eşlerin IP adreslerini görmez ("gizli").
- Bilinen sınırlar:
- İzleme ekranı alan adı olmadığı için HTTPS değil, düz HTTP üzerinden çalışır. Bu yüzden arada biri (örneğin ağ yöneticisi) sayfanın içeriğini değiştirebilir.
Bu nedenle sayfa bağımsız doğrulamanın yolunu gösterir: kendi düğümünde uç hash'i karşılaştırmak ya da
/api/baslik/<n>ile SHA3-512 kontrolü yapmak. - Eşler arası bağlantı da henüz şifreli değildir. Bu gizlilik sorunudur, güvenlik sorunu değil: içerik zaten herkese açık zincirdir ve her şey doğrulanır.
- Ağ küçükken, güçlü bir bilgisayarı olan biri zinciri ele geçirebilir (%51 saldırısı).
- İzleme ekranı alan adı olmadığı için HTTPS değil, düz HTTP üzerinden çalışır. Bu yüzden arada biri (örneğin ağ yöneticisi) sayfanın içeriğini değiştirebilir.
Bu nedenle sayfa bağımsız doğrulamanın yolunu gösterir: kendi düğümünde uç hash'i karşılaştırmak ya da
