Внешний майнер
Внешний майнинг отделяет поиск nonce для PoW от ноды. Мемпул, выбор транзакций,
переход State, доказательство HistoryStep, шаблон и ретрансляция блока
по-прежнему принадлежат ноде.
Внешний вычислитель не получает ни тело блока, ни свидетель, необходимый для построения доказательства.
Локальный вычислитель
Создайте защищённый файл с токеном и используйте его для ноды и вычислителя:
umask 077
openssl rand -hex 32 > ~/.parano1d/mining.key
parano1d --mode extminer --mining-key-file ~/.parano1d/mining.key
В другом терминале:
parano1d-miner \
--rpc http://127.0.0.1:9601 \
--key-file ~/.parano1d/mining.key
Локальные клиенты без Origin могут не передавать Authorization через loopback, чтобы GUI и CLI сохраняли полные локальные права без пароля. Передавайте --key-file внешнему майнеру, даже если он работает локально, тогда его запросы получат только mining-права. Нативный локальный процесс, который намеренно не передаёт ключ, считается доверенным локальным процессом владельца. Старые формы --mining-key TOKEN и --key TOKEN сохранены для совместимости, но их значения видны в аргументах процесса. На Unix файл ключа должен принадлежать текущему пользователю и быть недоступен группе и остальным.
При необходимости ограничьте число потоков:
parano1d-miner --key-file ~/.parano1d/mining.key --threads 8
Удалённый вычислитель
Не передавайте незашифрованный токен доступа напрямую через интернет. RPC-сервер поддерживает только HTTP и отклоняет переключение на WebSocket.
Разместите вычислитель и ноду в аутентифицированной приватной сети либо используйте TLS-терминацию и ограничивайте доступ на обратном прокси. Открывайте RPC только после настройки защищённого транспорта:
parano1d \
--mode extminer \
--rpc-listen 0.0.0.0:9601 \
--mining-key-file /secure/parano1d-mining.key
Межсетевой экран должен пропускать порт только от нужных вычислителей или прокси.
Выплата
По умолчанию шаблоны используют адрес выплаты, настроенный на ноде. Для соло-майнинга это самый безопасный режим.
Чтобы разрешить вычислителю запрашивать собственную выплату, оператор должен явно включить эту возможность:
parano1d \
--mode extminer \
--mining-key-file ~/.parano1d/mining.key \
--allow-custom-coinbase
Тогда вычислитель может передать:
parano1d-miner \
--key-file ~/.parano1d/mining.key \
--coinbase o1...
Пользовательский адрес меняет только выплату, зафиксированную до построения доказательства. Сам доказанный шаблон вычислитель изменить не может.
Mining-токен разрешает только getBlockTemplate и submitBlock. Он не может
вызывать методы кошелька, управления нодой или общие информационные методы.
Отдельный хост оператора пула
Пул, у которого учёт и выплаты выполняются отдельно от ноды кошелька, может настроить второй независимый токен:
umask 077
openssl rand -hex 32 > /secure/parano1d-operator.key
parano1d \
--mode node \
--rpc-listen 0.0.0.0:9601 \
--operator-key-file /secure/parano1d-operator.key
Operator-токен разрешает ограниченные запросы учёта, поиск и проверку транзакций и чеков, расчёт комиссии и выплаты, walletSend, точную консолидацию кошелька и отправку внешней авторизованной транзакции. Точный список приведён в разделе Аутентификация JSON-RPC. Токен не может получать или отправлять майнинговые шаблоны, останавливать ноду, сканировать кошелёк, обнаруживать или менять адреса, перечислять неограниченную историю или UTXO и вызывать методы вне списка. Mining-токен и operator-токен должны различаться.
Если один демон обслуживает майнинг и операции пула, запустите его в режиме extminer и передайте два разных файла. Отдельному демону кошелька нужен только operator-токен, а нодам доказательства нужен только mining-токен.
walletSend даёт право расходовать средства. Межсетевой экран должен разрешать доступ только хосту учёта, а соединение должно проходить через VPN либо аутентифицированный TLS или SSH-туннель. HTTP listener ноды не шифрует Bearer-токены.
Жизненный цикл шаблона
getBlockTemplate возвращает непрозрачный одноразовый ID, 16-полевое
расписание PoW, индекс nonce и целевое значение. Вычислитель перебирает
случайные независимые
диапазоны nonce и вызывает submitBlock ровно с 16 байтами nonce в
порядке от младшего байта к старшему (little-endian).
Срок действия шаблона — 30 секунд. Он также становится недействительным при смене канонической вершины, успешной отправке или отмене нодой. Устаревший результат нормален: после интервала опроса вычислитель запрашивает новый шаблон.
Диагностика
Выполните:
parano1d-miner --check-hardware
Если запросы не проходят:
401 Unauthorizedозначает отсутствие или несовпадение токена;- ошибка пользовательского адреса выплаты означает, что нода не разрешила этот адрес;
- постоянное устаревание шаблонов обычно связано с новыми вершинами либо слишком долгим построением доказательства;
- отсутствие шаблона означает, что нода не синхронизирована, не имеет кворума
пиров или запущена не в режиме
extminer.