आपको क्या चाहिए
| फ़ील्ड | यह क्या करता है |
|---|---|
| Mint endpoint URL | आपके नोड का सार्वजनिक address-minting रूट। हर ऑर्डर के लिए एक नया पता पाने के लिए हम इसे कॉल करते हैं। गुप्त नहीं। |
| Webhook secret | एक साझा secret जिससे आपका watcher साइन करता है और हम सत्यापित करते हैं। यह आपके वॉलेट को कभी नहीं छू सकता। गुप्त। |
यह विकल्प उन लोगों के लिए है जो अपना खुद का नोड चलाना चाहते हैं। आप अपनी खुद की मशीन पर एक Monero नोड, एक view-only वॉलेट, और एक छोटा हमेशा-चालू watcher भी चलाते हैं। यह गाइड उन सबसे होकर गुज़रती है। अगर आप कुछ भी चलाना न चाहें, तो इसके बजाय एक होस्टेड क्रिप्टो सेवा कनेक्ट करें।
Money flow
Money
Buyer
Taps your Coin Moebius Buy Button and pays from their own wallet.
Your product page
Your Coin Moebius Buy Button asks Coin Moebius to start a checkout.
Coin Moebius Messages only
Gets a fresh address from your server and shows it to the buyer.
Blockchain
Carries the coins from the buyer straight to you.
Your wallet
Receives the coins.
Your server
Sees the payment land in your wallet and tells Coin Moebius the sale is paid. Your keys and balance never leave your server.
Coin Moebius dashboardSale shows as paid.
No buyer data
Card numbers never reach us. Buyer names, addresses and contact details are stripped before a sale is saved.
No cut of your sales
You pay a flat plan price. We never take a percentage of what you sell.
हम हर फ़ील्ड क्यों मांगते हैं
Mint endpoint URL
जब कोई खरीदार Buy क्लिक करता है, तो हम आपके नोड से उन्हें दिखाने के लिए एक नया पता मांगते हैं। वह अनुरोध इस एक सार्वजनिक रूट पर जाता है। यह एक पता और कुछ नहीं लौटाता; आपका वॉलेट इसके पीछे निजी रहता है।
Webhook secret
आपका watcher हमें एक साइन किया संदेश भेजकर बताता है कि "यह ऑर्डर paid है"। यह साझा secret हमें पुष्टि करने देता है कि संदेश सचमुच आपके watcher से आया, ताकि कोई paid इवेंट नकली न बना सके। यह कुछ भी पढ़ नहीं सकता और कुछ भी हिला नहीं सकता।
सेट करें
- आप क्या चलाएंगे
तीन चीज़ें, सभी आपकी अपनी मशीन पर। यहां कुछ भी हमें नहीं दिया जाता सिवाय सार्वजनिक mint URL और साझा secret के।
- एक Monero नोड (monerod) और एक view-only वॉलेट (monero-wallet-rpc), निजी रखे गए।
- एक mint endpoint: एक छोटा सार्वजनिक रूट जो हर ऑर्डर के लिए एक नया पता देता है।
- एक watcher: एक छोटा हमेशा-चालू प्रोग्राम जो आपके वॉलेट को देखता है और हमें बताता है कि कब कोई भुगतान आता है।
- एक view-only वॉलेट बनाएं
एक view-only वॉलेट आते हुए भुगतान देख सकता है और नए receive पते बना सकता है, पर खर्च नहीं कर सकता। आप इसे अपने असली वॉलेट के पते और इसकी private view key से बनाते हैं, और कुछ नहीं। यही वह चीज़ है जो आपके नोड को भुगतान का पता लगाने देती है बिना उन्हें हिलाने की शक्ति कभी रखे।
monero-wallet-cli --generate-from-view-key ~/monero/view-onlyयह आपके primary address और आपकी private view key के लिए पूछता है। अपना seed या spend key कभी दर्ज न करें, उन्हें एक अलग मशीन पर रखें। यह view-only और view-only.keys लिखता है; एक पासवर्ड सेट करें और अगले चरण के लिए इसे एक फ़ाइल (wallet.password, वॉलेट के बगल में) में सहेजें।
- अपना Monero नोड चलाएं
daemon सिंक करता है और blockchain रखता है। इसे एक सेवा (systemd या Docker) के रूप में चलाएं ताकि यह खुद-ब-खुद पुनः शुरू हो। इसका RPC 127.0.0.1:18081 पर सुनता है।
monerod --data-dir ~/.bitmonero --prune-blockchain --restricted-rpcएक pruned नोड डिस्क पदचिह्न छोटा रखता है और फिर भी हर आते हुए भुगतान को देखता है। नोड नेटवर्क तक पहुंचता है पर कुछ भी सार्वजनिक उजागर नहीं करता।
- wallet RPC चलाएं
एक दूसरी सेवा जो view-only वॉलेट खोलती है और mint endpoint तथा watcher का जवाब देती है। इसे अपने नोड पर इंगित करें और इसे localhost से बांधें। इसे भी एक सेवा के रूप में चलाएं।
monero-wallet-rpc \ --wallet-file ~/monero/view-only \ --password-file ~/monero/wallet.password \ --rpc-bind-ip 127.0.0.1 --rpc-bind-port 18083 \ --daemon-address 127.0.0.1:18081 --trusted-daemon \ --disable-rpc-loginwallet RPC को कभी सार्वजनिक इंटरनेट पर उजागर न करें; इसे localhost या एक निजी नेटवर्क से बांधें। --disable-rpc-login केवल इसलिए ठीक है क्योंकि यह केवल-localhost है; अगर यह कहीं और से पहुंच योग्य है तो --rpc-login इस्तेमाल करें। केवल नीचे का mint endpoint सार्वजनिक है।
- Coin Moebius Monero पैकेज इंस्टॉल करें
यह address minter, webhook signer, और watcher देता है, इसलिए आप लगभग कोई कोड नहीं लिखते। सबसे तेज़ रास्ता नीचे का तैयार-चलने-योग्य उदाहरण है: फ़ोल्डर कॉपी करें, चार मान भरें, और इसे शुरू करें।
npm install @aquarian-metals/coin-moebius-moneronpm पर पैकेज ↗तैयार-चलने-योग्य उदाहरण (नोड, mint endpoint, watcher) ↗
- अपना webhook secret बनाएं
एक मज़बूत यादृच्छिक मान जो वेबहुक को साइन और सत्यापित करता है। इसे बनाने के दो तरीके, आपकी पसंद: डैशबोर्ड में प्रोवाइडर जोड़ते समय Generate क्लिक करें (यह आपके ब्राउज़र में चलता है, हमारे सर्वर पर कभी नहीं), या नीचे की कमांड खुद चलाएं। किसी भी तरह, वही मान अपने watcher और डैशबोर्ड दोनों में पेस्ट करें।
openssl rand -hex 32 - mint endpoint खड़ा करें
एक सार्वजनिक POST रूट जो आपके वॉलेट के सामने रहता है। यह हर ऑर्डर के लिए एक नया पता बनाने के लिए पैकेज के createMoneroCreator का उपयोग करता है। यही एकमात्र चीज़ है जिसे आप इंटरनेट पर उजागर करते हैं, और इसे उजागर करना सुरक्षित है: यह एक receive पता लौटाता है और कोई पैसा नहीं हिलाता।
// POST /coin-moebius/monero/mint import { createMoneroCreator } from '@aquarian-metals/coin-moebius-monero/server'; const mint = createMoneroCreator({ walletRpcUrl: 'http://127.0.0.1:18083/json_rpc', store: myStore, xmrPerUnit: async (cur) => (cur === 'XMR' ? 1 : await myPriceFeed(cur)), }); // return mint({ productId, amount, currency, metadata }) as JSONआप चुनते हैं कि कीमतें कहां से आती हैं। Coin Moebius कभी किसी price oracle को कॉल नहीं करता।
- watcher चलाएं और इसे हम पर इंगित करें
watcher वह हमेशा-चालू प्रोग्राम है जो हर कुछ सेकंड में आपके वॉलेट को जांचता है और जब कोई भुगतान पुष्ट होता है तो हमें एक संदेश साइन करता है। इसके webhook URL को अपने प्रोजेक्ट पते (नीचे) पर और इसके secret को आपके बनाए मान पर सेट करें। इसे अपने वॉलेट के बगल में, systemd या Docker के तहत चलाएं।
import { createMoneroIndexer } from '@aquarian-metals/coin-moebius-monero/server'; const watcher = createMoneroIndexer({ walletRpcUrl: 'http://127.0.0.1:18083/json_rpc', store: myStore, webhookUrl: process.env.MONERO_WEBHOOK_URL, // your Coin Moebius URL, below hmacSecret: process.env.MONERO_HMAC_SECRET, // the secret you generated requiredConfirmations: 10, }); watcher.start();Watcher recipe: indexer.js + systemd unit + docker-compose ↗
यह डिज़ाइन से ही पकड़-में-आने वाला है। अगर यह कुछ समय के लिए ऑफ़लाइन रहता है, तो अगला रन उन भुगतानों को देख लेता है जो छूट गए और तब हमें बता देता है। एक घरेलू सर्वर ठीक है; आपको परिपूर्ण अपटाइम की ज़रूरत नहीं।
- आपका webhook URL
watcher के webhookUrl को अपने प्रोजेक्ट पते पर सेट करें। आपकी प्रोजेक्ट id डैशबोर्ड में प्रोजेक्ट सेटिंग पर है।
https://api.coinmoebius.com/webhook/monero/<your project id> - डैशबोर्ड में कनेक्ट करें
Add provider, Be your own provider चुनें, फिर Monero। अपना mint endpoint URL और webhook secret पेस्ट करें। हम बस इतना ही संग्रहित करते हैं, और इनमें से कोई भी मान आपके वॉलेट को छू नहीं सकता।
कनेक्ट करने के बाद
एक खुद-होस्ट किए नोड के लिए कोई sandbox नहीं है, इसलिए आपका पहला छोटा असली भुगतान ही टेस्ट है:
- एक उत्पाद बनाएं और अपने प्रोजेक्ट पर इंगित किसी पेज पर बाय बटन रखें (एक स्थानीय HTML फ़ाइल काम करती है)।
- अपने खुद के वॉलेट से थोड़ी सी Monero का भुगतान करें।
- पुष्टियों का इंतज़ार करें। Monero को पूरी तरह पुष्ट होने में करीब बीस मिनट लगते हैं, डिज़ाइन से ही।
- Transactions टैब खोलें। जब नई पंक्ति succeeded तक पहुंचती है, तो आपका mint endpoint, watcher, और secret सभी शुरू से अंत तक काम कर रहे हैं।
समस्या निवारण
चेकआउट तुरंत विफल हो जाता है।
हम आपके mint endpoint तक नहीं पहुंच सके। पुष्टि करें कि यह एक सार्वजनिक https URL है और कि आपका नोड ऑनलाइन है। डैशबोर्ड सेव करते समय इसे एक reachability संदेश के रूप में दिखाता है।
खरीदार ने भुगतान किया पर ऑर्डर pending रहता है।
या तो watcher नहीं चल रहा, या इसका secret मेल नहीं खाता। पुष्टि करें कि watcher प्रोसेस चालू है और कि इसका MONERO_HMAC_SECRET ठीक वही मान है जो आपने डैशबोर्ड में पेस्ट किया।
भुगतान दिखने में थोड़ा समय लगा।
यह सामान्य है। Monero कई blocks में पुष्ट होता है; watcher सफलता रिपोर्ट करने से पहले दस पुष्टियों (करीब बीस मिनट) का इंतज़ार करता है।
जानना अच्छा है
hot box पर एक view-only वॉलेट रखें. watcher को केवल आते हुए भुगतान देखने की ज़रूरत है। अपनी spend key एक अलग, ऑफ़लाइन मशीन पर रखें और वहीं से फंड स्वीप करें।
wallet RPC कभी उजागर न करें. केवल mint endpoint सार्वजनिक है। wallet RPC को हर समय localhost या एक निजी नेटवर्क से बांधें।
डाउनटाइम सस्ता है. watcher किसी आउटेज के बाद पकड़ में आ जाता है और जो भुगतान छूट गए उन्हें रिपोर्ट करता है। कुछ भी नहीं खोता।
secret घुमाना. कभी भी एक नया secret बनाएं, फिर इसे watcher और डैशबोर्ड दोनों में पेस्ट करें।
Monero circular economy
सवाल? Join our Discord