सबको नमस्ते, साप्ताहिक भड़ास सत्र का समय आ गया है
अनुक्रमणिका:
- 0.3.3 & current updates
- NativeBigInteger
- ???
1) 0.3.3
हमने पिछले शुक्रवार 0.3.3 रिलीज़ जारी की और एक-दो दिन के काफ़ी उथल-पुथल भरे हालात के बाद, यह ठीक-ठाक काम करती दिख रही है। 0.3.2.3 जितनी अच्छी तो नहीं है, लेकिन मैं आमतौर पर irc.duck.i2p पर 2–7 घंटे के सत्रों तक बना रह पाया हूँ। फिर भी, क्योंकि मैंने कई लोगों को दिक्कतें झेलते देखा, मैंने लॉगर चालू किया और विस्तार से निगरानी की कि क्या चल रहा है। संक्षेप में, हम ज़रूरत से ज़्यादा बैंडविड्थ इस्तेमाल कर रहे थे, जिससे जाम और tunnel की विफलताएँ हो रही थीं (परीक्षण संदेशों के टाइम-आउट होने आदि के कारण)।
मैंने पिछले कुछ दिन फिर से सिम्युलेटर में बिताए हैं, नेटवर्क के माध्यम से हार्टबीट्स की एक श्रृंखला चलाते हुए यह देखने के लिए कि हम क्या सुधार सकते हैं, और उसके आधार पर हमारे लिए बहुत सारे अपडेट आने वाले हैं:
netDb update to operate more efficiently
मौजूदा netDb लुकअप संदेश 10+KB तक के होते हैं, और जहाँ सफल जवाब अक्सर मिलते हैं, वहीं असफल जवाब 30+KB तक के हो सकते हैं (क्योंकि दोनों में पूर्ण RouterInfo संरचनाएँ शामिल होती हैं)। नया netDb उन पूर्ण RouterInfo संरचनाओं को router के हैश से बदल देता है - जिससे 10KB और 30KB के संदेश ~100 बाइट के संदेशों में बदल जाते हैं।
throw out the SourceRouteBlock and SourceRouteReplyMessage
ये संरचनाएँ एक पुराने विचार के अवशेष थीं, लेकिन प्रणाली की गोपनीयता या सुरक्षा में कोई अतिरिक्त लाभ नहीं देती थीं। उन्हें हटाकर और उनकी जगह अधिक सरल प्रत्युत्तर डेटा बिंदुओं के एक सेट को अपनाने से, हमने tunnel प्रबंधन संदेशों का आकार उल्लेखनीय रूप से घटा दिया और garlic encryption का समय आधा कर दिया।
अधिक कुशल संचालन के लिए netDb अपडेट
tunnel बनाने के दौरान कोड थोड़ा ‘chatty’ था, इसलिए अनावश्यक संदेशों को हटा दिया गया है।
SourceRouteBlock और SourceRouteReplyMessage को हटा दें
garlic routing (I2P की एक रूटिंग तकनीक) के लिए कुछ क्रिप्टो कोड ऐसी स्थिर पैडिंग का उपयोग कर रहा था जो कुछ garlic routing तकनीकों पर आधारित थी, जिनका हम उपयोग नहीं कर रहे हैं (जब मैंने इसे सितंबर और अक्टूबर में लिखा था, तब मुझे लगा था कि हम tunnels के बजाय multi-hop garlic routing करने वाले हैं)।
मैं इस पर भी काम कर रहा हूँ कि क्या मैं tunnel रूटिंग में प्रति-हॉप tunnel IDs जोड़ने वाला व्यापक अपडेट लागू कर सकता हूँ।
जैसा कि आप रोडमैप से देख सकते हैं, यह 0.4.1 रिलीज़ का बड़ा हिस्सा समेटता है, लेकिन चूँकि netDb में बदलाव से पिछड़ी संगतता खो गई, तो बेहतर है कि हम एक साथ ही कई ऐसी चीज़ें कर लें जो पिछड़ी संगतता तोड़ती हैं।
मैं अभी भी सिमुलेशन में परीक्षण चला रहा हूँ और देखना है कि क्या मैं per-hop tunnel id वाली चीज़ को पूरा कर सकता हूँ, लेकिन उम्मीद है कि एक-दो दिनों में नया पैच रिलीज़ जारी कर दूँ। यह पिछले संस्करणों के साथ संगत नहीं होगा, इसलिए उन्नयन थोड़ा मुश्किल होगा, लेकिन यह इसके लायक होना चाहिए।
2) NativeBigInteger
Iakin Freenet टीम के लिए NativeBigInteger कोड में कुछ अपडेट कर रहे हैं—कुछ ऐसे हिस्सों का अनुकूलन कर रहे हैं जिनका हम उपयोग नहीं करते, और साथ ही ऐसा CPU detection कोड भी तैयार कर रहे हैं जिसे हम सही नेटिव लाइब्रेरी (प्लेटफ़ॉर्म-विशिष्ट लाइब्रेरी) अपने-आप चुनने के लिए इस्तेमाल कर सकें। इसका मतलब है कि हम डिफ़ॉल्ट इंस्टॉल में एक ही lib के रूप में jbigi को डिप्लॉय कर सकेंगे और वह उपयोगकर्ता से कुछ भी पूछे बिना सही वाला चुन लेगा। उन्होंने यह भी सहमति दी है कि अपने संशोधन और नया CPU detection कोड जारी करेंगे ताकि हम इसे अपने स्रोत कोड में बंडल कर सकें (वाह Iakin!). यह कब तैनात किया जाएगा, मैं पक्का नहीं कह सकता, लेकिन जैसे ही होगा मैं लोगों को बता दूँगा, क्योंकि जिनके पास मौजूदा jbigi लाइब्रेरियाँ हैं, उन्हें संभवतः एक नई की आवश्यकता होगी।
3) ???
खैर, पिछला हफ्ता कोड हैकिंग में गहराई तक डूबे रहने में बीता, इसलिए ज़्यादा अपडेट नहीं हैं। क्या किसी के पास उठाने के लिए कुछ और मुद्दे हैं? अगर हाँ, तो आज रात GMT के 9 बजे #i2p में होने वाली बैठक में शामिल हो जाइए।
=jr