Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
parity
Mirrored projects
polkadot
Commits
35501275
Unverified
Commit
35501275
authored
Mar 24, 2021
by
asynchronous rob
Committed by
GitHub
Mar 24, 2021
Browse files
Improve approval tracing (#2697)
* improve tracing for approval voting * assignment criteria tracing * new syntax
parent
7012cdbb
Pipeline
#130371
failed with stages
in 21 minutes and 49 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
node/core/approval-voting/src/criteria.rs
View file @
35501275
...
@@ -20,7 +20,7 @@ use polkadot_node_primitives::approval::{
...
@@ -20,7 +20,7 @@ use polkadot_node_primitives::approval::{
self
as
approval_types
,
AssignmentCert
,
AssignmentCertKind
,
DelayTranche
,
RelayVRFStory
,
self
as
approval_types
,
AssignmentCert
,
AssignmentCertKind
,
DelayTranche
,
RelayVRFStory
,
};
};
use
polkadot_primitives
::
v1
::{
use
polkadot_primitives
::
v1
::{
CoreIndex
,
ValidatorIndex
,
SessionInfo
,
AssignmentPair
,
AssignmentId
,
GroupIndex
,
CoreIndex
,
ValidatorIndex
,
SessionInfo
,
AssignmentPair
,
AssignmentId
,
GroupIndex
,
CandidateHash
,
};
};
use
sc_keystore
::
LocalKeystore
;
use
sc_keystore
::
LocalKeystore
;
use
parity_scale_codec
::{
Encode
,
Decode
};
use
parity_scale_codec
::{
Encode
,
Decode
};
...
@@ -178,7 +178,7 @@ pub(crate) trait AssignmentCriteria {
...
@@ -178,7 +178,7 @@ pub(crate) trait AssignmentCriteria {
keystore
:
&
LocalKeystore
,
keystore
:
&
LocalKeystore
,
relay_vrf_story
:
RelayVRFStory
,
relay_vrf_story
:
RelayVRFStory
,
config
:
&
Config
,
config
:
&
Config
,
leaving_cores
:
Vec
<
(
CoreIndex
,
GroupIndex
)
>
,
leaving_cores
:
Vec
<
(
CandidateHash
,
CoreIndex
,
GroupIndex
)
>
,
)
->
HashMap
<
CoreIndex
,
OurAssignment
>
;
)
->
HashMap
<
CoreIndex
,
OurAssignment
>
;
fn
check_assignment_cert
(
fn
check_assignment_cert
(
...
@@ -200,7 +200,7 @@ impl AssignmentCriteria for RealAssignmentCriteria {
...
@@ -200,7 +200,7 @@ impl AssignmentCriteria for RealAssignmentCriteria {
keystore
:
&
LocalKeystore
,
keystore
:
&
LocalKeystore
,
relay_vrf_story
:
RelayVRFStory
,
relay_vrf_story
:
RelayVRFStory
,
config
:
&
Config
,
config
:
&
Config
,
leaving_cores
:
Vec
<
(
CoreIndex
,
GroupIndex
)
>
,
leaving_cores
:
Vec
<
(
CandidateHash
,
CoreIndex
,
GroupIndex
)
>
,
)
->
HashMap
<
CoreIndex
,
OurAssignment
>
{
)
->
HashMap
<
CoreIndex
,
OurAssignment
>
{
compute_assignments
(
compute_assignments
(
keystore
,
keystore
,
...
@@ -244,7 +244,7 @@ pub(crate) fn compute_assignments(
...
@@ -244,7 +244,7 @@ pub(crate) fn compute_assignments(
keystore
:
&
LocalKeystore
,
keystore
:
&
LocalKeystore
,
relay_vrf_story
:
RelayVRFStory
,
relay_vrf_story
:
RelayVRFStory
,
config
:
&
Config
,
config
:
&
Config
,
leaving_cores
:
impl
IntoIterator
<
Item
=
(
CoreIndex
,
GroupIndex
)
>
+
Clone
,
leaving_cores
:
impl
IntoIterator
<
Item
=
(
CandidateHash
,
CoreIndex
,
GroupIndex
)
>
+
Clone
,
)
->
HashMap
<
CoreIndex
,
OurAssignment
>
{
)
->
HashMap
<
CoreIndex
,
OurAssignment
>
{
if
config
.n_cores
==
0
||
config
.assignment_keys
.is_empty
()
||
config
.validator_groups
.is_empty
()
{
if
config
.n_cores
==
0
||
config
.assignment_keys
.is_empty
()
||
config
.validator_groups
.is_empty
()
{
return
HashMap
::
new
()
return
HashMap
::
new
()
...
@@ -271,8 +271,8 @@ pub(crate) fn compute_assignments(
...
@@ -271,8 +271,8 @@ pub(crate) fn compute_assignments(
// Ignore any cores where the assigned group is our own.
// Ignore any cores where the assigned group is our own.
let
leaving_cores
=
leaving_cores
.into_iter
()
let
leaving_cores
=
leaving_cores
.into_iter
()
.filter
(|
&
(
_
,
ref
g
)|
!
is_in_backing_group
(
&
config
.validator_groups
,
index
,
*
g
))
.filter
(|
&
(
_
,
_
,
ref
g
)|
!
is_in_backing_group
(
&
config
.validator_groups
,
index
,
*
g
))
.map
(|(
c
,
_
)|
c
)
.map
(|(
c
_hash
,
core
,
_
)|
(
c_hash
,
core
)
)
.collect
::
<
Vec
<
_
>>
();
.collect
::
<
Vec
<
_
>>
();
let
assignments_key
:
&
sp_application_crypto
::
sr25519
::
Pair
=
assignments_key
.as_ref
();
let
assignments_key
:
&
sp_application_crypto
::
sr25519
::
Pair
=
assignments_key
.as_ref
();
...
@@ -308,7 +308,7 @@ fn compute_relay_vrf_modulo_assignments(
...
@@ -308,7 +308,7 @@ fn compute_relay_vrf_modulo_assignments(
validator_index
:
ValidatorIndex
,
validator_index
:
ValidatorIndex
,
config
:
&
Config
,
config
:
&
Config
,
relay_vrf_story
:
RelayVRFStory
,
relay_vrf_story
:
RelayVRFStory
,
leaving_cores
:
impl
IntoIterator
<
Item
=
CoreIndex
>
+
Clone
,
leaving_cores
:
impl
IntoIterator
<
Item
=
(
CandidateHash
,
CoreIndex
)
>
+
Clone
,
assignments
:
&
mut
HashMap
<
CoreIndex
,
OurAssignment
>
,
assignments
:
&
mut
HashMap
<
CoreIndex
,
OurAssignment
>
,
)
{
)
{
for
rvm_sample
in
0
..
config
.relay_vrf_modulo_samples
{
for
rvm_sample
in
0
..
config
.relay_vrf_modulo_samples
{
...
@@ -322,7 +322,18 @@ fn compute_relay_vrf_modulo_assignments(
...
@@ -322,7 +322,18 @@ fn compute_relay_vrf_modulo_assignments(
relay_vrf_modulo_transcript
(
relay_vrf_story
.clone
(),
rvm_sample
),
relay_vrf_modulo_transcript
(
relay_vrf_story
.clone
(),
rvm_sample
),
|
vrf_in_out
|
{
|
vrf_in_out
|
{
*
core
=
relay_vrf_modulo_core
(
&
vrf_in_out
,
config
.n_cores
);
*
core
=
relay_vrf_modulo_core
(
&
vrf_in_out
,
config
.n_cores
);
if
leaving_cores
.clone
()
.into_iter
()
.any
(|
c
|
c
==
*
core
)
{
if
let
Some
((
candidate_hash
,
_
))
=
leaving_cores
.clone
()
.into_iter
()
.find
(|(
_
,
c
)|
c
==
core
)
{
tracing
::
trace!
(
target
:
LOG_TARGET
,
?
candidate_hash
,
?
core
,
?
validator_index
,
tranche
=
0
,
"RelayVRFModulo Assignment."
);
Some
(
assigned_core_transcript
(
*
core
))
Some
(
assigned_core_transcript
(
*
core
))
}
else
{
}
else
{
None
None
...
@@ -355,10 +366,10 @@ fn compute_relay_vrf_delay_assignments(
...
@@ -355,10 +366,10 @@ fn compute_relay_vrf_delay_assignments(
validator_index
:
ValidatorIndex
,
validator_index
:
ValidatorIndex
,
config
:
&
Config
,
config
:
&
Config
,
relay_vrf_story
:
RelayVRFStory
,
relay_vrf_story
:
RelayVRFStory
,
leaving_cores
:
impl
IntoIterator
<
Item
=
CoreIndex
>
,
leaving_cores
:
impl
IntoIterator
<
Item
=
(
CandidateHash
,
CoreIndex
)
>
,
assignments
:
&
mut
HashMap
<
CoreIndex
,
OurAssignment
>
,
assignments
:
&
mut
HashMap
<
CoreIndex
,
OurAssignment
>
,
)
{
)
{
for
core
in
leaving_cores
{
for
(
candidate_hash
,
core
)
in
leaving_cores
{
let
(
vrf_in_out
,
vrf_proof
,
_
)
=
assignments_key
.vrf_sign
(
let
(
vrf_in_out
,
vrf_proof
,
_
)
=
assignments_key
.vrf_sign
(
relay_vrf_delay_transcript
(
relay_vrf_story
.clone
(),
core
),
relay_vrf_delay_transcript
(
relay_vrf_story
.clone
(),
core
),
);
);
...
@@ -381,11 +392,25 @@ fn compute_relay_vrf_delay_assignments(
...
@@ -381,11 +392,25 @@ fn compute_relay_vrf_delay_assignments(
triggered
:
false
,
triggered
:
false
,
};
};
match
assignments
.entry
(
core
)
{
let
used
=
match
assignments
.entry
(
core
)
{
Entry
::
Vacant
(
e
)
=>
{
let
_
=
e
.insert
(
our_assignment
);
}
Entry
::
Vacant
(
e
)
=>
{
let
_
=
e
.insert
(
our_assignment
);
true
}
Entry
::
Occupied
(
mut
e
)
=>
if
e
.get
()
.tranche
>
our_assignment
.tranche
{
Entry
::
Occupied
(
mut
e
)
=>
if
e
.get
()
.tranche
>
our_assignment
.tranche
{
e
.insert
(
our_assignment
);
e
.insert
(
our_assignment
);
true
}
else
{
false
},
},
};
if
used
{
tracing
::
trace!
(
target
:
LOG_TARGET
,
?
candidate_hash
,
?
core
,
?
validator_index
,
tranche
,
"RelayVRFDelay Assignment"
,
);
}
}
}
}
}
}
...
@@ -500,7 +525,7 @@ mod tests {
...
@@ -500,7 +525,7 @@ mod tests {
use
sp_keyring
::
sr25519
::
Keyring
as
Sr25519Keyring
;
use
sp_keyring
::
sr25519
::
Keyring
as
Sr25519Keyring
;
use
sp_application_crypto
::
sr25519
;
use
sp_application_crypto
::
sr25519
;
use
sp_core
::
crypto
::
Pair
as
PairT
;
use
sp_core
::
crypto
::
Pair
as
PairT
;
use
polkadot_primitives
::
v1
::
ASSIGNMENT_KEY_TYPE_ID
;
use
polkadot_primitives
::
v1
::
{
ASSIGNMENT_KEY_TYPE_ID
,
Hash
}
;
use
polkadot_node_primitives
::
approval
::{
VRFOutput
,
VRFProof
};
use
polkadot_node_primitives
::
approval
::{
VRFOutput
,
VRFProof
};
// sets up a keystore with the given keyring accounts.
// sets up a keystore with the given keyring accounts.
...
@@ -560,6 +585,9 @@ mod tests {
...
@@ -560,6 +585,9 @@ mod tests {
make_keystore
(
&
[
Sr25519Keyring
::
Alice
])
make_keystore
(
&
[
Sr25519Keyring
::
Alice
])
);
);
let
c_a
=
CandidateHash
(
Hash
::
repeat_byte
(
0
));
let
c_b
=
CandidateHash
(
Hash
::
repeat_byte
(
1
));
let
relay_vrf_story
=
RelayVRFStory
([
42u8
;
32
]);
let
relay_vrf_story
=
RelayVRFStory
([
42u8
;
32
]);
let
assignments
=
compute_assignments
(
let
assignments
=
compute_assignments
(
&
keystore
,
&
keystore
,
...
@@ -576,7 +604,7 @@ mod tests {
...
@@ -576,7 +604,7 @@ mod tests {
relay_vrf_modulo_samples
:
3
,
relay_vrf_modulo_samples
:
3
,
n_delay_tranches
:
40
,
n_delay_tranches
:
40
,
},
},
vec!
[(
CoreIndex
(
0
),
GroupIndex
(
1
)),
(
CoreIndex
(
1
),
GroupIndex
(
0
))],
vec!
[(
c_a
,
CoreIndex
(
0
),
GroupIndex
(
1
)),
(
c_b
,
CoreIndex
(
1
),
GroupIndex
(
0
))],
);
);
// Note that alice is in group 0, which was the backing group for core 1.
// Note that alice is in group 0, which was the backing group for core 1.
...
@@ -591,6 +619,9 @@ mod tests {
...
@@ -591,6 +619,9 @@ mod tests {
make_keystore
(
&
[
Sr25519Keyring
::
Alice
])
make_keystore
(
&
[
Sr25519Keyring
::
Alice
])
);
);
let
c_a
=
CandidateHash
(
Hash
::
repeat_byte
(
0
));
let
c_b
=
CandidateHash
(
Hash
::
repeat_byte
(
1
));
let
relay_vrf_story
=
RelayVRFStory
([
42u8
;
32
]);
let
relay_vrf_story
=
RelayVRFStory
([
42u8
;
32
]);
let
assignments
=
compute_assignments
(
let
assignments
=
compute_assignments
(
&
keystore
,
&
keystore
,
...
@@ -607,7 +638,7 @@ mod tests {
...
@@ -607,7 +638,7 @@ mod tests {
relay_vrf_modulo_samples
:
3
,
relay_vrf_modulo_samples
:
3
,
n_delay_tranches
:
40
,
n_delay_tranches
:
40
,
},
},
vec!
[(
CoreIndex
(
0
),
GroupIndex
(
0
)),
(
CoreIndex
(
1
),
GroupIndex
(
1
))],
vec!
[(
c_a
,
CoreIndex
(
0
),
GroupIndex
(
0
)),
(
c_b
,
CoreIndex
(
1
),
GroupIndex
(
1
))],
);
);
assert_eq!
(
assignments
.len
(),
1
);
assert_eq!
(
assignments
.len
(),
1
);
...
@@ -680,6 +711,7 @@ mod tests {
...
@@ -680,6 +711,7 @@ mod tests {
&
config
,
&
config
,
(
0
..
n_cores
)
(
0
..
n_cores
)
.map
(|
i
|
(
.map
(|
i
|
(
CandidateHash
(
Hash
::
repeat_byte
(
i
as
u8
)),
CoreIndex
(
i
as
u32
),
CoreIndex
(
i
as
u32
),
group_for_core
(
i
),
group_for_core
(
i
),
))
))
...
...
node/core/approval-voting/src/import.rs
View file @
35501275
...
@@ -473,7 +473,7 @@ async fn imported_block_info(
...
@@ -473,7 +473,7 @@ async fn imported_block_info(
relay_vrf
.clone
(),
relay_vrf
.clone
(),
&
crate
::
criteria
::
Config
::
from
(
session_info
),
&
crate
::
criteria
::
Config
::
from
(
session_info
),
included_candidates
.iter
()
included_candidates
.iter
()
.map
(|(
_
,
_
,
core
,
group
)|
(
*
core
,
*
group
))
.map
(|(
c_hash
,
_
,
core
,
group
)|
(
*
c_hash
,
*
core
,
*
group
))
.collect
(),
.collect
(),
);
);
...
@@ -895,7 +895,7 @@ mod tests {
...
@@ -895,7 +895,7 @@ mod tests {
_keystore
:
&
LocalKeystore
,
_keystore
:
&
LocalKeystore
,
_relay_vrf_story
:
polkadot_node_primitives
::
approval
::
RelayVRFStory
,
_relay_vrf_story
:
polkadot_node_primitives
::
approval
::
RelayVRFStory
,
_config
:
&
criteria
::
Config
,
_config
:
&
criteria
::
Config
,
_leaving_cores
:
Vec
<
(
polkadot_primitives
::
v1
::
CoreIndex
,
polkadot_primitives
::
v1
::
GroupIndex
)
>
,
_leaving_cores
:
Vec
<
(
CandidateHash
,
polkadot_primitives
::
v1
::
CoreIndex
,
polkadot_primitives
::
v1
::
GroupIndex
)
>
,
)
->
HashMap
<
polkadot_primitives
::
v1
::
CoreIndex
,
criteria
::
OurAssignment
>
{
)
->
HashMap
<
polkadot_primitives
::
v1
::
CoreIndex
,
criteria
::
OurAssignment
>
{
HashMap
::
new
()
HashMap
::
new
()
}
}
...
...
node/core/approval-voting/src/lib.rs
View file @
35501275
...
@@ -605,9 +605,9 @@ async fn handle_from_overseer(
...
@@ -605,9 +605,9 @@ async fn handle_from_overseer(
for
block_batch
in
block_imported_candidates
{
for
block_batch
in
block_imported_candidates
{
tracing
::
debug!
(
tracing
::
debug!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Imported new block {} with {} included candidates"
,
block_hash
=
?
block_batch
.block_hash
,
block_batch
.block_hash
,
num_candidates
=
block_batch
.imported_candidates
.len
()
,
block_batch
.imported_candidates
.len
()
,
"Imported new block."
,
);
);
for
(
c_hash
,
c_entry
)
in
block_batch
.imported_candidates
{
for
(
c_hash
,
c_entry
)
in
block_batch
.imported_candidates
{
...
@@ -621,11 +621,11 @@ async fn handle_from_overseer(
...
@@ -621,11 +621,11 @@ async fn handle_from_overseer(
let
tick
=
our_tranche
as
Tick
+
block_batch
.block_tick
;
let
tick
=
our_tranche
as
Tick
+
block_batch
.block_tick
;
tracing
::
trace!
(
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Scheduling first wakeup at tranche {} for candidate {} in block ({}, tick={})"
,
tranche
=
our_tranche
,
our_tranche
,
candidate_hash
=
?
c_hash
,
c
_hash
,
block_hash
=
?
block_batch
.block
_hash
,
block_batch
.block_
hash
,
block_tick
=
block_batch
.block_
tick
,
block_batch
.block_tick
,
"Scheduling first wakeup."
,
);
);
// Our first wakeup will just be the tranche of our assignment,
// Our first wakeup will just be the tranche of our assignment,
...
@@ -987,18 +987,18 @@ fn schedule_wakeup_action(
...
@@ -987,18 +987,18 @@ fn schedule_wakeup_action(
match
maybe_action
{
match
maybe_action
{
Some
(
Action
::
ScheduleWakeup
{
ref
tick
,
..
})
=>
tracing
::
trace!
(
Some
(
Action
::
ScheduleWakeup
{
ref
tick
,
..
})
=>
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Scheduling next wakeup at {} for candidate {} under block ({}, tick={})"
,
tick
,
tick
,
candidate_hash
,
?
candidate_hash
,
block_hash
,
?
block_hash
,
block_tick
,
block_tick
,
"Scheduling next wakeup."
,
),
),
None
=>
tracing
::
trace!
(
None
=>
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"No wakeup needed for candidate {} under block ({}, tick={})"
,
?
candidate_hash
,
candidate_hash
,
?
block_hash
,
block_hash
,
block_tick
,
block_tick
,
"No wakeup needed."
,
),
),
Some
(
_
)
=>
{}
// unreachable
Some
(
_
)
=>
{}
// unreachable
}
}
...
@@ -1093,9 +1093,10 @@ fn check_and_import_assignment(
...
@@ -1093,9 +1093,10 @@ fn check_and_import_assignment(
}
else
{
}
else
{
tracing
::
trace!
(
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Imported assignment from validator {} on candidate {:?}"
,
validator
=
assignment
.validator
.0
,
assignment
.validator
.0
,
candidate_hash
=
?
assigned_candidate_hash
,
(
assigned_candidate_hash
,
candidate_entry
.candidate_receipt
()
.descriptor.para_id
),
para_id
=
?
candidate_entry
.candidate_receipt
()
.descriptor.para_id
,
"Imported assignment."
,
);
);
AssignmentCheckResult
::
Accepted
AssignmentCheckResult
::
Accepted
...
@@ -1196,9 +1197,11 @@ fn check_and_import_approval<T>(
...
@@ -1196,9 +1197,11 @@ fn check_and_import_approval<T>(
tracing
::
trace!
(
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Importing approval vote from validator {:?} on candidate {:?}"
,
validator_index
=
approval
.validator
.0
,
(
approval
.validator
,
&
pubkey
),
validator
=
?
pubkey
,
(
approved_candidate_hash
,
candidate_entry
.candidate_receipt
()
.descriptor.para_id
),
candidate_hash
=
?
approved_candidate_hash
,
para_id
=
?
candidate_entry
.candidate_receipt
()
.descriptor.para_id
,
"Importing approval vote"
,
);
);
let
actions
=
import_checked_approval
(
let
actions
=
import_checked_approval
(
...
@@ -1316,9 +1319,9 @@ fn check_and_apply_full_approval(
...
@@ -1316,9 +1319,9 @@ fn check_and_apply_full_approval(
if
let
approval_checking
::
Check
::
Approved
(
no_shows
)
=
check
{
if
let
approval_checking
::
Check
::
Approved
(
no_shows
)
=
check
{
tracing
::
trace!
(
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"C
andidate
approved {} under block {}"
,
?
c
andidate
_hash
,
candidate
_hash
,
?
block
_hash
,
block_hash
,
"Candidate approved under block."
,
);
);
let
was_approved
=
block_entry
.is_fully_approved
();
let
was_approved
=
block_entry
.is_fully_approved
();
...
@@ -1441,10 +1444,10 @@ fn process_wakeup(
...
@@ -1441,10 +1444,10 @@ fn process_wakeup(
tracing
::
trace!
(
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Processing wakeup at tranche {} for candidate {} under block {}"
,
tranche
=
tranche_now
,
tranche_now
,
?
candidate_hash
,
candidate_hash
,
block_hash
=
?
relay_block
,
relay_block
,
"Processing wakeup"
,
);
);
let
(
should_trigger
,
backing_group
)
=
{
let
(
should_trigger
,
backing_group
)
=
{
...
@@ -1500,9 +1503,10 @@ fn process_wakeup(
...
@@ -1500,9 +1503,10 @@ fn process_wakeup(
if
let
Some
(
i
)
=
index_in_candidate
{
if
let
Some
(
i
)
=
index_in_candidate
{
tracing
::
trace!
(
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Launching approval work for candidate {:?} in block {}"
,
?
candidate_hash
,
(
&
candidate_hash
,
candidate_entry
.candidate_receipt
()
.descriptor.para_id
),
para_id
=
?
candidate_entry
.candidate_receipt
()
.descriptor.para_id
,
relay_block
,
block_hash
=
?
relay_block
,
"Launching approval work."
,
);
);
// sanity: should always be present.
// sanity: should always be present.
...
@@ -1559,8 +1563,9 @@ async fn launch_approval(
...
@@ -1559,8 +1563,9 @@ async fn launch_approval(
tracing
::
trace!
(
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Recovering data for candidate {:?}"
,
?
candidate_hash
,
(
candidate_hash
,
candidate
.descriptor.para_id
),
para_id
=
?
candidate
.descriptor.para_id
,
"Recovering data."
,
);
);
ctx
.send_message
(
AvailabilityRecoveryMessage
::
RecoverAvailableData
(
ctx
.send_message
(
AvailabilityRecoveryMessage
::
RecoverAvailableData
(
...
@@ -1663,8 +1668,9 @@ async fn launch_approval(
...
@@ -1663,8 +1668,9 @@ async fn launch_approval(
tracing
::
trace!
(
tracing
::
trace!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Candidate Valid {:?}"
,
?
candidate_hash
,
(
candidate_hash
,
para_id
),
?
para_id
,
"Candidate Valid"
,
);
);
let
_
=
background_tx
.send
(
BackgroundRequest
::
ApprovalVote
(
ApprovalVoteRequest
{
let
_
=
background_tx
.send
(
BackgroundRequest
::
ApprovalVote
(
ApprovalVoteRequest
{
...
@@ -1782,8 +1788,8 @@ async fn issue_approval(
...
@@ -1782,8 +1788,8 @@ async fn issue_approval(
tracing
::
debug!
(
tracing
::
debug!
(
target
:
LOG_TARGET
,
target
:
LOG_TARGET
,
"Issuing approval vote for
candidate
{:?}"
,
?
candidate
_hash
,
candidate_hash
,
"Issuing approval vote"
,
);
);
let
actions
=
import_checked_approval
(
let
actions
=
import_checked_approval
(
...
...
node/core/approval-voting/src/tests.rs
View file @
35501275
...
@@ -132,7 +132,7 @@ where
...
@@ -132,7 +132,7 @@ where
_keystore
:
&
LocalKeystore
,
_keystore
:
&
LocalKeystore
,
_relay_vrf_story
:
polkadot_node_primitives
::
approval
::
RelayVRFStory
,
_relay_vrf_story
:
polkadot_node_primitives
::
approval
::
RelayVRFStory
,
_config
:
&
criteria
::
Config
,
_config
:
&
criteria
::
Config
,
_leaving_cores
:
Vec
<
(
polkadot_primitives
::
v1
::
CoreIndex
,
polkadot_primitives
::
v1
::
GroupIndex
)
>
,
_leaving_cores
:
Vec
<
(
CandidateHash
,
polkadot_primitives
::
v1
::
CoreIndex
,
polkadot_primitives
::
v1
::
GroupIndex
)
>
,
)
->
HashMap
<
polkadot_primitives
::
v1
::
CoreIndex
,
criteria
::
OurAssignment
>
{
)
->
HashMap
<
polkadot_primitives
::
v1
::
CoreIndex
,
criteria
::
OurAssignment
>
{
self
.0
()
self
.0
()
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment