TON Blockchain Architecture

From TON Wiki (Hi)

TON Blockchain Architecture ब्लॉकचेन में डेटा भंडारण और प्रबंधन प्रणाली है। आर्किटेक्चर में डेटा का संगठन, खातों और ब्लॉक (शार्डिंग) के बीच डेटा को विभाजित करने के लिए तंत्र, लेनदेन की जांच और सुरक्षित करने के नियम (स्थिरता की स्थिति), साथ ही एक मास्टरचैन शामिल है, जो मुख्य मापदंडों का प्रबंधन करता है और शार्डचेन के काम का समन्वय करता है।

सब कुछ cells का एक bag है

Visual representation of DAGs

TON ब्लॉकचेन में, सभी डेटा को कोशिकाओं के संग्रह (बैग) के रूप में दर्शाया जाता है। प्रत्येक सेल में 1023 बिट तक डेटा और अन्य सेल के 4 संदर्भ होते हैं। इन कोशिकाओं को कोशिकाओं के पेड़ों या कोशिकाओं के निर्देशित एसाइक्लिक ग्राफ़ (DAG) में व्यवस्थित किया जाता है, जो उनके संरचित भंडारण और प्रसंस्करण को सुनिश्चित करते हैं। सभी डेटा ब्लॉक और ब्लॉकचेन स्थिति को कोशिकाओं में क्रमबद्ध किया गया है, जो TL-B (टाइप लैंग्वेज - बाइनरी) योजना के अनुसार मूल्यों का प्रतिनिधित्व करते हैं।

कोशिकाओं की संरचना में दो डिस्क्रिप्टर बाइट्स, डेटा और अन्य कोशिकाओं के लिंक शामिल हैं, जो SHA256 हैश द्वारा दर्शाए गए हैं। कोशिकाओं के इस मानक प्रतिनिधित्व का उपयोग पूरे नेटवर्क में डेटा के भंडारण या प्रसारण के दौरान उनके क्रमांकन के लिए किया जाता है।

प्रमुख घटक और ब्लॉकचेन स्थितियाँ

TON ब्लॉकचेन इनफिनिट Sharding पैराडाइम (ISP) को नियोजित करता है, जहां प्रत्येक खाते को अपनी अलग खाता श्रृंखला में विद्यमान माना जाता है। इन अकाउंटचेन के वर्चुअल ब्लॉक को दक्षता के लिए शार्डचेन के ब्लॉक में समूहीकृत किया गया है। एक शार्डचेन की स्थिति में उसके सभी खातों की स्थिति शामिल होती है, और एक शार्डचेन ब्लॉक में कुछ खातों के लिए वर्चुअल ब्लॉक का संग्रह होता है।

शार्डचेन ब्लॉक और उसकी स्थिति को दो भागों में विभाजित किया गया है: विभाजित और गैर-विभाजित। विभाजित भाग विशिष्ट खातों से जुड़े होते हैं, जबकि गैर-विभाजित भागों में इनकमिंग और आउटगोइंग संदेशों के विवरण और ब्लॉक हेडर जैसे डेटा शामिल होते हैं।

ब्लॉकचेन के प्रमुख घटक

शार्डचेन ब्लॉक के गैर-विभाजित भाग के घटक

  • InMsgDescr: आने वाले सभी संदेशों का विवरण।
  • OutMsgDescr: सभी आउटगोइंग संदेशों का विवरण।
  • Block Header: सामान्य जानकारी, जिसमें ब्लॉक के हैश और पैरामीटर शामिल हैं।
  • OutMsgQueue: असंसाधित संदेशों की एक queue, जो पड़ोसी शार्डचेन में शामिल होने के बाद हटा दी जाती है।

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

ध्यान दें कि TON ब्लॉकचेन में "स्मार्ट-कॉन्ट्रैक्ट" और "अकाउंट" के बीच कोई अंतर नहीं है।

मास्टरचेन ब्लॉक

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

संगति की स्थितियाँ

ब्लॉकचेन संरचना का महत्वपूर्ण घटक ब्लॉकों में संग्रहीत डेटा के बीच स्थिरता की स्थिति है। ये स्थितियाँ ब्लॉकचेन की शुद्धता और सुरक्षा सुनिश्चित करती हैं, यह गारंटी देती हैं कि डेटा केवल अधिकृत तरीकों से बदला जाता है - ब्लॉक के भीतर लेनदेन के परिणामस्वरूप।

संगति स्थितियों के प्रकार

  • Global conditions — ऐसे परिवर्तन जो संपूर्ण ब्लॉकचेन पर काम करते हैं, जैसे संदेश वितरण की गारंटी।
  • Internal (local) conditions — लेन-देन के भीतर डेटा पर लागू होने वाली स्थितियाँ, उदाहरण के लिए, लेन-देन में आने वाले संदेशों को संसाधित करना।
  • External (global) conditions — विभिन्न ब्लॉकों में डेटा से संबंधित स्थितियाँ, आमतौर पर पड़ोसी शार्डचेन से संबंधित।

किसी ब्लॉक के लिए वैधता की शर्तें

All global and local conditions related to a block constitute its validity conditions. A block is considered valid if it satisfies these conditions. Responsibility for generating and checking the validity of blocks lies with the validators. If a block does not meet validity conditions, it is deemed invalid.

Logical time

TON ब्लॉकचेन में Logical time (LT) कुछ घटनाओं द्वारा निर्दिष्ट एक गैर-नकारात्मक 64-बिट पूर्णांक संख्या है। यदि कोई घटना अन्य घटनाओं पर निर्भर करती है, तो उसका तार्किक समय उन सभी घटनाओं की तुलना में अधिक होता है जिन पर वह निर्भर होती है। उदाहरण के लिए, यदि कोई घटना पिछली घटनाओं पर निर्भर नहीं करती है, तो उसका LT 0 है।

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

कुल ब्लॉकचेन स्थिति

प्रत्येक मास्टरचेन ब्लॉक में सभी मौजूदा सक्रिय शार्क और उनमें से प्रत्येक के लिए नवीनतम ब्लॉक की एक सूची होती है। इस संबंध में, प्रत्येक मास्टरचेन ब्लॉक TON ब्लॉकचेन की संबंधित कुल स्थिति को परिभाषित करता है, क्योंकि यह प्रत्येक शार्डचेन और मास्टरचेन की स्थिति को भी ठीक करता है।

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

विन्यास योग्य पैरामीटर और स्मार्ट अनुबंध

TON ब्लॉकचेन में, कॉन्फ़िगर करने योग्य पैरामीटर मौजूद हैं, जिन्हें मास्टरचेन में स्थित मान या स्मार्ट अनुबंध निर्दिष्ट किया जा सकता है।

कॉन्फ़िगर करने योग्य पैरामीटर में शामिल हैं:

  • सत्यापनकर्ताओं के लिए न्यूनतम हिस्सेदारी.
  • निर्वाचित सत्यापनकर्ताओं के समूह का अधिकतम आकार.
  • ब्लॉक की अधिकतम संख्या जिसके लिए सत्यापनकर्ताओं का एक ही समूह जिम्मेदार है।
  • सत्यापनकर्ता चुनाव प्रक्रिया.
  • सत्यापनकर्ता को दंडित करने की प्रक्रिया.
  • वर्तमान में सक्रिय और सत्यापनकर्ताओं का अगला निर्वाचित समूह।
  • विन्यास योग्य मापदंडों को बदलने की प्रक्रिया।

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

नए स्मार्ट अनुबंध और उनके पते

नए स्मार्ट अनुबंध बनाने और उन्हें पते निर्दिष्ट करने के तंत्र नीचे वर्णित हैं, केवल मूल वर्कचेन और मास्टरचेन के लिए मान्य हैं। अन्य वर्कचेन इन उद्देश्यों के लिए अपने स्वयं के तंत्र का उपयोग कर सकते हैं।

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

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

स्मार्ट अनुबंधों का संशोधन और निष्कासन

लेनदेन प्रसंस्करण के दौरान TVM में स्मार्ट कॉन्ट्रैक्ट के कोड को निष्पादित करने के परिणामस्वरूप स्मार्ट कॉन्ट्रैक्ट का लगातार डेटा आम तौर पर बदल जाता है। यदि स्मार्ट कॉन्ट्रैक्ट कोड डेटा में परिवर्तन प्रदान नहीं करता है, तो डेटा अपरिवर्तित रहता है। स्मार्ट अनुबंध का वास्तविक कोड केवल तभी बदला जा सकता है यदि वर्तमान कोड ऐसे संशोधनों की अनुमति देता है।

एक स्मार्ट अनुबंध तब तक नष्ट नहीं किया जा सकता जब तक उसका संतुलन शून्य या नकारात्मक न हो जाए। यह भंडारण शुल्क के कारण या एक आउटगोइंग संदेश भेजने के बाद हो सकता है जो लगभग सभी धनराशि स्थानांतरित करता है। उदाहरण के लिए, एक उपयोगकर्ता अपडेट के लिए सभी धनराशि को दूसरे वॉलेट या स्मार्ट अनुबंध में स्थानांतरित कर सकता है।

जब खाते की शेष राशि नकारात्मक हो जाती है या एक निश्चित न्यूनतम से कम हो जाती है, तो खाता फ्रीज कर दिया जाता है, इसके कोड और डेटा को 32-बाइट हैश से बदल दिया जाता है। इस हैश को कुछ समय के लिए बरकरार रखा जाता है ताकि मालिक फंड ट्रांसफर करके और कोड और डेटा के साथ एक संदेश भेजकर खाते को पुनर्स्थापित कर सके।

Sources

  1. https://docs.ton.org/tblkch.pdf
  2. https://docs.ton.org/ton.pdf
  3. https://blog.ton.org/the-architecture-behind-the-open-network
  4. https://docs.ton.org/learn/overviews/ton-blockchain