What is Nostr?
Bitcoiner Post
npub1s54…yt49
2024-09-12 18:40:40
in reply to nevent1q…x2hz

Bitcoiner Post on Nostr: It's a mathematically derived numeric value. It's derived by dividing the maximum ...

It's a mathematically derived numeric value. It's derived by dividing the maximum possible target value by the target for the current block.

Here is the code of the math behind it from source code.
#include <iostream>
#include <cmath>

inline float fast_log(float val)
{
int * const exp_ptr = reinterpret_cast <int *>(&val);
int x = *exp_ptr;
const int log_2 = ((x >> 23) & 255) - 128;
x &= ~(255 << 23);
x += 127 << 23;
*exp_ptr = x;

val = ((-1.0f/3) * val + 2) * val - 2.0f/3;
return ((val + log_2) * 0.69314718f);
}

float difficulty(unsigned int bits)
{
static double max_body = fast_log(0x00ffff), scaland = fast_log(256);
return exp(max_body - fast_log(bits & 0x00ffffff) + scaland * (0x1d - ((bits & 0xff000000) >> 24)));
}

int main()
{
std::cout << difficulty(0x1b0404cb) << std::endl;
return 0;
}
Author Public Key
npub1s54uu0gerthfhp95cme23lwhjwwajj6ly3xzej6ahfvuywdgksaqkqyt49