EtherDelta: как запустить свою собственную децентрализованную биржу криптовалют на локальном компьютере
Начать, думаю, стоит со ссылки на обзор биржи EtherDelta. Если вы ещё не слышали про децентрализованную биржу криптовалют EtherDelta - рекомендую начать знакомство именно с прочтения этой статьи.
Главная особенность EtherDelta - это возможность торгов любыми ERC20 токенами без необходимости листинга этих токенов администрацией биржи. Собственно, вся биржа - это набор смарт-контрактов в сети эфира и именно поэтому там нет центральной администрации, по своему усмотрению выбирающей - какими токенами можно торговать, а какими - нельзя. И именно поэтому EtherDelta пользуется определённой популярностью у пользователей, так как других альтернатив просто нет.
Однако, как и любая другая биржа криптовалют, EtherDelta является очень лакомой приманкой для хакеров, так как любой взлом биржи позволяет украсть средства сразу многих клиентов.
Децентрализованная природа биржи не исключает возможности проведения хакерских атак. И на прошлой неделе одна из таких атак оказалась успешной. Злоумышленники атаковали DNS сервер биржи, в результате чего клиенты, заходившие на биржу по официальному адресу её домена на самом деле попадали на сервер, контролируемый хакерами и при попытке ввода приватных ключей данные об аккаунтах попадали в чужие руки с очевидными последствиями в виде потери всех средств, включая как ETH, так и все остальные токены в кошельке жертвы.
Именно этот взлом побудил меня проанализировать возможность запуска кода биржи на локальном компьютере и я снял подробное видео, как это сделать:
Вообще говоря, локальный запуск EtherDelta имеет несколько преимуществ перед использованием удалённого доступа к бирже:
- Локальная версия работает быстрее - оригинальный сервер биржи etherdelta.com имеет ряд встроенных средств защиты, включая использование технологии CloudFlare для защиты от DDoS. Дополнительная защита и работа под нагрузкой от множества клиентов уменьшают скорость работы биржи, так что локальная копия, очевидно, будет работать быстрее.
- Пользоваться локальным сервером безопаснее - у вас всегда есть уверенность в коде, который вы скачали, проверили и который никто не может изменить, кроме вас. Кроме этого, ваш локальный сервер не будет являться целью хакерских атак, в отличие от основного сервера биржи. И даже если атака на основной сервер будет удачной - вы не пострадаете.
Как видите, есть много преимуществ в установке своей собственной локальной версии биржи EtherDelta. Давайте же перейдём к практической части и я расскажу, что для этого нужно сделать.
Последовательность действий по установке локальной копии EtherDelta
Вообще говоря, запустить EtherDelta у себя на компьютере не сложно. Для этого нужны лишь исходные коды биржи, свой HTTP сервер и пара несложных модификаций в исходных кодах. Но, по порядку.
1. Устанавливаем ваш любимый HTTP сервер для вашей операционной системы. Программное обеспечение в виде HTTP сервера, хотя и не входит в комплект стандартной поставки, но существуют разные варианты таких серверов, работающие под любыми операционными системами. Я предпочитаю использовать Apache2 - вариант этого сервера есть для любых операционных систем. Я использую Ubuntu 16.04 под которой установка HTTP сервера производится одной командой apt-get install apache2
.
2. Скачиваем исходные коды биржи EtherDelta в виде ZIP архива или используя команду git clone https://github.com/etherdelta/etherdelta.github.io.git
в моём случае для сервера под Ubuntu.
3. Распаковываем исходные коды в корневую директорию HTTP сервера или перемещаем в корень сервера файлы, скачанные с помощью git
, так как внутри кодов биржи EtherDelda разработчики использовали абсолютные пути для ссылок.
4. Заменяем три файла в исходных кодах биржи - необходимо выполнить следующий набор команд:
cp index_com.html index.html
cp gntw_com.html gntw.html
cp trades_com.html trades.html
По сути, нужно просто все *html
файлы заменить их версиями с приставкой *_com.html
. По умолчанию в исходных кодах в файлах *html
стоит редирект на основной сайт биржи, а рабочими являются именно версии *_com.html
этих файлов.
Если у вас возникнут затруднения на каком-либо этапе, рекомендую посмотреть прилагаемое видео, где я произвёл всю установку с нуля и которым можно руководствоваться совместно с этой статьёй.
После этих действий вы получите полностью рабочий вариант биржи EtherDelta, функционирующий локально на вашем компьютере. Единственной связью с внешним миром теперь будет коннект к API серверам биржевых котировок. Все остальные действия будут обрабатываться локально на вашем компьютере, что быстрее и безопаснее использования внешнего доступа к бирже EtherDelta.
Так как EtherDelta теперь работает локально, вам необходимо будет вручную следить за обновлениями биржи, особенно в части добавления новых токенов. Для этого достаточно или скачать обновлённый файлmain.json
из директорииconfig
или вручную добавлять туда новые токены, для чего вам нужно знать адрес контракта токена и его разрядность. Структура конфигурационного файла очень простая - там интуитивно понятно как добавлять новые токены.
Если у вас что-то не будет получаться или есть замечания и дополнения к моей инструкции - буду рад вашим комментариям. Удачной торговли на EtherDelta!
Ссылки:
Исходный код биржи EtherDelta на GitHub
Что такое децентрализованная биржа криптовалют EtherDelta - мой видео обзор
Статья на Голосе об особенностях работы с биржей EtherDelta
Удобный просмотр общего баланса всех ERC20 токенов в вашем кошельке и на бирже EtherDelta