mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-29 18:53:32 +00:00
Update database and block replayer to handle payload envelopes (#8886)
Closes: - https://github.com/sigp/lighthouse/issues/8869 - Update `BlockReplayer` to support replay of execution payload envelopes. - Update `HotColdDB` to load payload envelopes and feed them to the `BlockReplayer` for both hot + cold states. However the cold DB code is not fully working yet (see: https://github.com/sigp/lighthouse/issues/8958). - Add `StatePayloadStatus` to allow callers to specify whether they want a state with a payload applied, or not. - Fix the state cache to key by `StatePayloadStatus`. - Lots of fixes to block production and block processing regarding state management. - Initial test harness support for producing+processing Gloas blocks+envelopes - A few new tests to cover Gloas DB operations Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com> Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu> Co-Authored-By: Michael Sproul <michael@sigmaprime.io> Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com> Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
This commit is contained in:
@@ -77,6 +77,11 @@ pub fn partial_state_advance<E: EthSpec>(
|
||||
// (all-zeros) state root.
|
||||
let mut initial_state_root = Some(if state.slot() > state.latest_block_header().slot {
|
||||
state_root_opt.unwrap_or_else(Hash256::zero)
|
||||
} else if state.slot() == state.latest_block_header().slot
|
||||
&& !state.latest_block_header().state_root.is_zero()
|
||||
{
|
||||
// Post-Gloas Full state case.
|
||||
state.latest_block_header().state_root
|
||||
} else {
|
||||
state_root_opt.ok_or(Error::StateRootNotProvided)?
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user