Ethereum Classic на Raspberry Pi — EthereumClassic

ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

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

Представьте, что устройства IoT защищает сеть, которая не подвергается хардфоркам для внесения нестандартных изменений, так как она сама находится под защитой надежного сообщества. Это обязанность заложена в ETC и IoT.

Я начал изучать возможности IoT с ETC и для этого решил создать собственный проект. Это руководство состоит из нескольких частей. В нем содержатся мои практические рекомендации относительно IoT, ETC и всего, что связано с Raspberry.

Первая часть посвящена настройке Raspberry Pi и запуску на нем кросс-скомпилированной версии Parity для сети Classic. Parity — очень популярный клиент Ethereum Virtual Machine (EVM), который может работать в нескольких сетях, таких как ETC и ETH.

Требования к оборудованию

ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Raspberry Pi 3 Model B

Для этого проекта понадобится следующее оборудование:

  1. Raspberry Pi 3 Model B;
  2. карта Micro SD;
  3. картридер с поддержкой Micro SD;
  4. сетевой кабель;
  5. источник питания с разъемом Micro USB.

Настраивать Raspberry Pi мы будем без использования USB-клавиатур, мониторов или других устройств. Мы настроим его так, чтобы при запуске можно было напрямую подключаться к нему по SSH. Вы должны уметь работать с командной строкой. Если не умеете, то моих указаний и команд должно быть достаточно для того, чтобы вы могли самостоятельно разобраться в этом вопросе.

Настраивать Raspberry Pi мы будем с помощью OS X. О настройке с использованием других операционных систем можно узнать в соответствующих руководствах из документации по Raspberry Pi.

Настройка Raspberry Pi

  • Сначала нужно скачать образ Raspbian. Это операционная система Raspberry Pi. Для скачивания подходит версия Lite. Здесь используется Mac OS X, но на сайте также доступны руководства для Windows и Linux.

ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

  • Теперь нужно отформатировать карту micro SD. Для этого ее следует подключить к компьютеру. В моем случае это ноутбук с OS X. Сначала вставьте карту в картридер, как показано ниже. Затем подключите его к ноутбуку.

1549546806 461 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Вставьте карту micro SD в картридер

1549546806 826 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Вставьте картридер в ноутбук
  • На Mac для форматирования используется программа «Дисковая утилита» (Disk Utility). Откройте ее и найдите пустую карту micro SD под названием RASPBERRYPI, как показано ниже.

1549546806 518 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

«Дисковая утилита» на Mac
  • Затем нажмите кнопку «Стереть» (Erase) и выберете формат MS-DOS, как показано ниже. Далее, подтвердите выбор, нажав «Стереть».

1549546806 440 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Переформатирование карты micro SD
  • Теперь карта переформатирована. Пришло время загрузить на нее образ Raspbian. На всех ОС для загрузки образа на карту лучше всего использовать Etcher.
  • Разархивируйте файл Raspbian Lite, который скачали ранее. Для этого можно использовать популярные архиваторы: 7-Zip (Windows), Unarchiver (Mac) и Unzip (Linux).
  • В результате вы получите файл Raspbian с расширением .img, который будете загружать на карту micro SD.
  • Установите и запустите Etcher. Выберете распакованный образ, а затем карту micro SD, как показано ниже.

1549546806 622 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Загрузка образа на карту micro SD с помощью Etcher
  • Далее, нажмите Flash!, чтобы загрузить образ.

1549546807 78 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Raspbian загружается на карту micro SD

Готово, вы загрузили образ Raspbian на карту micro SD!

Настройка подключения по SSH

Вы загрузили образ, и теперь нужно подготовить его для настройки беспроводной сети и подключения по SSH. На Mac я буду использовать командную строку для связи с Raspberry Pi и Vim — для любых изменений кода и имплементаций. Но вы можете использовать любую IDE, которая вам нравится.

  • Используйте терминал, чтобы найти директорию boot на карте micro SD. На Mac она находится здесь:

cd /Volumes/boot

Так вы попадете в директорию boot образа Raspbian. В ней нужно создать пустой файл с именем ssh. При первом запуске Raspbian на Raspberry Pi система будет искать файл с именем ssh в директории boot, чтобы установить подключение по SSH. Подробнее об этом можно узнать здесь.

Чтобы записать файл в эту директорию, выполните следующую команду:

touch ssh

Она создаст внутри директории boot пустой файл с именем ssh, который Raspbian будет использовать при запуске.

Установка Raspbian

Теперь перейдем к более интересной части и установим Raspbian на Raspberry Pi.

Безопасно извлеките карту micro SD из компьютера и вытащите ее из картридера. Вставьте карту в Raspberry Pi, как показано ниже.

1549546807 738 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Вставьте карту micro SD в Raspberry Pi

Подключите кабель Ethernet к Raspberry Pi, как показано ниже.

1549546807 923 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Подключите кабель Ethernet к Raspberry Pi

После этого подключите источник питания с помощью кабеля micro USB.

1549546808 556 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Подключение источника питания micro USB к Raspberry Pi

Светодиодный индикатор начнет мигать. Это значит, что устройство включено.

Пока идет установка, попробуем найти IP-адрес, который использует Raspberry Pi.

Подключение к Raspberry Pi

Чтобы узнать IP-адрес Raspberry Pi без монитора, необходимо войти в систему маршрутизатора по его IP-адресу.

В OS X сначала нужно нажать «Сеть» (Network) в «Системных настройках» (System Preferences), а затем «Дополнительно» (Advanced), как показано на рисунке ниже (сетевые имена и IP-адрес размыты).

1549546808 857 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Теперь нажмите пункт TCP/IP, который покажет IPv4 и адрес маршрутизатора. Для доступа к маршрутизатору нам понадобится его адрес и, вероятно, имя пользователя и пароль. Обычно они указаны на наклейке самого маршрутизатора.

Введите IP-адрес в браузере, перейдите по нему и войдите в систему маршрутизатора. Здесь вы найдете список клиентов, подключенных к нему. Списки могут различаться в зависимости от типа маршрутизатора. Ниже показан мой список, и в нем есть устройство Raspberry Pi вместе с IP-адресом. Адрес локальный и в моем случае, вероятно, всегда будет начинаться с 192.168.X.Y. Помните об этом. Адрес понадобится для настройки подключения по SSH в вашей системе.

1549546808 887 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Мой адрес Raspberry Pi — 192.168.0.6. Исходное имя пользователя для Raspbian — pi, а исходный пароль — raspberry. Они нужны для входа в систему.

Чтобы подключиться к Raspberry Pi, выполните в терминале следующую команду:

$ ssh pi@IPADDRESS

IPADDRESS в моем случае — это 192.168.0.6. У вас будет свой адрес.

Когда система запросит пароль, введите raspberry. После этого соединение с Raspberry Pi по SSH должно быть установлено. Оболочка явно укажет на это:

pi@raspberrypi:~ $

Обратите внимание, что новое имя оболочки — pi@raspberrypi. Это означает, что вы успешно подключились к Raspberry Pi по SSH!

Теперь можно настроить Raspberry Pi, выполнив следующую команду:

sudo raspi-config

Она вызовет меню, в котором можно настроить параметры. Мы настроим беспроводную сеть, так как это Raspberry Pi 3 Model B. Учтите, что не все модели поддерживают беспроводную связь.

Сначала выберите «Параметры сети» (Network Options), а затем Wi-Fi. При первом запуске Raspbian OS спросит, в какой стране вы находитесь. Это необходимо для целей регулирования. После этого она запросит SSID, который служит именем вашей сети. Кодовая фраза — это пароль к вашей сети WI-FI. После этого беспроводное соединение должно быть готово к использованию. Подробнее о беспроводной связи можно узнать здесь.

Компиляция Parity для Raspberry Pi

1549546808 70 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Логотип Docker

Чтобы выполнить этот шаг, мы локально скомпилируем файл на ноутбуке вместо того, чтобы использовать ресурсы на Raspberry Pi. Проще безопасно перенести скомпилированный двоичный файл Parity на Raspberry Pi.

Исходный код можно найти в этом репозитории Github, о котором мы и поговорим.

Dockerfile показан ниже.

FROM debian:latest

RUN apt-get update && apt-get install -y --no-install-recommends 
    build-essential 
    ca-certificates 
    cmake 
    curl 
    git 
    pkg-config 
    gcc-arm-linux-gnueabihf 
    g++-arm-linux-gnueabihf 
    libc6-dev-armhf-cross 
    && rm -rf 
    /var/lib/apt/lists/*

RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > 
        /etc/apt/sources.list.d/deb-src.list 
    && dpkg --add-architecture armhf 
    && apt-get update 
    && apt-get install -y 
        libssl-dev:armhf 
        libc6-dev:armhf 
    && rm -rf 
      /var/lib/apt/lists/*

ENV USER=root
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --verbose
ENV PATH=/root/.cargo/bin:$PATH

ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc 
    CC_armv7_unknown_linux_gnueabihf="/usr/bin/arm-linux-gnueabihf-gcc" 
    CXX_armv7_unknown_linux_gnueabihf="/usr/bin/arm-linux-gnueabihf-g++" 
    CROSS_COMPILE="1" 
    OPENSSL_INCLUDE_DIR="/usr/include/arm-linux-gnueabihf" 
    OPENSSL_LIB_DIR="/usr/lib/arm-linux-gnueabihf"

RUN /root/.cargo/bin/rustup target add armv7-unknown-linux-gnueabihf
    
RUN dpkg --add-architecture armhf && 
    apt-get update && 
    apt-get install -y libudev-dev:armhf

RUN git clone https://github.com/paritytech/parity-ethereum.git && cd parity-ethereum && 
    cargo build --target=armv7-unknown-linux-gnueabihf --release

CMD ./parity-ethereum/target/armv7-unknown-linux-gnueabihf/release/parity

EXPOSE 8080 8545 8180
ENTRYPOINT ["/parity-ethereum/target/armv7-unknown-linux-gnueabihf/release/parity"]

В качестве среды ОС, необходимой для кросс-компиляции Parity, здесь используется Debian (лучшая из когда-либо созданных ОС). Если вы заметили, в файле прописаны строки для компиляции под целевые платформы armv7, заданные для Rust, gcc и g++. Если вы не понимаете содержимого файла, не беспокойтесь. Для кросс-компиляции это не нужно, так как Docker сделает все за вас, а вы просто получите двоичный файл. Я оставил его, скорее, для тех, кому интересно.

Сначала нужно установить Docker, который мы будем использовать для компиляции Parity. Мы не можем локально скомпилировать Parity без Docker, потому что нас интересует архитектура ARM (armv7) на Raspberry Pi, на которой будет работать Parity.

Например, двоичный файл, скомпилированный под архитектуру AMD, то есть X86, не будет работать на архитектуре ARM. Поэтому необходима кросс-компиляция. Раньше разработчики Parity выпускали двоичные файлы под архитектуру ARM при выходе новой версии. Но недавно они перестали ее поддерживать, поэтому я создал собственный файл Docker, показанный ранее.

После установки Docker на компьютер можно начинать.

Чтобы получить образ, запустите следующую команду:

$ git clone https://github.com/YazzyYaz/parity-arm.git
$ cd parity-arm

Теперь вы находитесь в директории parity-arm, которая содержит Dockerfile. Его мы скомпилируем для Parity.

Чтобы создать образ для кросс-компиляции, выполните следующую команду:

$ docker build -t yazanator90:parity-arm .

Она создаст образ для Parity. Процесс сборки займет некоторое время, поэтому можно пока пообедать или позвонить любимому человеку.

Как только все будет готово, выполните следующие команды:

$ docker run -d —name parity-arm yazanator90:parity-arm

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

$ docker start parity-arm
$ docker ps
$ docker cp parity-arm:/parity-ethereum/target/armv7-unknown-linux-gnueabihf/release/parity parity-arm
$ docker stop parity-arm
$ docker rm parity-arm

Так вы удалите созданный образ, но в текущей директории останется скомпилированный двоичный файл с именем parity-arm. Чтобы проверить это, выполните следующую команду:

$ ls
parity-arm
Dockerfile
README.md
LICENSE

Теперь обратите внимание на созданный файл с именем parity-arm. Это двоичный файл, который нужно скопировать на Raspberry Pi.

Запуск Parity на Raspberry Pi

Теперь запустим Parity!

Сначала убедитесь, что вы подключены к Raspberry Pi по SSH. Об этом я писал ранее. Подключившись по SSH к терминалу, откройте новое окно, которое будете использовать для SCP (аббр. от Secure-Copy). SCP  — это протокол, который позволяет использовать SSH для защищенной передачи файлов между компьютерами.

Перейдите в директорию parity-arm, в которой находится скомпилированный двоичный файл, и запустите следующую команду, чтобы перенести Parity на Raspberry Pi с использованием SCP:

$ cd
$ scp -r parity-arm pi@IPADDRESS:~/

Так вы скопируете весь каталог в папку $HOME на Raspberry Pi, которая находится в ~ /.

Теперь перейдем к Raspberry Pi и запустим Parity.

В окне Raspberry Pi, к которому вы подключены по SSH, введите следующее:

$ cd ~/
$ ls
parity-arm/

Команда покажет директорию parity-arm, которую вы скопировали. Теперь запустим блокчейн Ethereum Classic с использованием Parity! Пришло время поддержать нашу неизменную сеть с помощью этого великолепного маленького устройства.

Перейдите в директорию parity-arm:

pi@raspberrypi:~ $ cd parity-arm/

Прежде чем запустить Parity, нужно узнать текущий IP-адрес. Это необходимо, чтобы указать Parity внешний IP-адрес, иначе он будет применять локальный адрес, выданный маршрутизатором. Локальный IP-адрес нельзя обнаружить за пределами домашней сети. Поэтому, чтобы Parity мог связываться через интернет с другими нодами, нужно предоставить IP-адрес нашей системы.

Его можно получить на этом сайте. Этот IP внутри следующей команды называется extip. Замените EXTIP в приведенной ниже команде на свой IP.

Чтобы создать экземпляр Parity для классической цепочки, используйте следующую команду:

pi@raspberrypi:~/parity-arm $ ./parity-arm —chain=classic —light —nat extip:EXTIP

Таким образом вы установите Parity для цепочки classic, то есть запустите ноду ETC. Учитывая, что мы работаем с Raspberry Pi, чтобы не занимать много места на карте, команда запускает легкий клиент. Команда —nat сообщает Parity, что его нода подключена к указанному EXTIP, который вы получили с сайта.

1549546808 307 ethereum classic na raspberry pi ethereumclassic - Ethereum Classic на Raspberry Pi — EthereumClassic

Запуск Parity на Raspberry Pi

Взгляните! Теперь у вас есть Parity на Raspberry Pi для ETC. Пришло время его синхронизировать. Оставьте устройство включенным и позвольте Parity сделать всю сложную работу. На этом все.

Источник

Рубрики:Новичкам, ETC, эфир

Источник

Зацените вот что

1_3yesksubwd0kxzukm_rvca

Гид по экономике рынков Augur — EthereumClassic

Новые пользователи часто не сразу понимают, как производятся выплаты на рынках Augur, в том числе …

Как запомнить seed-фразу биткойн-кошелька за три дня — EthereumClassic

Как запомнить seed-фразу биткойн-кошелька за три дня — EthereumClassic

Seed-фраза (или “мнемоническая фраза”) представляет собой список слов, который генерирует секретные ключи для детерминированного кошелька. …

proof-of-work-vs.-proof-of-stake

Proof-of-Stake и ошибочные предположения разработчиков — EthereumClassic

Сегодня алгоритм Proof-of-Stake (PoS) очень популярен. На нем основаны Ethereum Casper, Cardano Ouroboros и т. д. …

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