What is pre_pow?

I know that the last 4 bytes of it is the secondary scale but what is the rest of it?

It’s the prefix of the header that’s hashed to define the siphash keys, so everything up to and including the nonce. See https://github.com/mimblewimble/grin/blob/0b21ee607aae8f57b424bd3696cfa9c5cab55271/core/src/core/block.rs#L338-L351

1 Like

In very short way: the block header to solve the PoW for including diff and previous block header for example :slight_smile:


does it also have next block’s difficulty or total difficulty? if so how can I get it?

Yes; it’s written in https://github.com/mimblewimble/grin/blob/43bd5a56ff0ac6d6c2010eccac763a837ed7d075/core/src/pow/types.rs#L266-L274

You can get it directly as header.pow.total_difficulty

how to do this “header.pow.total_difficulty” ?

can you please tell the structure of pre_pow like the last 4 bytes is for secondary scale.

Last 8 bytes is nonce and 4 bytes before that is secondary_scale,

see also

1 Like