Криптокошелек в виртуальной машине

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

Где же разместить программу криптокошелек чтобы было удобно с ним работать?

Самым идеальным местом для размещения криптокошелька на продолжительное время является виртуальная машина. 

Виртуальная машина обладает следующими преимуществами:

  1. она изолирована от компьютера, 
  2. её можно запускать когда потребуется, 
  3. она не будет постоянно влиять на работу компьютера,
  4. доступ к ней может быть получен удаленно,
  5. её можно переносить с компьютера на компьютер без необходимости установки драйверов,
  6. можно легко регулировать объем доступных ресурсов.

Криптокошелек размещенный в виртуальной машине получает все преимущества запуска в виртуальной машине а также:

  1. Вы получаете локальную копию блокчейна, которая сама по себе представляет ценность.
  2. Вы получаете файл кошелька. Делайте с ним что хотите. Никакой сервис не может его похитить. Если Интрернет-соединение станет недоступно, ваши деньги всегда с вами.
  3. Вы получаете доступ к API-кошелька. Вы можете создать свой сервис для себя.

​Какая конфигурация должна быть у виртуальной машины?

По состоянию на зиму 2018 года конфигурация должна быть следующая:

  • Жеский диск: от 1ТВ (расчитывается из размеров блокчейнов + ~50% в качестве резерва)
  • Процессор: от 2Ггц от 2 ядер
  • Оперативная память: от 6Гб (от 6Гб на кошелек в случае параллельного запуска)
  • Операционная система: GNU/Linux.
  • Раздел подкачки обязателен.
  • В идеале на каждую программу-кошелек должен выделяться отдельный пользователь чтобы его файлы небыли доступы для других пользователей.

Зачем нужна изоляция файлов программ-кошельков

Изоляция файлов программ-кошельков строго обязательна для кошельков-форков в силу их конфликтов. Кошелек "Bitcoin Cash" (BCH) может перетереть блокчейн "Bitcoin" (BTC) так как используют папку .bitcoin для дранения настроек. Чтобы небыло конфликта кошельки можно разнести по различным виртуальным машинам, а можно разнести просто по разным пользователям. 

Оптимизация потребления памяти

Последовательный запуск

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

Уровень запуска

Также операционную систему можно перевести на загрузку в консоль. Консоль потребляет значительно меньше памяти чем графический сервер X11 или Wayland.

Отключение загрузки графического режима загрузки осуществляется сменой уровня запуска в свежих дистрибутивах Linux под управлением Systemd:

#systemctl enable multi-user.target  
#systemctl set-default multi-user.target  

возвращение графического режима загрузки: 

#systemctl set-default graphical.target

Отладка:

#systemctl get-default 

Чистка файлового кеша

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

#sync; echo 1 > /proc/sys/vm/drop_caches
#sync; echo 2 > /proc/sys/vm/drop_caches
#sync; echo 3 > /proc/sys/vm/drop_caches

Отладка:

#free -m

Так как кеш постоянно создается его требуется регулярно сбрасывать. Для этого вышеуказанные команды добавляем в скрипт. Сам скрипт через планировщик запускаем раз в 10..15 минут.

Можно ли запускать программу-майнер в одной виртуальной машине с программой-кошельком?

Это плохая идея. Исходный код некоторых майнеров закрыт. Лучше не рисковать. Вашу криптовалюту и файл кошелька могут похитить. Майнер в процессе майнинга может занять всю оперативную память.

Нужно ли обслуживать виртуальную машину?

Виртуальная машина с программой-кошельком нуждается в обслуживании:

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