Skip to content
IceRootDocs

Milestones

A milestone activates network rules at a specified block height. Looking up the correct rule set for a height allows validation and replay to use the same configuration.

The current heartwood-crypto implementation merges and validates milestone configuration when it is loaded. Rules are then selected by height.

Milestone handling is covered by differential vectors, including accepted and rejected configuration files and transaction rules at a selected height.

An integration should not apply today’s parameters to every historical transaction. A rule affecting rewards, fees, or transaction acceptance may belong to a particular activation interval.

When reporting a validation result, retain:

  • The network identity.
  • The block height.
  • The configuration or milestone revision.
  • The exact record being checked.

The differential harness takes its configuration from the vector set. A vector may explicitly supply its own milestones to exercise a boundary or rejection case.

When changing a rule, check the heights before, at, and after activation. Keep the reference and Rust subject on the same configuration so a mismatch describes implementation behavior rather than different inputs.

Future protocol stages can use explicit activation rules, but the post-quantum, finality, and native-asset stages require their own specified transitions. Do not infer an activation schedule from the product roadmap.