Новости и события » Экономика » Принимаем оплату в bitcoin: Часть вторая. Инструменты и подготовка

Принимаем оплату в bitcoin: Часть вторая. Инструменты и подготовка

Принимаем оплату в bitcoin: Часть вторая. Инструменты и подготовка

Возможно мне не удалось напугать вас в достаточной степени, чтобы вы отказались от этой безумной идеи - принимать оплату в bitcoin. Ну тогда у меня для вас есть еще одна порция головной боли на пятую точку.

Возможно мне не удалось напугать вас в достаточной степени, чтобы вы отказались от этой безумной идеи - принимать оплату в bitcoin. Ну тогда у меня для вас есть еще одна порция головной боли на пятую точку.

Начало обзора для разработчиков ЗДЕСЬ

Кошелек, кошелек! Какой кошелек??

Для того, чтобы организовать прием bitcoin на сайте, как не слишком сложно догадаться, нам понадобится кошелек. Причем нам не подходит ни апаратный, вроде Trezor или KeepKey, ни настольный, вроде православного Bitcoin-Qt. Только серверная реализация, только хардкор. В качестве хардкора будет выступать bitcoind - референсный bitcoin-демон от команды bitcoin core.

Небольшое отступление (или предупреждение, кому как больше нравится): описанное дальше подразумевает, что вы имеете опыт взаимодействия с командной строкой UNIX-подобных операционных систем (Linux, FreeBSD, MacOSX), представляете себе хотя бы отдаленно, что такое bash-скрипты (не цитатник, а оболочка командной строки), имеете опыт установки програмных пакетов хотя бы на уровне Copy-Paste ну и, наверное, владеете каким то языком программирования.

Установка bitcoind демона достаточно полно описана на официальном сайте bitcoin core. Если вам интересен этот процесс, или у вас что то не получается - добро пожаловать в комментарии, если будет достаточное количество желающих я раскрою эту тему подробнее. Вот краткая шпаргалка, как установить bitcoind для одной из самых распространенных серверных операционных систем - Ubuntu Linux:

После успешного выполнения перечисленных выше команд, на вашем linux-сервере прочно обоснуется тот самый демон bitcoin, который нам нужен для дальнейших манипуляций. Важно помнить, что сама по себе установка еще не дает нам возможности отправлять и получать монетки. Теперь нам надо определиться - в каком режиме мы запустим наш демон.

Замуровали демоны!!

Логично спросить - а какие они, собственно, бывают? А бывают демоны трех основных типов.

Первый, это собственно боевой. Если ваш безвременно усопший дядюшка оказался тайным держателем несметного богатства в bitcoin, можете смело стартовать в боевом режиме и все эксперименты ставить с реальными деньгами.

Мы же, люди попроще, рассмотрим для начала два других режима. Если быть совсем точным, то правильнее говорить о том, с какими сетями будет работать наш сервис. Тот самый боевой режим - это mainnet, то есть основная сеть, по которой ходят вполне настоящие биткоины и со всеми вытекающими проблемами сразу.

Второй, более щадящий режим для молодых, не заматеревших разработчиков - это testnet - из названия несложно догадаться, что сеть тестовая. Если вам для начала хватило головной боли, то можете на этом и остановиться. Тестовая сеть "почти как настоящая". Вам понадобится соединение с internet, транзакции так же будут подтверждаться майнерами, только время на формирование блока в тестовой сети значительно меньше. Ну и, естественно, тестовые коины не имеют никакого финансового веса. Если поискать в сети - можно найти немалое количество сайтов, предоставляющих тестовые монеты во временное пользование (в сообществе считается хорошим тоном возвращать тестовые монеты после использования).

Если же вы совсем затворник, или не имеете желания скачивать бессмысленный тестовый blockchain - то для вас есть третий, и самый интересный, и на мой взгляд самый удобный для локальной разработки путь - regtest (Regression Test Mode) - по сути вы создаете свой маленький bitcoin для себя. Конечно, ваши транзакции увидите только вы, зато вы можете любоваться на кругленькую сумму в 100000 BTC на своем кошельке и тратить их направо и налево. По сути же -вам доступны любая скорость прохождения транзакций, любые суммы, и конечно, поведение программного обеспечения вы сможете наблюдать так же, как и в боевой сети, но совершенно бесплатно и значительно быстрее.

В случае, если вы решили воспользоваться тестовой сетью testnet, настройка будет мало отличаться от настройки обычной full node. Первое что вам необходимо сделать после установки демона bitcoind перед его запуском - это создать конфигурационный файл. В домашней директории на вашей linux-машине выполняете команду mkdir -p ~/.bitcoin - это то место, где bitcoind будет искать файл конфигурации, и создаете там файл bitcoin.conf содержащий строки:

Если вы используете операционку, отличную от linux, то расположение файла конфигурации может отличатся:

Windows: %APPDATA%Bitcoin

OSX: $HOME/Library/Application Support/Bitcoin/

Linux/FreeBSD: $HOME/.bitcoin/

Когда все подготовленно, запускаем демона командой bitcoind -daemon и ждем пару минут. Теперь можно проверить, что у нас получилось. Выполняем команду bitcoin-cli getwalletinfo и смотрим на результат. Должно получится что то похожее:

{ "result": { "walletname": "wallet.dat", "walletversion": 159900, "balance": 0.00000000, "unconfirmed_balance": 0.00000000, "immature_balance": 0.00000000, "txcount": 0, "keypoololdest": 1528398419, "keypoolsize": 981, "keypoolsize_hd_internal": 1000, "unlocked_until": 0, "paytxfee": 0.00000000, "hdmasterkeyid": "a721caa39233676ccd3dc0509d0b93a6bc55fb52" }, "error": null, "id": null }

Пока не важно, что все это означает. Важно, что результат должен содержать информацию о состоянии вашей новоиспеченной полной ноды. Теперь начинается самое увлекательное - процесс синхронизации с сетью.

Для основной сети он может занять пару суток, но testnet значительно компактнее. И в зависимости от скорости интернета займет до нескольких часов. Выполняем команду bitcoin-cli getnetworkinfo и изучаем полученный результат. Нас интересует строчка "connections", она должна быть отличной от нуля. Это параметр, который говорит сколько соединений с удаленными нодами есть у вашего bitcoind. Если по какой то причине там красуется гордое "0" - что-то пошло не так. Смотрим в файл .bitcoin/debug.log, и пытаемся разобраться что же именно. В следующей статье мы рассмотрим более подробно как собрать свой персональный биткоин на отдельно взятой машине, то есть как воспользоваться regtest (Regression Test Mode).

А пока попробуем выполнить что-то мало мальски полезное на получившейся ноде. Сразу возникает вопрос - у нас нет ничего похожего на интерфейс кошелька. Как нам получить адрес, отправить средства посмотреть баланс?

Выполним команду

bitcoin-cli getnewaddress

В ответ мы получим что-то подобное: muMKs9cCCfdq5mV7mnffuLLFNqgFR33nNB. Это наш новый адрес в сети testnet. Он отличается от обычного - и это хорошо, потому что никто не сможет случайно отправить реальные монеты на тестовый адрес. Но что нам этот адрес дает? Например, мы можем получить немного тестовых монет на сайтах вроде тех, что перечислены ниже:

А вот что с ними делать дальше - мы рассмотрим в следующих статьях.


Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх