BTCPay Server to wolne oprogramowanie do przyjmowania płatności w bitcoinie, udostępniane na licencji MIT. Możesz uruchomić je na własnym serwerze albo korzystać z cudzej instalacji. Tworzy żądania zapłaty, przypisuje do nich wpływy i pomaga prowadzić ewidencję. Sam projekt nie jest kontem, któremu trzeba powierzyć pieniądze, ani pośrednikiem rozstrzygającym spory o towar.
Wyobraź sobie księgarnię internetową. Klient wybiera bitcoin, a BTCPay Server tworzy invoice, czyli żądanie zapłaty konkretnej kwoty. Strona płatności pokazuje adres lub żądanie Lightning zgodnie z ustawieniami sklepu. Program obserwuje wpływ i przekazuje połączonemu sklepowi zmiany stanu. Nie trzeba ręcznie ustalać, do którego zakupu należy każda płatność. Podobnie można obsługiwać kasę lub zbierać darowizny. Otwarty kod pozwala sprawdzać i zmieniać program, ale sam nie dowodzi bezpieczeństwa danej instalacji. [1]
W przypadku istniejącego portfela serwer może otrzymać rozszerzony klucz publiczny, z którego wyprowadza adresy odbiorcze. Klucze prywatne pozwalające wydawać środki mogą pozostać poza serwerem, na przykład w portfelu sprzętowym. Inaczej działa gorący portfel: jego tajne dane są na urządzeniu podłączonym do internetu. Dostęp do węzła Lightning obsługującego szybkie płatności również może pozwalać wydawać pieniądze. Zarządzanie serwerem i kontrola środków to zatem osobne kwestie. Określenie self-hosted, czyli własny hosting, samo ich nie rozstrzyga. [2] [3]
Cudzy serwer może oszczędzić ci instalacji i utrzymania. Nawet przy odbiorze do własnego portfela polegasz jednak na jego administratorze. Zmieniony lub przejęty serwer może pokazać adresy napastnika zamiast twoich. Sam klucz publiczny nie pozwoli mu wydać wcześniej odebranych monet, lecz podmieniona kasa może przekierować przyszłe płatności. Sprawdzaj więc wpływy również w niezależnym portfelu. Ten sam atak może dotknąć własny przejęty serwer. Zewnętrzny operator wpływa ponadto na dostępność i prywatność. [4]
Cena książki może być wyrażona w koronach czeskich, choć klient płaci bitcoinem. Invoice ustala kurs i kwotę na ograniczony czas. Processing oznacza zapłatę całej wymaganej kwoty przy niespełnionych jeszcze warunkach rozliczenia, na przykład potwierdzeniach w blokach. Settled oznacza ich spełnienie; Lightning zwykle nie czeka na blok. Sklep musi też obsługiwać niedopłaty, nadpłaty i spóźnione wpłaty. Ręczna zmiana stanu nie tworzy potwierdzenia sieci. Samo przeliczenie ceny nie przelewa też koron na konto bankowe: wymiana przez wtyczkę lub usługodawcę jest dodatkową usługą z własnymi kosztami i warunkami. [5] [6] [3]
Programy łączą się przez Greenfield API, interfejs umożliwiający ich komunikację. Sklep zapisuje identyfikator invoice przy zamówieniu. O zmianach informuje webhook, automatyczna wiadomość z serwera, której autentyczność trzeba sprawdzić zgodnie z dokumentacją. Klucz dostępu API powinien mieć tylko uprawnienia potrzebne danemu sklepowi. Ponowne nadejście tej samej wiadomości nie może powodować wysłania drugiej książki. Powrót klienta na stronę podziękowania także nie dowodzi zapłaty. Po awarii porównaj miejscowe zapisy z fakturami i rzeczywistymi płatnościami. [7]
Lightning Network korzysta z kanałów płatniczych, dzięki czemu nie każda płatność trafia oddzielnie do bloku. Własny węzeł musi być dostępny i mieć płynność przychodzącą: miejsce w kanałach, którym środki mogą dotrzeć do ciebie. Wymaga to bieżącej obsługi. Możesz skorzystać z pomocy przy płynności, wymiany między sieciami płatniczymi albo usługi powierniczej kontrolującej środki klienta. Te rozwiązania różnią się uprawnieniami, opłatami i ryzykiem. Nazwa BTCPay Server na stronie nie wskazuje, które wybrał sklep, ani nie gwarantuje powodzenia każdej płatności. [8]
Dane do odtworzenia portfela nie są kopią całego sklepu. Oprócz kluczy potrzebujesz faktur, ustawień i innych danych zależnych od instalacji. W Lightning szczególnie niebezpieczne jest uruchomienie węzła ze starym stanem kanałów: błędne odtworzenie może zagrozić środkom. Planowana przeprowadzka na nowy serwer różni się od odtwarzania po awarii. Podczas migracji stan starego węzła nie może dalej się zmieniać; nie wolno też uruchamiać go obok odtworzonej kopii. Stosuj procedurę właściwą dla danej implementacji. Test odtwarzania Lightning odizoluj od sieci i innych węzłów, żeby nie naruszyć aktywnych kanałów. Instrukcja dla Docker, środowiska uruchamiającego części aplikacji w osobnych kontenerach, dotyczy właśnie tej metody instalacji. [9]
Zyskujesz możliwość decydowania o swojej infrastrukturze płatniczej. Ktoś musi jednak dbać o aktualizacje, dostęp administratora, usługi wystawione do internetu i kopie możliwe do odtworzenia. Program nie pobiera procentu od każdej płatności, ale hosting, sprzęt, opłaty sieciowe czy pomoc z Lightning mogą kosztować. Nie gromadź zbędnych danych osobowych klientów. Gdy książka zaginie lub zostanie zwrócona, reklamacją i zwrotem pieniędzy zajmuje się sprzedawca, nie twórcy BTCPay Server. Ewidencja faktur pomaga w księgowości, ale nie zastępuje wszystkich obowiązków. [10] [3] [7]
Kasa przestaje działać, portfel pozostaje
Sklep używa tylko publicznych danych zewnętrznego portfela, gdy serwer przestaje odpowiadać. Odebrane wcześniej bitcoiny kontrolowane przez klucze portfela nie znikają. Klienci mogą jednak nie otworzyć nowej strony płatności, a sklep nie widzi bieżącego stanu zamówień. Po odtworzeniu sprawdza ustawienia odbioru i porównuje faktury z portfelem. Przykładu nie można tak samo zastosować do utraty tajnych kluczy gorącego portfela wraz z serwerem ani do odtworzenia kanałów Lightning ze starych danych.
Pełniejszy obraz uzyskasz, czytając to hasło razem z Bitcoin Payment Processor, Bitcoin Point of Sale, Samodzielne przechowywanie bitcoinów, Lightning Network, Merchant Adoption, Bitcoin. Do tego hasła prowadzą również odsyłacze z Bitcoin Coffee, Transaction Labeling, Bitcoin Payment Processor, Bitcoin Point of Sale.
01Czy BTCPay Server automatycznie oznacza samodzielną kontrolę środków?+
Nie. Sprawdź, kto kontroluje klucze podłączonego portfela i jakie uprawnienia ma serwer lub usługa Lightning. Same publiczne dane zewnętrznego portfela nie pozwalają wydawać środków. Gorący portfel lub usługa powiernicza mogą działać inaczej. Nawet bez kluczy prywatnych przejęta kasa może pokazywać błędne adresy.
02Czy słowa kopii portfela wystarczą do odzyskania wszystkiego?+
Mogą odtworzyć odpowiedni portfel Bitcoin, lecz nie listę faktur, ustawienia sklepu ani automatycznie stan kanałów Lightning. Te elementy wymagają własnych kopii i procedur. Testuj bezpiecznie: stara kopia Lightning nie może komunikować się z siecią tak, jakby była aktualnym węzłem.