08 / 736NODE

Full Node

पूर्ण सत्यापन नोड

Bitcoin भुगतान और ब्लॉक खुद जाँचना: नोड क्या परखता है, वॉलेट उसे कैसे इस्तेमाल करता है और इसके लिए माइनिंग या सभी ब्लॉक हमेशा रखना क्यों ज़रूरी नहीं।

Full Node वह प्रोग्राम है जो Bitcoin के नियम खुद जाँचता है। वह कंप्यूटर पर चलता है, ब्लॉक और लेनदेन प्राप्त करता है और देखता है कि किन्हें मान्य इतिहास में स्वीकार किया जा सकता है। अपने नोड के साथ इस जाँच के लिए माइनर या बाहरी सर्वर के दावे पर निर्भर नहीं रहना पड़ता। लेकिन वॉलेट को लाभ तभी मिलेगा जब वह सचमुच उसी नोड को डेटा का स्रोत बनाए।

सोचिए वॉलेट में मिला हुआ भुगतान दिख रहा है। उसे कैसे पता कि लेनदेन सचमुच Bitcoin के इतिहास में है और नियम पूरे करता है? वह बाहरी सर्वर से पूछ सकता है या आपके नोड का उपयोग कर सकता है। Full Node दूसरे विकल्प को संभव बनाता है: मिले डेटा को नियमों के अनुसार खुद परखता है। वह जुड़े कंप्यूटरों के बहुमत से नहीं पूछता कि क्या निर्णय लेना चाहिए। नियम तोड़ने वाला ब्लॉक आए तो उसे अस्वीकार करता है। इसलिए कनेक्शन की संख्या नियम जाँचना नहीं बदल सकती। अपना नोड आपको उस डेटा की जाँच करने देता है जिसके आधार पर आप भुगतान के बारे में निर्णय लेते हैं। [1] [3]

नोड ब्लॉकों का जुड़ाव, उनके हेडर और Proof of Work जाँचता है, यानी ब्लॉक के लिए ज़रूरी गणना का प्रमाण। लेनदेन में वह यह भी देखता है कि संदर्भित रकम मौजूद है, दो बार खर्च नहीं हो रही और उसके उपयोग की शर्तें पूरी हैं। ये शर्तें स्क्रिप्ट में लिखी होती हैं, जो छोटे प्रोग्राम नियम हैं। वह नए बने बिटकॉइन की मात्रा भी जाँचता है। लगातार अद्यतन परिणाम UTXO set है: ऐसे लेनदेन आउटपुट का संग्रह जो अभी खर्च नहीं हुए, यानी बची हुई खास रकमों का हिसाब। अधिक संचित कार्य दो मान्य शाखाओं के बीच चुनाव तय कर सकता है, लेकिन अमान्य ब्लॉक को मान्य नहीं बना सकता। [1]

नहीं। Full Node ब्लॉक और लेनदेन जाँचता है; केवल सामान्य जाँच के लिए ब्लॉक पुरस्कार नहीं मिलता। माइनर नया ब्लॉक प्रस्तावित करता है और सही शर्त वाला परिणाम मिलने तक गणना दोहराता है। इसमें हैश इस्तेमाल होता है, जो ब्लॉक के हेडर का डिजिटल निशान है। दोनों भूमिकाएँ साथ काम कर सकती हैं: माइनर को जानना होता है कि वह किस इतिहास को आगे बढ़ा रहा है और कौन-से लेनदेन जोड़ सकता है। लेकिन इसका मतलब यह नहीं कि हर नोड को माइनिंग करनी होगी। जाँच और अगला ब्लॉक खोजने की प्रतिस्पर्धा अलग गतिविधियाँ हैं। [5] [1]

नए नोड को पहले नेटवर्क के मौजूदा इतिहास तक पहुँचना होता है। वह ब्लॉक डाउनलोड करके डेटा संसाधित करता है; इसे शुरुआती सिंक्रनाइज़ेशन कहते हैं। उन्नत सेटिंग में इसे तेज करने के दो तरीके अलग समझने चाहिए। तय स्थितियों में Bitcoin Core का assumevalid पुरानी स्क्रिप्ट जाँच छोड़ सकता है; assumevalid=0 इस अनुकूलन को बंद करता है। AssumeUTXO किसी खास ब्लॉक के समय मौजूद, अभी खर्च न हुई रकमों का सहेजा गया रिकॉर्ड (snapshot) लोड करने देता है। प्रोग्राम उसके डिजिटल निशान की तुलना स्रोत कोड में रखे मान से करता है। पिछला इतिहास फिर पृष्ठभूमि में जाँचा जाता है। इसलिए मौजूदा स्थिति उपयोग में आ जाना अपने-आप ऐतिहासिक जाँच पूरी होने का प्रमाण नहीं है। [1] [2]

Full Node को सभी पुराने ब्लॉक की फ़ाइलें हमेशा नहीं रखनी पड़तीं। Pruning संसाधित फ़ाइलों का कुछ हिस्सा मिटाता है, लेकिन मौजूदा UTXO set और ज़रूरी नया डेटा रखता है। नोड नए ब्लॉक जाँचता रहता है। आर्काइव नोड पुराने ब्लॉक रखता है ताकि दूसरों को दे सके या फिर से खोज सके। इसलिए डिस्क बचाना SPV क्लाइंट बनना नहीं है। SPV सरल भुगतान जाँच करता है और सभी लेनदेन व उनकी स्थिति को Full Node की तरह नहीं परखता। फर्क केवल सहेजी फ़ाइलों की संख्या में नहीं, इस बात में है कि आप क्या जाँचते हैं। [3]

सामान्य सिंक्रनाइज़ेशन में Pruning वाला नोड पुराने ब्लॉक डाउनलोड और संसाधित करता है, फिर उन्हें धीरे-धीरे मिटा सकता है। इसलिए Pruning पुरानी जाँच छोड़ने का स्विच नहीं, भंडारण बचाने का तरीका है। ऊपर बताए अनुकूलन अलग बात हैं: assumevalid कुछ स्थितियों में पुरानी स्क्रिप्ट जाँच छोड़ सकता है और AssumeUTXO इतिहास की जाँच चलने के दौरान snapshot इस्तेमाल करने देता है। नोड तैयार है या नहीं, यह तय करते समय केवल डिस्क पर डेटा का आकार न देखें; सिंक्रनाइज़ेशन का तरीका और वास्तविक प्रगति भी देखें। [3] [2]

वॉलेट को लेनदेन और पुष्टियों की जानकारी चाहिए। बाहर के सर्वर से लेने पर वह सवाल भेजता है, जिनसे सर्वर उसके भुगतानों के बारे में कुछ अनुमान लगा सकता है। अपने Full Node से जुड़ने पर आपके नोड का जाँचा डेटा मिल सकता है और वे सवाल बाहरी सर्वर को नहीं भेजने पड़ते। लेकिन नोड स्थापित करके शुरू कर देना वॉलेट का कनेक्शन अपने-आप नहीं बदलता। महत्त्वपूर्ण है कि वॉलेट वास्तव में किस स्रोत का समर्थन और उपयोग करता है। अपना नोड अपने-आप गुमनामी भी नहीं देता: दूसरे नेटवर्क डेटा और वॉलेट इस्तेमाल करने का तरीका भी निजता को प्रभावित करते हैं। [3] [4]

नोड आपकी निजी चाबियों के बिना भी चल सकता है। चाबियाँ भुगतान पर हस्ताक्षर करने देती हैं; नोड देखता है कि लेनदेन और ब्लॉक नियम पूरे करते हैं या नहीं। दोनों काम एक ही उपकरण करे, यह ज़रूरी नहीं। इसलिए केवल यह न देखें कि आपका नोड कहीं चल रहा है; यह भी जाँचें कि वॉलेट डेटा कहाँ से पढ़ता है और लेनदेन किस रास्ते फैलाता है। अपनी जाँच सुरक्षित चाबी बैकअप का स्थान नहीं लेती और नेटवर्क संचार से उजागर होने वाली हर जानकारी नहीं मिटाती। वह पूरे काम के एक हिस्से में मदद करती है: Bitcoin डेटा को स्वतंत्र रूप से परखना। [3] [4]

नोड के दो अलग इंटरफ़ेस हैं। P2P कनेक्शन से वह दूसरे नोडों के साथ ब्लॉक और लेनदेन साझा करता है। RPC वह इंटरफ़ेस है जिससे ऐप उसे कमांड देते हैं और उपलब्ध होने पर उसके वॉलेट को भी नियंत्रित कर सकते हैं। इसलिए डेटा के लिए आने वाला P2P पोर्ट खोलना और RPC अजनबियों को उपलब्ध करना अलग बातें हैं। Bitcoin Core RPC को सीधे सार्वजनिक इंटरनेट पर न खोलने की सलाह देता है। स्थानीय पहुँच के लिए आम तौर पर .cookie फ़ाइल में रखी लॉगिन जानकारी से ऐप का अधिकार जाँचा जाता है। यह ब्राउज़र की ट्रैकिंग कुकी नहीं है। [4]

नोड के कमांड हरे निशान से अधिक जानकारी जाँचने देते हैं। getblockchaininfo में सही नेटवर्क, संसाधित ब्लॉकों की संख्या blocks, ज्ञात हेडर की संख्या headers और शुरुआती सिंक्रनाइज़ेशन का initialblockdownload देखें। snapshot इस्तेमाल हो तो getchainstates मौजूदा स्थिति और पृष्ठभूमि में चल रही ऐतिहासिक जाँच को अलग समझने में मदद करता है। केवल कनेक्शन संख्या पूरी जाँच का प्रमाण नहीं। आखिर में देखें कि नोड शृंखला के पुराने सिरे पर अटका नहीं है और वॉलेट सचमुच उसी से डेटा ले रहा है। तभी नोड की स्वतंत्र जाँच आपके वॉलेट उपयोग में काम आती है। [2] [1]

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Bitcoin, Timechain / Blockchain, लेनदेन, UTXO, Proof of Work. इस प्रविष्टि का उल्लेख यहाँ भी है Bitcoin, Satoshi Nakamoto, Timechain / Blockchain, Proof of Work.

DOC · 001Bitcoin Core v29.0: validationप्राथमिक स्रोत DOC · 002Bitcoin Core v29.0: AssumeUTXOप्राथमिक स्रोत DOC · 003Bitcoin.org: running a full nodeप्राथमिक स्रोत DOC · 004Bitcoin Core v29.0: RPC securityप्राथमिक स्रोत DOC · 005Bitcoin whitepaperप्राथमिक स्रोत
समीक्षा की गई: स्रोत पहले · यह निवेश सलाह नहीं है