Linux Node Preflight
रीड-ओनली डायग्नोस्टिक स्क्रिप्ट बनाएँसंवेदनशील मान (IP, होस्टनाम, उपयोगकर्ता, पथ) आउटपुट में मास्क किए जाते हैं।
परिचय
Linux Node Preflight एक bash स्क्रिप्ट बनाता है जो blockchain नोड चलाने से पहले Linux सर्वर की सूची लेती है: वितरण, आर्किटेक्चर, CPU और फ़्लैग, मेमोरी, swap, डिस्क और फ़ाइलसिस्टम प्रकार, NTP और समय क्षेत्र, ulimits, व्यस्त पोर्ट, फ़ायरवॉल, Docker, Compose, systemd, कर्नेल, sysctl पैरामीटर और बाहरी कनेक्टिविटी।
स्क्रिप्ट सख्ती से डायग्नोस्टिक है। यह कुछ स्थापित नहीं करती, कोई कॉन्फ़िगरेशन नहीं बदलती, पोर्ट नहीं खोलती, कुछ पुनः आरंभ नहीं करती और TCP पहुँच परीक्षण के अलावा कुछ भी नेटवर्क पर नहीं भेजती। आप इसे नोड पर चलाते हैं, फिर विश्लेषण के लिए रिपोर्ट यहाँ चिपकाते हैं।
उद्देश्य
- चुनी गई chain और नोड प्रकार के अनुरूप रीड-ओनली bash स्क्रिप्ट बनाना।
- नोड रोलआउट को सबसे अधिक तोड़ने वाले बिंदु उजागर करना: अपर्याप्त RAM या डिस्क, लापता swap, असमकालिक घड़ी, व्यस्त पोर्ट, लापता Docker/Compose और असमर्थित आर्किटेक्चर।
- वैकल्पिक रूप से आउटपुट में सार्वजनिक IP, होस्टनाम, उपयोगकर्ता नाम, व्यक्तिगत पथ और टोकन-जैसे मान मास्क करना।
- चिपकाई गई रिपोर्ट स्थानीय रूप से विश्लेषण करना और परिणाम को स्वीकृत, ध्यान, गंभीर या असत्यापित वर्गीकृत करना।
इनपुट
- Blockchain और नोड प्रकार (validator, rpc, full, archive या pruned)।
- संवेदनशील मानों के लिए मास्किंग वरीयता।
- स्क्रिप्ट द्वारा उत्पन्न रिपोर्ट पाठ (विश्लेषण के लिए वापस चिपकाएँ)।
यह कैसे काम करता है
स्क्रिप्ट रीड-ओनली कमांड (uname, lscpu, /proc/meminfo, df, lsblk, findmnt, timedatectl, ulimit, ss, ufw/firewall-cmd, docker, systemctl, sysctl, एक TCP पहुँच परीक्षण) से बनती है और PF_KEY=value रिपोर्ट छापती है।
मास्किंग सक्षम होने पर, स्क्रिप्ट अपने आउटपुट को sed फ़िल्टर से गुज़ारती है जो प्रदर्शन से पहले IP पते, होस्टनाम, वर्तमान उपयोगकर्ता, व्यक्तिगत पथ और टोकन-जैसे मान छिपाता है।
चिपकाई गई रिपोर्ट वापस कुंजियों में पार्स होती है और प्रति-chain सीमाओं से तुलना होती है: RAM और खाली डिस्क अनुशंसित न्यूनतम के विरुद्ध, swap उपस्थिति, NTP सिंक्रनाइज़ेशन, उपयोग में आवश्यक पोर्ट, Docker/Compose उपस्थिति, आर्किटेक्चर समर्थन और खुली फ़ाइल ulimit।
परिणाम वर्गीकृत होता है: स्वीकृत जब कुछ विफल नहीं, ध्यान जब चेतावनियाँ हों, गंभीर जब कोई अवरोधक बिंदु विफल हो, असत्यापित जब आवश्यक कुंजियाँ लापता हों।
परीक्षण योग्य उदाहरण
आज़माएँ — विश्लेषण आपके ब्राउज़र में स्थानीय रूप से चलता है।
उदाहरण
Blockchain: Cosmos · नोड प्रकार: validator · मास्क: चालू
अपेक्षित आउटपुट
PF_OS=Ubuntu 24.04.4 LTS PF_ARCH=aarch64 PF_MEM_TOTAL_GB=5 PF_DISK_FREE_GB=67 PF_NTP=yes PF_PORTS=22 80 443 3100 → गंभीर: RAM इस प्रोफ़ाइल के अनुशंसित न्यूनतम से कम है।
आउटपुट पढ़ना
- स्वीकृत का मतलब जाँचे गए बिंदु प्रोफ़ाइल सीमाएँ पूरी करते हैं — यह गारंटी नहीं कि नोड चलेगा; यह तैयारी संकेत है, प्रमाणन नहीं।
- गंभीर निष्कर्ष (RAM, डिस्क, व्यस्त आवश्यक पोर्ट) नोड तैनात करने से पहले हल किया जाना चाहिए।
- लापता swap या असत्यापित बिंदु जैसी चेतावनियाँ संदर्भ-निर्भर हैं; अपने कार्यभार के लिए समीक्षा करें।
- मास्क किया आउटपुट रिपोर्ट को ब्राउज़र में चिपकाने के लिए सुरक्षित रखता है, लेकिन रिपोर्ट को फिर भी संवेदनशील मानें।
जोखिम
- कम आकार के सर्वर पर शुरू किया नोड sync के दौरान डेटाबेस भ्रष्ट कर सकता है और पूर्ण re-sync मजबूर कर सकता है।
- असमकालिक घड़ी validator मतदान तोड़ती है और दंड ट्रिगर कर सकती है।
- वास्तविक रहस्यों वाली रिपोर्ट चिपकाना — मास्क विकल्प जोखिम घटाता है, समाप्त नहीं करता।
सीमाएँ
- उपकरण वही पढ़ता है जो स्क्रिप्ट ने छापा; जो स्क्रिप्ट माप नहीं सकी, उसे सत्यापित नहीं कर सकता।
- Docker और Compose रिपोर्ट होते हैं, आवश्यक नहीं — कुछ नोड तैनातियाँ बिना चलती हैं।
- कनेक्टिविटी परीक्षण केवल पहुँच जाँचता है; कोई डेटा नहीं भेजता।
आधिकारिक संदर्भ
FAQ
क्या स्क्रिप्ट मेरे सर्वर पर कुछ बदलती है?
नहीं। यह केवल सिस्टम जानकारी पढ़ती है और रिपोर्ट छापती है। यह पैकेज स्थापित नहीं करती, कॉन्फ़िगरेशन नहीं बदलती, पोर्ट नहीं खोलती और कुछ पुनः आरंभ नहीं करती। चाहें तो चलाने से पहले उत्पन्न स्क्रिप्ट की समीक्षा करें।
कनेक्टिविटी परीक्षण क्या करता है?
यह 1.1.1.1:53 पर TCP कनेक्शन खोलता है और ok या unreachable बताता है। यह कोई एप्लिकेशन डेटा नहीं भेजता — केवल जाँचता है कि बाहरी कनेक्शन काम करते हैं, जो अधिकांश नोड स्टैक peer खोज के लिए चाहते हैं।
क्या मुझे रिपोर्ट बिना मास्किंग चिपकानी चाहिए?
नहीं। मास्किंग चालू रखें: रिपोर्ट में आपका सार्वजनिक IP, होस्टनाम और उपयोगकर्ता नाम है। विश्लेषण समान काम करता है क्योंकि वह PF_ कुंजियाँ पढ़ता है, मास्क किए मान नहीं।