RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/radiofan/communication/blockchain_everyone.html

Блокчейн для всех

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

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

Майнинг (добыча) - это способ заработка на криптовалюте.

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

Не секрет, что сеть Интернет подконтрольна определённым структурам, а так как дата-центры расположены не в России, то можно сказать, ещё и отдельным странам. Возможно ли разместить информацию в Интернете и быть уверенным, что
она не пропадёт по какой-либо причине или прихоти владельцев сервера? Да! И в этом поможет новомодная технология - блокчейн.

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

Многие криптоплатформы содержат в своей структуре возможность размещать дополнительную информацию, а некоторые - и хороший интерфейс для доступа к ней. Emercoin - одна из самых развитых платформ в плане использования дополнительных данных в различных сервисах. Ссылка Helpful information из программы Font-G Code.exe ведёт по адресу https://explorer. emercoin.com/dpo/dipforradio на небольшую информационную страничку. Эта страничка как раз и размещена в блокчейне Emercoin. Для пользователей она открывается в браузерах по вышеуказанному адресу. А децентрализация означает то, что эта страничка находится не на каком-то одном сервере неизвестно какой страны, а на сотнях тысячах компьютеров пользователей по всему миру. Информация в блокчейне - значит, у всех! У всех, кто пользуется этой системой. Убедиться в этом можно, скачав кошелёк Emercoin Core на сайте https://emercoin.com/ru для этой платформы. Уверяю вас, после синхронизации кошелька с блокчейном платформы та информация, что отображается на сайте Emercoin, например, по адресу https://explorer.emercoin.com/dpo/dipforradio, окажется на вашем компьютере помимо вашей воли. Увидеть её можно даже без доступа к сети Интернет! Для этого пройдите по вкладкам кошелька "Помощь"=>"Окно отладки"=>"Консоль" (рис. 1), введите в консоли кошелька строку name_show dpo: dipforradio и нажмите ввод на клавиатуре. Просмотр записей в блокчейне Emercoin этим способом возможен даже с нулевым балансом кошелька.

Окно отладки

Рис. 1. Окно отладки

 

В отличие от блокчейна, например самой популярной криптовалюты - биткоина, где также можно разместить дополнительную информацию, в Emercoin эту информацию можно редактировать. Как же так? Ведь по своему устройству блокчейн функционирует так, что уже размещённая информация никогда не удаляется и не редактируется. Всё просто: при редактировании NVS записи производится не перезапись блока в блокчейне, а запись нового блока. Старые записи доступны командой вида name_history dpo:dipforradio в консоли кошелька. Ну, а "привязана" новая информация к той же NVS записи и к тому же адресу в сети Интернет.

Кроме нескольких сотых долей цента майнерам за первоначальное размещение, никакой платы за содержание этой информации не взимается. Смешная плата за независимость, не правда ли?

В этом простейшем варианте размещения информации в блокчейне Emer-coin есть и недостатки. Размер размещаемой информации в одной записи NVS - всего 20 Кб. Структура записей должна быть "ключ-значение". Графику в простейшем варианте можно визуально вывести на страничке только масштабом, предлагаемым платформой, к тому же графические файлы размещаются на сторонних сервисах. Верхний блок из "шапки" обозревателя к размещаемой информации вряд ли подойдёт (разве что если эта информация про саму платформу Emercoin). Ну, и самое главное. Хоть обозреватели блок-чейна и размещены по нескольким адресам https://explorer.emercoin.com, https://explorer1.emercoin.com и https://explorer2.emercoin.com, но ограничить или прекратить доступ к ним возможно, что противоречит объявленному в начале статьи принципу децентрализации.

Обойти эти ограничения и недостатки удалось созданием специальных программ. Получился целый программный комплекс, позволяющий размещать информацию в блокчейне, извлекать её и демонстрировать на экране в удобочитаемом виде либо в виде, задуманном инициатором размещения. Разрабатывался этот программный комплекс и проверялась его работоспособность на операционных системах Windows? и Windows10. Для корректной работы программ необходимо выполнить ряд первоначальных настроек. В первую очередь необходим запущенный на компьютере пользователя кошелёк Emercoin. Для чего скачайте установочный файл на сайте https:// emercoin.com/ru, который инсталлирует кошелёк Emercoin на ваш компьютер. На момент написания статьи это файл emercoin-0.7.10-win64-setup. exe, доступный кликом по кнопке "скачать кошелёк" в правом верхнем углу сайта (рис. 2).

Emercoin-0.7.10

Рис. 2. Emercoin-0.7.10

 

После запуска необходимо подождать, пока кошелёк синхронизируется с сетью, т. е. закачается весь блокчейн Emercoin. Эта процедура может занять продолжительное время (рис. 3), но зато, как уже отмечалось выше, извлекать данные можно будет даже без подключения к сети Интернет, а баланс кошелька при этом не имеет значения и может быть нулевым.

Рис. 3.

 

Подготовим кошелёк Emercoin к работе с data_from_blocks_console.exe и Whole_of_parts.exe. Если ваш кошелёк Emercoin в данный момент запущен, выйдите из него через меню (Файл>Выход).

Войдите в папку кошелька (в Windows это: C:Users<ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ>AppDataRoaming EmerCoin) и создайте файл конфигурации с именем emercoin.conf. (Возможно, возникнут трудности с поиском файла emercoin.conf, но это потому, что папка AppData в системе, как правило, скрыта).

Активируйте в параметрах папок на вкладке "Вид" пункт "Показывать скрытые файлы, папки и диски", чтобы скрытые папки были видны (рис. 4).

Параметры папок

Рис. 4. Параметры папок

 

Для удобства сначала создайте текстовый файл с именем emercoin.txt, а затем переименуйте его после редактирования. В файле emercoin.conf напишите следующие строки:

listen=1

server=1

rpcallowip=127.0.0.1

rpcport=6662 rpcuser=emccoinrpc rpcpassword=secret_password

Для rpcpassword вы должны выбрать надёжный случайный пароль.

Программу emercoin-cli.exe из папки C:Program FilesEmercoindaemon скопируйте в ту же папку, где находятся программы data_from_blocks_console. exe и Whole_of_parts.exe. Запустите кошелёк, подождите синхронизации и сверните его. Если ваш кошелёк зашифрован, разблокируйте его, кликнув значок замка в правом нижнем углу программы и введя пароль своего кошелька.

Это все настройки, необходимые для просмотра информации из блокчейна Emercoin и добавления в него.

Консольная программа data_from_ blocks_console.exe забирает размещённые в блокчейне определённым образом данные (о формате размещения данных чуть ниже) из записей NVS, "сшивает" их и сохраняет полученный файл на компьютере пользователя. С программой data_from_blocks_console. exe можно работать в режиме командной строки, а для удобства, как пример для этой программы, я подготовил программу Whole_of_parts.exe с визуальным интерфейсом. Получился своеобразный браузер, осуществляющий сёрфинг по блокчейну Emercoin и показывающий данные из него.

При запуске программы Whole_of_ parts.exe в её адресной строке уже введено имя NVS записи wop:start. Под этой записью в блокчейне Emercoin размещена тестовая картинка-заставка (глобус с логотипом), которая при правильных настройках откроется сразу в окне программы Whole_of_parts.exe посередине (рис. 5).

Тестовая картинка-заставка

Рис. 5. Тестовая картинка-заставка

 

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

Размещать данные в блокчейне несложно. Файл, который требуется записать в блокчейн, надо конвертировать в формат BASE64 и разделить на части размером не больше 20 Кб. Для этой цели я приготовил специальную программу base64_part_console.exe в консольном варианте и base64_ part.exe с визуальным интерфейсом (рис. 6). Части разбитого файла после применения программы находятся в папке part.

Рис. 6.

 

Затем приступаем к внесению этих частей в блокчейн. Открываем кошелёк и находим в кошельке вкладку Manage Names (1 на рис. 7).

Рис. 7.

 

Вкладка заполняется так. Для примера я разместил в блокчейне файл картинки Hello_world.jpg под именем wop:Hello_world.

Вводим новое имя в поле Name, любое в английской раскладке без пробелов (2 на рис. 7). В поле Value (3 на рис. 7) копируем строку части в формате BASE64 - это текст одного файла part-хххх из папки part.

В правом верхнем углу вместо значения days выбираем years (4 на рис. 7), т. е. меняем дни на годы и ставим любую цифру (5 на рис. 7). Эти данные означают срок действия имени (срок аренды записи). Впоследствии его можно будет продлить, но имя должно быть активным, не истёкшим, если вы планируете изменять запись или передавать её другому владельцу.

Далее нажимают на кнопку Submit (отправить) (6 на рис. 7).

После нажатия появится окно. Программа вас спросит: "Уверены ли вы в том, что хотите создать запись, и готовы ли потратить 0,003 ЕМС?".

Нажимаете на кнопку Yes. Внизу появится информация о созданной записи. Таким образом, под разными именами в блокчейн вносятся все части разбитого файла. У меня файл Hello_world.jpg разделился программой base 64_part. exe (см. рис. 6) на четыре части.

Поэтому и записей пришлось вносить четыре: Hello_world-0, Hello_world-1, Hello_world-2 и Hello_ world-3.

Заключительный этап - это размещение заголовочной записи. Имя этой записи может быть любым (1 на рис. 8), но опять же без пробелов. Это имя как раз и вводится в программе Whole_of_ parts.exe в качестве адреса. В этой записи указаны имена всех частей по порядку разделения и имя результирующего файла (2 на рис. 8), под которым собранный файл и будет сохранён в папке result на компьютере пользователя.

Рис. 8.

 

Если имя заголовочной записи начать с wop:, что не обязательно, но это будет хорошим тоном, в дальнейшем это облегчит поиск адресов проекта и добавит некоторые удобные опции при использовании программы Whole_of_parts.exe.

Записи в блокчейне появляются не сразу. Так называемое подтверждение может занять промежуток времени даже в несколько десятков минут. Статус записи виден во вкладке кошелька "Транзакции" (рис. 9). А также по адресу https://explorer.emercoin.com/ nvs/ можно узнать, внесена ли ваша запись в блокчейн.

Рис. 9.

 

Если всё выполнено правильно, то, введя в адресной строке программы Whole_of_ parts.exe имя заголовочной записи и нажав на кнопку Start, можно наблюдать, как файл извлечётся из блокчейна на ваш компьютер. В чёрном поле программы отображаются все появившиеся в папке файлы. Графические файлы, выделенные в этом поле вывода, открываются в виде миниатюр справа от него. Открыть скачанные файлы можно, перейдя в папку result, или двойным кликом в чёрном поле вывода. Обязан напомнить - разместить в блокчейне можно файлы любого формата и не исключено, что это могут быть зловредные программы. Поэтому, если это не ваши файлы, то подумайте, прежде чем открыть их. Именно поэтому в программе Whole_of_parts.exe автоматически открываются только картинки.

Очищается папка result кликом по кнопке Clear.

В правой части программы открывается поле с дополнительной информацией, если она внесена. А этой информацией может быть любой текст, ссылки на веб-страницы или ссылки на записи wop:. В последнем случае при клике по ссылке она "отработает" в текущей программе - это как раз и есть та функция программы, упомянутая выше и работающая при использовании имён заголовочных записей с префиксом wop:.
Дополнительная информация у записи wop:Hello_world - wop:Hello_ World.html (рис. 10).

Рис. 10.

 

Это ссылка на другую wop-запись, и если её кликнуть, то из блокчейна загрузится html-файл Hello_World.html. Он отобразится в окне программы только в чёрном поле вывода в виде названия файла, и чтобы его открыть, надо два раза кликнуть в этом поле, откроется окно диалога выбора, в котором и выбирают искомый файл (рис. 11).

Рис. 11.

 

Дополнительная информация доступна в log-файлах из папки log. А чтобы внести её в блокчейн, достаточно в любой части перед строкой в BASE64 записать строку с этой информацией. Я занёс её в запись Hello_ world-0 (рис. 12).

Рис. 12.

 

Строка дополнительной информации должна быть без пробелов и без переносов. Пробелы, если они необходимы, можно заменить знаком "_".

Упомянутые в статье программы находятся здесь.

Автор: Ю. Шомников, пгт Верховье Орловской обл.