-
Notifications
You must be signed in to change notification settings - Fork 95
Block Header Binary Encoding
defined in Chainweb.BlockHeader
Size | Bytes | Value |
---|---|---|
8 | 0-7 | nonce |
8 | 8-15 | time |
32 | 16-47 | parent |
110 | 48-157 | adjacents |
32 | 158-189 | target |
32 | 190-221 | payload |
4 | 222-225 | chain |
32 | 226-257 | weight |
8 | 258-265 | height |
4 | 266-269 | version |
8 | 270-277 | epoch start |
8 | 278-285 | flags |
32 | 286-317 | hash |
total: 318 bytes
Adjacent Parents Record (length 3):
Bytes | Value |
---|---|
0-1 | length |
2-107 | adjacents |
total: 110 bytes
Adjacent Parent:
Bytes | Value |
---|---|
0-3 | chain |
4-35 | hash |
total: 36 bytes
POW related values:
Arithmetic operations and comparisons on parent
, target
, weight
, and hash
interpret the value as unsigned 256 bit integral numbers in little endian encoding.
Time Stamps:
time
and epoch start
are a little endian twoth complement encoded integral numbers that counts SI microseconds since POSIX epoch. These numbers are always positive (highest bit is 0).
Numbers:
-
height
is a little endian encoded unsigned integral 64 bit number. -
length
is a little endian encoded unsigned integral 16 bit number.
Version:
version
identifies the chainweb version. It is a 32 bit value in little endian encoding.
Values up to 0x0000FFFF are reserved for production versions (which includes Development
and testnets).
value | version |
---|---|
0x00000001 | Development |
0x00000004 | Testnet02 |
Other:
-
nonce
is any sequence of 8 bytes that is only compared for equality. -
chain
is any sequence of 4 bytes that identifies a chain and can be compared for equality. -
payload
is any sequence of 32 bytes that is a cryptographic hash of the payload associated with the block and can be compared for equality. -
flags
are eight bytes of value 0x0 that are reserved for future use.
The work bytes received the /miner/work
endpoint is slightly different than the above header format. These headers do not include the blockhash, instead prefixing the header above (without hash) with chain id and hash target bytes.
Defined in Chainweb.Miner.Core
Size | Bytes | Value |
---|---|---|
4 | 0-3 | chain |
32 | 4-35 | hash-target |
8 | 8-15 | time |
32 | 16-47 | parent |
110 | 48-157 | adjacents |
32 | 158-189 | target |
32 | 190-221 | payload |
4 | 222-225 | chain |
32 | 226-257 | weight |
8 | 258-265 | height |
4 | 266-269 | version |
8 | 270-277 | epoch start |
8 | 278-285 | flags |
32 | 286-317 | target |
total: 322 bytes