mirror of
https://github.com/scsibug/nostr-rs-relay.git
synced 2024-11-22 00:59:07 -05:00
feat(NIP-22): advertise support for event created_at limits
The `reject_future_limits` option can now be disabled, and is by default. NIP-11 advertises support for created_at limits. The message for future-dated events has been modified, to be closer to the recommended example in the NIP.
This commit is contained in:
parent
283967f8cc
commit
72f1c19b21
|
@ -23,6 +23,7 @@ NIPs with a relay-specific implementation are listed here.
|
||||||
- [x] NIP-12: Generic tag search (_experimental_)
|
- [x] NIP-12: Generic tag search (_experimental_)
|
||||||
- [x] NIP-15: End of stored events notice
|
- [x] NIP-15: End of stored events notice
|
||||||
- [x] NIP-16: Replaceable and ephemeral events
|
- [x] NIP-16: Replaceable and ephemeral events
|
||||||
|
- [x] NIP-22: Event `created_at` limits (_future-dated events only_)
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
|
|
|
@ -44,8 +44,8 @@ port = 8080
|
||||||
|
|
||||||
[options]
|
[options]
|
||||||
# Reject events that have timestamps greater than this many seconds in
|
# Reject events that have timestamps greater than this many seconds in
|
||||||
# the future. Defaults to rejecting anything greater than 30 minutes
|
# the future. Recommended to reject anything greater than 30 minutes
|
||||||
# from the current time.
|
# from the current time, but the default is to allow any date.
|
||||||
reject_future_seconds = 1800
|
reject_future_seconds = 1800
|
||||||
|
|
||||||
[limits]
|
[limits]
|
||||||
|
|
|
@ -219,7 +219,7 @@ impl Default for Settings {
|
||||||
whitelist_addresses: None, // whitelisted addresses (never delete)
|
whitelist_addresses: None, // whitelisted addresses (never delete)
|
||||||
},
|
},
|
||||||
options: Options {
|
options: Options {
|
||||||
reject_future_seconds: Some(30 * 60), // Reject events 30min in the future or greater
|
reject_future_seconds: None, // Reject events in the future if defined
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ impl From<config::Info> for RelayInfo {
|
||||||
description: i.description,
|
description: i.description,
|
||||||
pubkey: i.pubkey,
|
pubkey: i.pubkey,
|
||||||
contact: i.contact,
|
contact: i.contact,
|
||||||
supported_nips: Some(vec![1, 2, 11, 15, 16]),
|
supported_nips: Some(vec![1, 2, 11, 15, 16, 22]),
|
||||||
software: Some("https://git.sr.ht/~gheartsfield/nostr-rs-relay".to_owned()),
|
software: Some("https://git.sr.ht/~gheartsfield/nostr-rs-relay".to_owned()),
|
||||||
version: CARGO_PKG_VERSION.map(|x| x.to_owned()),
|
version: CARGO_PKG_VERSION.map(|x| x.to_owned()),
|
||||||
}
|
}
|
||||||
|
|
|
@ -529,8 +529,9 @@ async fn nostr_server(
|
||||||
client_published_event_count += 1;
|
client_published_event_count += 1;
|
||||||
} else {
|
} else {
|
||||||
info!("client {:?} sent a far future-dated event", cid);
|
info!("client {:?} sent a far future-dated event", cid);
|
||||||
ws_stream.send(make_notice_message("event was too far in the future")).await.ok();
|
if let Some(fut_sec) = settings.options.reject_future_seconds {
|
||||||
|
ws_stream.send(make_notice_message(&format!("The event created_at field is out of the acceptable range (+{}sec) for this relay and was not stored.",fut_sec))).await.ok();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user