Running more than 20 production blockchains, SKALED is Ethereum-compatible, high performance C++ Proof-of-Stake client, tools and libraries. Uses SKALE consensus as a blockchain consensus core. Includes dynamic Oracle. Implements file storage and retrieval as an EVM extension.
Describe the bug
Skaled sign blocks with the actual node groups (latest) but checks the incoming blocks through the catchup with timestamp root.
To avoid signing for the not actual keys set, you need to add checks into the skaled.
If the timestamp of the latest group is null and rotation is in progress, check the finish_ts of the previous group.
If the finish_ts of the previous group are bigger than the actual timestamp - use the earlier keys for a sign.
Preconditions
Ative schain medium type
17 nodes with 1 ETH on the balance
Versions
skalenetwork/schain:3.19.1
To Reproduce
Run node exit on the node A
wait for the DKG completed
run skale node update on the staying node B
check skaled logs
Expected behavior
Config is regenerated during the update, Skaled uses valid keys from actual node_group to sign the blocks and continue mining blocks without any errors.
Actual state
Skaled on updated node sign blocks with the new node group, when blocks should be sign with the previous node_group's keys
Describe the bug Skaled sign blocks with the actual node groups (latest) but checks the incoming blocks through the catchup with timestamp root. To avoid signing for the not actual keys set, you need to add checks into the skaled. If the timestamp of the latest group is null and rotation is in progress, check the finish_ts of the previous group. If the finish_ts of the previous group are bigger than the actual timestamp - use the earlier keys for a sign.
Preconditions Ative schain medium type 17 nodes with 1 ETH on the balance
Versions skalenetwork/schain:3.19.1
To Reproduce
skale node update
on the staying node BExpected behavior Config is regenerated during the update, Skaled uses valid keys from actual node_group to sign the blocks and continue mining blocks without any errors.
Actual state Skaled on updated node sign blocks with the new node group, when blocks should be sign with the previous node_group's keys
logs
from updated node