Skip to content
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

Slot state transition with virtual skip block #241

Merged
merged 24 commits into from Dec 6, 2018
Merged

Conversation

djrtwo
Copy link
Contributor

@djrtwo djrtwo commented Dec 6, 2018

A modified version of #234 that uses a "virtual" skip block instead of inserting an actual skip block into the chain. This proposal removes the "opaque-ness" of dealing with previously unknown hashes of skip blocks.

There might be minor bugs that I'll fix after some initial review/thought if we decide to go with this proposal

@hwwhww
Copy link
Contributor

hwwhww commented Dec 6, 2018

So the skip block only has two meaningful fields:

  1. slot
  2. ancestor_hashes

If skip_block is True:

  • Don’t process

    1. Proposer signature
    2. Attestations
    3. PoW receipt root
    4. Special objects
  • Process
    2. Some RANDAO
    3. Most per-epoch processing
    4. Verify block.state_root (state root processing, post-state-transition)

For readability, maybe in the per-slot transaction chapter, we can add a section “processing skip block” that contains all description of "the procedure of processing skip slot per-slot", and then we can jump to per-epoch chapter earlier.

specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
@JustinDrake
Copy link
Collaborator

I think no skip blocks are the way forward 👍. (Technically the two approaches are probably equivalent because previous_proposal_hash can be provided at the network layer and the client can make it progress with an appropriate number of skip blocks to check it's consistent with previous_block_hash.)

Because there's no more BeaconBlock object I would call it a skip slot (as opposed to a skip block).

Feel free to close #234. (@hwwhww has made comments there which could be cherry-picked.)

This was referenced Dec 6, 2018
@djrtwo djrtwo changed the base branch from JustinDrake-patch-3 to master December 6, 2018 15:08
specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
specs/core/0_beacon-chain.md Show resolved Hide resolved
specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
specs/core/0_beacon-chain.md Outdated Show resolved Hide resolved
@JustinDrake JustinDrake mentioned this pull request Dec 6, 2018
8 tasks
@djrtwo djrtwo merged commit 39f0030 into master Dec 6, 2018
@djrtwo djrtwo deleted the virtual-skip-block branch December 6, 2018 22:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants