-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cleanup of stategen
package
#10607
Cleanup of stategen
package
#10607
Conversation
Tests fail |
st := s.hotStateCache.getWithoutCopy(blockRoot) | ||
return st |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
st := s.hotStateCache.getWithoutCopy(blockRoot) | |
return st | |
return s.hotStateCache.getWithoutCopy(blockRoot) |
// state is not copied (block batches returned from initial sync are linear). | ||
// It invalidates cache for parent root because pre-state will get mutated. | ||
// | ||
// WARNING: Do not use this method for anything other than initial syncing purpose or block tree is applied. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does it mean "or block tree is applied"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nisdas , can you help me out with a better comment?
// If the slot is on archived point, save the state of that slot to the DB. | ||
for slot := oldFSlot; slot < fSlot; slot++ { | ||
slotLoop: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is with this addition of a goto statement? This is a logic change beyond simple renaming, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1, why are we using goto
here ? Goto statements are avoided unless they are necessary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea was to use a named loop because continue
is very far away from for
. But I agree this is not necessary.
func (e *epochBoundaryState) ByRoot(blockRoot [32]byte) (state.BeaconState, error) { | ||
rsi, ok, err := e.getByRoot(blockRoot) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Go style generally prefers smaller variable names. https://github.com/golang/go/wiki/CodeReviewComments#variable-names
In this case, I would recommend leaving the root as r
because this method is aptly named and very short. It is clear to everyone that r
is a root, although it is not clear what kind of root it is.
Perhaps there is an argument that this method is not aptly named since there is ambiguity around what kind of root it is. My suggestion is to change this to ByBlockRoot(br [32]byte)
then we all know what we are dealing with.
@@ -79,15 +79,15 @@ func (e *epochBoundaryState) ByRoot(r [32]byte) (state.BeaconState, error) { | |||
} | |||
|
|||
// get epoch boundary state by its block root. Returns copied state in state info object if exists. Otherwise returns nil. | |||
func (e *epochBoundaryState) getByRoot(r [32]byte) (*rootStateInfo, bool, error) { | |||
func (e *epochBoundaryState) getByRoot(blockRoot [32]byte) (*rootStateInfo, bool, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment here and all of these ByRoot
methods
} | ||
|
||
// put adds a state to the epoch boundary state cache. This method also trims the | ||
// least recently added state info if the cache size has reached the max cache | ||
// size limit. | ||
func (e *epochBoundaryState) put(r [32]byte, s state.BeaconState) error { | ||
func (e *epochBoundaryState) put(blockRoot [32]byte, s state.BeaconState) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This renaming is good, r
was not clear at all.
@@ -152,11 +152,11 @@ func (e *epochBoundaryState) put(r [32]byte, s state.BeaconState) error { | |||
} | |||
|
|||
// delete the state from the epoch boundary state cache. | |||
func (e *epochBoundaryState) delete(r [32]byte) error { | |||
func (e *epochBoundaryState) delete(blockRoot [32]byte) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here, this was a good renaming as it added context that was not provided by the method name or godoc comment.
* powchain and stategen * revert powchain changes * rename field to blockRootsOfSavedStates * rename params to blockRoot * review feedback * fix loop Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* SubmitBlockSSZ grpc * SubmitBlockSSZ middleware * test fixes * use VersionedUnmarshaller * use VersionedUnmarshaller (cherry picked from commit 7388eeb) * tests * fuzz: Add fuzz tests for sparse merkle trie (#10662) * Add fuzz tests for sparse merkle trie and change HTR signature to return an error * fix capitalization of error message * Add engine timeout values (#10645) * Add timeout values * Update engine_client.go * Update engine_client.go * Update beacon-chain/powchain/engine_client.go Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com> * Update beacon-chain/powchain/engine_client.go Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com> * Update beacon-chain/powchain/engine_client.go Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com> * Update engine_client.go Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com> * Cleanup of `stategen` package (#10607) * powchain and stategen * revert powchain changes * rename field to blockRootsOfSavedStates * rename params to blockRoot * review feedback * fix loop Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Process atts and update head before proposing (#10653) * Process atts and updeate head * Fix ctx * New test and old tests * Update validator_test.go * Update validator_test.go * Update service.go * Rename to UpdateHead * Update receive_attestation.go * Update receive_attestation.go Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Add link to e2e docs in `README` (#10672) * Improve `ReceiveBlock`'s comment (#10671) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Call fcu on invalid payload (#10565) * Starting * remove finalized root * Just call fcu * Review feedbacks * fix one test * Fix conflicts * Update execution_engine_test.go * Add a test for invalid recursive call * Add comprehensive recursive test * dissallow override empty hash Co-authored-by: Potuz <potuz@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Cache and use justified and finalized payload block hash (#10657) * Cache and use justified and finalized payload block hash * Fix tests * Use real byte * Fix conflicts Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * do not export slotFromBlock * simplify tests * grpc * middleware * extract package-level consts * Simplify SSZ handling * fix tests * test fixes * test hack Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com> Co-authored-by: terencechain <terence@prysmaticlabs.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Potuz <potuz@prysmaticlabs.com>
What type of PR is this?
Cleanup
What does this PR do? Why is it needed?
Various cleanup of
stategen
including:root
toblockRoot
in several places for better clarity