अवलोकन
यह प्रस्ताव I2P के BEP9 कार्यान्वयन में पूर्ण सूचना पुनर्प्राप्ति जोड़ने के बारे में है।
प्रेरणा
BEP9 पूरे टोरेंट फ़ाइल को नहीं भेजता है, जिससे कई महत्वपूर्ण शब्दकोश आइटम खो जाते हैं, और टोरेंट फ़ाइल का कुल SHA1 बदल जाता है। यह मैगॉट लिंक के लिए खराब है, और यह खराब है क्योंकि महत्वपूर्ण जानकारी खो जाती है। ट्रैकर सूचियां, टिप्पणियाँ, और कोई भी अतिरिक्त डेटा गायब हो जाता है। इस जानकारी को पुनर्प्राप्त करने का एक तरीका महत्वपूर्ण है, और इसे टोरेंट फ़ाइल में यथासंभव कम जोड़ना चाहिए। इसे गोलाकार निर्भर नहीं होना चाहिए। पुनर्प्राप्ति जानकारी को वर्तमान ग्राहकों पर किसी भी तरह से प्रभाव नहीं डालना चाहिए। ट्रैकर रहित टोरेंट (जहां ट्रैकर URL शाब्दिक रूप से ‘ट्रैकरलेस’ है) अतिरिक्त फ़ील्ड नहीं रखते हैं, क्योंकि वे डिस्कवरी और डाउनलोड के मैगॉट प्रोटोकॉल का उपयोग करने के लिए विशिष्ट हैं, जो पहली बार में जानकारी को कभी नहीं खोता।
समाधान
यहां जो किया जाना आवश्यक है वह यह है कि जो जानकारी खो जाएगी उसे संपीड़ित करें, और इसे जानकारी शब्दकोश में संग्रहीत करें।
कार्यान्वयन
- सामान्य जानकारी शब्दकोश उत्पन्न करें।
- मुख्य शब्दकोश उत्पन्न करें, और जानकारी प्रविष्टि छोड़ दें।
- मुख्य शब्दकोश को बेकोड करें, और gzip के साथ संपीड़ित करें।
- संपीड़ित मुख्य शब्दकोश को जानकारी शब्दकोश में जोड़ें।
- जानकारी को मुख्य शब्दकोश में जोड़ें।
- टोरेंट फ़ाइल लिखें।
पुनर्प्राप्ति
- जानकारी शब्दकोश में पुनर्प्राप्ति प्रविष्टि को डिकंप्रेस करें।
- पुनर्प्राप्ति प्रविष्टि का बेंडकोड करें।
- पुनर्प्राप्त शब्दकोश में जानकारी जोड़ें।
- मैगॉट-सक्षम ग्राहकों के लिए, आप अब सत्यापित कर सकते हैं कि SHA1 सही है।
- पुनर्प्राप्त टोरेंट फ़ाइल को लिखें।
चर्चा
उपरोक्त उल्लिखित विधि का उपयोग करके, टोरेंट का आकार वृद्धि बहुत छोटा होता है, सामान्यतः 200 से 500 बाइट्स। रॉबर्ट नई जानकारी शब्दकोश प्रविष्टि निर्माण के साथ शिपिंग करेगा, और इसे बंद नहीं किया जा सकेगा। यहाँ संरचना है:
मुख्य शब्दकोश {
ट्रैकर स्ट्रिंग्स, टिप्पणियाँ, आदि...
जानकारी : {
gzipped मुख्य बेंकोडेड शब्दकोश जिसमें जानकारी शब्दकोश और सभी अन्य सामान्य जानकारी को घटा दिया गया है
}
}