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
Initialize genesis shard state based on root block height #80
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
qcgg
force-pushed
the
shard
branch
3 times, most recently
from
September 13, 2018 04:16
fded46c
to
380b18e
Compare
LGTM, just skimmed over |
shard is only created and handled by slave when the root block reaches the required height in GENESIS. Until then the slave doesn't do anything with the shard. |
Belgarion
pushed a commit
to Belgarion/pyquarkchain_cuda
that referenced
this pull request
Sep 8, 2020
) SlaveServer will create Shard object upon receiving the root block matching the ROOT_HEIGHT in the shard GENESIS config. The new shard will only start receiving other shards' minor block headers after receiving root block with height (GENESIS.ROOT_HEIGHT + 1) which includes the genesis block header of the new shard and thus will update the block gas limit on the source shard for throttling xshard transactions. When looking up CrossShardTransactionList by minor block hash ignore the minor blocks whose hash_prev_root_block height is <= GENESIS.ROOT_HEIGHT. This is safe because only minor blocks referring to root block height > GENESIS.ROOT_HEIGHT could have xshard transacstions targetting this shard as the block gas limit for throtlling xshard transactions is updated through the root block. When recovering ShardState from db only recover root blocks with height >= GENESIS.ROOT_HEIGHT. * Initialize genesis shard state based on root block height * Support GENESIS.ROOT_HEIGHT > 0 and GENESIS=None * Remove GenesisManager.finalize_config * Fix TransactionGenerator * Only broadcast xshard tx list to initialized shards * Check minor block headers in root block must start from genesis * Add unittest for creating shard at non-zero root height * Remove GenesisManager.finalize_config
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#60
SlaveServer will create Shard object upon receiving the root block matching the ROOT_HEIGHT in the shard GENESIS config.
The new shard will only start receiving other shards' minor block headers after receiving root block with height (GENESIS.ROOT_HEIGHT + 1) which includes the genesis block header of the new shard and thus will update the block gas limit on the source shard for throttling xshard transactions.
When looking up CrossShardTransactionList by minor block hash ignore the minor blocks whose hash_prev_root_block height is <= GENESIS.ROOT_HEIGHT. This is safe because only minor blocks referring to root block height > GENESIS.ROOT_HEIGHT could have xshard transacstions targetting this shard as the block gas limit for throtlling xshard transactions is updated through the root block.
When recovering ShardState from db only recover root blocks with height >= GENESIS.ROOT_HEIGHT.