nBits -это таргет pos/pow в зависимости от типа блока?
Да, упакованный.
https://en.bitcoin.it/wiki/DifficultyЭта функция в нове выглядит несколько запутанно на первый взгляд.
Верно. В любом случае, она в будущем будет неактуальна.
Что такое nPoWBase?
Это захардкоденный таргет для сложности 1, то есть
0x00000000ffff0000000000000000000000000000000000000000000000000000. Надо будет убрать и заменить на CBigNum переменную.
Нужна она, потому что к трасту PoW блоков мы добавляем PoW сложность, приведенную к целочисленному значению. Для того, чтобы найденным при разной сложности PoW блокам давался разный Trust Score.
Кстати, в абсолютном большинстве "PoW/PoS no premine" (R) TM форков Trust Score для PoW блоков не дифференцируется (всегда возвращается 1), что при отсутствии чекпоинтов открывает возможность сравнительно дешево форкнуть цепочку. Потому что можно создать цепочку, в которой сложность будет в десятки и сотни раз ниже, чем в легитимной.