Releases: UTXOnly/nostpy-relay
Releases · UTXOnly/nostpy-relay
v1.2.0
v1.0.0
Enhancements
Added
Nginx reverse proxy container
Support for OpenTelemetry
Traces and metrics over GRPC
OTel collector/Datadog exporter
Support for both x86/ARM64 architecture for Python containers
Upgraded Python containers to 3.11-slim base image
Config option to configure seperate read/write database instances
Removed
Nginx reverse proxy on host
Python 3.9-slim base images
Datadog Python tracer
Datadog docker agent
Bug fixes
v0.8
Enhancements
- Completed feature request #37 [FR] Support for NIP-50 (search capability) for both content and tags
- Support for NIP-50 search queries
- Searches
tags
andcontent
fields - Compatible with searching NIP-99 Classified Listings
- Completed feature request for #38 [FR] Support NIP-09 Event Deletion
- Add support for NIP-09 event deletions
- Upon receiving a request from a client, relay will:
- Check if event is
kind 5
- Validate the
sig
of the event - Delete events where
pubkey
=pubkey
fromkind 5
event (can only delete your own events) - Respond to client with
["OK","true]
response
- Validate the
- Check if event is
Bug fixes
v0.7
v0.7
Enhancements
- Re-added redis cache to serve frequent queries faster
- Added event classes to
event_handler
service for readability and portability - More efficient use of coroutines
- Use
asyncio.gather
to prepare and send responses to websocket client - Converted async methods to sync methods where appropriate to reduce overhead
- Use
- Added auto-multiline log detection for Datadog agent to more easily read stack traces
- Cleaned up noisy
DEBUG
log lines - Better error handling for empty responses
Bug Fixes
- Fixed
websocket_handler
JSON loads error that occurred when loading empty payloads to no longer restart the websocket server- Server continues and maintains the websocket connection
## v0.6
Enhancements
- Obfuscate
client_ip
tag by using a hashed value for their ip address- Rate limiter is triggered off the hashed value, no
client ip
in any application logs
- Rate limiter is triggered off the hashed value, no
- Added docstrings for classes in
websocket_handler.py
- Remove event verification from
handle_new_event
method (unnecessary as it is done by clients) - Removed
SQLalchemy
in favor of asyncpsycopg3
- Faster
- Smaller memory footprint
- More control over dynamically constructed queries
- Slight redesign of database schema to store
tags
inJSONB
format- Easier to query individual tags
- Improved query performance from executing
tag
search as a function scan - Remove high cardinality
indexes
, leaving indexes only onpubkey
andkind
event-handler
service broken up into smallerasync
functions , with better error handling and more specific error messages- Updated Database Monitoring setup script
Bug Fixes
- Tags not being added to query filter, Issue #28
- Tags are now stored in
JSONB
format and use valid and dynamically constructed queries
- Tags are now stored in
v0.5
Enhancements
- Add
client_ip
andnostr_client
tag to rate limit and current token count metrics - Add
stop_containers
option to main menu to be able to stop containers without having to rebuild - Database Monitoring setup script added to main menu to create Datadog schema in every available databse and enable
pg_stat_statements
+ explain statements - Add pylint numerical score badge to readme
Bug Fixes