Detect tracer key in sigverify (#25579)
* Mark the tracer transaction * simplify tracer check
This commit is contained in:
parent
58092f746c
commit
90a3315b69
|
@ -64,6 +64,7 @@ impl SigVerifier for TransactionSigVerifier {
|
|||
removed_before_sigverify_stage: bool,
|
||||
is_dup: bool,
|
||||
) {
|
||||
sigverify::check_for_tracer_packet(packet);
|
||||
if packet.meta.is_tracer_packet() {
|
||||
if removed_before_sigverify_stage {
|
||||
self.tracer_packet_stats
|
||||
|
|
|
@ -38,6 +38,7 @@ const TRACER_KEY_BYTES: [u8; 32] = [
|
|||
155, 90, 30, 39, 116, 115, 238, 38, 126, 21, 232, 133,
|
||||
];
|
||||
const TRACER_KEY: Pubkey = Pubkey::new_from_array(TRACER_KEY_BYTES);
|
||||
const TRACER_KEY_OFFSET_IN_TRANSACTION: usize = 69;
|
||||
|
||||
lazy_static! {
|
||||
static ref PAR_THREAD_POOL: ThreadPool = rayon::ThreadPoolBuilder::new()
|
||||
|
@ -152,13 +153,6 @@ fn verify_packet(packet: &mut Packet, reject_non_vote: bool) {
|
|||
return;
|
||||
}
|
||||
|
||||
// Check for tracer pubkey
|
||||
if !packet.meta.is_tracer_packet()
|
||||
&& &packet.data()[pubkey_start..pubkey_end] == TRACER_KEY.as_ref()
|
||||
{
|
||||
packet.meta.flags |= PacketFlags::TRACER_PACKET;
|
||||
}
|
||||
|
||||
pubkey_start = pubkey_end;
|
||||
sig_start = sig_end;
|
||||
}
|
||||
|
@ -315,6 +309,22 @@ fn do_get_packet_offsets(
|
|||
))
|
||||
}
|
||||
|
||||
pub fn check_for_tracer_packet(packet: &mut Packet) -> bool {
|
||||
let first_pubkey_start: usize = TRACER_KEY_OFFSET_IN_TRANSACTION;
|
||||
let first_pubkey_end = first_pubkey_start.saturating_add(size_of::<Pubkey>());
|
||||
// Check for tracer pubkey
|
||||
if packet.meta.size > first_pubkey_start {
|
||||
let is_tracer_packet =
|
||||
&packet.data()[first_pubkey_start..first_pubkey_end] == TRACER_KEY.as_ref();
|
||||
if is_tracer_packet {
|
||||
packet.meta.flags |= PacketFlags::TRACER_PACKET;
|
||||
}
|
||||
is_tracer_packet
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
fn get_packet_offsets(
|
||||
packet: &mut Packet,
|
||||
current_offset: usize,
|
||||
|
|
Loading…
Reference in New Issue