You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When initializing an identity that has already published ATXs before using the go-spacemesh node the initialization process will select the incorrect Commitment ATX for the identity causing the node to create invalid PoSTs which might cause a node to publish a ATXs that will cause equivocation if distributed verification is enabled.
Steps to reproduce
Create an identity and wait until publishes at least one ATX - take note of the commitment ATX that was used to initialize PoST (in postdata_metadata.json)
Delete everything in the /data directory except the identities folder
Wait for the node to be in sync and start initializing PoST again
Actual Behavior
The node initialized the second time with a different commitment ATX than the first time
Expected Behavior
The used commitment ATX should be the same for the second PoST init as for the first.
Additional Info
After starting the node waits to be in sync before it starts the activation.PostSupervisor that uses activation.PostSetupManager to start initializing PoST. The commitment ATX that is used for initialization is determined here:
If the code works correctly it should pick the same commitmentATX as was used for the first initialization, but in at least one system test this was not the case after the node was restarted by k8s (and thereby reset all its state except the key of the identity): See for example here - https://grafana.spacemesh.dev/goto/rpK7V7WNg?orgId=1
Description
When initializing an identity that has already published ATXs before using the go-spacemesh node the initialization process will select the incorrect Commitment ATX for the identity causing the node to create invalid PoSTs which might cause a node to publish a ATXs that will cause equivocation if distributed verification is enabled.
Steps to reproduce
postdata_metadata.json
)/data
directory except theidentities
folderActual Behavior
The node initialized the second time with a different commitment ATX than the first time
Expected Behavior
The used commitment ATX should be the same for the second PoST init as for the first.
Additional Info
After starting the node waits to be in sync before it starts the
activation.PostSupervisor
that usesactivation.PostSetupManager
to start initializing PoST. The commitment ATX that is used for initialization is determined here:go-spacemesh/activation/post.go
Lines 373 to 397 in d30d5fb
If the code works correctly it should pick the same commitmentATX as was used for the first initialization, but in at least one system test this was not the case after the node was restarted by k8s (and thereby reset all its state except the key of the identity): See for example here - https://grafana.spacemesh.dev/goto/rpK7V7WNg?orgId=1
The text was updated successfully, but these errors were encountered: