Можно выбрать любой не занятый.
И так же можно поставить несколько серверов, просто входящий трафик будет делиться на всех? А если 1 или 2 заполнены, данные пойдут на следующие?
Принцип простой - когда выбираются узлы, они фильтруются по подсети /24. То есть для одного сегмента может быть выбран только один узел из всех за одной подсетью.
Таким образом достигается децентрализация - кусочки одного сегмента никогда не окажутся в одном месте.
Каждый новый узел должен быть проверен. Пока он проверяется, он может получать только 5% от потенциального трафика, пока не будет проверен. Чтобы пройти проверку на одном сателлите он должен пройти 100 аудитов. Для одного узла это занимает не меньше месяца.
В случае нескольких узлов в одной подсети, срок проверки может быть во столько же раз дольше, сколько узлов в этой подсети.
Поэтому лучше запускать следующий когда предыдущий почти заполнен или хотя бы проверен. Тогда проверка не будет занимать вечность.
Для понимания как загружаются файлы в сеть:
Аудиты:
Выбор узлов: node-selection.md
Алексей, а если так: на компе внешний жесткий диск и я хочу просто его подменить? грубо говоря на такой же только большего объема? Просто подключаю по юсби и копирую вручную? и просто пути меняю?
Да, всё верно. Я рекомендую использовать robocopy, потому что:
- его можно запускать, пока узел работает;
- он копирует разницу, а не всё подряд.
Но нужно запускать несколько раз, потому что узел будет продолжать менять данные, пока работает.
И потом ещё один финальный запуск после остановки исходного узла. Желательно отключить службу, чтобы внезапное обновление или перезагрузка не запустила его обратно.
То есть будет что то похожее?:
robocopy d:\storagenode \N:\storagenode\ /MIR
Скорее так:
robocopy d:\storagenode N:\storagenode\storage /MIR
Я добавил дополнительную папку storage, которую вы потом и будете указывать в качестве папки с данными.
Это сделано для совместимости с docker версией, если надумаете использовать её.
Windows GUI использует указанный путь, а docker версия дописывает к нему storage.
Так что при переходе на docker вы будете указывать путь N:\storagenode, а storage он додумает сам. Это спасёт от дисквалификации в будущем, если вы про это забудете (docker версия создаст папку storage, если её не будет
, но она будет пустой, а с точки зрения сателлита это будет означать, что все данные потеряны).
В Windows GUI вы будете указывать прямой путь, то есть N:\storagenode\storage
K 4em ne nravitsa to 4to u tebja stoit? u menja na takom po 5-6 nodov Windows GUI rabotaju.
1 disk 1 node
Думаю, что из-за этого:
u menja stoit v bolshoi komnate 4 takih i rabotaet o4en tiho, nado vsego lish pomenjat ventiljatory na tihije, stoit o4en djoshevo. U etih korpusov est bolshoi pljus v vide filtrov, tak kak node rabotaet 24/7 to bez filtrov vnutri stanovitsa bystro o4en grjazno i stradaet ohlazhdenie noda. Hotja esli tolko 1 disk ispolzujetsa, to kone4no raspberry budet namnogo bolee ekonomnym reshenijem po potrebleniju elektri4estva i shuma.
Alexey, а если я просто меняю жесткий на компе под виндой gui, делаю robocopy d:\storagenode e:\storagenode /MIR повторяю пока разница не будет маленькой, стопаю storj командой net stop storagenode, потом повторяю robocopy d:\storagenode e:\storagenode /MIR, после убираю физически старый диск, присваиваю ему D:\ и все?
Просто делал все с помощью freefilesync во время работы ноды, синхронизировал только где даные, потом отключал ноду доставал винты и досинхронил на другой машине, после новый винт ставил и нода не заводилась…
Здравствуйте @Sarumanvar,
Добро пожаловать на форум!
Да, можно как вы описали. Иногда Windows не даёт просто так поменять имя диска, так что возможно проще поменять его в config.yaml с помощью текстового редактора Notepad++ (не используйте обычный Notepad, он меняет кодировку).
robocopy это проверенное надёжное решение. storagenode после копирования работает нормально, главное - не забыть сделать синхронизацию когда исходный узел остановлен, при этом должны удалиться wal файлы на узле назначения и досинхронизироваться базы данных.
Ещё момент - начиная с версии 1.11.1 база данных orders.db параллельно пишется в файлы на диске (это папка orders). Она создаётся там, где расположен файл конфигурации. В docker версии это в папке с данными, а в Windows GUI - в "C:\Program Files\Storj\Storage Node".
Так что необходимо синхронизировать и эту папку тоже (актуально для разных ПК или при переустановке).
Спасибо, у меня решилось просто переустановкой с параметром update:), видимо в таком случае он сам находит orders.db и копирует в папку где установлена прога.
Всем добрый день!
Алексей, я хочу перейти с Windows GUI на Windows с Docker. Папку “orders” переносить с “C:\Program Files\Storj\Storage Node” на "D:\Storj\ надо?
Да.
А данные Windows GUI должны быть в папке D:\Storj\storage
То есть если в config.yaml было storage.path: D:\Storj\, то данные из папки D:\Storj\ сначала надо перенести в подпапку storage.
Можно так (PowerShell):
mv D:\Storj D:\storage
mkdir D:\Storj\
mv D:\storage D:\Storj\
А потом уже переносить orders
И версию Docker desktop нужно 2.1.0.5, остальные глючные.
Алексей, вечный вопрос о переносе ноды на другой ПК (с Windows, без докера)
А именно поясните более подробно пункт 7 (этого мини руководства) - установка ноды на новом железе.
- При установке через инсталятор *.msi в диалоговом режиме он спрашивает данные и формирует таким образом config файл. Что указывать когда он спросит identity ? Ведь, если запустится нода на новом железе c копией identity ноды со старого ПК это будет фатальная ошибка.
- Потом инсталятор спрашивает расположение данных. Если ему указать папку куда скопировал все данные со старой ноды, то к концу инсталяции он начинает эту папку размечать (создавать подкаталоги) и возникают ошибки что эти подпапки уже существуют (у меня ругался на подпапку trash) и установка прекращается.
- Указание размера свободного места, таже боль - данные уже перенесены и там нет по его мнению свободного места для нормальной работы новой ноды и инстяляция прекращается.
Как правильно установить ноду на новом ПК в контексте задачи что данные со старой ноды уже на этом ПК ? Я видел на гитхабе просто файл storagenode.exe для windows, может быть его можно скопировать и зарегистрировать службу в ручную, имея готовый конфиг файл ?
Обычно рекомендуется закрыть порты на роутере, чтобы нода не вышла онлайн.
Если это сделать, то можно использовать оригинальную identity, если нет, тогда надо сгенерировать временную:
./identity create identity --difficulty 1 --identity-dir X:\storagenode1
В результате в папке X:\storagenode1 появится папка identity с файлами этой identity. Её и указать инсталлятору. Ну а потом заменить на оригинальную когда всё готово.
Однако это всё не требуется, если вы сначала данные мигрируете и identity, остановите старую, сделаете финальный синк и только потом уже будете устанавливать новый узел на новом месте с уже переданными данными, и он сразу выйдет онлайн со своими данными и своей identity.
Установщик может отказаться ставить, если в данных будет защитный файл trash\.trash-uses-day-dirs-indicator, его нужно просто удалить. Он также откажется ставить, если в папке "C:\Program Files\Storj\Storage Node" окажется config.yaml, если он там есть, его тоже нужно удалить. Это меры от случайной некорректной установки.
Это интересный вопрос. Вам временно нужен диск, где есть 500GB свободного места. Тогда:
- Сгенерировать временную identity
- Указать при установке на временную identity и на этот временный диск
- После установки остановить узел и отредактировать
config.yamlна использование настоящего расположения identity и её данных.
Если временного диска нет, можно использовать виртуальный, надо в Disk Management создать Dynamic Virtual Disk размером 600GB, подключить его и отформатировать, его потом использовать как временный диск для данных. После перенастройки узла на корректные пути, этот диск отключить и удалить дисковый файл.
так тоже можно, из cmd.exe от Administrator:
sc create storagenode binPath= "\"C:\Program Files\Storj\Storage Node\storagenode.exe\" run --config-dir \"C:\Program Files\Storj\Storage Node\\"" start= auto
Но вам ещё надо зарегистрировать storagenode-updater
sc create storagenode-updater binPath= "\"C:\Program Files\Storj\Storage Node\storagenode-updater.exe\" run --config-dir \"C:\Program Files\Storj\Storage Node\\" --binary-location \"C:\Program Files\Storj\Storage Node\storagenode.exe\" --service-name storagenode" start= auto
Спасибо за развернутый ответ! Особенно за информацию о том файле в подпапке trash