भूमिकाएँ
| भूमिका | हमेशा ऑनलाइन | क्या इस्तेमाल करता है | क्या करता है | अगर धोखा दे |
|---|---|---|---|---|
| उपयोगकर्ता (user) | नहीं | ब्राउज़र | ऑर्डर करता है, फ़ंड करता है, सामान मिलने की पुष्टि करता है, विवाद खोलता है | ― |
| प्रॉक्सी शॉपर (proxy shopper) | हाँ | Go नोड + shopper-bot | कोटेशन देता है, उपयोगकर्ता की ओर से ख़रीदता है, शिपिंग की जानकारी देता है; शुल्क कमाता है | एस्क्रो के फ़ैसले में अपना हिस्सा खोता है; ऑपरेटर उसे सूची से हटा देता है |
| एस्क्रो (escrow) | नहीं | ब्राउज़र या Go नोड | T1 से पहले विवादों पर फ़ैसला देता है | ऑपरेटर उसे सूची से हटा देता है; उनकी शर्तों के अनुसार उसका बॉन्ड ज़ब्त करके मुआवज़े में इस्तेमाल होता है |
| ऑपरेटर (operator) | नहीं | ब्राउज़र, Go नोड या psctl |
हर क्षेत्र के लिए भरोसेमंद शॉपर × एस्क्रो जोड़ियों की सूची पर हस्ताक्षर करता है; शिकायतें लेता है | कोऑर्डिनेटर उसका डेलिगेशन रद्द कर देता है |
| कोऑर्डिनेटर (coordinator) | नहीं | ब्राउज़र या psctl |
ऑपरेटरों को डेलिगेशन पर हस्ताक्षर करता है | उपयोगकर्ता उसे अपनी सेटिंग्स से हटा देते हैं (बर्ख़ास्तगी) |
उपयोगकर्ता
- वेब ऐप खोलें, एक मनेमोनिक (12 शब्द) बनाएँ, उसे लिख लें, और कुंजी को एन्क्रिप्ट करने वाला पासफ़्रेज़ चुनें।
- दुकान का URL, दुकान का क्षेत्र और सामान दर्ज करें।
- दिखाई गई शॉपर × एस्क्रो जोड़ियों में से एक चुनें और ऑर्डर दें।
- कोटेशन आता है। अगर उसका रेट आपके अपने स्रोतों से 3% से ज़्यादा अलग है तो आपको सावधानी का संदेश मिलता है; 10% से ऊपर हो तो कड़ी चेतावनी।
- स्वीकार करें और फ़ंड करें। पैसा मल्टीसिग और एस्क्रो के अग्रिम शुल्क में बँट जाता है।
- सामान पहुँचने पर “मिल गया” दबाएँ (राशि और प्राप्तकर्ता दिखाने वाली स्क्रीन के बाद आपका आंशिक हस्ताक्षर शॉपर को जाता है)।
- अगर सामान नहीं पहुँचता, तो विवाद खोलें। ऐप आपके लिए सबूत इकट्ठा करता है।
प्रॉक्सी शॉपर
- Go नोड को
role: shopperके साथ चलाएँ और shopper-bot (ब्राउज़र ऑटोमेशन टूल) जोड़ें। - भुगतान तरीके, मुद्राएँ, वे क्षेत्र जहाँ आप नकद दे सकते हैं, अपना शुल्क और दुकान-जोखिम नीति सेट करें।
- कार्ड की जानकारी सिर्फ़ shopper-bot के अंदर रहती है; वह कभी नोड या नेटवर्क को नहीं दी जाती।
- अगर उपयोगकर्ता कभी सामान मिलने की पुष्टि नहीं करता और T1 बीत जाता है, तो आप अकेले ही फ़ंड ले सकते हैं।
एस्क्रो
- सिर्फ़ उन्हीं ऑर्डरों के विवादों पर फ़ैसला देता है जिनमें उसका अग्रिम शुल्क दिया गया हो।
- आम तौर पर वह डिलीवरी का पता नहीं पढ़ सकता। विवाद में शॉपर (या उपयोगकर्ता) उसे डिक्रिप्शन की कुंजी देता है।
- फ़ैसला दोनों पक्षों तक एक हस्ताक्षरित ट्रांज़ैक्शन के रूप में पहुँचता है; उनमें से कोई एक काउंटर-साइन करे तो वह अंतिम हो जाता है।
ऑपरेटर
- अपने क्षेत्रों (एक या ज़्यादा), जोड़ियों की सूची, और अपने सुझाए रिले व चेन एंडपॉइंट पर हस्ताक्षर करता है।
- शिकायत मिलने पर दोषी को हटाकर सूची का नया वर्ज़न प्रकाशित करता है। बॉन्ड उन शर्तों के अनुसार चलता है जिन पर वह एस्क्रो से सहमत हुआ था।
कोऑर्डिनेटर
- ऑपरेटरों को डेलिगेशन जारी करता है। रद्द करने का मतलब है
revokedके साथ नया वर्ज़न प्रकाशित करना।
सूची में आना (रजिस्ट्री)
मेंटेनर की ट्रस्ट रजिस्ट्री GitHub रिपॉज़िटरी pad01g/proxy-shopping-registry है। मर्ज हुआ pull request ही मंज़ूरी है: हर मर्ज के बाद CI रजिस्ट्री की कुंजियों से नए डेलिगेशन और सूचियों पर हस्ताक्षर करता है और उन्हें प्रकाशित करता है (सार्वजनिक Nostr रिले पर और https://pad01g.github.io/proxy-shopping-registry/events.json पर)।
| आप बनना चाहते हैं | pull request में जोड़ें | मर्ज से क्या होता है |
|---|---|---|
| शॉपर | shoppers/<name>.json (pk, संपर्क, विवरण, नकद वाले क्षेत्र, भुगतान तरीके, जिन एस्क्रो के साथ आप काम करते हैं) |
रजिस्ट्री का ऑपरेटर आपकी शॉपर × एस्क्रो जोड़ियों को सूची में डालता है |
| एस्क्रो | escrows/<name>.json (pk, संपर्क, विवरण, SLA दिन) |
शॉपर आपका नाम ले सकते हैं; आपकी जोड़ियाँ दिखने लगती हैं |
| ऑपरेटर | operators/<name>.json (pk, संपर्क, विवरण, क्षेत्र) |
रजिस्ट्री का कोऑर्डिनेटर आपको डेलिगेट करता है; फिर आप अपनी सूचियों पर ख़ुद हस्ताक्षर करते हैं |
| कोऑर्डिनेटर | coordinators/<name>.json (pk, संपर्क, विवरण) |
आप उस कोऑर्डिनेटर डायरेक्टरी में दिखते हैं जो ऐप्स उपयोगकर्ताओं को दिखाते हैं (हर उपयोगकर्ता फिर भी ख़ुद चुनता है कि किस पर भरोसा करे) |
pk आपकी Nostr पब्लिक की है (64 hex अक्षर): वेब ऐप इसे Settings में दिखाता है, और psctl keys --mnemonic-file …
इसे प्रिंट करता है। किसी को हटाने के लिए एक pull request चाहिए जो उसकी फ़ाइल को कारण के साथ revoked/ में ले जाए। सटीक फ़ाइल फ़ॉर्मैट और कमांड
रजिस्ट्री के README में हैं।