Skip to content

Commit da2c732

Browse files
authored
Merge pull request #1665 from liamaharon/ignore-stale-drand
Invalidate stale drand transactions
2 parents 3506ffa + 397e997 commit da2c732

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

pallets/drand/src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,10 @@ pub mod pallet {
292292
pulses_payload: payload,
293293
signature,
294294
} => {
295+
// Blacklist stale pulses in the txpool that can stall finalization.
296+
if payload.block_number < BlockNumberFor::<T>::from(5612500u32) {
297+
return InvalidTransaction::Stale.into();
298+
}
295299
let signature = signature.as_ref().ok_or(InvalidTransaction::BadSigner)?;
296300
Self::validate_signature_and_parameters(
297301
payload,

pallets/drand/src/tests.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ fn it_can_submit_valid_pulse_when_beacon_config_exists() {
4747
let p: Pulse = u_p.try_into_pulse().unwrap();
4848

4949
let alice = sp_keyring::Sr25519Keyring::Alice;
50-
let block_number = 1;
50+
let block_number = 100_000_000;
5151
System::set_block_number(block_number);
5252

5353
// Set the beacon config
@@ -91,7 +91,7 @@ fn it_can_submit_valid_pulse_when_beacon_config_exists() {
9191
fn it_rejects_invalid_pulse_due_to_bad_signature() {
9292
new_test_ext().execute_with(|| {
9393
let alice = sp_keyring::Sr25519Keyring::Alice;
94-
let block_number = 1;
94+
let block_number = 100_000_000;
9595
System::set_block_number(block_number);
9696

9797
// Set the beacon config using Root origin
@@ -139,7 +139,7 @@ fn it_rejects_invalid_pulse_due_to_bad_signature() {
139139
#[test]
140140
fn it_rejects_pulses_with_non_incremental_round_numbers() {
141141
new_test_ext().execute_with(|| {
142-
let block_number = 1;
142+
let block_number = 100_000_000;
143143
let alice = sp_keyring::Sr25519Keyring::Alice;
144144
System::set_block_number(block_number);
145145

@@ -189,7 +189,7 @@ fn it_rejects_pulses_with_non_incremental_round_numbers() {
189189
#[test]
190190
fn it_blocks_non_root_from_submit_beacon_info() {
191191
new_test_ext().execute_with(|| {
192-
let block_number = 1;
192+
let block_number = 100_000_000;
193193
let alice = sp_keyring::Sr25519Keyring::Alice;
194194
System::set_block_number(block_number);
195195

@@ -239,7 +239,7 @@ fn it_blocks_non_root_from_submit_beacon_info() {
239239
#[test]
240240
fn signed_cannot_submit_beacon_info() {
241241
new_test_ext().execute_with(|| {
242-
let block_number = 1;
242+
let block_number = 100_000_000;
243243
let alice = sp_keyring::Sr25519Keyring::Alice;
244244
System::set_block_number(block_number);
245245

@@ -268,7 +268,7 @@ fn signed_cannot_submit_beacon_info() {
268268
#[test]
269269
fn test_validate_unsigned_write_pulse() {
270270
new_test_ext().execute_with(|| {
271-
let block_number = 1;
271+
let block_number = 100_000_000;
272272
let alice = sp_keyring::Sr25519Keyring::Alice;
273273
System::set_block_number(block_number);
274274
let pulses_payload = PulsesPayload {
@@ -293,7 +293,7 @@ fn test_validate_unsigned_write_pulse() {
293293
#[test]
294294
fn test_not_validate_unsigned_write_pulse_with_bad_proof() {
295295
new_test_ext().execute_with(|| {
296-
let block_number = 1;
296+
let block_number = 100_000_000;
297297
let alice = sp_keyring::Sr25519Keyring::Alice;
298298
System::set_block_number(block_number);
299299
let pulses_payload = PulsesPayload {
@@ -319,7 +319,7 @@ fn test_not_validate_unsigned_write_pulse_with_bad_proof() {
319319
#[test]
320320
fn test_not_validate_unsigned_write_pulse_with_no_payload_signature() {
321321
new_test_ext().execute_with(|| {
322-
let block_number = 1;
322+
let block_number = 100_000_000;
323323
let alice = sp_keyring::Sr25519Keyring::Alice;
324324
System::set_block_number(block_number);
325325
let pulses_payload = PulsesPayload {
@@ -388,8 +388,8 @@ fn can_execute_and_handle_valid_http_responses() {
388388
#[test]
389389
fn validate_unsigned_rejects_future_block_number() {
390390
new_test_ext().execute_with(|| {
391-
let block_number = 1;
392-
let future_block_number = 100;
391+
let block_number = 100_000_000;
392+
let future_block_number = 100_000_100;
393393
let alice = sp_keyring::Sr25519Keyring::Alice;
394394
System::set_block_number(block_number);
395395
let pulses_payload = PulsesPayload {

runtime/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
207207
// `spec_version`, and `authoring_version` are the same between Wasm and native.
208208
// This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use
209209
// the compatible custom types.
210-
spec_version: 263,
210+
spec_version: 264,
211211
impl_version: 1,
212212
apis: RUNTIME_API_VERSIONS,
213213
transaction_version: 1,

0 commit comments

Comments
 (0)