This repository has been archived by the owner on Dec 26, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Self-healing #46
Comments
15 tasks
This was referenced May 1, 2021
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 17, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 18, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 18, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 19, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 20, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 20, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 20, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 20, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 20, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 20, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 20, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 21, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 21, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 21, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 21, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 22, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 22, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 22, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 22, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 22, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 22, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 22, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 23, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 23, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 23, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 23, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 23, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 23, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 23, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
bors bot
pushed a commit
to spacemeshos/go-spacemesh
that referenced
this issue
Aug 26, 2021
## Motivation See spacemeshos/SMIPS#46 Requires #2394, #2393, #2357 Closes #2203 Closes #2687 ## Changes - adds zdist param: whereas hdist is the "Hare lookback" distance (the number of layers for which we consider hare results/local input vector rather than global opinion), zdist is the "Hare result wait" distance (the number of layers we're willing to wait for Hare to finish before reverting to invalidating layers with no input vector) - Hare explicitly reports failed CPs to the mesh, with the results stored in memory ## Test Plan TBD ## TODO <!-- This section should be removed when all items are complete --> - [x] Explain motivation or link existing issue(s) - [x] Test changes and document test plan - [x] Finish rescoring block goodness after healing - [x] Rescoring block unit test - [x] Block voting weight unit test - [x] Make sure healing -> verifying tortoise handoff is working - [x] App test (for decay in active set size) - [x] Split-then-rejoin test (two way split, three way split w/o majority fork) - [x] Late blocks unit test(s) - [x] Correctly weight votes from blocks with late atxs/those with a bad beacon value (will follow up in separate issue: #2540) - [x] Multi tortoise unit tests ## DevOps Notes <!-- Please uncheck these items as applicable to make DevOps aware of changes that may affect releases --> - [x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources) - [x] This PR does not affect public APIs - [x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.) - [ ] This PR does not make changes to log messages (which monitoring infrastructure may rely on)
implemented |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Overview
This SMIP is a proposal to fully implement self-healing on top of the existing consensus code (Hare, verifying Tortoise). Self-healing is a critical part of the core Spacemesh consensus protocol.
Goals and motivation
Self-healing allows the network to recover from any state that results from a temporary violation of our assumptions, once our assumptions once again hold. In general, we want self-healing to only be triggered when absolutely necessary, to run as quickly and efficiently as possible (i.e., consume the minimum required resources and return to "non-healing mode" as quickly as possible), and be as transparent as possible to users and node operators.
High-level design
In "ordinary" (non-healing) mode, Hare successfully produces results for each layer, the block builder uses the Hare output to calculate the votes for each newly created block (by selecting a base block and adding a list of exceptions), and verifying Tortoise validates complete layers on the basis that a. the total weight of the votes of blocks in
hdist
following layers ("global opinion") exceeds a confidence threshold, b. does not disagree with the Hare output ("input vector"), and c. does not contain an "abstain" vote for any blocks in that layer (in practice, "abstain" votes are only ever for an entire layer, and only while waiting for Hare to finish for that layer). Ordinarily, the output of the Hare always agrees with the global opinion on each block, and Hare always finishes on time, so verifying Tortoise always succeeds in verifying new layers quickly.While waiting for Hare to finish running for a given layer, all nodes explicitly abstain from voting on that layer (i.e., on all of its blocks), and verifying Tortoise won't verify the layer. If Hare fails for a layer, all nodes explicitly vote against all blocks in that layer, and the layer is verified without any blocks (i.e., any blocks it contains should be marked contextually invalid, and the layer is deemed empty).
If the global opinion on a block differs from the input vector, then the verifying tortoise effectively fails and gets stuck since the assumptions it relies on have failed. This is the scenario where self-healing needs to be triggered.
Proposed implementation
We introduce a new parameter,
zdist
, which is the distance (in layers) that a node will wait for Hare results before giving up. Verifying Tortoise is considered to have failed when it is unable to verify a layer older thanzdist
+n
layers, wheren
is a parameter that specifies the amount of time (in layers), after a node has established its opinion on a layer (either based on the Hare output, or the fact that Hare failed/timed out), after which all nodes should have full confidence about a layer and be able to verify it.When the verifying Tortoise fails, it triggers the "slow" (full, vote counting) Tortoise for the interval from the last verified layer to the failed layer. Unlike the verifying Tortoise, which only counts the votes of blocks it considers "good" (i.e., those whose votes agree with the local opinion), the slow Tortoise counts all votes in all blocks and does not rely upon the input vector at all. The opinion of the slow Tortoise is definitive: if it contradicts the verifying Tortoise (on the contextual validity of a given block), it effectively rewrites history, which will require a state reversion (akin to a reorg).
When block builder constructs new blocks, for recent layers for which Hare results are available, it votes according to the Hare results. For layers up to
zdist
for which Hare results are unavailable but may still become available later (i.e., Hare is still running for those layers, and has not failed), it abstains. For layers older thanzdist
, it explicitly votes against all blocks in the layer (i.e., it votes for an empty layer).We also introduce a new vector,
tortoiseOpinion
, which stores the most up to date opinion on every block. These opinions are stored as net values, where positive values indicate support, negative values indicate opposition and zero means neutral/abstain. This vector is updated every time verifying Tortoise or slow Tortoise runs. For blocks up tohdist
layers back, block builder votes according to the logic above: based on Hare results, or for an empty layer if Hare has failed/timed out. For blocks older thanhdist
, it always votes according totortoiseOpinion
. In the case where the net opinion on a block does not exceed the threshold (either for or against), it votes according to the weak coin for that layer (i.e., the layer of the block being constructed) instead.Implementation plan
hdist
, then check the Tortoise-maintained opinion vector after that.Questions
zdist
layers) due to a temporary violation of assumptions, self-healing should not be necessary since Hare will start working again once assumptions hold again. For instance, if the synchrony assumption is temporarily violated and many Hare messages arrive late, Hare may fail for several layers, but Hare will begin working again when synchrony is restored. In the interim, newly-created blocks will vote neutral while they wait for Hare results for the interim layers. If Hare fails for a long while (>zdist
layers), the block builder will give up waiting for Hare results for older layers and will begin to vote for empty layers. This will cause any blocks in those layers to be marked contextually invalid and their transactions to be dropped, but verifying Tortoise should still be able to verify these layers. When assumptions are restored, once again, Hare should begin working again and blocks and transactions will be validated once more. (Note: There is presently a circular dependency, since the Hare beacon relies upon the Hare output for a previous "safe layer", but this is temporary and will go away once the Tortoise beacon is working. Then Hare will rely only upon Tortoise.) Answer: Even with Hare termination certification, there could still be disagreement due to violation of assumptions (e.g., short-term dishonest majority). In most cases, self-healing should not be required for Hare to begin working again, but it theoretically could be.hdist
layers, i.e., until we know for sure that Hare has failed for this layer for good? Answer: Waitzdist
layers, plus an additional buffer (a period of time that a node is willing to wait for global opinion to be established before verifying a layer). If, after this point, verification fails, then self-healing must run.zdist
the vote must "resolve" into either support or against.tortoiseOpinion
vector, which is effectively just a sum of all the rows in the matrix.hdist
layers back, it uses the Hare result for voting, as described above. Further back than this, it votes on the basis oftortoiseOpinion
, using the weak coin when the margin is too close.Dependencies and interactions
Stakeholders and reviewers
TBD
Testing and performance
TBD
Note that the slow Tortoise is, well, slow and inefficient. There are several proposals for ways to make it more efficient. One option is to add encoding checkpoints.
The text was updated successfully, but these errors were encountered: