core.json
این فایل تنظیمات اصلی و کلی WaterWall را توصیف میکند، مانند لاگها، فایلهای مورد نیاز و سایر پارامترها. فایل core.json
باید در کنار اجرایی WaterWall قرار گیرد و میتوانید مقادیر داخل آن را بنا به نیاز خود تغییر دهید.
ساختار کلی فایل core.json
core.json
{
"log": {
"path": "log/",
"core": {
"loglevel": "DEBUG",
"file": "core.log",
"console": true
},
"network": {
"loglevel": "DEBUG",
"file": "network.log",
"console": true
},
"dns": {
"loglevel": "SILENT",
"file": "dns.log",
"console": false
}
},
"dns": {},
"misc": {
"workers": 0,
"ram-profile": "server",
"libs-path": "libs/"
},
"configs": ["config_name.json"]
}
بخش log
- path: مسیر فولدری که فایلهای لاگ در آن ذخیره میشوند. در این مثال، پوشهای به نام log در دایرکتوری فعلی ایجاد شده و لاگها درون آن قرار میگیرند.
بخشهای مختلف لاگ عبارتند از:
- core: لاگهای مربوط به هسته برنامه
- network: لاگهای مربوط به شبکه
- dns: لاگهای مربوط به DNS
- loglevel: سطح جزئیات لاگ را تعیین میکند. مقادیر ممکن از بیشترین تا کمترین جزئیات عبارتند از:
- VERBOSE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- SILENT (بدون لاگ)
- file: نام فایلی که لاگهای مربوطه در آن ذخیره میشوند.
- console: اگر true باشد، لاگها علاوه بر فایل، در ترمینال نیز نمایش داده میشوند.
بخش dns
- این بخش در حال حاضر برای استفاده در آینده در نظر گرفته شده و هنوز تکمیل نشده است. قرار است برای تنظیمات DNS مانند (adblock) بکار رود.
- فعلاً WaterWall از تنظیمات DNS سیستمعامل پیروی میکند.
بخش misc
- workers: تعداد تردهای (thread) برنامه را مشخص میکند. اگر صفر باشد، به تعداد هستههای پردازنده ترد ایجاد میشود که پیشفرض مناسبی است. البته میتوان تعد اد تردها را بیشتر از هستهها هم تنظیم کرد.
- یک ترد مجزا برای امور جانبی مانند ارتباط با سوکتها و فایلها در نظر گرفته میشود تا تردهای اصلی شبکه را درگیر نکند.
- ram-profile: پروفایل مصرف حافظه را کنترل میکند. گزینههای ممکن عبارتند از:
- minimal: کمترین میزان ممکن رم (حدود 250 کیلوبایت) مصرف میشود.
- client: مصرف رم کمتر اما CPU کمی بیشتر است. مناسب برای استفاده کمتر افراد یا سیستمهایی با رم محدود. بسته به تعداد تردها بین 2 تا 10 مگابایت رم اشغال میکند.
- server: حدود 40 مگابایت به ازای هر ترد رم مصرف میکند که موجب کاهش مصرف CPU میشود. (پیشفرض)
- میزان مصرف حافظه به صورت پویا بسته به حجم درخواستها تغییر میکند و محدودیت خاصی ندارد.
- libs-path: محل بارگذاری ماژولهای جانبی را تعیین میکند. تغییر آن تأثیر زیادی ندارد.
بخش configs
- در این بخش میتوانید فایلهای پیکربندی که قرار است توسط هسته اجرا شوند را مشخص کنید. امکان اجرای تعداد نامحدودی فایل پیکربندی وجود دارد.
- توصیه میشود برای سازماندهی بهتر، فایلهای پیکربندی را بر اساس کارکرد تف کیک کنید. مثلاً اگر دو روش مختلف اعمال میکنید، بهتر است هر کدام را در یک فایل مجزا قرار دهید.