Skip to content

test: integration tests for Proof of Work enforcement (NIP-13) #507

@phoenix-server

Description

@phoenix-server

Summary

The relay supports limits.event.eventId.minLeadingZeroBits and limits.event.pubkey.minLeadingZeroBits settings to require Proof of Work on events and/or pubkeys. There are no integration tests verifying this enforcement.

What to test

  • When minLeadingZeroBits is 0 (default), any event is accepted regardless of its PoW
  • When minLeadingZeroBits > 0 on event ID, an event without sufficient PoW → rejected with pow: difficulty message
  • When minLeadingZeroBits > 0 on event ID, an event meeting the PoW requirement → accepted
  • When minLeadingZeroBits > 0 on pubkey, events from a pubkey not meeting PoW → rejected
  • Events from a pubkey meeting the pubkey PoW requirement → accepted

Relevant code

  • src/utils/proof-of-work.tsgetLeadingZeroBits
  • resources/default-settings.yamllimits.event.eventId.minLeadingZeroBits, limits.event.pubkey.minLeadingZeroBits
  • src/handlers/event-message-handler.ts

Suggested location

test/integration/features/nip-13/nip-13.feature

Metadata

Metadata

Labels

testUnit or integration test improvements

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions