Я использую Ubuntu 14.04 и запускаю в ней go-ethereum. В папке ~/.ethash/ я вижу, что в начале майнинга создаются два DAG-файла. Первый создается сразу после начала майнинга, а второй через какое-то время. Мне интересно узнать причину этого.
Каждые 30 000 блоков — где 30 000 блоков называются эпохой — создается новый файл DAG. Этот механизм предоставляет алгоритму Ethash что-то новое для работы.
По истечении 30 000 блоков клиенты хотят как можно быстрее переключиться со своей текущей DAG на следующую. Для этого заранее создается следующий файл DAG.
Из документации :
Ethash PoW требователен к памяти, что делает его практически устойчивым к ASIC. В основном это означает, что для вычисления PoW требуется выбрать подмножества фиксированного ресурса, зависящего от одноразового номера и заголовка блока. Этот ресурс (данные размером в несколько гигабайт) называется DAG. DAG полностью меняется каждые 30000 блоков (100-часовое окно, называемое эпохой), и для его создания требуется некоторое время. Поскольку DAG зависит только от высоты блока, его можно предварительно сгенерировать, но если это не так, клиенту нужно дождаться окончания этого процесса, чтобы создать блок.
Если вы хотите предотвратить предварительную генерацию (не понимаю, зачем, но это ваша сеть...), вы можете сделать это в командной строке.
Ричард Хоррокс
Ричард Хоррокс