Czego potrzebujesz
| Pole | Do czego służy |
|---|---|
| Mint endpoint URL | Publiczna trasa Twojego węzła do generowania adresów. Wywołujemy ją, by uzyskać świeży adres dla każdego zamówienia. Nie jest tajny. |
| Webhook secret | Współdzielony sekret, którym Twój watcher podpisuje, a my weryfikujemy. Nigdy nie może dotknąć Twojego portfela. Tajny. |
Ta opcja jest dla osób, które chcą prowadzić własny węzeł. Uruchamiasz też węzeł Monero, portfel tylko do podglądu oraz niewielki, stale działający watcher na własnej maszynie. Ten przewodnik prowadzi przez to wszystko. Jeśli wolisz niczego nie uruchamiać, podłącz zamiast tego hostowaną usługę krypto.
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.
Where our bill comes in
The payment goes to you. Our bill comes separately. On Flex, that bill is based on the sales you’ve made, at 2% + 20¢ each. Pro starts at $24 a month with 500 sales included, then a few cents for each extra sale. Business is $99 a month for unlimited sales. Your provider’s fees are separate from ours.
Dlaczego prosimy o każde pole
Mint endpoint URL
Gdy kupujący kliknie Buy, prosimy Twój węzeł o świeży adres, by mu go pokazać. To żądanie idzie do tej jednej publicznej trasy. Zwraca adres i nic więcej; Twój portfel pozostaje prywatny za nią.
Webhook secret
Twój watcher mówi nam "to zamówienie jest opłacone", wysyłając podpisaną wiadomość. Ten współdzielony sekret pozwala nam potwierdzić, że wiadomość naprawdę pochodzi od Twojego watchera, by nikt nie mógł sfałszować zdarzenia opłacenia. Nie może niczego odczytać ani niczego przenieść.
Konfiguracja
- Co będziesz uruchamiać
Trzy rzeczy, wszystkie na Twojej własnej maszynie. Nic tutaj nie jest nam przekazywane poza publicznym mint URL i współdzielonym sekretem.
- Węzeł Monero (monerod) i portfel tylko do podglądu (monero-wallet-rpc), trzymane prywatnie.
- Mint endpoint: jedna mała publiczna trasa, która wydaje świeży adres na zamówienie.
- Watcher: malutki, stale działający program, który obserwuje Twój portfel i mówi nam, gdy nadejdzie płatność.
- Utwórz portfel tylko do podglądu
Portfel tylko do podglądu widzi przychodzące płatności i generuje świeże adresy odbiorcze, ale nie może wydawać. Budujesz go z adresu swojego prawdziwego portfela i jego prywatnego klucza podglądu, niczego więcej. To właśnie pozwala Twojemu węzłowi wykrywać płatności, nie posiadając nigdy mocy, by je przenieść.
monero-wallet-cli --generate-from-view-key ~/monero/view-onlyProsi o Twój adres główny i prywatny klucz podglądu. Nigdy nie wpisuj swojego seeda ani klucza wydatkowego, trzymaj je na osobnej maszynie. Zapisuje view-only oraz view-only.keys; ustaw hasło i zapisz je w pliku (wallet.password, obok portfela) na następny krok.
- Uruchom swój węzeł Monero
Demon synchronizuje i przechowuje blockchain. Uruchom go jako usługę (systemd lub Docker), by sam się restartował. Jego RPC nasłuchuje na 127.0.0.1:18081.
monerod --data-dir ~/.bitmonero --prune-blockchain --restricted-rpcWęzeł przycięty utrzymuje mały ślad na dysku i wciąż widzi każdą przychodzącą płatność. Węzeł sięga do sieci, ale niczego nie udostępnia publicznie.
- Uruchom wallet RPC
Druga usługa, która otwiera portfel tylko do podglądu i odpowiada mint endpointowi oraz watcherowi. Skieruj ją na swój węzeł i przypisz do localhost. Uruchom ją również jako usługę.
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-loginNigdy nie wystawiaj wallet RPC do publicznego internetu; przypisz je do localhost lub sieci prywatnej. --disable-rpc-login jest w porządku tylko dlatego, że dotyczy wyłącznie localhost; użyj --rpc-login, jeśli jest osiągalne skądkolwiek indziej. Publiczny jest tylko mint endpoint poniżej.
- Zainstaluj pakiet Coin Moebius Monero
Dostarcza generator adresów, podpisywanie webhooków i watcher, więc piszesz niemal zero kodu. Najszybsza droga to gotowy do uruchomienia przykład poniżej: skopiuj folder, wpisz cztery wartości i uruchom go.
npm install @aquarian-metals/coin-moebius-moneroPakiet na npm ↗Gotowy do uruchomienia przykład (węzeł, mint endpoint, watcher) ↗
- Wygeneruj swój webhook secret
Mocna losowa wartość, która podpisuje i weryfikuje webhook. Dwa sposoby na jej utworzenie, do wyboru: kliknij Generate, gdy dodajesz dostawcę w panelu (działa w Twojej przeglądarce, nigdy na naszych serwerach), albo sam uruchom komendę poniżej. Tak czy inaczej wklej tę samą wartość zarówno w swoim watcherze, jak i w panelu.
openssl rand -hex 32 - Postaw mint endpoint
Jedna publiczna trasa POST, która stoi przed Twoim portfelem. Używa createMoneroCreator z pakietu, by wygenerować świeży adres na zamówienie. To jedyna rzecz, którą wystawiasz do internetu, i można ją bezpiecznie wystawić: zwraca adres odbiorczy i nie przenosi żadnych pieniędzy.
// 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 JSONTy wybierasz, skąd biorą się ceny. Coin Moebius nigdy nie wywołuje wyroczni cenowej.
- Uruchom watcher i skieruj go na nas
Watcher to stale działający program, który co kilka sekund sprawdza Twój portfel i podpisuje nam wiadomość, gdy płatność się potwierdzi. Ustaw jego webhook URL na adres Twojego projektu (poniżej), a jego sekret na wartość, którą wygenerowałeś. Uruchom go obok swojego portfela, pod systemd lub 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, // Twój adres Coin Moebius, poniżej hmacSecret: process.env.MONERO_HMAC_SECRET, // sekret, który wygenerowałeś requiredConfirmations: 10, }); watcher.start();Przepis na watcher: indexer.js + jednostka systemd + docker-compose ↗
Z założenia nadrabia zaległości. Jeśli będzie offline przez jakiś czas, kolejny przebieg zobaczy płatności, które przegapił, i wtedy nam o nich powie. Domowy serwer jest w porządku; nie potrzebujesz idealnej dostępności.
- Twój webhook URL
Ustaw webhookUrl watchera na adres Twojego projektu. Identyfikator Twojego projektu znajduje się w ustawieniach projektu w panelu.
https://api.coinmoebius.com/webhook/monero/<your project id> - Podłącz w panelu
Add provider, wybierz Be your own provider, a następnie Monero. Wklej swój mint endpoint URL i webhook secret. To wszystko, co przechowujemy, i żadna z tych wartości nie może dotknąć Twojego portfela.
Po podłączeniu
Nie ma sandboxa dla węzła hostowanego samodzielnie, więc Twoja pierwsza mała prawdziwa płatność jest testem:
- Utwórz produkt i umieść przycisk kupna na stronie (wystarczy lokalny plik HTML) wskazującej na Twój projekt.
- Zapłać małą kwotę Monero z własnego portfela.
- Poczekaj na potwierdzenia. Monero z założenia potrzebuje około dwudziestu minut, by w pełni się potwierdzić.
- Otwórz zakładkę Transactions. Gdy nowy wiersz osiągnie succeeded, Twój mint endpoint, watcher i sekret działają od początku do końca.
Rozwiązywanie problemów
Checkout od razu się nie udaje.
Nie mogliśmy dotrzeć do Twojego mint endpointu. Potwierdź, że to publiczny adres https i że Twój węzeł jest online. Panel pokazuje to jako komunikat o osiągalności przy zapisie.
Kupujący zapłacił, ale zamówienie pozostaje pending.
Albo watcher nie działa, albo jego sekret się nie zgadza. Potwierdź, że proces watchera jest uruchomiony i że jego MONERO_HMAC_SECRET to dokładnie ta wartość, którą wkleiłeś do panelu.
Płatność trochę zajęła, zanim się pokazała.
To normalne. Monero potwierdza się przez kilka bloków; watcher czeka na dziesięć potwierdzeń (około dwudziestu minut), zanim zgłosi powodzenie.
Warto wiedzieć
Trzymaj portfel tylko do podglądu na maszynie online. Watcher musi jedynie widzieć przychodzące płatności. Trzymaj klucz wydatkowy na osobnej maszynie offline i stamtąd przelewaj środki.
Nigdy nie wystawiaj wallet RPC. Publiczny jest tylko mint endpoint. Przez cały czas przypisuj wallet RPC do localhost lub sieci prywatnej.
Przestoje są tanie. Watcher nadrabia zaległości po awarii i zgłasza płatności, które przegapił. Nic nie ginie.
Rotacja sekretu. Wygeneruj nowy sekret kiedy chcesz, a potem wklej go zarówno do watchera, jak i do panelu.
Monero circular economy
Pytania? Join our Discord