Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

move paras inherent filtering to runtime #4028

Merged
merged 112 commits into from
Nov 16, 2021
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
87b6cde
move things around, add filter methods
drahnr Oct 6, 2021
bf1f98b
validator keys, modify availability bitfields according to disputes
drahnr Oct 8, 2021
7c2711d
simplify, keep the filter -> sanitize generic for both usecases
drahnr Oct 13, 2021
702bceb
minor
drahnr Oct 13, 2021
de29623
assure tests still work, reduce changeset
drahnr Oct 13, 2021
98271ae
integration
drahnr Oct 13, 2021
f7003e8
start entropy passing
drahnr Oct 13, 2021
eb27dbb
fixins
drahnr Oct 14, 2021
0e5d2ff
compile, 1 failing test
drahnr Oct 14, 2021
ceaefae
filter with coverage
drahnr Oct 15, 2021
2f8385f
fixins
drahnr Oct 15, 2021
c169ae0
Update runtime/parachains/src/paras_inherent.rs
drahnr Oct 18, 2021
623a283
slip of the pen
drahnr Oct 18, 2021
9e1cb25
improve test cases
drahnr Oct 18, 2021
e0f4b9e
misc
drahnr Oct 18, 2021
9ec43fa
fix
drahnr Oct 18, 2021
8bd9af6
fixins
drahnr Oct 18, 2021
2c23251
test avoid extra into() calls in assert_noop!
drahnr Oct 18, 2021
b815172
chores
drahnr Oct 18, 2021
903382b
ff
drahnr Oct 18, 2021
75b48eb
test fixup superfluous into call
drahnr Oct 18, 2021
1c2b4de
chore: pfmt
drahnr Oct 18, 2021
c38771f
improve apply_block_weight_limit to try to maximize the number of suf…
drahnr Oct 18, 2021
2908356
new code treats the lack of backed candidates as ok
drahnr Oct 18, 2021
82617f2
Use vrf based entropy
drahnr Oct 18, 2021
1b236a5
fixup vrf random
drahnr Oct 19, 2021
56d2752
add warn
drahnr Oct 19, 2021
e11c985
slip of the pen
drahnr Oct 19, 2021
4e13c1b
fixup
drahnr Oct 19, 2021
7d00562
assure ordering
drahnr Oct 19, 2021
4e06e8d
rethink apply_weights
drahnr Oct 19, 2021
383711d
mock
drahnr Oct 19, 2021
bcd70eb
use a closure as predicate check
drahnr Oct 20, 2021
84cbec3
extract and use DisputedBitfield
drahnr Oct 20, 2021
f347b3f
chore: simplify
drahnr Oct 20, 2021
0df5cf4
remove stray dbg
drahnr Oct 20, 2021
376d158
chore: fmt
drahnr Oct 20, 2021
2d2f8a8
address feedback
drahnr Oct 20, 2021
a1a567c
fix test, halfway there
drahnr Oct 20, 2021
64a759a
stage1
drahnr Oct 21, 2021
98fb6d4
dbg stuff
drahnr Oct 21, 2021
2085069
make group selection align
drahnr Oct 21, 2021
2795af0
fix session index
drahnr Oct 22, 2021
3271fd3
fix wrongly returned candidates
drahnr Oct 22, 2021
4375b83
cleanup
drahnr Oct 22, 2021
cbed703
chore fmt
drahnr Oct 22, 2021
88a7ee1
fix ensure check
drahnr Oct 24, 2021
a7332e0
make good case test work
drahnr Oct 24, 2021
849af66
more tests for bitfields
drahnr Oct 24, 2021
bfa1f1a
create sanitize_backed_candidates
drahnr Oct 29, 2021
c2826a7
fixup tests
drahnr Oct 29, 2021
d2f03f4
update guide
drahnr Oct 31, 2021
209e267
add check referenced in the guide
drahnr Oct 31, 2021
03e77ad
improve weights code
drahnr Oct 31, 2021
3b89d79
fmt
drahnr Oct 31, 2021
20249dd
fixins
drahnr Oct 31, 2021
57e8daa
Update roadmap/implementers-guide/src/runtime/inclusion.md
drahnr Nov 1, 2021
352872b
compiling + address review
drahnr Nov 1, 2021
c592b48
add comments
drahnr Nov 1, 2021
7dd4773
fix weight calc
drahnr Nov 1, 2021
6cb7b8a
Merge remote-tracking branch 'origin/master' into bernhard-inherent-f…
drahnr Nov 3, 2021
ca447a8
address review comments and test failure
drahnr Nov 3, 2021
7b75f7a
fix
drahnr Nov 3, 2021
d524b34
fix: condition
drahnr Nov 5, 2021
0e637ae
Fix random_sel function
Lldenaurois Nov 5, 2021
8113944
Fix overlength block check
Lldenaurois Nov 5, 2021
d290479
Merge remote-tracking branch 'parity/master' into bernhard-inherent-f…
Lldenaurois Nov 6, 2021
9671728
Zeke + Ladi commit for disputes filtering + integration test builder …
Lldenaurois Nov 6, 2021
a8b4771
Add benchmarks for code upgrades
Lldenaurois Nov 6, 2021
70feb6e
Code upgrade bench; Feature gate TestWeightInfo
emostov Nov 6, 2021
f861c2c
Try and make CI happier
emostov Nov 6, 2021
35407fc
Feature gate enter test to not(benchmarks)
emostov Nov 8, 2021
6c0c078
Make sure no unused imports/fn
emostov Nov 8, 2021
0e88948
refactor, re-use, the beginning
drahnr Nov 5, 2021
aecdd96
Fix issue with frame benchmarking dep compilation
emostov Nov 8, 2021
ef35d97
More precise feature gating for some derives
emostov Nov 8, 2021
4536741
integrate piece-wise
drahnr Nov 8, 2021
5b1f1c0
foo
drahnr Nov 8, 2021
fa0de2e
fixins
drahnr Nov 8, 2021
55a7f71
chore fmt
drahnr Nov 8, 2021
dac3b8e
fixins
drahnr Nov 8, 2021
61db8a7
rename const generic
drahnr Nov 8, 2021
80174ec
Merge branch 'bernhard-inherent-filtering2' into bernhard-inherent-fi…
emostov Nov 8, 2021
7f1293b
Update runtime/parachains/src/paras_inherent.rs
drahnr Nov 10, 2021
60a9be5
Fix compilation
bkchr Nov 11, 2021
e36e12a
limit to test
drahnr Nov 11, 2021
a2dcd20
remove unused spam slots
drahnr Nov 11, 2021
9a9eb22
spellcheck
drahnr Nov 11, 2021
f1ef3e1
remove a tick, fix a typo
drahnr Nov 11, 2021
c9e5872
Add Code upgrade weights
Lldenaurois Nov 11, 2021
a7a835c
Merge remote-tracking branch 'parity/master' into bernhard-inherent-f…
Lldenaurois Nov 11, 2021
8f1ad09
comment improvements + >=
drahnr Nov 12, 2021
8ac5e56
remove another tick
drahnr Nov 12, 2021
ee89736
Update runtime/parachains/src/paras_inherent/benchmarking.rs
drahnr Nov 12, 2021
ca5cc54
saturating fixins + some spaces
drahnr Nov 12, 2021
c18e141
fix
drahnr Nov 13, 2021
ba34d06
benchmarking - preliminary results
drahnr Nov 14, 2021
f71e233
Add training wheels
Lldenaurois Nov 12, 2021
8a42171
Refactor some early exit logic for enter
emostov Nov 15, 2021
ac0c325
Gracefully handle filtering bitfields & candidates (#4280)
emostov Nov 15, 2021
e566544
Refactor inherent data weight limiting logic (#4287)
emostov Nov 15, 2021
62cda42
Apply suggestions from code review
emostov Nov 15, 2021
933cba7
Update runtime/parachains/src/builder.rs
drahnr Nov 15, 2021
2c85807
Update runtime/parachains/src/builder.rs
emostov Nov 15, 2021
168ac98
Update runtime/parachains/src/paras_inherent.rs
emostov Nov 16, 2021
2a0869b
final pass
drahnr Nov 16, 2021
811f168
Run cargo +nightly-2021-10-29 fmt
emostov Nov 16, 2021
e12bc31
Update implementors guide with `sanitize_*` & `enter` (#4294)
emostov Nov 16, 2021
a52ffb7
Make spell check happier
emostov Nov 16, 2021
53fcce5
Merge branch 'zeke-bernhard-inherent-filtering-go-green' into bernhar…
emostov Nov 16, 2021
9e7eed5
Make wasm runtimes compile with benchmarks enabled (#4303)
emostov Nov 16, 2021
3d760b6
Update weight files for runtime
emostov Nov 16, 2021
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
13 changes: 8 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion node/core/parachains-inherent/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ use futures::{select, FutureExt};
use polkadot_node_subsystem::{
errors::SubsystemError, messages::ProvisionerMessage, overseer::Handle,
};
use polkadot_primitives::v1::{Block, Hash, InherentData as ParachainsInherentData};
use polkadot_primitives::v1::{Block, SeedEntropy, Hash, InherentData as ParachainsInherentData};
use sp_blockchain::HeaderBackend;
use sp_runtime::generic::BlockId;
use std::time;
Expand Down Expand Up @@ -97,6 +97,7 @@ impl ParachainsInherentDataProvider {
backed_candidates: Vec::new(),
disputes: Vec::new(),
parent_header,
entropy: SeedEntropy::draw(),
}
},
};
Expand Down
7 changes: 6 additions & 1 deletion primitives/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ bitvec = { version = "0.20.1", default-features = false, features = ["alloc"] }
frame-system = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
hex-literal = "0.3.3"
parity-util-mem = { version = "0.10.0", default-features = false, optional = true }

rand = { version = "0.8.4", optional = true }
rand_chacha = { version = "0.3.1", optional = true }
lazy_static = { version = "1.4", optional = true }

[features]
default = ["std"]
Expand All @@ -55,4 +57,7 @@ std = [
"polkadot-core-primitives/std",
"bitvec/std",
"frame-system/std",
"rand_chacha",
"rand/std",
"lazy_static",
]
40 changes: 40 additions & 0 deletions primitives/src/v1/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1344,6 +1344,43 @@ pub struct DisputeState<N = BlockNumber> {
pub concluded_at: Option<N>,
}

/// Type abstraction to provide entropy for seeding a `crng`
#[derive(Clone, Encode, Decode, PartialEq, RuntimeDebug, TypeInfo)]
pub struct SeedEntropy(pub [u8; 16]);

impl AsRef<[u8]> for SeedEntropy {
fn as_ref(&self) -> &[u8] {
&self.0[..]
}
}

#[cfg(feature = "std")]
impl SeedEntropy {
/// Collect a random entropy.
pub fn draw() -> Self {
let mut bytes = [0u8; 16];

use rand::RngCore;

#[cfg(not(fuzzing))]
{

let mut rng = rand::thread_rng();
rng.fill_bytes(&mut bytes[..]);
}

#[cfg(fuzzing)]
{
lazy_static::lazy_static!{
static ref RNG: rand_chacha::ChaChaRng = rand_chacha::ChaChaRng::from_seed(b"polkadot_on_chain_selection_seed");
}
RNG.fill_bytes(&mut bytes[..])
}


Self(bytes)
}
}
/// Parachains inherent-data passed into the runtime by a block author
#[derive(Encode, Decode, Clone, PartialEq, RuntimeDebug, TypeInfo)]
pub struct InherentData<HDR: HeaderT = Header> {
Expand All @@ -1355,6 +1392,9 @@ pub struct InherentData<HDR: HeaderT = Header> {
pub disputes: MultiDisputeStatementSet,
/// The parent block header. Used for checking state proofs.
pub parent_header: HDR,
/// Entropy source to initialize a `cprng`, for usage
/// in the decimation process of overweight blocks.
pub entropy: SeedEntropy,
drahnr marked this conversation as resolved.
Show resolved Hide resolved
}

/// The maximum number of validators `f` which may safely be faulty.
Expand Down
Loading