234 / 736LAT

Mining Latency

नया काम पहुँचने और सचमुच शुरू होने में लगने वाला समय

पेत्र एक पूल के साथ माइनिंग करता है। पूल कई माइनरों का काम जोड़ने वाली सेवा है। नया ब्लॉक आने पर उसकी मशीन को समय पर नया काम मिलना और उस पर गणना शुरू करना ज़रूरी है। केवल तेज़ इंटरनेट पर्याप्त नहीं है: मशीन की गणना बदलने से पहले संदेश सॉफ़्टवेयर से भी गुजरता है। परिणाम उलटी दिशा में ऐसा ही रास्ता तय करते हैं। Mining Latency इन रास्तों की देरी बताती है। किसी संख्या का अर्थ समझने के लिए जानना होगा कि समय कहाँ से कहाँ तक मापा गया।

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

पूल पेत्र के लिए काम तैयार करके माइनिंग सॉफ़्टवेयर को भेजता है। सॉफ़्टवेयर संदेश को किसी बीच के माध्यम, यानी proxy, से होते हुए ASIC तक पहुँचा सकता है। ASIC माइनिंग के लिए बना विशेष चिप है। मायने रखता है नए काम पर वास्तविक बदलाव, न कि केवल कंप्यूटर पर संदेश का आ जाना। मशीन फिर shares भेजती है, यानी आंशिक परिणाम जो पूल के सामने किए गए काम का प्रमाण हैं। माइनिंग उपकरणों के संचार प्रोटोकॉल Stratum V2 में channel_id और job_id संदेशों को सही चैनल और काम से जोड़ते हैं। यह संबंध न हो तो एक काम की शुरुआत और दूसरे का अंत मापा जा सकता है। [1]

पेत्र Braiins के जाँच निर्देशों के अनुसार ping चलाता है। इससे पता चलता है कि सर्वर जवाब देता है या नहीं और अनुरोध जाने तथा उत्तर लौटने में कितना समय लगा: RTT, यानी round-trip time। यह उपयोगी पहला कदम है। लेकिन दोनों दिशाओं में रास्ते और कतारें अलग हो सकती हैं, इसलिए संख्या को दो से भाग देना एकतरफ़ा देरी का मापन नहीं है। Ping यह भी नहीं बताता कि पूल काम तैयार करने या ASIC उसे शुरू करने में कितना समय लेता है। इसलिए अच्छा परिणाम और धीमा काम बदलना साथ-साथ संभव हैं। [2] [3]

हमारे उदाहरण में भेजने वाला Tsend = 1000 ms और पाने वाला Trecv = 1040 ms दर्ज करता है। अंतर 40 ms है, लेकिन पाने वाले की घड़ी 30 ms आगे हो सकती है। तब सीधा घटाव वास्तविक संदेश-यात्रा का समय नहीं देगा। ms का अर्थ मिलीसेकंड, यानी सेकंड का हज़ारवाँ हिस्सा है। इसलिए नेटवर्क मापन मानक RFC7679 घड़ियों के तालमेल की अनिश्चितता और समय दर्ज करने की जगह को ध्यान में रखता है। इनके बिना सर्वरों के बीच अंतर तेज़ी का प्रमाण नहीं है; हो सकता है केवल घड़ियों की सेटिंग अलग हो। [3]

नया ब्लॉक आने के बाद पूरा काम मिलने का इंतज़ार न करना पड़े, इसलिए Stratum V2 में Future Job पहले भेजा जा सकता है। यह चेन से भविष्य में जुड़ने के लिए तैयार काम है, तुरंत शुरू करने का आदेश नहीं। SetNewPrevHash इसे सही पिछले ब्लॉक के संदर्भ और मेल खाते job_id के साथ सक्रिय करता है। यदि तैयार काम में लेनदेन हैं, तो नया ब्लॉक उनमें से कुछ को दोबारा इस्तेमाल करने के अयोग्य बना सकता है, जैसे तब जब वह उन्हें पहले ही शामिल कर चुका हो। देरी घटाने की इच्छा इस टकराव को अनदेखा करने की वजह नहीं है। गलत काम जल्दी शुरू करना उपयोगी समय-बचत नहीं है। [1]

पेत्र देखता है कि share भेजी गई, लेकिन पुष्टि बाद में आती है। Stratum V2 में SubmitShares.Success कई स्वीकृत shares का एक साथ सार दे सकता है; जानबूझकर समूह बनाना संदेशों की संख्या घटाता है। इसलिए पूरे इंतज़ार को संदेश भेजने का समय नहीं मान सकते, न यह कह सकते हैं कि पूल उतनी देर तक परिणाम से अनजान था। SubmitShares.Error भी बाद की जाँच के बाद आ सकता है। sequence_number उत्तरों को भेजे गए परिणामों से जोड़ने में मदद करता है। समस्या खोजते समय प्राप्ति, जाँच और सूचना को अलग रखें। [1]

माइनिंग को यह भी जल्दी जानना होता है कि किसी ने नया ब्लॉक प्रकाशित किया है। यह मशीन और पूल के कनेक्शन से अलग चरण है। BIP152 नोडों के बीच भेजे जाने वाले डेटा को घटाता है: high-bandwidth मोड में नोड सीधे cmpctblock, ब्लॉक का संक्षिप्त विवरण, भेज सकता है। प्राप्तकर्ता अधिकतर लेनदेन अपने डेटा से पूरा करता है। जो नहीं हैं, उन्हें getblocktxn से माँगता और blocktxn में पाता है, जिससे एक और आदान-प्रदान जुड़ सकता है। इसलिए कम डेटा का मतलब शून्य इंतज़ार नहीं है, और यह ब्लॉक के सभी नियमों की पूरी जाँच का विकल्प भी नहीं है। [4]

पेत्र सामान्य कामकाज के साथ उन मौकों को भी जानना चाहता है जब कुछ अटक जाता है। p50/p95 पर्सेंटाइल हैं: वे मापे गए समयों के वितरण के अलग हिस्से दिखाते हैं, केवल एक औसत नहीं। समय को छोटे से बड़े क्रम में रखें तो p50 लगभग बीच में और p95 धीमे सिरे के पास होता है: लगभग 50% मान पहली सीमा से नीचे और 95% दूसरी से नीचे होते हैं। इससे आम प्रतीक्षा और लंबे विलंब का फर्क दिखता है। लेकिन न पहुँचने वाले संदेशों के साथ क्या किया गया, यह बताना ज़रूरी है। RFC7679 प्रतीक्षा की सीमा Tmax रखता है; उसे पार करना कोई साधारण तेज़ माप नहीं है। इसके पर्सेंटाइल की गणना में अपरिभाषित देरी को अनंत मानकर क्रम दिया जाता है। उन्हें चुपचाप हटाने से रिपोर्ट ही बेहतर दिखेगी। खाली नमूना भी शून्य देरी नहीं, बल्कि निष्कर्ष के लिए डेटा न होना है। [3]

पेत्र समान चरणों की तुलना मिलते-जुलते भार और बराबर अवधि में करता है। हर ms माप के साथ समय दर्ज करने की जगह, घड़ियों की अनिश्चितता और संबंधित job_id लिखता है; ping और RTT अलग रखता है। वह रुकावटें और अस्वीकृत परिणाम भी जोड़ता है, ताकि तेज़ औसत अविश्वसनीयता न छिपाए। तब देख सकता है कि दूसरा सर्वर, नेटवर्क या मशीन की सेटिंग मदद करेगी या नहीं। लक्ष्य पुराने पड़ चुके काम पर कम समय गँवाना है, ब्लॉक मिलने का वादा करना नहीं। कम देरी माइनिंग की यादृच्छिकता या वैधता के नियम नहीं बदलती। [1] [2] [3]

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Stale Rate, Block Propagation, Stratum V2, Mining Pool, Bitcoin. इस प्रविष्टि का उल्लेख यहाँ भी है Stratum V2, Stale Rate.

DOC · 001Stratum V2 — Mining Protocolविनिर्देश DOC · 002Braiins — Connection diagnosticsदस्तावेज़ DOC · 003RFC7679 — One-Way Delay Metricविनिर्देश DOC · 004BIP152 — Compact Block Relayविनिर्देश
समीक्षा की गई: स्रोत पहले · यह निवेश सलाह नहीं है