Как создать обменник криптовалют в телеграмме
Перейти к содержимому

Как создать обменник криптовалют в телеграмме

  • автор:

Создаём телеграм-бот криптовалютного кошелька на основе php-telegram-bot

Бот будет полезен тем, кто дорабатывает сервисы для приёма криптовалюты или хочет получить собственный криптовалютный кошелёк в Telegram.

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

Для быстрого создания сервиса будем использовать PHP, возьмем одну из библиотек с core.telegram.org (https://core.telegram.org/bots/samples) php-telegram-bot (https://github.com/php-telegram-bot/core/). Эта библиотека часто обновляется и подходит для дальнейшего масштабирования бота.

В свободном доступе есть несколько API-сервисов для работы с криптовалютами:

Во всех перечисленных сервисах нет проверки KYC и свободная регистрация. Blockchain.info требует получение токена для работы, он условно без проверки, но его получение может занять несколько дней или даже недель.

Выбор пал на сервис Apirone, потому что тут нет ограничений на создание кошельков и адресов.

Итак, наш бот будет уметь:

  • создавать криптовалютный кошелек в нужной валюте,
  • получать баланс,
  • генерировать криптовалютный адрес,
  • обрабатывать обратную связь (колбэк) от криптовалютного процессинга,
  • делать перевод имеющихся средств.

Вся обработка колбэков от телеграма уже реализована в php-telegram-bot .

Создаем через @BotFather нового бота, получаем идентификатор бота и ключ API. Далее разворачиваем php-telegram-bot с помощью Composer. Надо заметить, что для работы бота требуется SSL сертификат и действующее доменное имя. В конфиг composer.json добавляем дополнительно библиотеку monolog, которая требуется для отладки приложений. В секции autoload сразу укажем, что для классов будем использовать директорию Classes в папке проекта.

Запускаем composer update для создания базовой структуры. Создаем ее и добавляем туда папку Apirone и в нее файл ApironeWallet.php, в котором реализуем класс взаимодействия с криптопроцессингом.

В нем реализованы следующие функции:

Подробно работу этих функций смотрим в примере. Создадим MySQL базу данных, она будет нужна для работы интерактивных диалогов. В нее требуется добавить три таблицы: apirone_currencies, apirone_transactions и apirone_users.

С телеграмом будем общаться с помощью вебхуков (Webhook). Для этого set.php и unset.php – включение и отключение колбэков. hook.php принимает сами колбэки из телеграма:

Установка и удаление вебхука выполняются в две функции:

В корне проекта нужна папка Commands, в нее запишем наши кастомные команды и изменим существующие. Из изменений в базовых классах нас интересует взаимодействие с меню не только через команды, начинающихся со слэша, но и просто текстовые команды. Для этого в папке Commands добавляем папку ServiceMessages и в ней создаем GenericmessageCommand.php , в который путем перечисления вносим нужные команды и реакции на них:

Также добавляем наши четыре кастомные команды BalanceCommand.php , MenuCommand.php , ReceiveCommand.php и SendCommand.php.

Каждой команде делаем описание, использование по умолчанию, присваиваем версию.

Сам код команды закладывается в функцию execute(). В ней происходит выполнение операций. Например, вот команда, которая смотрит баланс

SendCommand.php будет интерактивным. В нем бот спросит криптовалюту, адрес для перевода средств и сумму платежа.

Создаем StartCommand.php И в нем при первом обращении генерируем данные для нашей базы данных

В корне проекта создаем callback.php . Здесь будет приниматься колбэк от процессинга:

В итоговом результате имеем простого бота, который в дальнейшем можно будет трансформировать и дорабатывать, т.к. заложена серьезная база в виде php-telegram-bot.

При написании бота было изучено достаточно источников. И как оказалось, готовых примеров реализаций ботов на просторах интернета очень мало. Данный бот будет полезен тем, кто хочет дорабатывать свои сервисы для приема криптовалюты или хочет получить свой собственный криптовалютный кошелек в телеграме.

Как мы создали бот для обмена крипты в телеге – и считаем, что перетянем аудиторию у Binance и Ко

Приветствую всех! Меня зовут… А вот не важно – как именно меня зовут. В этом посте я хочу рассказать о продукте своей компании, в котором на одном из первых мест стоит конфиденциальность. Раз так – я тоже не стану представляться и светить свои имя и фамилию. Не потому, что они – большой секрет. Вовсе нет. Просто таким вот необычным образом я с порога подчеркну, что и вам не придется делиться своими личными данными (вплоть до ФИО) с теми, с кем не надо… если вы решите использовать для покупки-продажи криптовалют наш бот в телеге под названием Goldshift.

Да, рассказывать я буду именно о нем. Вообще ботов в телеге для обмены крипты сегодня хватает. И на других площадках такие услуги тоже предоставляются. Ну и, конечно, существуют крупные биржи во главе с Binance в том числе и для этих целей. Казалось бы, зачем нужно мутить еще одного бота? Чтобы что? Однако цели создания Goldshift совершенно четкие, и при разработке своего бота мы очень хорошо понимали, чего в итоге необходимо добиться.

Если коротко: все члены нашей команды – криптаны со стажем в среднем 5 лет; мы очень давно в теме; мы хорошенько «наелись» классических недостатков сервисов, предназначенных для обмены крипты и, как следствие, отлично осознаем, какие их минусы являются ключевыми и наиболее мерзкими; свой собственный сервис Goldshift мы попытались реализовать (и реализовали) таким образом, чтобы этих мерзких минусов у него не было. Ну то есть, фактически, мы сделали сервис для тех, кого задрали Binance и Ко, а также прочие всем известные обменники.

Для начала – небольшой ликбез, просто на всякий случай. Что такое P2P-обмен, и почему для начинающего криптана это лучший способ начать свой путь в этой нише? P2P-торговля отличается тем, что вы можете гарантированно стабильно зарабатывать условные 2-5% от вашего депозита, в зависимости от спреда (разницы цены на покупку и продажу в конкретный момент времени), за один круг покупки-продажи. Условно, имея депозит 100К рублей, вы встаете в закупку USDT в среднем по 64 рубля за токен, и сразу же продаете их по 65,2 рубля. Средний спред в данном конкретном примере будет 1,88%. Чистый профит на карту – 1 880 рублей. Если торговля в парах крипто-крипто – это теханализ, приправленный удачей, то P2P-торговля – стабильная рутина, с предсказуемым доходом. В отличие от биржевой торговли, в P2P-стакане (списке предложений на куплю и продажу) цена на покупку крипты для мейкера («менялы») всегда ниже цены на продажу. Можно сравнить это с классическим обменом валют в банке. Таким образом P2P-трейдер дополнительно защищен от изменений курса, и в случае, скажем, резкого падения у него есть достаточный запас времени, чтобы зафиксировать прибыль в фиатной валюте и выйти из позиции без потерь. Так вот: Goldshift, если кто еще не понял, – он как раз про эту самую P2P-торговлю.

Давайте начнем… вот с конфиденциальности как раз и начнем. Goldshift – это про полнейшую анонимность во всех ее проявлениях. Подавляющее большинство бирж и криптообменников во главе с Binance требует муторной регистрации, верификации личности с проверкой паспортных данных, а для проведения крупных сделок нужно доказывать легальность происхождения средств, есть лимиты по операциям, ну и так далее. Фактически все как в обычных банках – что не очень логично, ведь крипта создавалась в противовес традиционной напрочь зарегулированной банковской системе.

Goldshift на этом фоне предлагает отсутствие необходимости как-либо светить/подтверждать свою личность. Отсутствие лимитов на любые операции, отсутствие бюрократических требований, которыми душат трейдеров крупные биржи. Можно даже так сказать: Goldshift – нейтральные воды, где всем плевать на ваш паспорт, цели транзакций и род деятельности. Пополнение и вывод средств – на банковские карты любой страны, от Гондураса через Мозамбик до Украины.

Нет у нас в Goldshift и бессмысленных двухфакторных авторизаций с одноразовыми паролями. То есть как – бессмысленных? На биржах и в обменниках с веб-интерфейсом это неудобство, к сожалению, является насущной необходимостью, потому что нельзя достоверно определить, что с вашим логином и паролем входите именно вы, а не человек, который знает ваш логин и пароль. Между тем мессенджер Telegram, в котором Goldshift и работает, сам по себе достаточно безопасен – получить доступ к ТГ-аккаунту в разы сложнее, чем устроить атаку на какие-нибудь веб-сервисы.

А еще, поскольку Goldshift никак не оперирует с фиатом (= обычными деньгами) напрямую, у нас нет процессинга банковских карт. Мы имеем дело только с криптой, а вот фиат перемещается между юзерами посредством банковских переводов с одного счета на другой, то есть без нашего участия. Как следствие, Goldshift не сливает данные по запросам налоговым и другим ведомствам с тревожными аббревиатурами, поскольку у них просто нет оснований для таких запросов.

Банки и регуляторы, со своей стороны, тоже не видят ничего подозрительного в вашей деятельности. Вот переводят физические лица средства со счета на счет, ну и… что? Это легальная, банальная, невинная операция. Так что регуляторы и банки вообще не подозревают, что речь идет о купле-продаже крипты. Как следствие, даже если государство напринимает каких-то новых законов и попытается зарегулировать (а то и запретить) операции с криптой, то пользователей Goldshift это не коснется.

Немного разовью тему паспортов, которую я вскользь упоминал чуть выше. Goldshift плевать на российский паспорт. После 24 февраля паспорт гражданина РФ стал токсичным во многих областях, и в области крипты – тоже. Известен целый ряд кейсов, когда крупные международные биржи «с именем» блокировали средства россиян и просто конфисковывали их. В случае Goldshift это невозможно. Здесь нет никакой регистрации, здесь никто не собирает данные и не просит показать паспорт. Он не играет роли и вообще никак и нигде не светится. Более того, в отличие от ряда других ботов, Goldshift не является Telegram-интерфейсом к какому-либо стороннему сервису по обмену крипты: у нас полностью свой «движок». Поэтому криптовалюта в процессе обмена не находится под юрисдикцией какой-либо страны, и она не потеряется по хотелке какого-нибудь чиновника.

Здесь уместно привести (негативный) пример телеграм-обменника Chatex, который не был полностью автономным – он использовал услуги американского сервиса BitGo для хранения средств пользователей. Ну и по первому требованию властей США BitGo заблокировал деньги всех пользователей. Занавес. Меж тем на Goldshift такое невозможно в принципе, все ключи хранятся у нас.

Пара слов про лимиты. У Goldshift нет никаких лимитов, как и вопросов к происхождению крипты. Вообще. То есть отсутствуют ограничения и по сумме операции, и по количеству транзакций, и по способам ввода и вывода средств, и по их (средств) происхождению. Хоть за свиные пятачки крипту продавай, хоть за собачьи будки. Для сравнения: на бирже Binance граждане России не могут иметь эквивалент более $10 000, более крупную сумму можно только вывести.

Где вы взяли крипту – нас тоже не волнует от слова «совсем». Оно ведь как нередко бывает на традиционных криптобиржах и крупных обменниках? Чтобы что-то продать или купить даже на небольшую сумму, изволь доказать, что ты не верблюд. В смысле, покажи справку о том, что деньги не украденные. Это типа AML (Anti Money Laundering), то есть борьба с отмыванием денег. Но именно «типа»: на деле это фактически узаконенное воровство денег биржами под благородным предлогом. На Goldshift никакого AML нет, мы предлагаем этим трем буквам пройти на другие три буквы – русские.

Вообще, кстати, понятия «крипта» и «отмывание денег» нередко соседствуют друг с другом (справедливо или нет – вопрос отдельный, не буду его тут касаться). И, думается, никому не хочется даже в теории получить обвинение во втором из-за каких-либо операций с первой (а такое бывает, см. вот эту новость, например). Вот Goldshift как раз и гарантирует, что никто к вам не придерется по делу или даже без дела – торгуй себе криптой незаметно для всех, ну и горя не знай.

Еще у Goldshift нет порогов входа. Это позволяет мне назвать наш сервис весьма удачным вариантом для заработка на крипте. Оно ведь как бывает? Проблемой для начинающих трейдеров на биржах и даже на других обменниках становится поддержка этими площадками инструментов для автоматизированной торговли – скриптов и ботов. Ими, как правило, пользуются продвинутые опытные трейдеры, которые благодаря этим скриптам снимают все сливки. И на крупных популярных площадках таких трейдеров большинство. В итоге с небольшими суммами, типичными для новичков (скажем, 50-100 тысяч рублей), делать там просто нечего: продавцы (мейкеры) с большими лимитами просто автоматически будут «перебивать» ваш оффер в «стакане» каждые полсекунды, в результате ваше предложение всегда будет оказываться менее выгодным, чем у них. А поскольку тейкеры предпочитают покупать у мейкеров с хорошим объемом и репутацией, крипту вы или никогда не продадите, или же вам придется продавать ее с большим дисконтом (и тогда вы ничего не заработаете). На Goldshift этой проблемы нет: автоматические скрипты не поддерживаются, а конкуренция небольшая, так как площадка новая. Позже, думаю, и у нас появятся воротилы, способные дать такие цены, с которыми сложно будет конкурировать мейкерам-новичкам. Но пока таких воротил на Goldshift нет – во всяком случае, массово. Так что можно спокойно зарабатывать – и чем раньше вы придете на Goldshift, тем более высокую репутацию себе прокачаете к тому моменту, как на Goldshift придут ВСЕ. А все к нам, я уверен, придут. Почему? Причины описаны в этом посте 😉

И да, еще один важный момент, связанный с возможностью заработка. Большая проблема для мейкеров-новичков на биржах и в других криптообменниках заключается в том, что у них обычно есть довольно крупный входной депозит, который нужно внести, чтобы начать продавать криптовалюту. Его размер достигает нескольких тысяч долларов, в то время как у новичка «крипты» обычно ну максимум на 50-100 тысяч рублей (а у кого-то вообще 10-20 тысяч!), то есть сумма меньше, чем объем необходимого депозита. И чтобы продать свою крипту, нужно сначала заплатить больше, чем она стоит. Это сделано для того, чтобы новички не мешали «большим дядям». Дедовщина в чистом виде! У кого нет миллиарда, тот может идти в жопу (с) Сирожа П. Все животные равны, но некоторые равнее. С Goldshift можно, напротив, послать в жопу всех акул криптобизнеса: тут нет никаких депозитов, и ничто не помешает продавать крипту.

Не помешают в том числе и различные технические проблемы, которые встречаются даже у мастодонтов (читай – крупных бирж), не говоря уже о небольших сервисах, сделанных на коленке. Можете мне верить, можете сомневаться, но скажу так: Goldshift максимально надежен и стабилен во всех смыслах. Не секрет, что телеграм-боты для обмена крипты частенько «отваливаются» и не реагируют на команды, заставляя пользователей нервничать.

В случае Goldshift такого не бывает, ибо в этом боте сведены воедино две мощнейший технологические составляющие. Первая платформа – в надежности и стабильности Telegram, думается, ни у кого нет никаких сомнений. Вторая – фирменный движок Goldshift, в разработку которого было вложено более миллиона долларов и год времени. Цель таких вложений – создание именно на 200% стабильного решения, которое, как и все остальные составляющие Goldshift, заточено на избавление пользователей от традиционных негативных особенностей типичных криптобирж.

С надежностью в плане сохранности средств все тоже ОК. Криптовалюта в ходе транзакции «замораживается» внутри Goldshift, и перевод зачисляется только после того, как продавец подтвердит получение средств от покупателя. Если деньги от покупателя продавцу так и не приходят, то в сделку максимально оперативно вмешивается арбитр сервиса, который изучает доказательства сторон и перечисляет средства добросовестному участнику сделки. Поэтому ни продавцам, ни покупателям криптовалюты в Goldshift нечего бояться. У каждого участника сделки есть свой рейтинг и указывается количество проигранных «споров», так что криптаны могут выбрать самого надежного партнера из всех доступных.

Кстати, об арбитрах. Мы не вмешиваемся в процесс до тех пор, пока обоих участников сделки все устраивает, то есть Goldshift выступает исключительно гарантом и арбитром. Но при этом юзеры должны следовать договоренностям, которые обозначили друг для друга перед сделкой и оба согласились их соблюдать, а они могут быть любыми. Споры решаются именно исходя из них – арбитры Goldshift изучают, что и кто кому наобещал, и уже исходя из этих условий выносят те или иные решения. Как следствие, побеспределить и кинуть кого-нибудь на площадке не выйдет: все такие попытки отслеживаются и пресекаются.

Ну и еще раз подчеркну, что над скоростью реакции на проблемы – будь то спор или какая-либо техническая хрень – мы поработали с особой тщательностью. В результате Goldshift максимально оперативен. Админы выходят на связь за минуты (не за часы!) в любое время дня и ночи. В случае Binance и иже с ним реакцию админа можно ждать до суток (!), а на более мелких биржах, а в телеграм-обменниках и обменниках в вебе человека, который решит твою проблему, можно вообще не дождаться.

Ну и еще про интерфейс скажу. Он у Goldshift позитивно-примитивный. Вместо перегруженных веб-интерфейсов и «кривых» мобильных приложений Goldshift работает через Telegram-бота. В нем буквально несколько главных кнопок: «продать», «купить», выбор валюты и способа оплаты. По сравнению с другими ботами у Goldshift удобный и продуманный интерфейс: не надо по десять раз нажимать кнопку для совершения повседневных операций. Всё красиво, просто и интуитивно понятно, работает быстро и стабильно. При разработке мы ориентировались на удобство и для мейкеров, и для клиентов. Это как Telegram: только на первый взгляд у мессенджеров все одинаково, но стоит попользоваться каким-нибудь убогим WhatsApp или, прости господи, Viber, и сразу понимаешь, насколько велика пропасть между ними – и по удобству, и по функциональности.

Для сравнения: приложения Binance и прочих сервисов по обмену крипты напоминают кабинку стратегического бомбардировщика с мильярдом кнопочек, и совершенно непонятно, какая и за что отвечает.

Создаем собственный обменник

Товарищи, летом мы писали для вас статью по созданию и продвижению криптообменника. Сегодня же, вы получите более прикладной материал на тему создания сайта для онлайн обменника с помощью BoxExchanger . Как вы уже поняли, без задействования программистов, дизайнеров и других третьих лиц. С низким порогом входа. Итак, погнали!

Содержание:

Сразу скажу, в этой статье мы затронем исключительно создание сайта для онлайн обменника . Обо всем, что касается продвижения и других аспектов, мы писали еще летом.

Капитал. Сколько нужно денег?

По сути, вложения можно разделить на две группы:

    Оборотный капитал. Здесь все индивидуально, можно начинать и с $5 000, а можно и с нуля, если работать через WhiteBit. Вложения в разработку самого обменника, персонал.

Так вот, многие удивятся, но что касается второго пункта — начать можно с 250$, взяв в аренду шаблонный сайт.

Для тех, у кого бюджета побольше, можно сразу прикупить готовый обменник . Но давайте вообще разберемся, есть ли смысл?

Аренда

Естественно, если вы только-только стартуете, то оптимальным решением будет аренда. Всегда старайтесь начинать постепенно и не рисковать большим бюджетом. Но при этом, аренду лучше сразу брать с уникальным дизайном. Шаблон + скрипт + телеграм бот = 250$.

Во-первых, если вы хотите размещаться на BestChange, то шаблонный сайт не прокатит. А во-вторых, если планируете работать в долгую, то лучше сразу делайте уникальный дизайн, ведь потом, как только обменник выйдет на приличные обороты, его можно будет просто выкупить.

То есть даже на аренде, вы получаете исходный код фронтенда. И появляется возможность сделать свой дизайн. Ну либо заказать его прямо у BoxExchanger. Насколько я знаю, у них есть собственные дизайнеры, и макет стоит порядка 200 баксов. А шаблон + скрипт + телеграм бот = 250$. В общем-то, вложения небольшие. Учитывая, какой профит нам сможет приносить подобный сайт.

Покупка

Стоит порядка 8000$. При этом, вы также заказываете индивидуальный, премиум дизайн. Вам его рисуют, согласовывают и по итогу выдают готовый сайт. Вместе со скриптом, с исходным кодом и бекендом. Становитесь полностью независимыми от BoxExchanger, можете вносить изменения в скрипт и т.д.

Как по мне, начинать с этого варианта и рисковать на старте лишними деньгами, смысла нет. Поэтому советую прибегать к покупке только после аренды.

Разбор скрипта

Предлагаю разобраться, что необходимо настроить после покупки обменника.

Вообще, качество и удобство скрипта — очень важная вещь. И не зря я делаю этот гайд на примере BoxExchanger , т.к по сравнению с конкурентами, скрипт у них реально крутой и удобный.

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

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

Что тут еще есть. например, верификация пользователя. Менеджеру, которому вы можете выдать такие полномочия (а можете и не выдавать) прилетает вся информация. Дальше он одним кликом либо принимает, либо отклоняет документы. Тут все легко.

Настройка направлений обмена. Функционал большой.

Автообновление курса с парсера (как правило это курс с различных бирж), очень важная штука. Учитывая, насколько большая может быть волатильность в крипте, если у вас не будет постоянного авто обновелния курса, вы просто будете уходить в огромный минус со сделок. Ну или в огромный плюс, как повезет 🙂 Лучше не рисковать и автоматом тянуть курс с удобных бирж. Парсеры тут уже встроены, просто выбираете биржу и все.

Устанавливаете минимальные и максимальные суммы обмена и т.д. И плавно переходим к тому, что можно включить авто обмен.

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

Рефералка — это то, что обязательно нужно использовать на старте. Ведь по сути, набрав постоянных клиентов, обменник может жить практически без доп.маркетинга. Настраивается рефералка также в пару кликов.

Основная статистика, тут все понятно. Удобная инфографика, можно анализировать кучу инфы, даже не подвязывая стороннюю аналитику.

Настройка курсов и выставление резервов — тут тоже все понятно. Многие, кстати, ставят больше резервов, чем у них есть на самом деле. Т.к по статистике, человек скорее выберет обменник с резервом 1 млн$, чем с резервом 100к$. Используйте этот лайфхак.

Отзывы, на которые многие обращают внимание. Можно писать самим 🙂

Блок с партнерами. Многие мониторинги требуют размещение их лого и ссылок на сайте, тут это снова делается в два клика.

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

Все остальные моменты по продвижению обменника и т.д. можете прочитать в нашей предыдущей статье.

Что точно стоит сделать, после покупки/аренды обменника?

    Во-первых, подключить стороннюю аналитику и CRM систему. Круто, что это можно сделать как на аренде, так естественно и на покупке. Подробная аналитика очень важная, чтобы понимать с каких источников заходят действительно платежеспособные клиенты, которые совершают обмены на большие суммы. А с каких источников заходят лоубанки. Во-вторых, подключить онлайн чат с оператором прямо на сайте. Для этого используются сторонние сервисы по типу JivoSite и т.д. Важно иметь 24-7 саппорт, и опять же, важно, подключить его можно как на аренде, так и на покупке. Поставить менеджера. Наконец дошли до самого интересного. Для чего нам вообще нужен столь удобный и функциональный скрипт. Да чтобы была возможность брать на работу кого угодно, даже школьников. (и сэкономить на з/п)

За счет того, что мы можем очень и очень гибко настраивать возможности того или иного админа, нет повода переживать за то, что менеджер сможет устроить какие-нибудь махинации.

Ну и кнопки кликать сможет кто угодно, UX в скрипте супер простой и удобный.

Насчет сторонних приложений. Учитывая, что CMS написан с использованием практически самых топовых технологий, полностью на все функции есть API.

То есть, можно интегрировать абсолютно любые доп.сервисы к своему обменнику, что-то кастомизировать и т.д.

Кроме того, у этих ребят же еще и мобильное приложение есть. И на самом деле оно упрощает жизнь настолько, что можно вообще без менеджера обходиться, например, если у вас не так много заявок.

Просто скачать приложение себе на телефон, поставить уведомления и прожимать пару кнопок, как только приходят уведомления на обмен. Интерфейс очень похож на традиционный айфовонвский. Так что, удобно..

По скрипту, напоследок скажу, что я прям вдохновился написать эту статью, когда увидел столь крутые возможности за 250$.

Пообщался с ребятами из BoxExchanger, понял, что также важно правильно взаимодействовать с их саппортом, который вообще по любым вопросам сможет помочь. От настройки скрипта до прямой хелпы вашим программистам с бекендом (если выкупили обменник) и т.д.

Еще у них есть подробная инструкция по настройке , там прям все-все расписано, так что если будете сами все настраивать — обращайтесь туда.

Также узнал, что есть возможность заключать международные договоры на покупку скрипта. С переводом на рассчетный счет, уплатой налогов и т.д. Ну это для крупных ребят. Короче, для тех кто хочет быстро открыть обменник, с минимальным бюджетом — очень хороший варик.

Telegram Bot

Подходит для тех, у кого, например, есть свой канал. Основная ЦА находится в Telegram и хочется как-то дополнительно монетизировать аудиторию. Часто открывают обменники, но делают это по простому. ставят менеджера и производят все обмены прямо в личной переписке. Что очень неудобно и ненадежно.

Другое дело — бот. Пользователю нужно нажать 3 кнопки, ввести кошелек, сделать транзакцию и дождаться завершения обмена. Все. Без каких-либо переписок с менеджерами и т.д.

Также можно выставить резервы, поставить авто привязку курса с бирж и т.д. Функционал практически такой же, как и в традиционном скрипте. Все, что нужно есть. Настраивается также в два счета.

Что касается автоматических обменов, то в Telegram ботах все-таки привыкли к ним. Есть возможность их включить, также есть возможность и вручную все обрабатывать. Но, повторюсь, в Telegram лучше работать исключительно по авто обмену.

По итогу, если у вас есть Telegram-канал, можно дополнительно его монетизировать, и за 250$ приобрести бот-обменник.

Вывод

На момент написания этой статьи, время для создания своей обменки максимально благоприятное. Медвежка выкинула всех, кому были не интересны те объемы, которые ходили через обменники. Предстоящая локальная бычка же, скорее всего, эти объемы увеличит.

И, на самом деле, начинать можно и нужно быстро, за 2-3 дня. С помощью аренды готовых решений. И это максимально смарт-мув, как по мне для тех, кто хочет влиться в сферу обмена крипты.

Телеграм-бот для автоматизации обменника криптовалюты

В этой статье я буду в общих чертах рассказывать про то, в каком направлении нужно двигаться, чтобы сделать полуавтоматический обменник криптовалюты с возможностью управлять сделками с любого устройства в любой точке планеты 24/7. Вы не найдете здесь деталей реалиализации, т.к. этот материал предназначен скорее для получения базового набора знаний, необходимых для запуска такого стартапа. Результат вы можете посмотреть в телеграме: @CryptedRobot

Полуавтоматический обменник криптовалюты.

Как-то очень давно я у же немного писал про использование телеграм-бота для автоматизации некоторых процессов. Надо сказать, что уже не мало времени прошло, но я продолжаю использовать некоторые идеи, что были изложены в том небольшом материале.

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

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

Необходимый набор навыков.

Говоря довольно простой, я наверное выражаюсь несовсем корректно. В наше время навыки, которыми должен обладать разработчик, оцениваются в тысячи часов времени, которое он должен потратить на свое обучение. Я сегодня буду предельно краток, так что давайте сразу перейдем к делу. Для реализации задачи нам понадобится следующий набор иснтрументов:

Linux, zsh, vim, systemd

ES6, Material Ui, React, eslint, webpack, scss

python3, asyncio, aiohttp, peewee

telegram bot api

И такие паттерны как:

MVC — шаблон архитектуры системы

Abstract Factory, Factory Method, Builder, Facade, Prototype — генерация объектов

Scheduler — многопоточный постановщик задач

Event Listner, State — события, сосстояния

Proxy — заместитель для балансировки нагрузки

В общих чертах это вроде как все, что должно пригодится, согласитесь не мало. Давайте пробежимся теперь немного более подробно, чтобы понимать как все это барахло должно быть настроено, чтобы даже работать.

Теперь я начинаю с фронта

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

Начинать лучше с фронта, потому как он может работать на моковых данных и бэкэнд ему собственно нужен только абсолютно гипотетически. Фронтенд — независимое приложение, он должен работать корректно в разных браузерах, на разных устройствах. Мы будем делать Single Page Application, а значит нам потребуется протокол взаимодействия, давайте выберем json-rpc . Для транспортного протокола используем tcp, а на прикладном уровне остановимся на http.

Дальше все довольно не трудно. Ставим Node Package Manager , создаем новое реакт приложение, добавляем туда react router, настраиваем eslint для форматирования кода, node-sass для возможности использования css препроцессора, webpack для сборки проекта.

Правильная структура проекта — залог успеха. Компоненты делаем модульными — файлы стилей лежат внутри дирректории рядом с компонентом. Компоненты по мере возможностей реализуем как stateless. Я бы пожалуй еще рекоммендовал дважды задуматься перед внедерением redux в приложение — делайте это только если вы точно уверены, что вам это нужно.

При работе с фронтом важно всегда помнить об области видимости переменных, потому как современный фронтенд это сложное многопоточное, асинхронное приложение. При этом при правильной организации файлов и компонентов, react и material ui позволяют делать все достаточно быстро. Если у вас нет готового дизайна — просто выберите сайт обменника, который вам нравится и не стесняясь копируйте его, превнося свои изменения — в дальнейшем ваш обменник все равно еще претерпит кучу изменений и не стоит беспокоится о том как это смотрится на текущей стадии.

Вот так может выглядеть ваш реакт компонент, отвечающий за рендеринг главной страницы:

Бэкэнд — это сложно, но куда веселее

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

asyncio позволяет работать с петлей событий, что в свою очередь предоставляет возможность асинхронного программирования и управления заданиями. В нашем случае у нас будет несколько заданий, которые должны будут работать независимо и параллельно основному приложению. Это задание на обновление курсов BTC/USD и USD/RUB, и задание, которое будет отменять устаревшие заявки на обмен валюты. Курсы вылют можно получать get запросом из апи всех популярных бирж, например coinbase, kraken, bitmex. Благо aiohttp client позволяет это делать в несколько строчек:

Для того, чтобы сериализовывать данные, необходимые фронту для построения интерфейса, сервер должен использовать объектно-ориентированную модель данных, проще говоря — нужно поделить наш обменник на модели, а эти модели сложить в таблицы бд, чтобы можно было строить к ней запросы.

При создании моделей стоит особое внимание уделить инкапсуляции и наследованию — хорошей идеей будет сразу создать BaseModel, в которую поменстить, например, поля created_at, updated_at и, например, datetime_serializer, который вам точно пригодится, а остальные модели наследовать от этой модели:

Для взаимодействия с блокчейн придется получить API KEY, например на blockchain.com. Хочу сразу отметить, что тут есть своего рода «подводный камень». Как работает блокчейн апи? После того, как создается транзакция, для ее завершения необходимы подтверждения от майнеров. Каждое подтверждение — это своего рода события, информацию о котором вы будете получать на свой сервер. В этом событии есть адрес кошелька, на который поступает криптовалюта. Теперь предположим, что для покупки криптовалюты в нашем обменнике мы всем пользователям будем предоставлять одинаковый кошелек для перевода. Это было бы довольно удобно, так как все биткоины были бы сосредоточены у нас на одном адресе, одной суммой. На первый взгляд. Но в таком случае при поступлении средств от пользователя на кошелек и последующих веб хуках от блокчейн на callback_url, мы не сможем определить от какого конкретно пользователя поступил платеж. Можно конечно использовать параметр в webhook url но есть еще один интересный нюанс. Нам важно знать курс по которому была совершена та или иная транзакция.Опять же, есть вариант хранить свзяь между транзакицей и курсом, но есть и альтернативное решение. Оно состоит в том, что каждому пользователю системы должен генерироваться свой уникальный BTC кошелек. И в случае, когда этот самый пользователь хочет совершить сделку в нашем обменном пункте и продавть свои кровные BTC, мы будем скидывать ему его уникальный адрес.

Дальше может покзаться, что целесообразно со всех этих адресов собирать все деньги на master wallet, но это не так, ведь за каждый перевод вы будете платить комиссию майнерам. К слову эту комиссию нужно считать ручками. Получить информацию от сети можно в любой момент:

Таким образом получается, что баланс нашего обменника сосредоточен децентрализованно на разных кошельках всех пользователей. При каждой транзакции мы записываем курс, по которому она была осуществлена, а ее статус (так же как впрочем и статус документа по этой транзакции) мы меняем в зависимости от подтверждений blockchain. К слову сразу имеет смысл подумать над реализацией классов Billing и Processing, для создания и проводки документов.

Для продажи крипты нам необходим механизм ручного взаимодействия с этими документами: нужно искать документ с выгодным на текущий момент курсом, проверять текущий баланс кошелька из этого документа, и выполнять перевод с этого кошелька на кошелек, который указывает пользователь в своей заявке на покупку в нашем обменнике. И вот мы наконец подобрались к кульминации нашего материала: к нам снова на помощь приходит телеграм.

Telegram bot

Тут все совсем не трудно. Создаем бота у @BotFather, настраиваем, берём токен, кладем его в конфиг (делаем два конфига и два бота — один на прод, один на дев).

Из этого токена мы можем создать бота и использовать его для получения важных данных, а так же для запуска протокола rpc , не требующего дополнительной авторизации и шифрования.

Теперь мы можем слать сообщения в телеграм из нашего бэкэнда, для этого мы создадим приватный чат и добавим бота администратором туда. Далее нам потребуется создать вебхук и контроллер для его обработки (читайте об этом в предыдущем материале про мониторинг). В контроллере нам необходимо создать диспетчер запросов, который будет определять обработчик.

Запросы от тг могут быть разные, нам пока нужны будут только message и callback_query (reply клавиатура и inline клавиатура).

Далее мы будем отправлять в этот чат сообщения с кнопками, которые позволят контролировать значения в базе данных. Здесь обращу внимание на race condition, и трудно-уловимые ошибки, по этому всегда используйте atomic_db_query

Кнопки вы можете нажать после ручной модерации заявки — ну т.е. вы посмотрели, что деньги к вам на счет реально поступили, и только после этого нажали на кнопку, которая запустит механизм для завершения документооборота. Так же можно, например создать механизм subscription , который позволит информировать подписавшихся пользователей на обновления курсов, например:

Это довольно удобно, ведь телеграм всегда под рукой, особенно после разблокировки . 24/7 все, кто находятся в приватной группе, смогут получать информационные сообщения, а так же управлять состоянием документов:

Настройка production

Нужно все это барахло завернуть в докер, настроить системный даемон для запуска юнита, в идеале конечно настроить CI-CD, но это все наверное уже детали.

В базовом варианте можно деплоится через гит, использовать переменные окружения для чтения конфигов, использовать ipython для проведения миграций в бд:

Нужно уметь использовать настраивать nginx , и понимать, как работает mod_rewrite .

Кстати для добавления вашего обменника в мониторинги, вам понадобится xml выгрузки файла курсов, так что этот rewrite вам может еще пригодится.

Наверное вы захотите сделать какую-то админку — для этого отлично сгодится механизм Basic Auth и bootstrap admin template . Вам останется только пробросить в шаблоны необходимый контекст и немного поиграть с контролами:

Послевкусие

Это все сложновато, но в тоже время и не очень, если не наступать на грабли, которые, надо сказать, присутствуют. Не забывайте о JWT , SSL , CORS , и еще куче прелестей, которые по пути обязательно появятся у вас на пути. Но в целом это рабочая схема автоматизации механизмов, которые могут пригодится не только при создании обменника. Я не претендую на роль эксперта в этом деле, я лишь высказываю свои умозаключения, после довольно трудоемкого процесса прохождения через все вышесказанное. Не стоит принимать буквально — многое является весьма субъективным и не претендует на роль аксиомы. Я бы сказал бОльшая часть. Но под лежачий камень вода не течет, и лучшее решение на сегодня — это развитие и движение дальше.

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

Дальнейшие развитие позиционируется как p2p платформа для совершения обмена. Буду рад любым вопросам и предложениям, и большое спасибо за потраченное время.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *