उपयोक्ता स्थान को मत तोड़ो!

By Bitcoin पत्रिका - २ महीने पहले - पढ़ने का समय : २ मिनट

उपयोक्ता स्थान को मत तोड़ो!

"माउरो, बकवास बंद करो! यह एक बग है - कर्नेल में। आप कितने समय से अनुरक्षक हैं? और आपने *अभी भी* कर्नेल रखरखाव का पहला नियम नहीं सीखा है? यदि किसी परिवर्तन के परिणामस्वरूप उपयोगकर्ता प्रोग्राम टूट जाता है, तो यह कर्नेल में एक बग है। हम कभी भी उपयोगकर्ता प्रोग्रामों को दोष नहीं देते। इसे समझना कितना कठिन हो सकता है?” -लिनस टोरवाल्ड्स

उपयोक्ता स्थान को न तोड़ें. लिनक्स कर्नेल के विकास के लिए यह लिनुस टोरवाल्ड का सुनहरा नियम है। आपमें से जो इसे पढ़ रहे हैं, जो लिनक्स या सामान्य रूप से ऑपरेटिंग सिस्टम की प्रकृति से परिचित नहीं हैं, उनके लिए कर्नेल एक ऑपरेटिंग सिस्टम का दिल और आत्मा है। कर्नेल वास्तव में हार्डवेयर का प्रबंधन करता है, स्टोरेज और रैम के बीच, रैम और सीपीयू के बीच बिट्स को स्थानांतरित करता है क्योंकि चीजों की गणना की जाती है, और वास्तविक कंप्यूटर के सभी छोटे उपकरणों और टुकड़ों को हार्डवेयर स्तर पर नियंत्रित करने की आवश्यकता होती है।

ऑपरेटिंग सिस्टम के लिए लिखे गए प्रत्येक एप्लिकेशन या प्रोग्राम को कर्नेल के साथ इंटरैक्ट करना होता है। जब आप फ़ोटोशॉप, या टेलीग्राम डाउनलोड करते हैं, तो वह सब कुछ जो प्रोग्राम कर रहा है वह अनिवार्य रूप से कर्नेल को कॉल करने तक सीमित हो जाता है। "अरे कर्नेल, जो मैंने अभी टाइप किया है उसे ले लो और इसे संसाधित करो और इसे नेटवर्क कनेक्शन पर सर्वर पर भेज दो।" "अरे कर्नेल, मैंने इस पिच में जो रंग परिवर्तन किया है उसे ले लो, इसे रैम से निकालो और इसे संशोधित करने के लिए सीपीयू को भेजो, फिर इसे रैम में वापस डाल दो।"

जब कर्नेल को बदला जाता है, तो कुछ हद तक इसी तरह से Bitcoinडेवलपर्स का मुख्य लक्ष्य यह सुनिश्चित करना है कि मौजूदा एप्लिकेशन जो कर्नेल के साथ बातचीत करने का एक विशिष्ट तरीका अपनाते हैं, कर्नेल में बदलाव के कारण टूट न जाएं। बहुत परिचित लगता है Bitcoin और नेटवर्क सर्वसम्मति उन्नयन के लिए पश्चगामी संगतता बनाए रखने की आवश्यकता क्या नहीं है?

"गंभीरता से। इस नियम को समझना कितना कठिन है? हम विशेष रूप से TOTAL CRAP के साथ उपयोगकर्ता स्थान को नहीं तोड़ते हैं। मैं क्रोधित हूं, क्योंकि आपका पूरा ईमेल बहुत _भयानक_ गलत था, और जिस पैच ने चीजों को तोड़ा वह स्पष्ट रूप से बकवास था। पूरा पैच अविश्वसनीय रूप से टूटा हुआ है। यह एक पागल त्रुटि कोड (ENOENT) जोड़ता है, और फिर क्योंकि यह बहुत पागल है, यह इसे ठीक करने के लिए कुछ स्थान जोड़ता है ("ret == -ENOENT ? -EINVAL: ret")।

तथ्य यह है कि फिर आप उपयोगकर्ता स्थान को तोड़ने के लिए *बहाने* बनाने की कोशिश करते हैं, और कुछ बाहरी प्रोग्राम को दोष देते हैं जो काम करते थे, बेहद शर्मनाक है। हम इस तरह काम नहीं करते हैं। अपने "अनुपालन उपकरण" को ठीक करें, क्योंकि यह स्पष्ट रूप से टूटा हुआ है। और कर्नेल प्रोग्रामिंग के प्रति अपना दृष्टिकोण ठीक करें।" -लिनस टोरवाल्ड्स

लिनक्स पूरी दुनिया में सबसे महत्वपूर्ण, यदि नहीं तो सबसे महत्वपूर्ण, ओपन सोर्स प्रोजेक्ट में से एक है। एंड्रॉइड लिनक्स पर चलता है, बैकएंड इंफ्रास्ट्रक्चर का आधा हिस्सा (यदि इससे अधिक नहीं) लिनक्स पर चलता है। आपके जीवन की पृष्ठभूमि में सभी प्रकार की कम्प्यूटरीकृत चीजों को नियंत्रित करने वाले एंबेडेड सिस्टम जिन्हें आप लिनक्स पर चलाने पर भी विचार नहीं करेंगे। दुनिया वस्तुतः लिनक्स पर चलती है। हो सकता है कि इसने डेस्कटॉप पर कब्जा नहीं किया हो जैसा कि कई ऑटिस्टिक लिनक्स उपयोगकर्ता ऐसा होते देखना चाहते थे, लेकिन इसने बिना किसी को ध्यान दिए चुपचाप पृष्ठभूमि में मौजूद लगभग सभी चीजें खा लीं।

ये सभी एप्लिकेशन और प्रोग्राम जो लोग अपने दैनिक जीवन के दौरान उपयोग करते हैं, इस धारणा पर निर्भर करते हैं कि लिनक्स कर्नेल डेवलपर्स अपने एप्लिकेशन को कार्य करना जारी रखने की अनुमति देने के लिए कर्नेल के नए संस्करणों में बैकवर्ड संगतता को नहीं तोड़ेंगे। अन्यwise, किसी भी चल रहे एप्लिकेशन को कर्नेल के पुराने संस्करणों का उपयोग जारी रखना चाहिए या कर्नेल में एक ब्रेकिंग परिवर्तन के साथ इंटरैक्ट करने के लिए अपने एप्लिकेशन को बदलने का बोझ उठाना चाहिए।

Bitcoinसफलता की सबसे अधिक संभावना वाली राह एक बहुत ही समान सड़क है, बस एक मंच बनना है जिसके शीर्ष पर वित्तीय अनुप्रयोग और उपकरण इस तरह से बनाए गए हैं कि उनका उपयोग करने वाले अधिकांश लोगों को इसका एहसास भी नहीं होगा या इस पर विचार नहीं होगा।Bitcoin दुनिया को खा गया।” लिनक्स के समान, "उपयोगकर्ता स्थान को न तोड़ें" का सुनहरा नियम दस गुना लागू होता है। समस्या का स्वभाव है Bitcoin एक व्यक्ति की मशीन पर चलने वाले एकल स्थानीय कर्नेल के बजाय एक वितरित सर्वसम्मति प्रणाली के रूप में, "उपयोगकर्ता स्थान को तोड़ने" का अर्थ बेतहाशा बदल जाता है।

ऐसा नहीं है कि केवल डेवलपर्स ही यूजरस्पेस को तोड़ सकते हैं, उपयोगकर्ता स्वयं यूजरस्पेस को तोड़ सकते हैं। ऑर्डिनल्स, इंस्क्रिप्शन्स और बीआरसी-20 टोकन के पूरे पिछले वर्ष को निश्चित रूप से यह प्रदर्शित करना चाहिए। डेवलपर्स के दृष्टिकोण से "उपयोगकर्ता स्थान को न तोड़ें" के मंत्र को देखते समय यह एक बहुत ही गंभीर दुविधा पेश करता है। जितने उतने Bitcoinइस क्षेत्र के लोग ऑर्डिनल्स को पसंद नहीं करते हैं, और इस बात से परेशान हैं कि उपयोगकर्ताओं द्वारा बनाए जा रहे नेटवर्क ट्रैफ़िक ऑर्डिनल्स के कारण उनके स्वयं के उपयोग के मामले बाधित हो रहे हैं, दोनों समूह उपयोगकर्ता हैं.

तो डेवलपर्स इस समस्या का सामना कैसे करते हैं? उपयोगकर्ताओं का एक समूह उपयोगकर्ताओं के दूसरे समूह के लिए उपयोगकर्ता स्थान तोड़ रहा है। ऐसे परिवर्तन को लागू करना जो ऑर्डिनल्स या शिलालेखों के उपयोग को रोकता है, स्पष्ट रूप से उपयोक्ता स्थान को न तोड़ें के आदेश का उल्लंघन करता है। मुझे यकीन है कि लोग यह कहना चाहेंगे कि "टैपरूट ने यूजरस्पेस तोड़ दिया!" इस दुविधा के जवाब में, लेकिन ऐसा नहीं हुआ। टैपरूट सक्रियण, और गवाह डेटा के लिए संपूर्ण ब्लॉक आकार जितना बड़ा होने की अनुमति, किसी भी पूर्व-मौजूदा एप्लिकेशन या शीर्ष पर निर्मित उपयोग को नहीं तोड़ती है Bitcoin. इसने केवल नए अनुप्रयोगों और उपयोग के मामलों के लिए द्वार खोल दिया।

तो हम यहाँ क्या करें? शिलालेख बनाने या अध्यादेशों का व्यापार करने वाले लोगों द्वारा आम सहमति से परिवर्तन करने की कोशिश करना और फ़िल्टर करना, या तोड़ना मूल रूप से "उपयोगकर्ता स्थान को न तोड़ें" की कहावत का उल्लंघन है। कुछ न करने से एक वर्ग के उपयोगकर्ताओं को दूसरे वर्ग के उपयोगकर्ताओं के उपयोक्ता स्थान को तोड़ने की अनुमति मिलती है। मूल रूप से इस समस्या का कोई समाधान नहीं है सिवाय सुनहरे नियम का उल्लंघन करने के, या ऐसी कार्यक्षमता लागू करने के लिए जो उन उपयोगकर्ताओं के वर्ग को अनुमति देता है जिनका उपयोक्ता स्थान अब नेटवर्क की नई वास्तविकताओं के अनुकूल होने और उनके अनुप्रयोगों और उपयोग का एक व्यवहार्य संस्करण बनाए रखने की अनुमति देता है। मामले.

के उपयोक्ता स्थान को नहीं तोड़ रहा है Bitcoin इसकी निरंतर सफलता और कार्यक्षमता के लिए यह अत्यंत महत्वपूर्ण है, लेकिन यह "कुछ भी न बदलें" जितना सरल नहीं है। उपयोगकर्ता के व्यवहार में गतिशील परिवर्तन, जिसके लिए वास्तविक प्रोटोकॉल में कोई बदलाव की आवश्यकता नहीं होती है, दिन के अंत में प्रोटोकॉल में ब्रेकिंग परिवर्तन के समान प्रभाव डाल सकता है। क्या डेवलपर्स को यह चुनना होगा कि किसी अन्य एप्लिकेशन के उपयोगकर्ता स्थान को बनाए रखने के लिए कौन से एप्लिकेशन का उपयोगकर्ता स्थान टूटा हुआ है? मैं नहीं कहूंगा, और आगे कहूंगा कि डेवलपर्स से इस तरह के व्यवहार की वकालत करने वाला कोई भी व्यक्ति उनसे गैर-जिम्मेदाराना तरीके से और सिस्टम के उपयोगकर्ताओं को नुकसान पहुंचाने वाले तरीके से कार्य करने की मांग कर रहा है। तो यहाँ उत्तर क्या है?

आगे बढ़ने और प्रोटोकॉल में सुधार जारी रखने के अलावा कोई जवाब नहीं है जो कुछ उपयोगकर्ताओं के व्यवहार से टूटे हुए अनुप्रयोगों को उपयोगकर्ताओं के व्यवहार में आकस्मिक परिवर्तनों की उपस्थिति में कार्य करने की अनुमति देता है। अन्यwise, आप डेवलपर्स से सुनहरे नियम को खत्म करने और प्रभावी ढंग से किंगमेकर की भूमिका निभाने के लिए कह रहे हैं कि किस उपयोग के मामले को शीर्ष पर बनाना संभव है Bitcoin.

यदि हम उस सड़क पर जाते हैं, तो हम वास्तव में यहाँ क्या कर रहे हैं? मैं आपको यह नहीं बता सकता कि हम उस समय क्या कर रहे थे, लेकिन मैं आपको बता सकता हूं कि यह अब एक वितरित और तटस्थ प्रणाली का निर्माण नहीं कर रहा है।

मूल स्रोत: Bitcoin पत्रिका