آپ کو کیا درکار ہے
| فیلڈ | یہ کیا کرتا ہے |
|---|---|
| Mint endpoint URL | آپ کے نوڈ کا عوامی ایڈریس-مِنٹنگ راستہ۔ ہم اسے ہر آرڈر کے لیے ایک تازہ ایڈریس حاصل کرنے کے لیے کال کرتے ہیں۔ خفیہ نہیں۔ |
| 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 ہمیں ایک دستخط شدہ پیغام بھیج کر بتاتا ہے کہ "یہ آرڈر ادا شدہ ہے"۔ یہ مشترکہ secret ہمیں تصدیق کرنے دیتا ہے کہ پیغام واقعی آپ کے watcher سے آیا، تاکہ کوئی بھی جعلی ادا شدہ ایونٹ نہ بنا سکے۔ یہ کچھ نہیں پڑھ سکتا اور کچھ منتقل نہیں کر سکتا۔
سیٹ اپ
- آپ کیا چلائیں گے
تین چیزیں، سب آپ کی اپنی مشین پر۔ یہاں کوئی چیز ہمیں نہیں دی جاتی سوائے عوامی mint URL اور مشترکہ secret کے۔
- ایک Monero نوڈ (monerod) اور ایک view-only والیٹ (monero-wallet-rpc)، نجی رکھے گئے۔
- ایک mint endpoint: ایک چھوٹا عوامی راستہ جو فی آرڈر ایک تازہ ایڈریس فراہم کرتا ہے۔
- ایک watcher: ایک چھوٹا ہمیشہ-آن پروگرام جو آپ کے والیٹ کو دیکھتا ہے اور جب ادائیگی پہنچتی ہے تو ہمیں بتاتا ہے۔
- ایک view-only والیٹ بنائیں
ایک view-only والیٹ آنے والی ادائیگیاں دیکھ سکتا ہے اور تازہ وصولی ایڈریس بنا سکتا ہے، مگر یہ خرچ نہیں کر سکتا۔ آپ اسے اپنے حقیقی والیٹ کے ایڈریس اور اس کی private view key سے بناتے ہیں، اور کچھ نہیں۔ یہی وہ چیز ہے جو آپ کے نوڈ کو ادائیگیوں کو منتقل کرنے کی طاقت رکھے بغیر انہیں شناخت کرنے دیتی ہے۔
monero-wallet-cli --generate-from-view-key ~/monero/view-onlyیہ آپ کے بنیادی ایڈریس اور آپ کی private view key کے لیے کہتا ہے۔ کبھی اپنا seed یا spend key درج نہ کریں، انہیں ایک الگ مشین پر رکھیں۔ یہ view-only اور view-only.keys لکھتا ہے؛ ایک پاس ورڈ سیٹ کریں اور اسے اگلے مرحلے کے لیے ایک فائل (wallet.password، والیٹ کے ساتھ) میں محفوظ کریں۔
- اپنا Monero نوڈ چلائیں
یہ daemon سنک کرتا ہے اور بلاک چین رکھتا ہے۔ اسے ایک سروس (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-loginکبھی wallet RPC کو عوامی انٹرنیٹ پر ظاہر نہ کریں؛ اسے localhost یا ایک نجی نیٹ ورک سے باندھیں۔ --disable-rpc-login صرف اِس لیے ٹھیک ہے کیونکہ یہ صرف-localhost ہے؛ اگر یہ کہیں اور سے قابلِ رسائی ہو تو --rpc-login استعمال کریں۔ صرف نیچے دیا گیا mint endpoint عوامی ہے۔
- Coin Moebius Monero پیکیج انسٹال کریں
یہ ایڈریس minter، webhook signer، اور watcher فراہم کرتا ہے، تو آپ تقریباً کوئی کوڈ نہیں لکھتے۔ تیز ترین راستہ نیچے دی گئی تیار-چلنے والی مثال ہے: فولڈر کاپی کریں، چار قدریں بھریں، اور اسے شروع کریں۔
npm install @aquarian-metals/coin-moebius-moneronpm پر پیکیج ↗تیار-چلنے والی مثال (نوڈ، mint endpoint، watcher) ↗
- اپنا webhook secret بنائیں
ایک مضبوط بے ترتیب قدر جو webhook پر دستخط اور تصدیق کرتی ہے۔ ایک بنانے کے دو طریقے، آپ کی مرضی: جب آپ ڈیش بورڈ میں فراہم کنندہ شامل کرتے ہیں تو Generate پر کلک کریں (یہ آپ کے براؤزر میں چلتا ہے، کبھی ہمارے سرورز پر نہیں)، یا نیچے دی گئی کمانڈ خود چلائیں۔ کسی بھی طرح، اپنے watcher اور ڈیش بورڈ دونوں میں ایک ہی قدر پیسٹ کریں۔
openssl rand -hex 32 - mint endpoint کھڑا کریں
ایک عوامی POST راستہ جو آپ کے والیٹ کا سامنا کرتا ہے۔ یہ پیکیج کے createMoneroCreator کو فی آرڈر ایک تازہ ایڈریس بنانے کے لیے استعمال کرتا ہے۔ یہ واحد چیز ہے جو آپ انٹرنیٹ پر ظاہر کرتے ہیں، اور اسے ظاہر کرنا محفوظ ہے: یہ ایک وصولی ایڈریس واپس کرتا ہے اور کوئی رقم منتقل نہیں کرتا۔
// 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 ↗
یہ بطورِ ڈیزائن catch-up ہے۔ اگر یہ کچھ دیر کے لیے آف لائن ہو، تو اگلا رن اُن ادائیگیوں کو دیکھتا ہے جو اس سے رہ گئیں اور پھر ہمیں بتاتا ہے۔ ایک گھریلو سرور ٹھیک ہے؛ آپ کو کامل اپ ٹائم کی ضرورت نہیں۔
- آپ کا webhook URL
watcher کے webhookUrl کو اپنے پروجیکٹ کے پتے پر سیٹ کریں۔ آپ کی پروجیکٹ id ڈیش بورڈ میں پروجیکٹ کی ترتیبات پر ہے۔
https://api.coinmoebius.com/webhook/monero/<your project id> - ڈیش بورڈ میں منسلک کریں
فراہم کنندہ شامل کریں، Be your own provider منتخب کریں، پھر Monero۔ اپنا mint endpoint URL اور webhook secret پیسٹ کریں۔ یہ سب کچھ ہے جو ہم محفوظ کرتے ہیں، اور دونوں میں سے کوئی قدر آپ کے والیٹ کو چھو نہیں سکتی۔
منسلک کرنے کے بعد
ایک خود-میزبان نوڈ کے لیے کوئی سینڈ باکس نہیں ہے، تو آپ کی پہلی چھوٹی حقیقی ادائیگی ہی ٹیسٹ ہے:
- ایک پروڈکٹ بنائیں اور buy button کو ایک ایسے صفحے پر رکھیں (ایک مقامی HTML فائل کام کرتی ہے) جو آپ کے پروجیکٹ کی طرف اشارہ کرتا ہو۔
- اپنے اپنے والیٹ سے Monero کی ایک چھوٹی رقم ادا کریں۔
- تصدیقات کا انتظار کریں۔ Monero کو مکمل طور پر تصدیق ہونے میں بطورِ ڈیزائن تقریباً بیس منٹ لگتے ہیں۔
- Transactions ٹیب کھولیں۔ جب نئی قطار succeeded تک پہنچے، تو آپ کا mint endpoint، watcher، اور secret سب سرے سے سرے تک کام کر رہے ہیں۔
مسائل کا حل
چیک آؤٹ فوراً ناکام ہو جاتا ہے۔
ہم آپ کے mint endpoint تک نہیں پہنچ سکے۔ تصدیق کریں کہ یہ ایک عوامی https URL ہے اور کہ آپ کا نوڈ آن لائن ہے۔ ڈیش بورڈ اسے محفوظ کرتے وقت ایک رسائی پذیری پیغام کے طور پر دکھاتا ہے۔
خریدار نے ادائیگی کر دی مگر آرڈر pending رہتا ہے۔
یا تو watcher نہیں چل رہا، یا اس کا secret مطابقت نہیں رکھتا۔ تصدیق کریں کہ watcher عمل چل رہا ہے اور کہ اس کا MONERO_HMAC_SECRET بالکل وہی قدر ہے جو آپ نے ڈیش بورڈ میں پیسٹ کی۔
ادائیگی کو ظاہر ہونے میں کچھ وقت لگا۔
یہ معمول ہے۔ Monero کئی بلاکس پر تصدیق کرتا ہے؛ watcher کامیابی کی اطلاع دینے سے پہلے دس تصدیقات (تقریباً بیس منٹ) کا انتظار کرتا ہے۔
جاننا اچھا ہے
hot box پر ایک view-only والیٹ رکھیں. watcher کو صرف آنے والی ادائیگیاں دیکھنے کی ضرورت ہے۔ اپنا spend key ایک الگ، آف لائن مشین پر رکھیں اور وہاں سے فنڈز sweep کریں۔
کبھی wallet RPC ظاہر نہ کریں. صرف mint endpoint عوامی ہے۔ wallet RPC کو ہر وقت localhost یا ایک نجی نیٹ ورک سے باندھے رکھیں۔
ڈاؤن ٹائم سستا ہے. watcher کسی تعطل کے بعد catch-up کرتا ہے اور اُن ادائیگیوں کی اطلاع دیتا ہے جو اس سے رہ گئیں۔ کچھ ضائع نہیں ہوتا۔
secret گھمانا. کسی بھی وقت ایک نیا secret بنائیں، پھر اسے watcher اور ڈیش بورڈ دونوں میں پیسٹ کریں۔
Monero circular economy
سوالات؟ Join our Discord