Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
9248cd1
Refactor block building and import in collator service
skunert Apr 3, 2024
70afa25
Remove unused SyncOracle, light reformat
skunert Apr 3, 2024
7e01dca
Add slot-based collator
skunert Apr 3, 2024
08ec3e7
Prepare cumulus test node & runtime
skunert Apr 3, 2024
3848239
Prepare cumulus test node & runtime
skunert Apr 3, 2024
7a057ed
Add zombienet test
skunert Apr 3, 2024
3f4a260
Misc
skunert Apr 3, 2024
c049f50
Nits
skunert Apr 3, 2024
c1c96bc
Remove unused dep, add issues to todos
skunert Apr 3, 2024
7af20a6
Remove unused dep, add issues to todos
skunert Apr 3, 2024
245a11a
Enable "elastic-scaling-experimental" for cumulus test node
skunert Apr 3, 2024
560a907
Adjust parent search to allow for pending blocks with depth > 1
skunert Apr 5, 2024
734bdcb
Merge fixes
skunert Apr 9, 2024
c439d21
Modernize zombienet test:
skunert Apr 11, 2024
fb9f383
Unify core schedule fetching methods
skunert Apr 11, 2024
06f8fc7
Remove overseer_handle from parameters
skunert Apr 11, 2024
cf64247
Improve logging
skunert Apr 11, 2024
aa7fba9
Merge branch 'master' into slot-based-mvp
skunert Apr 12, 2024
44b489f
Do not return potential_parents that are not available locally
skunert Apr 12, 2024
8df558f
Use commong async backing params fetching methods
skunert Apr 16, 2024
7705314
Assign cores during block building
skunert Apr 16, 2024
1553d40
Merge branch 'master' into slot-based-mvp
skunert Apr 16, 2024
f84a6f3
Add more comments, cleanup
skunert Apr 16, 2024
e1a5879
Refactor `find_potential_parent`
skunert Apr 16, 2024
576605b
Merge branch 'master' into slot-based-mvp
skunert Apr 17, 2024
1b184da
Make expected cores work when para slot duration > relay slot duration
skunert Apr 17, 2024
e95e5df
Review comments
skunert Apr 23, 2024
e4edbe4
Extract parent search into module
skunert Apr 23, 2024
53869a0
More code reuse between lookahead and slot-based
skunert Apr 23, 2024
4240cc1
Merge branch 'master' into slot-based-mvp
skunert Apr 23, 2024
c790fb8
fmt
skunert Apr 23, 2024
61be48b
Merge branch 'master' into slot-based-mvp
skunert Apr 25, 2024
a06bf79
Merge branch 'master' into slot-based-mvp
skunert Apr 29, 2024
169479a
Add slot drift for testing
skunert Apr 30, 2024
ac3e9ed
Merge branch 'master' into slot-based-mvp
skunert Apr 30, 2024
6a9955d
Remove duplicate comment
skunert May 6, 2024
9760e81
Expose slot_drift parameter
skunert May 7, 2024
42c0135
Do not assumed fixed slot_duration
skunert May 7, 2024
44bc8e7
Apply suggestions from code review
skunert May 29, 2024
a23d5a9
Address comments
skunert May 29, 2024
07478dc
Remove unused parameters from zombienet
skunert May 29, 2024
15c36a9
Introduce experimental CLI option
skunert May 29, 2024
2c8cc0d
Merge branch 'master' into slot-based-mvp
skunert May 29, 2024
65cdc01
fmt
skunert May 29, 2024
5dcea6c
Adjust zombienet parameter
skunert May 29, 2024
46bd385
Merge branch 'master' into slot-based-mvp
skunert May 31, 2024
27eb643
Remove +1 on velocity
skunert May 31, 2024
99e5741
Reduce number of relay chain fetches
skunert May 31, 2024
944044d
Add comments to `RelayChainCachingFetcher`
skunert Jun 4, 2024
41dba02
More comment adjustments
skunert Jun 4, 2024
33243a2
Merge branch 'master' into slot-based-mvp
skunert Jun 4, 2024
0b061f6
Fix template build
skunert Jun 4, 2024
8be5db4
Apply suggestions from code review
skunert Jun 13, 2024
8e4320d
Merge branch 'master' into slot-based-mvp
skunert Jun 13, 2024
6c97bd1
Merge option in relay chain fetcher
skunert Jun 13, 2024
0ae68d3
Spawn futures inside collator
skunert Jun 13, 2024
767430e
Do not build if pending parent is not in db
skunert Jun 13, 2024
1021ee3
Remove slot based experimental from common cli options
skunert Jun 17, 2024
c109088
Fix lookahead collator filling the pipeline
skunert Jun 18, 2024
8c364e8
Add PoV-recovery test, make sure no inherent errors are thrown
skunert Jun 18, 2024
8e30d38
Move collator to futures again
skunert Jun 19, 2024
f3233db
Move lost comment
skunert Jun 19, 2024
da96123
Improve pov-recovery test
skunert Jun 19, 2024
05c3812
Increase velocity to 4
skunert Jun 19, 2024
938a736
Add test to pipeline
skunert Jun 19, 2024
fa3f070
Add prdoc
skunert Jun 19, 2024
edfe474
Abort block builder task if we can not send to collation task
skunert Jun 19, 2024
b1490eb
Fixes
skunert Jun 19, 2024
17fd978
Merge branch 'master' into slot-based-mvp
skunert Jun 19, 2024
9d14989
Comment adjustments
skunert Jun 19, 2024
96d885a
Fix pov-recovery test
skunert Jun 20, 2024
eb61449
Fix prdoc semver
skunert Jun 20, 2024
cb16053
Add slot based collator for default runtimes or chainspecs
skunert Jun 20, 2024
48267c2
PRDoc one more time
skunert Jun 20, 2024
d595c7b
Fix collator image
skunert Jun 21, 2024
b1edd47
Merge branch 'master' into slot-based-mvp
skunert Jun 25, 2024
764fcd5
Merge branch 'master' into slot-based-mvp
skunert Jul 4, 2024
62d5b9d
post-merge adjustments
skunert Jul 4, 2024
7bc28ff
Review comments
skunert Jul 1, 2024
d986ee7
Apply suggestions from code review
skunert Jul 4, 2024
dd36c44
Remove unnecessary pending condition in parent search
skunert Jul 4, 2024
91c6539
Adjust comments and tracing log
skunert Jul 4, 2024
8e0b80d
".git/.scripts/commands/fmt/fmt.sh"
Jul 4, 2024
09222f7
make semver happy
skunert Jul 5, 2024
938d6e6
Reviewer comment: Remove duplicate check for pending
skunert Jul 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add comments to RelayChainCachingFetcher
  • Loading branch information
skunert committed Jun 4, 2024
commit 944044df24a55d00daf9d7413bb7d20552a81c3d
Original file line number Diff line number Diff line change
Expand Up @@ -403,14 +403,21 @@ fn expected_core_count(
.map(|expected_core_count| expected_core_count.max(1))
}

/// Contains relay chain data necessary for parachain block building.
#[derive(Clone)]
struct RelayChainData {
/// Current relay chain parent header.
pub relay_parent_header: RelayHeader,
/// The cores this para is scheduled on in the context of the relay parent.
pub scheduled_cores: Vec<CoreIndex>,
/// Maximum configured PoV size on the relay chain.
pub max_pov_size: u32,
/// Current relay chain parent header.
pub relay_parent_hash: RelayHash,
}

/// Simple helper to fetch relay chain data and cache it based on the current relay chain best block
/// hash.
struct RelayChainCachingFetcher<RI> {
relay_client: RI,
para_id: ParaId,
Expand All @@ -426,6 +433,9 @@ where
Self { relay_client, para_id, last_seen_hash: None, last_data: None }
}

/// Fetch required [`RelayChainData`] from the relay chain.
/// If this data has been fetched in the past for the incoming hash, it will reuse
/// cached data.
pub async fn get_relay_chain_data(&mut self) -> Result<RelayChainData, ()> {
let Ok(relay_parent) = self.relay_client.best_block_hash().await else {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A problem with this could be that if the relay chain block comes too fast, we may did not use all the available cores of the parent and then we are wasting one core. Not really required for this pull request, but we should make this more robust in the future.

tracing::warn!(target: crate::LOG_TARGET, "Unable to fetch latest relay chain block hash.");
Expand All @@ -447,6 +457,7 @@ where
Ok(data)
}

/// Fetch fresh data from the relay chain for the given relay parent hash.
async fn update_for_relay_parent(&self, relay_parent: RelayHash) -> Result<RelayChainData, ()> {
let scheduled_cores =
cores_scheduled_for_para(relay_parent, self.para_id, &self.relay_client).await;
Expand Down