Terazi Sistemi
Terazi, IPv4 ve IPv6 adreslerinden oluşan havuzu deterministik olarak eşleyen dengeleme mekanizmasıdır.
Nasıl Çalışır?
Terazi, her iki protokol ailesini tek bir koordinat sistemi üzerinden yönetir: index.
Alt ağ oluşturulduğunda IPv4 ve IPv6 adresleri bu indeks üzerinden birbirine kilitlenir:
Yapının özü şudur: IPv4 kapasitesi baz alınır, IPv6 kendini buna göre şekillendirir. Prefix uzunluğu değiştiğinde her iki protokol aynı anda yeniden boyutlanır ve simetri her koşulda korunur.
Prefix Dönüşümü
Referans implementasyon — phantom_daemon/base/wallet/wallet.py:
Her iki protokol aynı host bit sayısını paylaşır. IPv4 prefix'i, IPv6 prefix'ini doğrudan belirler — iki satırlık bir dönüşüm, iki havuzun simetrisini garanti eder:
Havuz Yapısı
Adresler veritabanında önceden oluşturulur (wallet.db → users tablosu).
Her satır bir IPv4/IPv6 çiftidir. Boş slot'lar <null> olarak bekler. İstemci
atandığında anahtar, isim ve zaman damgası doldurulur.
|
ipv4_address
|
ipv6_address
|
id
|
name
|
private_key_hex
|
public_key_hex
|
preshared_key_hex
|
created_at
|
updated_at
|
|---|---|---|---|---|---|---|---|---|
| 10.8.0.2 | fd00:70:68::2 | <null> | <null> | <null> | <null> | <null> | <null> | <null> |
| 10.8.0.3 | fd00:70:68::3 | <null> | <null> | <null> | <null> | <null> | <null> | <null> |
| 10.8.0.4 | fd00:70:68::4 | <null> | <null> | <null> | <null> | <null> | <null> | <null> |
| 10.8.0.5 | fd00:70:68::5 | <null> | <null> | <null> | <null> | <null> | <null> | <null> |
| 10.8.0.6 | fd00:70:68::6 | <null> | <null> | <null> | <null> | <null> | <null> | <null> |
Simüle wallet.db users tablosu — alt ağ /29 — 5 kullanılabilir slot
Atama ve İptal
Havuz satırları sabittir. Atama ve iptal, satırın adresini değil yalnızca dolu/boş durumunu değiştirir:
-
Atama — ilk boş yuva verilir; yani
iddeğeri<null>olan en küçük index. Yeni istemci her zaman havuzdaki en erken boşluğu doldurur. -
İptal — satır silinmez, kimlik alanları (
id, isim, anahtarlar, zaman damgaları)<null>yapılır. IPv4/IPv6 çifti havuzda yerinde kalır ve yeniden kullanılabilir hale gelir.
Bunun sonucu: iptal, adres dizisinde kopukluk oluşturmaz — yalnızca o index'i boşa alır, sıradaki istemci de onu doldurur. Havuzdaki adresler her zaman ardışıktır; değişen tek şey hangi index'in dolu olduğudur.
CIDR Değişikliğinde Ne Olur?
CIDR prefix değiştirildiğinde havuz sıfırdan yeniden oluşturulur. İstemci kimlikleri (anahtar, isim, UUID) korunur.
Doğrulama
GET /api/core/network/validate uç noktası havuzun terazi simetrisini ve yapısal
bütünlüğünü doğrular. Başarılı yanıt:
Terazi index uyumsuzluğu veya adres boşluğu tespit edilirse valid: false ve hata
listesi döner:
Buradaki IPv4 gap, havuzun adres dizisindeki bir kopukluğu bildirir;
yani bir bozulma işaretidir. İptal edilmiş (boşta bekleyen) bir yuvayla ilgisi yoktur — boş yuva
havuzun normal hâlidir ve hata sayılmaz.