HathorNetwork / hathor-core

Hathor core is the official and reference client for operating a full node in Hathor Network.
https://hathor.network
Apache License 2.0
83 stars 26 forks source link

Feature Activation bit signaling not working on mainnet #986

Closed glevco closed 4 months ago

glevco commented 7 months ago

We recently released version 0.59.0 of hathor-core, including new Feature Activation configurations to perform a test with NOP features on mainnet.

We have information that our miner partners have already updated the full node to the new version, and by default they should be signaling support in recent blocks. However, we haven't observed any signaling from any miner, indicating there's probably a problem with their integration, that is, they have to make some change in their code to correctly propagate the signaling their full node is generating to their blocks.

We must talk to them to understand and help them fix this.

glevco commented 7 months ago

The BlockTemplate is defined as:

class BlockTemplate(NamedTuple):
    versions: set[int]
    reward: int  # reward unit value, 64.00 HTR is 6400
    weight: float  # calculated from the DAA
    timestamp_now: int  # the reference timestamp the template was generated for
    timestamp_min: int  # min valid timestamp
    timestamp_max: int  # max valid timestamp
    parents: list[bytes]  # required parents, will always have a block and at most 2 txs
    parents_any: list[bytes]  # list of extra parents to choose from when there are more options
    height: int  # metadata
    score: float  # metadata
    signal_bits: int  # signal bits for blocks generated from this template

The signal_bits field was recently introduced (during Feature Activation development), so it's likely that the problem is that the miners are not reading this field when building their blocks. We should talk to them and request for them to use this field to generate the first byte of their block.

glevco commented 7 months ago

A PR has been created with a doc to aid miners: https://github.com/HathorNetwork/rfcs/pull/74

glevco commented 4 months ago

This is outdated, signaling is already working on mainnet, miners have updated their integration, and in fact we're already activating a feature in mainnet.