Я установил время генерации блоков на 15 секунд, но блоки генерируются со скоростью 1 блок в минуту (средняя)

Я сделал форк Litcoin 0.8v, чтобы сделать свою собственную монету (для целей обучения) с некоторыми изменениями в параметрах:

1. Total no of coins to be mined = 270,000,000. 
2. Block formation time = 15sec. 
3. Time for halving = 2 years. 
4. Life span for mining = 20 years. 
5. Mining reward coins per block for first 2 years = 32.16899445. 
6. Total no of coins to be mined in first 2 years = 135264187.8669276

Все работает нормально, но время генерации блоков кажется слишком медленным. Хотя время подтверждения 15 секунд - это просто среднее значение, но в моем случае я получаю подтверждение каждые 2-3 минуты, что намного превышает ожидаемое.

Редактировать: я установил как можно более низкую сложность, которая составляет около 0,002, а время перенацеливания установлено на 10 минут, но даже после 3 дней майнинга я получил где-то около 3400 блоков, а также его сложность одинакова в каждом блоке. хотя я делаю количество транзакций внутри узлов.

{
    "version" : 80705,
    "protocolversion" : 70002,
    "walletversion" : 60000,
    "balance" : 17474.98800000,
    "blocks" : 3407,
    "timeoffset" : 0,
    "connections" : 2,
    "proxy" : "",
    "difficulty" : 0.00024414,
    "testnet" : false,
    "keypoololdest" : 1516853983,
    "keypoolsize" : 102,
    "paytxfee" : 0.00000000,
    "mininput" : 0.00001000,
    "errors" : ""
}
Сколько блоков вы на самом деле добыли? Возможно, вы даже не столкнулись с проблемой ретаргетинга.
это результат 3 дней майнинга с 4 узлами: { "версия": 80705, "версия протокола": 70002, "версия кошелька": 60000, "баланс": 17474.98800000, "блоки": 3325, "смещение времени": 0, «connections»: 2, «proxy»: «», «difficulty»: 0.00024414, «testnet»: false, «keypoololdest»: 1516853983, «keypoolsize»: 102, «paytxfee»: 0.00000000, «mininput»: 0.00001000, « ошибки" : "" } @MeshCollider

Ответы (1)

Изменение только времени генерации целевого блока не означает, что средний интервал блока будет таким же. Интервал блокировки определяется целью Proof of Work, и существует ограничение на то, какой может быть эта цель. Если вы не увеличите предел этой цели, то цель не сможет увеличиться до точки, где ваши блоки добываются с той скоростью, с которой вы хотите, чтобы они добывались. Вам нужно увеличить свой целевой лимит (его можно найти в chainparams.cppи называется powLimit), чтобы блоки можно было найти быстрее.

спасибо @andrewChow за помощь. Во всем проекте нет файла с именем chainparams.cpp и переменной с именем powLimit. Возможно, вы использовали разные версии кода. PS: я сделал форк на Litecoin 0.8.
Почему вы сделали форк такой старой версии?
это была моя ошибка. Думаю, мне нужно переключиться на другую версию. Можете ли вы посоветовать мне, какую версию я должен выбрать? И почему старая версия не рекомендуется? @Эндрю Чоу
Вы должны использовать последнюю версию. Старые версии уязвимы для многих атак и имеют проблемы с производительностью. Не говоря уже о том, что зависимости, которые они используют, также устарели и претерпели множество изменений, включая исправления безопасности.