// لغة البرمجة
Go (Golang) - الإصدار 1.22+
شبكة عُقدة مكتوبة بالكامل بلغة Go، تم اختيارها لدعمها الممتاز للمعالجة المتوازية، مكتبتها القياسية القوية، وإمكانياتها عبر المنصات.
// التشفير
خوارزميات التشفير
| الخوارزمية |
الغرض |
حجم المفتاح |
المكتبة |
ChaCha20-Poly1305 |
تشفير من طرف إلى طرف لجميع حركة المرور |
256-bit |
golang.org/x/crypto |
Ed25519 |
التوقيعات الرقمية وهوية العقدة |
256-bit |
crypto/ed25519 (Go stdlib) |
X25519 |
تبادل المفاتيح (مفاتيح عابرة) |
256-bit |
golang.org/x/crypto |
BLAKE2b |
التجزئة لاشتقاق العناوين |
256-bit |
golang.org/x/crypto/blake2b |
// الاعتمادات الأساسية
الشبكة والتوجيه
| الباكيج |
الغرض |
الإصدار |
github.com/Arceliar/ironwood |
تنفيذ بروتوكول التوجيه الأساسي |
v0.0.0-20241213013129 |
github.com/Arceliar/phony |
نموذج Actor للمعالجة المتوازية |
v0.0.0-20220903101357 |
golang.org/x/net |
شبكات IPv6، أدوات IP |
v0.32.0 |
github.com/vishvananda/netlink |
إدارة واجهات الشبكة في Linux |
v1.3.0 |
github.com/wlynxg/anet |
طبقة تجريد الشبكة |
v0.0.5 |
بروتوكولات النقل
| الباكيج |
البروتوكول |
الإصدار |
github.com/quic-go/quic-go |
دعم بروتوكول QUIC |
v0.48.2 |
github.com/coder/websocket |
دعم WebSocket (WS/WSS) |
v1.8.12 |
net (Go stdlib) |
اتصالات TCP/TLS |
مدمج |
واجهات الشبكة الافتراضية
| الباكيج |
المنصة |
الإصدار |
golang.zx2c4.com/wireguard |
واجهة TUN عبر المنصات |
v0.0.0-20231211153847 |
golang.zx2c4.com/wintun |
واجهة TUN لـ Windows |
v0.0.0-20230126152724 |
golang.zx2c4.com/wireguard/windows |
أدوات خاصة بـ Windows |
v0.5.3 |
الأدوات والمساعدات
| الباكيج |
الغرض |
الإصدار |
github.com/gologme/log |
تسجيل منظم |
v1.3.0 |
github.com/hjson/hjson-go/v4 |
تحليل ملفات الإعداد (HJSON) |
v4.4.0 |
github.com/cheggaaa/pb/v3 |
أشرطة التقدم |
v3.1.5 |
github.com/olekukonko/tablewriter |
تنسيق الجداول لـ CLI |
v0.0.5 |
github.com/hashicorp/go-syslog |
تكامل Syslog |
v1.0.0 |
github.com/kardianos/minwinsvc |
إدارة خدمات Windows |
v1.0.2 |
suah.dev/protect |
تعزيز الأمان (OpenBSD pledge) |
v1.2.4 |
هياكل البيانات
| الباكيج |
الغرض |
الإصدار |
github.com/bits-and-blooms/bloom/v3 |
مرشحات Bloom للتوجيه |
v3.7.0 |
github.com/bits-and-blooms/bitset |
عمليات مجموعة البتات |
v1.13.0 |
// متطلبات النظام
المنصات المدعومة
| المنصة |
البنية |
الحد الأدنى للإصدار |
| Linux |
x86_64, ARM64 |
النواة 3.x+ |
| Windows |
x86_64, ARM64 |
Windows 7+ |
| macOS |
Intel, Apple Silicon |
macOS 10.12+ |
| FreeBSD |
x86_64, ARM64 |
FreeBSD 12+ (تجريبي) |
// أدوات البناء
- Go Toolchain - الإصدار 1.22 أو أحدث
- Git - للتحكم بالإصدارات
- Make - أتمتة البناء (اختياري)
- البناء المتقاطع - مدعوم عبر GOOS/GOARCH
// مواصفات البروتوكول
| المكون |
المواصفة |
| إصدار البروتوكول |
0.5 (متوافق مع Yggdrasil v0.5) |
| نطاق عناوين IPv6 |
0200::/7 |
| التشفير |
ChaCha20-Poly1305 (وضع AEAD) |
| التوقيع |
Ed25519 (256-bit) |
| تبادل المفاتيح |
X25519 (عابر) |
| التوجيه |
DHT (Distance Vector) + Spanning Tree |
| النقل |
TCP, TLS, QUIC, WebSocket (WS/WSS) |
| MTU |
حتى 65535 بايت |
// الترخيص
شبكة عُقدة منشورة تحت ترخيص LGPLv3.
جميع الاعتمادات تحافظ على تراخيصها الخاصة. معظمها مفتوح المصدر ومتوافق مع LGPLv3.
// الكود المصدري
الكود المصدري الكامل ومعلومات الاعتمادات: