डीपीपीज़ के लिए समय मशीन

कल्पना कीजिए कि आप अपने हाथ में एक उत्पाद पकड़े हुए हैं और उस पर मौजूद QR कोड को स्कैन कर रहे हैं। PDF की जगह एक छोटा ऐप खुलता है। आप उत्पाद को ठीक वैसे ही देखते हैं जैसा वह अभी है: यह किससे बना है, कहाँ से आया है, और आपको किन बातों का ध्यान रखना चाहिए। एक स्वाइप आपको समय में पीछे ले जाता है - आप अब तक जारी हुए हर संस्करण को देख सकते हैं।

यह ट्रांसपेरियो टाइम मशीन है, जो किसी भी डिजिटल प्रोडक्ट पासपोर्ट के लिए हमारी ओपन-सोर्स कंज्यूमर ऐप है। इसका कोड GitHub पर GPL v3 के तहत उपलब्ध है।

हम इसे इसलिए बना रहे हैं क्योंकि डिजिटल उत्पाद पास पर EU विनियमन उपभोक्ताओं के लिए लिखा गया था - उस व्यक्ति के लिए जो उत्पाद को अपने हाथों में पकड़े हुए है। अधिकांश प्रदाता इसे एक अनुपालन फॉर्म में बदल देते हैं जिसे कोई दो बार नहीं देखता। हम इसे एक ऐसी ऐप में बदल रहे हैं जिसे उपभोक्ता वास्तव में खोलेंगे।

खुद देखें

डेमो नमूना डेटा के साथ पूर्ण उत्पाद पासपोर्ट दिखाता है: संस्करण इतिहास ब्राउज़ करें और निरीक्षण स्टिकर खोलें - सीधे अपने ब्राउज़र में, बिना खाते के।

यह ऐप क्या करता है

उत्पाद धारक व्यक्ति के दृष्टिकोण से चार टचपॉइंट। कोई लॉगिन नहीं, कोई ऐप इंस्टॉलेशन नहीं।

1

स्कैन करें

अपने स्मार्टफोन के कैमरे से QR कोड स्कैन करें। ऐप आपके ब्राउज़र में खुल जाएगा।

2

नवीनतम समाचार देखें

यहाँ और अभी का उत्पाद - घटक, सामग्री, उत्पत्ति, देखभाल, पुनर्चक्रण।

3

इतिहास देखें

एक स्वाइप आपको समय में पीछे ले जाता है। प्रत्येक पिछला संस्करण, तारीख और परिवर्तन के कारण के साथ।

4

साझा करें

प्रत्येक संस्करण का अपना लिंक होता है। कोई व्यक्ति एक विशिष्ट संस्करण को दोस्तों या प्राधिकरणों के साथ साझा करता है।

बिलकुल क्यों?

डिजिटल उत्पाद पास पर यूरोपीय संघ का विनियमन दशकों में उत्पाद पारदर्शिता की दिशा में सबसे बड़ा बदलाव है। यदि कोई मूल ग्रंथों को ध्यान से पढ़े, तो यह स्पष्ट रूप से उपभोक्ताओं को ध्यान में रखकर लिखा गया है। प्राधिकरण, रीसायकलर और मरम्मत की दुकानें इसमें शामिल हैं; लेकिन इसका प्राथमिक प्राप्तकर्ता वह व्यक्ति है जिसके हाथों में उत्पाद है।

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

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

हमने इस उपभोक्ता-सामना करने वाले प्लेटफ़ॉर्म को ओपन-सोर्स सॉफ़्टवेयर के रूप में बनाने का फैसला किया है ताकि यह किसी एक प्रदाता पर निर्भर न रहे।

घटनाओं का क्रम पत्थर पर लिखा हुआ है; घोषणापत्र हमारा है।

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

हालांकि, ऐप इस पर निर्भर नहीं है। यदि, मैनिफेस्ट के बजाय, आप इसे एक अकेला पासपोर्ट दिखाते हैं - जैसे कि ओपन स्टैंडर्ड्स के अनुसार हर प्रदाता द्वारा प्रकाशित किए गए - तो यह उस एक संस्करण को प्रदर्शित करता है, इसके हस्ताक्षर की जांच करता है (यदि इसमें कोई है), और बस टाइमलाइन को छोड़ देता है। हस्ताक्षर के बिना पास को त्रुटि नहीं माना जाता है, बल्कि इसे केवल अनुमोदन की मुहर के बिना प्रदर्शित किया जाता है। इस तरह , यही ऐप उन पासों को भी प्रदर्शित करता है जिन्हें कभी Transpareo के साथ पंजीकृत नहीं किया गया है।

बिना रुकावट प्रदाताओं को बदलना

डिजिटल उत्पाद पास पर ईयू विनियमन के लिए ऐसे उत्पाद पास की आवश्यकता है जो इंटरऑपरेबल हों और खुले मानकों पर आधारित हों - जो एकल प्रदाता से बंधे होने के बजाय सेवाओं और प्रणालियों के बीच हस्तांतरणीय हों। इसलिए सेवा प्रदाता से स्वतंत्रता कोई वैकल्पिक अतिरिक्त नहीं है, बल्कि यह आवश्यकता का हिस्सा है।

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

उत्पाद पासपोर्ट की जिम्मेदारी एक व्यावसायिक इकाई - निर्माता, एक आयातक या एक अधिकृत प्रतिनिधि - पर होती है। यदि वे Transpareo छोड़ने और किसी अन्य प्रदाता पर स्विच करने का निर्णय लेते हैं, तो डिस्प्ले स्थिर रहता है: वही ओपन-सोर्स रेंडरर बिना किसी बदलाव के, इतिहास सहित, पहले प्रकाशित संस्करणों को प्रदर्शित करना जारी रखता है, और वही ऐप बिल्कुल उसी तरह से उन ओपन स्टैंडर्ड्स का समर्थन करने वाले नए प्रदाता को प्रदर्शित करेगा।

डेटा इसके साथ ही चलता है; उपभोक्ताओं को कोई रुकावट नहीं दिखती, और किसी को माइग्रेशन का इंतज़ार नहीं करना पड़ता।

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

ब्राउज़र में परीक्षण किया गया, हमारे सर्वर पर नहीं।

हर उत्पाद पासपोर्ट के शीर्ष पर एक बैज दिखाई देता है: ‘Transpareo द्वारा सत्यापित’। यह एक सत्यापन प्रक्रिया का परिणाम दिखाता है जो हमारे सर्वर पर नहीं बल्कि आगंतुक के ब्राउज़र में होती है - लोड किए गए बाइट्स और जारीकर्ता की सार्वजनिक कुंजियों के आधार पर।

प्रत्येक DPP संस्करण पर दो स्वतंत्र पक्ष हस्ताक्षर करते हैं: जारीकर्ता और Transpareo। बैज हरा होने के लिए दोनों हस्ताक्षरों का सत्यापन योग्य होना आवश्यक है। ‘अपनी कुंजी स्वयं लाएँ’ (BYOK) के साथ, जारीकर्ता अपना स्वयं का हस्ताक्षर एंडपॉइंट संचालित करता है - Transpareo कभी भी निजी कुंजी को धारण नहीं करता है और केवल स्वतंत्र सह-हस्ताक्षर जोड़ता है। इसके परिणामस्वरूप एक ऐसा जारीकर्ता हस्ताक्षर बनता है जिसे Transpareo स्वयं उत्पन्न नहीं कर सकता।

एक समझौता किया हुआ सर्वर टिक की जालसाजी नहीं कर सकता, क्योंकि सत्यापन आगंतुक के अपने डिवाइस पर होता है।

यदि आप ठीक-ठीक जानना चाहते हैं कि क्या हो रहा है, तो बैज पर क्लिक करें। इसके पीछे, आप हस्ताक्षर श्रृंखला, हैश और श्रृंखलाबद्ध संस्करण इतिहास देखेंगे। यदि आप केवल जानकारी चाहते हैं, तो बस इसे अनदेखा करें और उत्पाद पासपोर्ट पढ़ना जारी रखें।

यह सत्यापन एक स्टैंडअलोन पेज के रूप में भी उपलब्ध है: डीपीपी सत्यापन पर, किसी भी उत्पाद पासपोर्ट का मैनिफेस्ट URL दर्ज करें और पासपोर्ट को स्वयं खोले बिना पूरा सत्यापन परिणाम देखें।

हम कोड जारी कर रहे हैं।

ट्रांसपेरियो टाइम मशीन GPL v3 ऑन गिटहब के तहत लाइसेंस प्राप्त है। किसी भी प्रकाशित संशोधन को भी GPL v3 के तहत लाइसेंस प्राप्त करना होगा, ताकि कोई भी आगे का विकास व्यापक समुदाय को लाभान्वित करे।

क्लोनिंग, फोकिंग, सेल्फ-होस्टिंग - सभी की अनुमति है।

GitHub पर README में यह बताया गया है कि ऐप को कैसे एकीकृत करें, चाहे वह वेबपेज पर कोड की एक ही लाइन के साथ हो, आपके अपने एप्लिकेशन के भीतर एक पैकेज के रूप में हो, या पूरी तरह से आपके द्वारा होस्ट किया गया हो। आपको केवल हस्ताक्षर सत्यापन के लिए बहन घटक (sister component) भी मिलेगा, जो डीपीपी सत्यापन पर लाइव है।

जो लोग ऐप का प्रभावी ढंग से उपयोग करते हैं

यह ऐप मुख्य रूप से उपभोक्ताओं के लिए बनाया गया है। हालाँकि, यह किसी भी ऐसे व्यक्ति के लिए काम करता है जो स्वतंत्र रूप से उत्पाद डेटा देखना या सत्यापित करना चाहता है।

  • अंतिम उपभोक्ता स्कैन, देख, ब्राउज़ और साझा कर सकते हैं। कोई लॉगिन नहीं, कोई ट्रैकर नहीं।
  • बाज़ार निगरानी निकाय और नियामक प्राधिकरण उत्पाद पासपोर्ट को ऐसे सॉफ्टवेयर में देख सकते हैं जिसका स्रोत कोड सार्वजनिक रूप से ऑडिट करने योग्य हो।
  • मरम्मत की दुकानें और रीसायकलर उत्पाद पर सीधे सामग्री संरचना और विघटन निर्देश देख सकते हैं।
  • ब्रांड और फोर्क ऑपरेटर अपने स्वयं के ब्रांड के अनुरूप बंडल को अनुकूलित कर सकते हैं - सीएसएस टोकन, कस्टम घटक, स्व-होस्टिंग।

अगर Transpareo अब मौजूद नहीं रहा तो क्या होगा?

ईयू यह आवश्यक करता है कि एक पंजीकृत उत्पाद पासपोर्ट कम से कम दस वर्षों तक उपलब्ध रहे - जारीकर्ता के दिवालियापन या परिसमापन के बाद भी। एक SaaS प्रदाता शायद ही इतना लंबे समय तक व्यवसाय में रहता है। इसलिए हम शुरुआत से ही प्लेटफ़ॉर्म को इस तरह से बना रहे हैं कि उत्पाद पासपोर्ट हमसे स्वतंत्र रूप से उपयोगी बने रहें:

  • हर हस्ताक्षरित DPP संस्करण को एक सार्वजनिक रूप से सुलभ रिपॉजिटरी में संग्रहीत किया जाता है। डेटा, प्रकाशित सार्वजनिक कुंजियों के साथ, बाद के सत्यापन के लिए पर्याप्त है।
  • जैसे ही उत्पाद पासपोर्ट EU रजिस्टर के साथ पंजीकृत हो जाते हैं, एक दूसरा, केवल-पठन (read-only) भंडारण सिस्टम प्रत्येक DPP संस्करण और इवेंट लॉग को अगले दस वर्षों के लिए मिरर करता है। कोई भी - हम भी नहीं - इन मिरर कॉपीज़ को पूर्वव्यापी रूप से बदल नहीं सकता।
  • समाप्ति के बाद, छोटे उत्पाद पासपोर्ट URL ट्रांसपेरियो प्लेटफ़ॉर्म पर एक रीडायरेक्ट के माध्यम से सुलभ रहते हैं।
  • ट्रांसपेरियो टाइम मशीन, संग्रहीत डेटा पर भी, बिना बदले चलती रहती है। बंडल रनटाइम पर हमें वापस कॉल नहीं करता; उसे केवल बाइट्स और कीज़ की आवश्यकता होती है।

यदि ट्रांसपेरियो प्लेटफ़ॉर्म कल गायब हो जाए, तो DPP संस्करण और ओपन-सोर्स रेंडरर बने रहेंगे।

तकनीक के बारे में जिज्ञासु लोगों के लिए

यहाँ बताया गया है कि पर्दे के पीछे क्या हो रहा है। यदि आपको विवरण जानने की आवश्यकता नहीं है, तो आप इस खंड को छोड़ सकते हैं - ऐप तब भी काम करेगा।

  • GS1 डिजिटल लिंक (ISO/IEC 18975): उत्पाद पासपोर्ट URL उत्पाद पहचानकर्ता को एक मानकीकृत प्रारूप में ले जाता है - रिज़ॉल्वर-तटस्थ और प्रदाताओं के बीच परस्पर विनिमय योग्य।
  • JSON कैनोनाइज़ेशन योजना (RFC 8785): एक निर्धारक सीरियलाइज़ेशन। यह सुनिश्चित करता है कि फ़ील्ड के क्रम या रिक्त स्थान (whitespace) की परवाह किए बिना हैश पुन: उत्पन्न करने योग्य रहे - कोई भी इसे स्वयं सत्यापित कर सकता है।
  • W3C डेटा अखंडता प्रमाण (eddsa-jcs-2022): मानकीकृत रूप (JCS) पर Ed25519 हस्ताक्षर।
  • /.well-known/dpp-keys/ (RFC 8615): जारीकर्ताओं की सार्वजनिक कुंजियाँ एक मानकीकृत पथ के अंतर्गत स्थित हैं - Transpareo से संपर्क करने की कोई आवश्यकता नहीं है; कोई भी सत्यापनकर्ता उन्हें स्वयं ढूंढ सकता है।

सब कुछ गिटहब पर README में प्रलेखित है - जिसमें फ्रंट-एंड आर्किटेक्चर (हमारा अपना रिएक्टिव कोर, कोई बाहरी फ्रेमवर्क नहीं) और स्व-होस्टिंग के लिए बिल्ड निर्देश शामिल हैं।

GitHub पर कोड देखें

आप सार्वजनिक रिपॉजिटरी में पूरा स्रोत कोड, सभी रिलीज़ और मुद्दे की चर्चा पा सकते हैं।