Как развернуть ethereum ноду для тестов смартконтрактов
В сети уже много перепостов на тему «Где взять полную ноду к ethereum смарт-контракту для тестов». Все они либо предлагают развернуть локальную ноду, либо копируют официальную инструкцию и не решают проблемы. Публичные ноды, например infura не позволяют полноценно проводить тесты, например функция personal_unlockAccount ей не поддерживается.
Цель данной публикации, популяризация криптовалют, это действительно просто.
Сегодня мы создадим ноду на локальном компьютере под Windows 7, доступную из с любого компьютера в сети интернет.
Итак, поехали.
Допустим, у меня ноутбук, который работает через WiFi роутер, провайдер Билайн. Первым делом нужно получить у провайдера статический IP адрес, это несложно в личном кабинете
Заходим в личный кабинет билайн, раздел Услуги -> Домашний интернет.
Выбираем услугу «Фиксированный IP-адрес», стоит она на сегодня 150 рублей в месяц. Включаем ее.
Теперь у вас есть постоянный адрес в интернете, который закреплён за вашим логином.
Далее, поскольку у нас ноутбук, который работает через WiFi роутер, нам нужно, чтобы к нему можно было подключиться с с любого компьютера в интернете, иначе зачем нам все это. Для этого нам нужно сделать, так называемый проброс портов.
Для этого нам нужно добавить немного изменений в настройки своего роутера.
Для начала нам нужно узнать MAC-адрес нашего компьютера. Для этого переходим выбираем сетевое подключение (возле часов внизу экрана справа), правой кнопкой выбираем Состояние -> Сведения, копируем свойство Физический адрес — это MAC-адрес компьютера.
После этого в браузере в строке поиска нужно ввести адрес роутера, а потом логин и пароль доступа. Эти данные обычно пишутся на наклейке на задней крышке роутера. Например для роутера TP-LINK они выглядят они примерно так: адрес 192.168.0.1 логин: admin, пароль: admin.
После того как мы вошли в панель управления роутером, нам нужно привязать MAC-адрес компьютера к внутреннему IP адресу нашей маленькой домашней сети. Для этого нужно перейти в раздел DHCP -> Резервирование адресов и нажать кнопку добавить новую и вставить MAC-адрес и внутренний IP адрес, который мы резервируем, например 192.168.0.100.
После чего нам нужно будет сделать проброс портов. Для этого переходим в раздел Переадресация -> Виртуальные Серверы, Жмем кнопку добавить новую.
Указываем
Порт сервиса: 8545
Внутренний порт: 8545
IP-адрес: 192.168.0.100 (зарезервированный адрес за этим компьютером)
Протокол: Все
Состояние: Включено
Далее идем на вкладку Безопасность -> Настройки базовой защиты -> Межсетевой экран — Выключить.
Теперь качаем клиент Geth сети Ethereum для Windows с официального сайта и устанавливаем его.
Открываем командную строку (кнопка Win+R -> cmd)
В командной строке вводим следующий текст
geth --testnet --rpc --rpcaddr "192.168.0.100" --rpccorsdomain "*" --rpcapi "admin,debug,shh,txpool,personal,eth,net,web3"
Поясню по командам
geth — запуск это программы, остальные штуки будут параметрами
--testnet — запуск ноды в тестовой среде Ropsten, если параметр опустить, то будет качаться полная нода рабочей сети, для тестов не рекомендую, ибо весит она на сегодняшний день порядка 170 гигабайт в мелких файлах и все транзакции в ней стоят денег.
--rpc — позволяет работать со смартконтрактами
-rpcaddr «192.168.0.100» — адрес нашей ноды
--rpccorsdomain "*" — позволяет обращаться к функциям со сторонних сайтов
--rpcapi «admin,debug,shh,txpool,personal,eth,net,web3» — доступные методы
Все возможные команды для Geth можно посмотреть введя в командной строке
geth --help
После выполненных процедур при тестировании смартконтрактов вы сможете обращаться к своей ноде по адресу вида 111.222.333.444:8545