tWallet v1 (Neutrino)
الإصدار v1 هو السلسلة الموصى بها من محفظة tWallet. وهو يستخدم بروتوكول العميل الخفيف Neutrino (BIP157/BIP158) للمزامنة دون الاعتماد على خادم Electrum تابع لجهة خارجية.
القدرات
- FLND مدمج: (Flokicoin Lightning Network Daemon) لعمليات Lightning المتكاملة.
- أنواع العناوين: segwit (BIP173) و taproot (BIP341، BIP342).
- تنسيق البذرة: aezeed (بذرة LND، التنسيق الجديد) للنسخ الاحتياطي والاسترداد.
نوع العنوان الافتراضي هو segwit. يمكنك التغيير عبر addresstype=segwit|nested-segwit|taproot في ملف twallet.conf.
لماذا Neutrino؟
- مدمج: تم دمج Neutrino مباشرة في tWallet، ولا حاجة لخادم خارجي.
- تقليل الثقة: أنت تتحقق من ترويسات الكتل (Headers) وتستخدم مرشحات الكتل المضغوطة (Compact block filters)؛ لا يوجد خادم واحد يملي عليك رؤيتك لسلسلة الكتل.
- الخصوصية: لا تتركز الاستعلامات لدى خادم Electrum.
التثبيت
sh -c "$(curl -fsSL https://raw.githubusercontent.com/myfloki/community-tools/main/downloader.sh)"
بعد التثبيت، قم بتشغيل twallet.
راجع myfloki.com لمزيد من التفاصيل حول المكونات المضمنة.
قم بتحميل أحدث أصول إصدار 1.0.9-beta من GitHub وقم بفك ضغطها.
قم بفك الضغط واجعل الملف الثنائي (binary) قابلاً للتنفيذ عند الاقتضاء:
tar -xvf twallet-*.tar.gz
chmod +x twallet
التهيئة
يمكنك تشغيل twallet بدون ملف تهيئة؛ قم بإضافة واحد فقط عندما تحتاج إلى إعدادات مخصصة (على سبيل المثال، تشغيل محفظة ثانية).
قم بإنشاء ملف twallet.conf بجوار الملف الثنائي أو في دليل بيانات التطبيق الخاص بك. مثال بسيط:
# walletdir = ./loki
# addresstype = segwit # segwit | nested-segwit | taproot
# feeurl = https://lokichain.info/api/v1/fees/recommended
# debuglevel = info
# connectiontimeout = 50s
# rpclisten = 127.0.0.1:10005 # RPC API
# restlisten = 127.0.0.1:5050 # REST API
# restcors = * # CORS لـ REST API
# transactiondisplaylimit=121
نموذج كامل (مع شروح) — اضغط للتوسيع
; ============================================================================
; خيارات التطبيق العامة
; ============================================================================
; دليل قاعدة بيانات المحفظة.
; walletdir=./loki
; مستوى التشخيص (Logging) لجميع الأنظمة الفرعية {trace, debug, info, warn, error, critical}.
; الافتراضي هو 'info'.
; debuglevel=info
; مستوى التشخيص لتطبيق twallet {trace, debug, info, warn, error, fatal, panic}.
; الافتراضي هو 'info'.
; loglevel=info
; استخدام عبارة مرور افتراضية للقفل.
; مطلوب إذا تم تعيين 'autounlock' إلى true.
; defaultpassword=pass
; إلغاء قفل المحفظة تلقائياً عند التشغيل باستخدام defaultpassword.
; تحذير: هذا يخزن كلمة المرور الخاصة بك بنص صريح في ملف التهيئة هذا.
; استخدمه بحذر وفقط في بيئات آمنة.
; autounlock=false
; الحد الأقصى للمعاملات المراد عرضها.
; هذا لا يؤثر على عدد المعاملات التي يتم جلبها داخلياً؛
; إنه يحد فقط من عدد المعاملات المعروضة في وقت واحد.
; transactiondisplaylimit=121
; إعادة تعيين معاملات المحفظة عند التشغيل لبدء إعادة فحص كاملة (Rescan).
; استخدم هذا إذا كنت تشك في وجود معاملات مفقودة.
; resetwallettransactions=false
; ============================================================================
; إعدادات سلسلة الكتل (Chain)
; ============================================================================
; إعدادات الشبكة (يمكن أن يكون واحد فقط صحيحاً).
; إذا كان كل من regtest و testnet خطأ، فسيتم استخدام mainnet افتراضياً.
; استخدام شبكة اختبار الانحدار (Regression test).
; regtest=false
; استخدام شبكة الاختبار (Test network).
; testnet=false
; نوع العنوان المراد توليده (taproot، أو segwit، أو nested-segwit).
; الافتراضي هو 'segwit'.
; addresstype=segwit
; نقطة نهاية مخصصة لواجهة برمجة تطبيقات تقدير الرسوم (اختياري).
; الرابط أدناه هو مثال فقط — يمكنك استبداله بموفر رسوم خاص بك.
; تنسيق الاستجابة المتوقع:
; {"fastestFee":1,"halfHourFee":1,"hourFee":1,"economyFee":0,"minimumFee":0}
; feeurl=https://lokichain.info/api/v1/fees/recommended
; ============================================================================
; هوية العقدة (Node Identity)
; ============================================================================
; اسم العقدة المستعار (بحد أقصى 32 حرفاً UTF-8).
; هكذا ستظهر عقدتك للآخرين على الشبكة.
; الافتراضي هو 'MyLokiNode'.
; alias=MyLokiNode
; لون العقدة بتنسيق سداسي عشري (مثلاً '#da9526').
; يستخدم لتخصيص مظهر العقدة في تمثيلات الرسوم البيانية.
; الافتراضي هو '#da9526'.
; color=#da9526
; ============================================================================
; شبكة P2P والاتصال
; ============================================================================
; قيمة المهلة لاتصالات الشبكة {ms, s, m, h}.
; الافتراضي هو '50s'.
; connectiontimeout=50s
; إضافة واجهة/منفذ للاستماع لاتصالات الأقران (الواردة).
; عنوان استماع واحد لكل سطر. مثال: listen=0.0.0.0:5521
; listen=0.0.0.0:5521
; تعطيل الاستماع لاتصالات الأقران الواردة.
; عيّنه إلى true إذا كنت تريد تشغيل عقدة خاصة (اتصالات صادرة فقط).
; nolisten=false
; الاتصال فقط بالأقران المحددين عند بدء التشغيل (وضع حصري).
; connect=node.example.org
; إضافة أقران للاتصال بهم عند بدء التشغيل (بالإضافة إلى أي أقران يتم اكتشافهم).
; نظير واحد لكل سطر. التنسيق: hostname:port أو ip:port
; منفذ P2P الافتراضي لـ Flokicoin هو 15212.
; addpeer=peer1.example.com:15212
; addpeer=peer2.example.com:15212
; إذا كان صحيحاً، فسيطبق تأخيراً عشوائياً بين 0 و 30 ثانية عند
; إعادة الاتصال بالأقران الدائمين عند بدء التشغيل.
; يساعد في تقليل ضغط الاتصالات عند إعادة تشغيل العقدة.
; stagger-initial-reconnect=false
; --- Tor Configuration ---
; تفعيل Tor لاتصال P2P.
; في حالة التفعيل، ستستخدم العقدة بروكسي تور SOCKS للاتصالات الصادرة
; وإنشاء خدمة مخفية للاتصالات الواردة.
; tor.active=false
; عنوان host:port الذي يستمع عليه بروكسي تور SOCKS.
; الافتراضي هو localhost:9050.
; tor.socks=localhost:9050
; خادم DNS بتنسيق host:port الذي سيستخدمه Tor لاستعلامات SRV.
; ملاحظة: يجب تفعيل دقة TCP (TCP resolution).
; الافتراضي هو ln.myfloki.com:53
; tor.dns=ln.myfloki.com:53
; عنوان host:port الذي يستمع عليه Tor لاتصالات التحكم.
; مطلوب لإنشاء الخدمات المخفية (عناوين onion).
; الافتراضي هو localhost:9051
; tor.control=localhost:9051
; --- الإعلان العام (Public Announcement) ---
; إضافة ip:port للإعلان عنها للشبكة لاستقبال الاتصالات الواردة.
; استخدم هذا إذا كان لديك عنوان IP عام ثابت.
; عنوان IP واحد لكل سطر. مثال: externalip=55.10.16.10:5521
; externalip=
; إضافة hostname:port يجب حلها دورياً للإعلان عن عناوين IP.
; استخدم هذا إذا كان لديك عنوان IP ديناميكي مع اسم مضيف DNS (مثل DynDNS أو No-IP).
; سيقوم FLND تلقائياً بحل اسم المضيف وتحديث عنوان IP المعلن الخاص بك.
; إذا لم يتم تحديد المنفذ، فسيتم استخدام الافتراضي (5521).
; اسم مضيف واحد لكل سطر. مثال: externalhosts=mynode.ddns.net:5521
; externalhosts=
; تفعيل دعم تجاوز NAT (باستخدام UPnP أو NAT-PMP).
; الإعلان تلقائياً عن عنوان IP الخارجي الخاص بك للشبكة.
; مفيد إذا كنت خلف جهاز توجيه وتريد قبول الاتصالاات الواردة.
; nat=false
; ============================================================================
; إعدادات RPC و REST API
; ============================================================================
; إضافة واجهة/منفذ/مقبس للاستماع لاتصالات RPC.
; عنوان استماع واحد لكل سطر.
; مثال: rpclisten=127.0.0.1:10005
; rpclisten=127.0.0.1:10005
; إضافة واجهة/منفذ/مقبس للاستماع لاتصالات REST.
; عنوان استماع واحد لكل سطر.
; مثال: restlisten=127.0.0.1:5050
; restlisten=127.0.0.1:5050
; إضافة ip:port أو اسم مضيف للسماح بالوصول عبر المصادر (cross-origin) لواجهة برمجة تطبيقات REST.
; إدخال واحد لكل سطر.
; أمثلة:
; restcors=http://localhost:3000
; restcors=https://mydomain.com
; --- خيارات TLS ---
; يضيف عنوان IP إضافي إلى الشهادة التي تم إنشاؤها. عنوان IP واحد لكل سطر.
; tlsextraip=0.0.0.0
; يضيف مجالاً (Domain) إضافياً إلى الشهادة التي تم إنشاؤها. مجال واحد لكل سطر.
; tlsextradomain=localhost
; إعادة إنشاء شهادة ومفتاح TLS في حالة تغيير عناوين IP أو المجالات.
; مفعل افتراضياً لضمان صلاحية الشهادة عند تغيير إعدادات الشبكة.
; tlsautorefresh=true
; ============================================================================
; إعدادات القنوات (Channel Configuration)
; ============================================================================
; الحد الأقصى لعدد القنوات الواردة المعلقة المسموح بها لكل نظير.
; الافتراضي هو 1. قم بزيادته إذا كنت تريد قبول قنوات متعددة من نفس النظير.
; maxpendingchannels=1
; إذا كان صحيحاً، سيتم تهيئة العقدة للسماح بقنوات أكبر من 5 FLC.
; استخدم هذا الخيار إذا كنت تريد قبول قنوات كبيرة (Wumbo).
; الافتراضي هو خطأ.
; wumbo-channels=false
; أكبر حجم قناة (بوحدة Loki) يجب أن نقبله.
; سيتم رفض القنوات الواردة الأكبر من هذا الحجم.
;
; إذا كان wumbo-channels خطأ (افتراضي)، فإن الحد الأقصى المسموح به هو 500,000,000 Loki (5 FLC).
; إذا كنت تريد قبول قنوات أكبر (مثلاً 210 FLC)، يجب عليك تعيين wumbo-channels=true أعلاه.
;
; الافتراضي هو 500,000,000 Loki (5 FLC).
; maxchansize=500000000
; أصغر حجم قناة (بوحدة Loki) يجب أن نقبله.
; سيتم رفض القنوات الواردة الأصغر من هذا الحجم.
; الافتراضي هو 20,000 Loki (0.00020000 FLC).
; minchansize=20000
; ============================================================================
; إعدادات التوجيه والتحويل (Routing & Forwarding)
; ============================================================================
; إذا كان صحيحاً، فلن يقوم lnd بتحويل أي HTLCs مخصصة كمدفوعات لاحقة.
; استخدم هذا للتشغيل في وضع المحفظة فقط (لا يوجد توجيه).
; rejecthtlc=false
; أصغر HTLC سنقوم بتحويله (بوحدة milli-Loki).
; الافتراضي هو 1 milli-Loki.
; minhtlc=1
; الرسوم الأساسية بوحدة milli-Loki التي سنفرضها مقابل تحويل المدفوعات.
; هذه رسوم ثابتة تضاف إلى كل دفعة يتم تحويلها.
; الافتراضي هو 1000 milli-Loki (1 Loki).
; basefee=1000
; معدل الرسوم المستخدم عند تحويل المدفوعات (بوحدات من المليون).
; إجمالي الرسوم = basefee + (amount × feerate / 1,000,000)
; مثال: feerate=100 تعني 0.01% (100 ppm)
; الافتراضي هو 100 (0.01%).
; feerate=100
; فرق CLTV الذي سنطرحه من قيمة القفل الزمني لـ HTLC المحول.
; هذا هو عدد الكتل التي تطلبها للأ مان عند التحويل.
; الافتراضي هو 400 كتلة.
; timelockdelta=400
; الحد الأقصى لعدد الكتل التي يمكن قفل الأموال فيها عند تحويل المدفوعات.
; هذا حد أمان لمنع قفل الأموال لفترة طويلة جداً.
; الافتراضي هو 10080 كتلة (7 أيام مع كتل مدتها دقيقة واحدة).
; max-cltv-expiry=10080
; قبول المدفوعات العفوية عبر keysend (مدفوعات بدون فواتير).
; عيّنه إلى true لتفعيل استقبال مدفوعات keysend.
; accept-keysend=false
; قبول المدفوعات العفوية عبر AMP (Atomic Multi-Path Payments).
; عيّنه إلى true لتفعيل استقبال مدفوعات AMP.
; accept-amp=false
; ============================================================================
; إعدادات رسم الشبكة (Network Graph & Gossip)
; ============================================================================
; عدد الأقران الذين يجب أن نتلقى منهم تحديثات الرسم البياني الجديدة.
; توفر القيم الأعلى وعياً أفضل بالشبكة ولكنها تستهلك نطاقاً ترددياً أكبر.
; الافتراضي هو 3. موصى به: 3-5 لعقد التوجيه، 1-2 لعقد المحفظة فقط.
; numgraphsyncpeers=3
; الفاصل الزمني للاستطلاع (polling) بين محاولات مزامنة الرسم البياني التاريخي.
; التنسيق: المدة مع الوحدة (مثلاً 20m، 1h، 30s)
; الافتراضي هو 20 دقيقة.
; historicalsyncinterval=20m
; إذا كان صحيحاً، فلن يرد بالبيانات التاريخية التي تطابق النطاق
; المحدد بواسطة gossip_timestamp_filter الخاص بالنظير البعيد.
; عيّنه إلى true لتقليل استهلاك النطاق الترددي.
; ignore-historical-gossip-filters=false
; ============================================================================
; إعدادات Watchtower
; ============================================================================
; تفعيل برج المراقبة (Watchtower) المدمج للمساعدة في حماية قنواتك عندما تكون غير متصل بالإنترنت.
; يقوم برج المراقبة بمراقبة سلسلة الكتل بحثاً عن أي خروقات في المحفظة.
; watchtower=false
; دليل حالة برج المراقبة.
; إذا لم يتم تحديده، يستخدم دليلاً فرعياً في walletdir.
; watchtower.towerdir=
; ============================================================================
; خيارات البروتوكول
; ============================================================================
; السماح للعقدة بقبول وإقراض القنوات غير المؤكدة (zero-conf).
; يسمح هذا بأن تكون القنوات قابلة للاستخدام فور بث عملية التمويل،
; ولكنه يأتي مع مخاطر أمنية.
; protocol.option-zeroconf=true
; السماح للعقدة بقبول وتوفير أسماء مستعارة لـ SCID للقنوات الخاصة.
; مفيد للخصوصية والقنوات غير المؤكدة (zero-conf).
; protocol.option-scid-alias=true
; ============================================================================
; الأداء والضبط
; ============================================================================
; الوقت بالملي ثانية بين كل إصدار للإعلانات للشبكة.
; القيم الأقل تنشر التشخيصات (Gossip) بشكل أسرع ولكن تستهلك نطاقاً ترددياً أكبر.
; الافتراضي هو 9000 (9 ثوانٍ).
; trickledelay=9000
; الفاصل الزمني للاستطلاع بين محاولات اكتشاف ما إذا كانت القناة النشطة قد
; أصبحت غير نشطة بسبب خروج نظيرها عن الإنترنت.
; التنسيق: نص المدة (مثلاً 1m، 30s).
; الافتراضي هو 1m.
; chan-status-sample-interval=1m
; ============================================================================
; الفواتير (Invoices)
; ============================================================================
; عدد الكتل التي ستظل خلالها الفاتورة في الحالة المقبولة
; قب ل أن يتم إلغاؤها.
; الافتراضي هو 0.
; hodl.expiry-delta=0
التشغيل
على macOS/Linux:
./twallet
على Windows:
twallet.exe
إذا قام نظام التشغيل الخاص بك بحظر الملف، فقم بالسماح به صراحة.
الإدارة عبر Lokihub
بينما توفر tWallet عقدة FLND الأساسية، يفضل معظم المستخدمين واجهة مخصصة لإدارة عمليات Lightning. ويعتبر Lokihub هو التطبيق الرفيق الموصى به لهذا الغرض.
اتصال سريع
لتوصيل Lokihub بعقدة tWallet قيد التشغيل:
- افتح Lokihub على نفس الكمبيوتر.
- اختر "Automated Connection" (أو اختر "Local Node").
- سيقوم Lokihub تلقائياً بجلب بيانات الاعتماد اللازمة من دليل بيانات tWallet الخاص بك.
التهيئة اليدوية
إذا كنت تتصل من جهاز مختلف أو فشل الاتصال التلقائي، فستحتاج إلى بيانات اعتماد عقدتك:
- اضغط على CTRL + N داخل tWallet.
- سيفتح هذا نافذة تعرض عنوان gRPC، وMacaroon Hex، وشهادة TLS.
- قم بنسخ هذه البيانات في معالج إعداد Lokihub.
مواقع البيانات
بشكل افتراضي، تقوم tWallet بتخزين تهيئتها وسجلاتها وجميع بيانات عقدة FLND الأساسية (بما في ذلك قواعد بيانات القنوات وملفات المحفظة) في دليل بيانات التطبيق بنظام التشغيل الخاص بك.| نظام التشغيل | المسار الافتراضي |
|---|---|
| Linux | ~/.flnd/ |
| macOS | ~/Library/Application Support/Flnd/ |
| Windows | %APPDATA%\Flnd\ |
دليل .flnd/ هو الموطن الموحد لكل من محفظتك على السلسلة وحالة عقدة Lightning الخاصة بك. قم دائماً بنسخ دليل .flnd/ بالكامل احتياطياً قبل إجراء تغييرات على النظام أو عمليات الهجرة.