Barındırılan her kripto ödeme işlemcisi, sizin için tek bir satoşi bile hareket ettirmeden önce aynı iki şeyi sorar: kim olduğunuz ve parayı transit hâldeyken elinde tutma izni. İkisi de işletmeniz hakkında başkasının verdiği kararlardır. BTCPay Server aynı işi — faturalar, döviz kurları, bir ödeme sayfası, webhook’lar, bir satış noktası — kendi çalıştırdığınız bir yazılım olarak yapar; hesap yok, yüzde yok, müşterinin cüzdanıyla sizinkinin arasına giren kimse yok.
Karşılığında operatör olan siz olursunuz. Bu rehber, bunun gerçekte neye mal olduğuyla ilgilidir: yığının hangi parçasının kaynakları yediği (BTCPay değildir), sistemin gerçekte hangi plana ihtiyaç duyduğu, bunu yaklaşık bir saatlik dikkat ve bir günlük bekleyişle nasıl devreye alacağınız ve — tüm bunun iyi bir fikir olup olmadığına karar veren kısım — çalışır hâle geldiğinde anahtarların nerede yaşadığı. Varsayılan olanlar Bitcoin ve Lightning’dir; Monero isteğe bağlı bir entegrasyondur ve öyle görünüyor ki üçü arasında en temiz anahtar hikâyesine sahip olandır. Altındaki makine bir e-posta adresiyle kiralanabilir ve tam da kabul etmeye başlamak üzere olduğunuz coin’lerle ödenebilir.
Kendi barındırılan bir işlemci gerçekte neyi değiştirir
Satış konuşması genellikle “ücret yok” şeklindedir, ki bu en az ilgi çekici kısımdır. Dört şey değişir ve bunlardan yalnızca biri parayla ilgilidir:
- Paranız transit hâldeyken kimse elinde tutmaz. Barındırılan bir işlemci, müşterinin ödemesini kendi cüzdanına alır ve ardından hesabınıza geçer. Tutmalar, incelemeler ve dondurmalar tam da bu aradaki boşlukta yaşanır. BTCPay hiçbir şeyi asla almaz: müşteri, sizin anahtarınızdan türetilmiş bir adrese öder ve coin’ler ilk onaydan itibaren sizindir.
- Kimse kim olduğunuzu sormaz. Bir işlemciye kaydolmak, sonunda bir banka olan bir kimlik sürecidir. Yazılım kurmak öyle değildir. Fark tam olarak budur ve “KYC olmadan kriptoyu nasıl kabul ederim” sorusunun cevabının her zaman “işlemciyi kendiniz çalıştırın” olmasının nedeni de budur.
- Maliyet artık sizinle birlikte büyümez. Bir yüzde sonsuza dek tahsil edilir ve başarıyla birlikte büyür. Bir VPS ile bir alan adı, iyi bir ayda da kötü bir ayda da aynı miktara mal olur.
- İşletim işini siz devralırsınız. Çalışma süresi, güncellemeler, yedekler ve bir müşteri “fatura hiç ödenmedi” dediğinde mesajı alan kişi olmak. Asıl bedel budur ve para birimiyle değil, dikkatle ödenir.
Elde etmediğiniz şey ise işlemcilerin gerçekten iyi olduğu tek şeydir: coin’leri sizin adınıza banka hesabı parasına çevirmek. BTCPay, kendisine ödenen şeyi, ödendiği coin cinsinden elinde tutar. Dönüştürme, fiat cinsinden faturalandırma, bir vergi dairesinin tanıdığı muhasebe dökümleri — hepsi ayrı sorunlardır ve bunları çözmenin çoğu yolu, tam olarak az önce ortadan kaldırdığınız kimliği belirlenmiş karşı tarafı yeniden içeri sokar. Bir şey inşa etmeden önce bu takasın hangi yarısını gerçekten istediğinizi netleştirin.
Gerçekte ne devreye girer ve hangi kısım pahalıdır
İsim, faydalı bir şekilde yanıltıcıdır. “BTCPay Server” tek bir program değildir; standart dağıtım, birlikte ayağa kalkan küçük bir konteyner filosudur ve hangisinin hangisi olduğunu bilmek, bunu doğru boyutlandırmak ile rastgele tahmin etmek arasındaki farktır:
- Bitcoin Core. Genesis’ten itibaren doğrulama yapan gerçek bir tam düğüm. Diski, ilk günün büyük kısmını ve belleğin neredeyse tamamını tüketen bileşen budur. Geri kalan her şey buna kıyasla bedavadır.
- NBXplorer. Core ile BTCPay arasındaki indeksleyici. Ona genişletilmiş genel anahtarlar verirsiniz; o da türetilmiş adresleri takip eder ve para geldiğinde BTCPay’e haber verir. Ayrıca budamayı önemseyen parça da budur; nedenini hata modları bölümü ele alacak.
- BTCPay Server’ın kendisi. Uygulama: mağazalar, faturalar, ödeme sayfası, satış noktası, webhook’lar, Greenfield API. Buna kıyasla mütevazı — birkaç yüz megabayt bellek.
- PostgreSQL. Faturalar, mağazalar, ayarlar, kullanıcılar, API anahtarları. Küçüktür ve yedeklerinizin gerçek amacı da budur.
- Otomatik sertifikalı nginx. Bir reverse proxy, artı ana bilgisayar adınız için bir sertifika çıkaran ve yenileyen bir yardımcı. 80 ve 443 portlarının internetten gerçekten erişilebilir olması gerekmesinin nedeni budur.
- İsteğe bağlı olarak bir Lightning düğümü (Core Lightning veya LND) ve bir Monero daemon’ı, yanında bir cüzdan RPC’siyle birlikte — her biri kendi zincirini ve kendi disk iştahını da beraberinde getirir.
Yani boyutlandırma sorusu asla “BTCPay ne kadar büyük olmalı” değildir. Soru “ne kadar zincir tutuyorum ve kaç zincir tutuyorum”dur. Bunu yanıtlayın, plan kendini seçsin.
Dürüstçe boyutlandırma ve hangi planın uyduğu
Proje, RAM için swap ile birlikte minimum olarak 2 GB, önerilen olarak da 4 GB belgeliyor; bu iki sayı arasındaki fark, teknik olarak tamamlanan bir kurulum ile müşteri gönderebileceğiniz bir kurulum arasındaki farktır. Bir uygulama çalışma zamanı, PostgreSQL ve senkronize olan bir bitcoind, 2 GB’ı paylaşınca iş biter — ama yavaşça, swap dosyasının yapmaması gereken işi yaparak.
Disk, ne kadar sert budadığınıza göre belirlenir ve dağıtım bunu, kurulum programına verdiğiniz bir parça olarak sunar. Aile kabaca opt-save-storage ile yaklaşık 100 GB blok dosyası, -s ile yaklaşık 50 GB, -xs ile yaklaşık 25 GB ve -xxs ile yaklaşık 5 GB çalıştırır. Sonuncusu, hayatta kalması gereken her şey için bir tuzaktır: o kadar az geçmiş tutar ki sıradan bakım bile başarısız olmaya başlar. Bir mağaza için makul aralık -s veya -xs’tir.
Tarifeden somut rakamlar, çünkü “duruma göre değişir” bir cevap değildir:
- Yalnızca Bitcoin, budanmış, tek mağaza — Scout, 2 vCPU / 4 GB / 70 GB NVMe, $9.00/mo. Dürüst taban ve çoğu okur için doğru cevap.
- Bitcoin ve Lightning — Runner, 3 vCPU / 6 GB / 100 GB, $14.00/mo. Bir Lightning daemon’ı disk konusunda hafiftir ama çevrimiçi kalma konusunda ısrarcıdır; buradaki pay, altındaki düğüm içindir.
- Bitcoin, Lightning ve Monero — Alpha, 6 vCPU / 12 GB / 200 GB, $28.00/mo. Budanmış bir Monero zinciri tek başına yaklaşık 85 GB’dır, yani iki zincir ve iki indeksleyiciyle 8 GB’ın yetersiz kalmaya başladığı nokta burasıdır. Hunter (4 vCPU / 8 GB / 140 GB, $19.00/mo), yalnızca Bitcoin sert budanmış kalırsa ve öyle kalmaya devam ederse uyar.
- Mağazanın arkasında budanmamış bir düğüm — farklı bir faturası olan farklı bir projedir. Tam düğüm rehberi bu rakamlara sahiptir ve bunlar Fenrir’den başlar.
CPU tam olarak bir kez önemlidir. İlk blok indirme sırasında imza doğrulaması paralelleşir, bu yüzden iki ila dört vCPU ilk senkronizasyonu günlerden yaklaşık bir güne indirir, ardından yeniden boşta kalır. Bant genişliği, sınırsız trafikli ve ay sonunda aşım faturası olmayan 1 Gbps’lik bir port üzerinden zincirin tamamının tek seferlik bir maliyetidir. Gecikme bir ödeme işlemcisi için önemsizdir, bu yüzden konumu milisaniyeler için değil hukuki yargı bölgesi için seçin — Amsterdam, Paris, Bükreş ve Sofya hepsi taban fiyattadır.
Başlamadan önce ihtiyacınız olanlar
Kısa bir liste ve üzerindeki bir madde teknik değildir.
- Zaten sunucuyu gösteren bir A kaydına sahip bir alan adı. Sertifika, o ana bilgisayar adına karşı HTTP üzerinden verilir; bu yüzden DNS’in, kurulum programı çalışırken değil, çalışmadan önce çözülmüş olması gerekir.
pay.example.comgibi bir alt alan adı olağan şekildir. - Dünyaya açık 80 ve 443 portları. Sonrasında üzerinde faydalı hiçbir şey hizmet vermese de 80 portu isteğe bağlı değildir; sertifika doğrulaması ona ihtiyaç duyar.
- Şablon kitaplığından Debian 13, on dakikalık sertleştirme geçişini çoktan yapmış bir makinede. Bunu önce yapın — bir yığın çalışmaya başladıktan sonra bunu nazikçe yapmak çok daha zordur.
- Zaten kontrol ettiğiniz bir cüzdan ve onun genişletilmiş genel anahtarı. Sparrow, Electrum veya bir donanım cüzdanı. Kurulumdan önce elinizin altında bulundurun; böylece sunucuya sizin için bir tane ürettirme cazibesine hiç kapılmazsınız.
- Sertifika otoritesi için bir e-posta adresi. Yalnızca sona erme uyarılarını alır, başka hiçbir şeyi almaz.
- Şimdiden verilmiş bir budama kararı. Daha sonra fikir değiştirmek, zinciri sıfırdan yeniden senkronize etmek anlamına gelir; bu da iki kez harcamaktan keyif almayacağınız bir gündür.
Adım adım
- Sunucuyu devreye alın, alan adını ona yönlendirin ve önce sertleştirin
Boyutlandırma bölümünün işaret ettiği planı sipariş edin, Debian 13’ü seçin ve konumu gecikmeye değil hukuki yargı bölgesine göre belirleyin. DNS kaydını hemen oluşturun, çünkü kurulum programı bir sertifika otoritesinden adın size ait olduğunu kanıtlamasını istediğinde bunun çoktan yayılmış olması gerekir:
pay.example.com. 300 IN A 198.51.100.10Ardından Debian sertleştirme rehberindeki geçiş: anahtarlı, root olmayan bir kullanıcı, kapalı parola kimlik doğrulaması, açık gözetimsiz güvenlik güncellemeleri ve varsayılan olarak reddeden bir güvenlik duvarı. Aşağıdaki her şey bunun zaten yapıldığını ve açık olan tek şeylerin 22, 80 ve 443 olduğunu varsayar.
apt update && apt full-upgrade -y apt install -y git curlDocker’ı elinizle kurmayın. Kurulum betiği, beklediği sürümü kurar ve yapılandırır; elle yapılan bir kurulum, ilk çalıştırmanın başarısız olmasının en yaygın nedenidir.
- Dağıtım deposunu klonlayın ve parçalarınızı seçin
Dağıtımın tamamı, shell betikleri ve compose parçalarından oluşan tek bir depodur. Onu root olarak, hatırlayacağınız bir yere klonlayın:
git clone https://github.com/btcpayserver/btcpayserver-docker cd btcpayserver-dockerYapılandırma, kurulum programı tarafından bir kez okunup sonra kalıcı hâle getirilen ortam değişkenleridir; yani aşağıdaki export’lar, yazacağınız yapılandırma dosyasının tamamıdır:
export BTCPAY_HOST="pay.example.com" export NBITCOIN_NETWORK="mainnet" export BTCPAYGEN_CRYPTO1="btc" export BTCPAYGEN_REVERSEPROXY="nginx" export BTCPAYGEN_LIGHTNING="clightning" export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-s" export LETSENCRYPT_EMAIL="you@example.com"BTCPAYGEN_LIGHTNING,clightning,lnd,phoenixdya da tamamen boş değerini alır — sıcak fonlar tutmaya hazır değilseniz boş bırakın, çünkü onu daha sonra eklemek aynı betiği bir kez daha çalıştırmaktan ibarettir. Sürümler arasında değişen kısım parça adlarıdır, bu yüzden yapıştırmadan önce projenin güncel dağıtım sayfasını okuyun. - Kurulum programını çalıştırın, ardından zincirin senkronize olmasına izin verin
Tek bir komut compose dosyasını oluşturur, imajları çeker ve her şeyi ayağa kaldırır:
. ./btcpay-setup.sh -iBirkaç dakika içinde biter ve arkasında çalışan bir web arayüzü bırakır. Arkasında çalışan bir mağaza bırakmaz, çünkü Bitcoin Core şu anda zinciri indirip doğrulamaktadır ve bu tamamlanana kadar hiçbir ödeme yapılamaz. Tahmin etmek yerine izleyin:
bitcoin-cli.sh -getinfo btcpay-down.sh # stop everything btcpay-up.sh # start everythingGüvenilecek rakam
verificationprogress’tür ve başlarda yanıltıcıdır: ilk yüzde doksanı hızlıdır, son onu ise zamanın büyük kısmını alır, çünkü son bloklar doludur. İki ila dört vCPU’lu NVMe üzerinde kabaca bir gün bekleyin. Çalışırken rahat bırakın — senkronizasyon ortasında yeniden başlatmak size yalnızca önbelleğe mal olur. - Yönetici hesabını oluşturun ve arkanızdan kapıyı kapatın
https://pay.example.comadresini açın ve kaydolun. Oluşturulan ilk hesap yönetici olur, bu da kurulum programının bitmesi ile sizin kaydolmanız arasındaki pencereyi bu sürecin gerçekten tehlikeli olan tek anı hâline getirir. Bunu hemen, zaten açık olan bir tarayıcı sekmesinden yapın.Ardından, sunucu ayarlarında, ikinci ziyaretçinin hesap oluşturamaması için açık kaydı kapatın ve kendi hesabınızda iki faktörlü kimlik doğrulamayı etkinleştirin. İkisi de iki tıklamadır ve birlikte, bir ödeme işlemcisi ile başkasının ödeme işlemcisi arasındaki farkı oluştururlar. Sonraki yöneticileri açıkça davet edin.
- Sunucunun harcayamayacağı bir cüzdan bağlayın
Bir mağaza oluşturun, ardından bir Bitcoin cüzdanı ekleyin. BTCPay sizin için yeni bir tane üretmeyi teklif eder; diğer yolu seçin — var olan bir cüzdanı bağlayın — ve kendi cüzdanınızdan dışa aktarılmış, hesap düzeyindeki genişletilmiş genel anahtarı yapıştırın:
zpub6r... # account-level extended PUBLIC key (xpub / ypub / zpub), never a prv # Sparrow: wallet settings. Electrum: Wallet -> Information -> Master Public KeyBu dizi tasarım gereği herkese açıktır. BTCPay’in sınırsız sayıda alış adresi türetmesine ve bunlara yapılan ödemeleri tanımasına izin verir; BTCPay’in ya da onu ele geçiren herhangi birinin bir satoşi bile hareket ettirmesine izin vermez. Özel anahtar olduğu yerde kalır, ideal olarak bu makineyle hiç tanışmamış bir donanım cüzdanında.
İçselleştirilmeye değer iki sonuç var. Mağaza için yıllardır kullandığınız bir cüzdanın anahtarı yerine taze bir hesap veya özel bir türetme yolu kullanın — hata modları bölümü, geçmiş ile budamanın neden bir arada yürümediğini açıklıyor. Ve o genişletilmiş anahtarı elinde bulunduran herkesin, aldığınız her ödemeyi görebileceğini unutmayın: bu bir anahtar değildir ama hiç de bir şey değil de değildir. Ona bir masanın üzerinde açık bırakılmış bir defter gibi davranın.
- Lightning ekleyin ve paranızın ne kadarının orada yaşayacağına karar verin
Kurulum sırasında
BTCPAYGEN_LIGHTNING’i ayarladıysanız düğüm zaten çalışır ve dahili olarak bağlıdır; mağaza ayarlarının yalnızca onu açmaya ihtiyacı vardır. Boş bıraktıysanız değişkeni export edin ve kurulum betiğini yeniden çalıştırın; bu betik idempotenttir ve zinciri yeniden senkronize etmez.export BTCPAYGEN_LIGHTNING="clightning" . ./btcpay-setup.sh -iŞimdi bir yapılandırmadan çok bir karar olan kısım. Kanal bakiyeleri, sunucunun harcayabileceği bir cüzdanda tutulur, çünkü bir ödeme kanalı zaten budur; yalnızca-izleme bir Lightning yoktur. Bu kutunun ele geçirilmesi size tam olarak kanal bakiyesine mal olur, başka hiçbir şeye değil; bu yüzden orada tutulacak doğru miktar, kaybetmesi sizi mahvetmek yerine sinirlendirecek miktardır. Gerçekten uyacağınız bir programla soğuk depolamaya süpürün.
İlk ayın ödemelerden çok likidite hakkında olmasını bekleyin. Bir satıcı düğümünün ihtiyaç duyduğu şey gelen (inbound) kapasitedir; bu da bir kanal açmanın size verdiğinin tam tersidir — bir kanal açmak kendi tarafınızı fonlar. Bir hizmetten gelen likidite satın almak, fonlarınızı karşı tarafa itmek için bir denizaltı takası çalıştırmak veya hacminiz oluştuğunda eşlerin size doğru kanal açmasını beklemek, üç dürüst seçenektir. Core Lightning ve LND’nin ikisi de çalışır; Core Lightning, budanmış bir düğümün yanında akıl yürütmesi daha kolay olanıdır, nedenini tam düğüm rehberi ele alıyor.
- Yalnızca görüntüleme cüzdanıyla Monero ekleyin
Monero, ikinci bir kripto yuvası olarak aynı şekilde eklenir; bu da geri kalan her şeyin yanına bir Monero daemon’ı ve bir cüzdan RPC’si getirir:
export BTCPAYGEN_CRYPTO2="xmr" . ./btcpay-setup.sh -iİkinci bir zincir için bütçe ayırın: budanmış hâliyle yaklaşık 85 GB ve NVMe üzerinde bir veya iki günde ölçülen bir ilk senkronizasyon. Monero node rehberi ikisi hakkında da ayrıntıya sahip.
Buradaki anahtar yönetimi, tüm kurulumun en iyi parçasıdır. Monero, gelen ödemeleri görme yeteneğini onları harcama yeteneğinden ayırır; bu yüzden ana adresinizden ve özel görüntüleme anahtarınızdan yalnızca-görüntüleme bir cüzdan üretirsiniz ve sunucunun elinde tuttuğu tek şey de budur:
monero-wallet-cli --generate-from-view-key store-viewStandart adresi, özel görüntüleme anahtarını ve bir parola ister. Ortaya çıkan cüzdan dosyalarını, dağıtımın sunduğu Monero cüzdan dizinine kopyalayın, mağazayı ona yönlendirin ve BTCPay her fatura için bir alt adres üretip ona yapılan ödemeleri izler. Harcama anahtarı, üretildiği makineden asla çıkmaz.
Ödeme sayfasını buna göre tasarlamanız gereken bir şey var: alınan çıktılar on blok, kabaca yirmi dakika boyunca kilitlidir; bu yüzden BTCPay bir ödemenin geldiğini, o harcanabilir olmadan çok önce görür. Dijital ürünler için bu bir politika tercihidir. Elden teslim edilen herhangi bir şey içinse bu bir sıradır.
- Önce müşteri gibi, sonra operatör gibi test edin
“Sayfa yükleniyor” bir test değildir. Önemsiz bir tutar için bir fatura oluşturun, onu gerçek bir cüzdandan ödeyin, ardından bir ödeme mükemmel olmadığında ne olacağına karar veren ayarları tek tek gözden geçirin:
- Onay politikası. Bir faturanın ödenmiş sayılması için kaç blok gerektiği. Sıfır onay bir kahve için makul, bir dizüstü bilgisayar için yanlıştır; bu, mağaza başına bir ayardır ve arayüzdeki en sonuç doğurucu rakamdır.
- Fatura süresi. Belirtilen kurun geçerliliğini yitirmesinden önce müşterinin ne kadar süresi olduğu. Varsayılan on beş dakikadır ve bir borsa çekiminden ödeme yapan biri için kısadır.
- Ödeme toleransı. Müşteriyi yarım ödenmiş bir faturayla ve bir destek talebiyle baş başa bırakmak yerine kabul edeceğiniz eksik ödeme yüzdesi. Küçük ve sıfırdan farklı olması, pragmatik ayardır.
- Eksik ödeme ve fazla ödeme. Bir kez, bilerek bir faturayı eksik ödeyin ve mağazanızın bu konuda ne yaptığını izleyin. Bunu kendi paranızla öğrenmek çok daha iyidir.
Sonra operatöre düşen yarı: bir webhook etkinleştirin ve mağazanızın onu gerçekten aldığını doğrulayın, herhangi bir şey programatik olarak fatura oluşturacaksa bir Greenfield API anahtarı üretin ve canlıya geçmeden önce bir tam yedek alın — böylece yapacağınız ilk geri yükleme bir acil durum değil bir prova olur.
Anahtarların nerede yaşadığı ve önemli olan tek hata
Kendi barındırılan bir işlemciyle yaşanan neredeyse her kötü sonuç, erkenden ve gelişigüzel verilmiş tek bir karara dayanır: sunucunun harcayabilecek bir şeyi elinde tutmasına izin vermek. Üç durumu açıkça ortaya koymakta fayda var, çünkü gerçekten birbirinden farklılar.
- Zincir üstü Bitcoin: her zaman yalnızca izleme (watch-only). BTCPay yalnızca genişletilmiş bir genel anahtar tutar, başka hiçbir şey tutmaz. Kutu ele geçirilirse saldırgan size ne ödendiğini öğrenir ve gelecekteki faturaların nereyi gösterdiğini değiştirebilir — bu gerçek bir saldırıdır ve herhangi bir olaydan sonra mağazanızın cüzdanını yeniden kontrol etme nedenidir — ama zaten alınmış bir coin’e dokunamaz.
- Lightning: tanımı gereği sıcak. Kanallar, sunucunun harcayabileceği coin’lerle fonlanır, çünkü bir kanal zaten budur. Bu, bilinçli istisnadır ve yukarıdaki bölüm bunu boyutlandırır.
- Monero: yapısal olarak yalnızca görüntüleme. Özel görüntüleme anahtarı, gelen her ödemeyi ortaya çıkarır ama hiçbirini yetkilendirmez. Bitcoin tarafında bunun bir eşdeğeri yoktur.
Bu modeli kasıtlı olarak bozan tek özellik Payjoin’dir. Sunucunuzun, müşterinin işlemine bir girdi katkısında bulunmasını sağlar; bu da zincir analizinin dayandığı ortak-girdi sezgisini anlamlı biçimde zayıflatır ve her iki taraf için de gerçek bir gizlilik kazancıdır — ama bir alıcının imzalayabilmesi gerekir, dolayısıyla BTCPay içinde sıcak bir cüzdana ihtiyaç duyar. Bu, bedava bir özellikten çok gerçek bir takastır. Bunu bilerek kabul edin ve Lightning cüzdanını fonladığınız gibi fonlayın: her şeyle değil, bir miktarla.
Kurulum sihirbazının mağaza cüzdanını üretmesine izin verdiyseniz, çünkü bu en hızlı yoldu: size gösterdiği seed’i yazıp saklayın, çevrimdışı bir cüzdanda doğrulayın, ardından yalnızca izlemeli bir kuruluma geçişi planlayın. İnternete açık bir sunucuda bulunmuş olan bir seed, üzerinde geri sayımı çoktan başlamış bir seed’dir.
Yedekler ve gerçekten yeri doldurulamaz olan parçalar
Durumu, yeniden oluşturmanın ne gerektireceğine göre sıralayın, çünkü cevaplar birbirinden çok farklıdır:
- Zincir. Bir yedekleme sorunu değildir. Kamuya açık veridir ve yavaşça, bedavaya yeniden senkronize olur. Onu asla yedeklemeyin.
- Veritabanı. Faturalar, mağazalar, ayarlar, kullanıcılar, API anahtarları. Gerçek yedek budur, küçüktür ve onu kaybetmek size her satışın muhasebe kaydına mal olur — parayı değil, evrak işini.
- Zincir üstü cüzdanınız. Zaten güvendedir, çünkü anahtar hiçbir zaman burada olmadı. Beşinci adımın karşılığı da budur.
- Lightning kanal durumu. Isıran şey budur. Statik bir kanal yedeği, toplam bir kayıptan sonra kanallarınızı zorla kapatarak içlerindeki fonları kurtarmanızı sağlar; kanalların kendisini geri getirmez ve bayatlamışsa değersizdir. Bir kanal her açıldığında veya kapandığında değişir, bu yüzden üç ayda bir hatırladığınız bir klasörden çok, otomatik ve uzak bir kopyaya ait olmalıdır.
- Monero yalnızca-görüntüleme cüzdanı. Hâlâ çevrimdışı tuttuğunuz adres ve görüntüleme anahtarından yeniden inşa edilebilir. Onları yedekleyin ve cüzdan dosyalarına bir önbellek gibi davranın.
Dağıtım, bunu doğru şekilde yapan yardımcı betikler içerir:
btcpay-backup.sh # stops the stack, dumps Postgres, tars the config, restarts
btcpay-restore.sh # puts one of those archives backO duraklama tam olarak meselenin kendisidir — çalışan bir veritabanının sıcak bir kopyası, ilginç bir şeye dönüşerek geri yüklenebilir. Makineden çıkan her şeyi şifreleyin ve her planla birlikte gelen haftalık snapshot’ın bir yedek değil bir kolaylık olduğunu unutmayın: bir snapshot, korumakta olduğu şeyle aynı yerde yaşar.
Hızlı başlangıçların atladığı hata modları
Birine kaç kez bir akşamına mal olduklarına göre kabaca sıralanmış:
- Sertifika hiç verilmez. On seferden dokuzunda A kaydı, kurulum programı çalıştıktan sonra oluşturulmuştur ya da 80 portu filtrelenmektedir. DNS’i düzeltin, adın kendi dizüstü bilgisayarınız olmayan bir yerden çözüldüğünü doğrulayın, ardından kurulum betiğini yeniden çalıştırın. Sertifika otoritesine karşı körlemesine yeniden denemek bir hız sınırlamasına ve bir hafta beklemeye yol açar, bu yüzden denemeler arasında bir şeyi değiştirin.
- Geçmişi olan içe aktarılmış bir genişletilmiş anahtar bakiye göstermez. Bu, budama tuzağıdır. İndeksleyici yeni ödemeleri yeni blokları izleyerek bulur, ama var olan bir cüzdanın geçmişini yeniden inşa etmek, budanmış bir düğümün sildiği blokları okumayı gerektirir. Mağaza için taze bir hesap kullanın, sorun ortadan kalkar; geçmişi içe aktarmanız gerekiyorsa budanmamış bir düğüme ve bir yeniden taramaya ihtiyacınız var.
- “Müşteri ödedi ama fatura hâlâ açık.” Genellikle gönderen cüzdanın ücretinden kaynaklanan eksik ödeme, ödeme onaylanmadan beklerken süresi dolan bir fatura veya seçtiğinizi hatırladığınızdan daha katı bir onay politikasıdır. Üçü de birer ayardır ve üçü de önce kendi paranızla test etmenizin nedenidir.
- Düğüm sessizce geride kalır. Takılıp kalmış bir bitcoind, şikâyet etmeden adresler dağıtmaya ve ödemeleri kaçırmaya devam eder. Blok yüksekliğinizi bir zamanlayıcıyla herhangi bir kamuya açık kaynakla karşılaştırın ve aradaki farkta uyarı verin; bunu bir müşteriden öğrenmemeniz gerekir.
- Yanlış anda gelen bir güncelleme.
btcpay-update.shterbiyelidir ama her şeyi yeniden başlatır. Onu bilerek çalıştırın, asla otomatik olarak değil ve asla bir satış sırasında değil. - Adres bir itibar kazanır. Kara listeye alınmış bir IPv4 üzerindeki bir ödeme sayfası, bazı kurumsal ağların ve posta filtrelerinin sessizce reddettiği bir ödeme sayfasıdır. Buradaki her plan, geçmişi olmayan özel bir adresle gelir ve alan adını herhangi bir yere basmadan önce bunu kontrol etmeye değer.
Hukuki yargı bölgesi, alan adı ve kendi barındırmanın gizlemediği şey
Yazılım bir karşı tarafı ortadan kaldırır. Yüzeyin geri kalanını ortadan kaldırmaz ve bu konuda dürüst olmak, bir özellik listesi daha eklemekten çok daha faydalıdır.
Zayıf nokta alan adıdır. Bir yerde kayıtlıdır, herkese açık şekilde çözülür ve herkesin baktığı ilk şeydir. Kendi adınıza, kendi ülkenizdeki bir kayıt şirketinde kayıtlı bir ana bilgisayar adında kendi barındırdığınız bir işlemci, parayı bir üçüncü tarafın elinden almış ama kimliği tam olarak olduğu yerde bırakmıştır. Bu, sattığınız şey için önemliyse, kayıt şirketi en az barındırıcı kadar düşünülmeyi hak eder.
Hukuki yargı bölgesi gerçek bir değişkendir. Makinenin nerede oturduğu, hangi mahkeme kararının ona ulaşacağını ve yolun üzerinde ne kadar sürecin durduğunu belirler. Bu bağışıklık değil, sürtünme ve mesafedir — offshore barındırma yazısının uzun uzadıya değindiği ve bir ağ yerine bir bayrak seçmeden önce okumaya değer bir nokta.
Hesap son bağlantıdır. Sunucuyu bir e-posta adresiyle kiralamak ve Monero ile ödemek, hiçbir kart ekstresinin ödeme sayfasını bir bankaya bağlamadığı anlamına gelir — bütün amacı buna ihtiyaç duymamak olan bir sistem kurarken gözden kaçırılması tuhaf bir şeydir. Buradaki her plan varsayılan olarak no-KYC’dir ve her konum, özel ters DNS’e sahip, özel temiz bir IPv4 ile gelir.
Ve sınır, ima edilmek yerine açıkça belirtilir. Düğümler, işlemciler ve mağazalar sıradan altyapıdır ve burada memnuniyetle karşılanır; kabul edilebilir kullanım politikası kısadır, kamuya açıktır ve altında bir taban vardır. Ödeme almak için bir lisansa ihtiyacınız olup olmadığı, sizin ne sattığınız ve nerede olduğunuzla ilgili bir sorudur, yazılımla ilgili değildir — ve bu, bir barındırma rehberi için değil, uzman biri için bir sorudur.
Sık sorulan sorular
BTCPay Server için hangi VPS planına ihtiyacım var?
Budanmış bir Bitcoin düğümü çalıştıran Scout (2 vCPU / 4 GB / 70 GB NVMe, $9.00/mo), çalışan bir mağaza için dürüst tabandır ve çoğu okurun satın alması gereken de budur. Lightning ekleyin, Runner (3 vCPU / 6 GB / 100 GB, $14.00/mo) daha konforlu olur; ikinci bir zincir olarak Monero ekleyin, Alpha (6 vCPU / 12 GB / 200 GB, $28.00/mo) artık bunu düşünmenizi gerektirmeyen boyuttur. Proje, minimumu olarak 2 GB belgeliyor; bu doğrudur ama hoş değildir.
BTCPay Server’ı tam bir Bitcoin düğümü olmadan çalıştırabilir miyim?
Evet, ama hangi güveni koruyacağınızı seçmiş olursunuz. BTCPay, zaten çalıştırdığınız harici bir düğüme yönlendirilebilir — bunun akla yatkın hâli budur ve önce tam düğüm rehberini takip etmiş olmak için iyi bir nedendir — ya da başkasının düğümüne, ki bu da mağazanızın ürettiği her adresi gören bir üçüncü tarafı yeniden içeri sokar. Birlikte gelen düğüm, kimsenin izlemediği tek yapılandırma olduğu için vardır. Budanmış bir düğüm hâlâ tam bir düğümdür: onu budayın ve kaynak itirazının çoğu ortadan kalkar.
BTCPay Server, Monero’yu destekliyor mu?
Evet, dağıtım sırasında etkinleştirdiğiniz isteğe bağlı bir entegrasyon olarak. Bir Monero daemon’ı ve bir cüzdan RPC’si ayağa kaldırır ve onu, ana adresinizden ve özel görüntüleme anahtarınızdan üretilmiş yalnızca görüntüleme bir cüzdanla bağlarsınız — böylece sunucu ödemeleri görebilir ama onları harcayamaz, ki bu Bitcoin tarafında bulunabilecek her şeyden daha iyi bir düzenlemedir. Maliyetler, senkronize edilip saklanması gereken ikinci bir zincir ve alınan çıktılar üzerindeki, fonlar harcanabilir olmadan önce kabaca yirmi dakika süren on bloklu kilittir.
Kendi ödeme işlemcimi çalıştırmak yasal mı?
Yazılımı çalıştırmak, sıradan bir yazılım işletme faaliyetidir. Çoğu yerde düzenlemeye tabi olan faaliyet, başkaları adına para tutmak veya taşımaktır ve kendi malınız için ödeme alan non-custodial bir işlemci tam olarak bunu yapmaz, çünkü hiçbir şey hiçbir zaman kimse adına tutulmaz. Ne sattığınız ve nerede yaşadığınız, vergi dahil, yükümlülüklerinizi belirlemeye devam eder ve kendi barındırmanız bunların hiçbirini değiştirmez. Bu bir barındırma rehberidir, hukuki tavsiye değildir: üçüncü taraflar için işlem yapmayı düşünüyorsanız farklı bir kategoride olduğunuzu varsayın ve uzman birine danışın.
Sunucu ölürse parayı kaybeder miyim?
Zincir üstü parayı kaybetmezsiniz, tabii beşinci adımı takip ettiyseniz — o coin’ler, anahtarı hiçbir zaman sunucuda olmamış bir cüzdanda oturur ve aynı genişletilmiş genel anahtar beslenen taze bir kurulum onları yeniden görür. Kaybettiğiniz şey kayıttır: veritabanı yedeğini tutmadıysanız faturalar, mağaza ayarları, API anahtarları. Lightning istisnadır, çünkü kanal fonları sunucudadır; toplam bir kayıptan sonra bunları kurtarmak güncel bir statik kanal yedeği gerektirir ve bu, kanallarınızı geri yüklemek yerine zorla kapatır.
BTCPay Server için bir alan adına ihtiyacım var mı?
Pratikte evet. Dağıtım bir ana bilgisayar adı için sertifika verir, tarayıcılar ve cüzdanlar bir ödeme sayfasında HTTPS bekler ve müşterilerden adres çubuğunda ne varsa oraya para göndermeleri istenir. Zaten sahip olduğunuz bir şeyin alt alan adı fazlasıyla yeterlidir. Sorun kamuya açık bir alan adının kendisiyse BTCPay bunun yerine bir onion servisi üzerinden erişilebilir — bu da meşru bir yapılandırmadır ve kaç müşterinin sayfaya ulaşabileceğini de değiştirir.
Kendi barındırmak ayda gerçekte ne kadara mal olur?
Yazılım ücretsizdir ve AGPL lisanslıdır, bu yüzden fatura VPS, alan adı ve zamanınızdır. Scout için ayda $9.00 ve bir isim için yılda birkaç dolarla, herhangi bir yüzde tabanlı işlemciye karşı hesap çok küçük bir hacimde bile yakın olmaktan çıkar — ve bir yüzdenin aksine, başarılı olduğunuzda büyümez. Dürüst maliyet üçüncü kalemdir: artık düğümün senkronizasyonu durduğunda bunu fark eden kişi sizsinizdir.

