diff --git a/access/validator.go b/access/validator.go index 392e4494939..a39228f5677 100644 --- a/access/validator.go +++ b/access/validator.go @@ -106,6 +106,10 @@ func NewTransactionValidatorWithLimiter( } func (v *TransactionValidator) Validate(tx *flow.TransactionBody) (err error) { + // rate limit transactions for specific payers. + // a short term solution to prevent attracks that send too many failed transactions + // if a transaction is from a payer that should be rate limited, all the following + // checks will be skipped err = v.checkRateLimitPayer(tx) if err != nil { return err diff --git a/engine/collection/ingest/rate_limiter_test.go b/engine/collection/ingest/rate_limiter_test.go index d2d0b6adcb5..fd578260358 100644 --- a/engine/collection/ingest/rate_limiter_test.go +++ b/engine/collection/ingest/rate_limiter_test.go @@ -60,7 +60,7 @@ func TestLimiterAddRemoveAddress(t *testing.T) { require.True(t, l.IsRateLimited(limited2)) } -func TestLImiterBurst(t *testing.T) { +func TestLimiterBurst(t *testing.T) { t.Parallel() limited1 := unittest.RandomAddressFixture()