Latest Release

  • Repository: 0ceanSlim/grain
  • Published on: 2024-09-26 17:18:03 UTC
  • Version Tag: v0.1.2
  • By: 0ceanSlim
  • On GitHub: 0ceanSlim/grain/releases

🚀 New Features & Enhancements (Blacklisting, Purging, Resource Limits, AUTH !)

  • Blacklist Implementation 🛑:
  • Configurable Blacklist System: Introduced a blacklist configuration that allows administrators to block specific pubkeys and keywords.
  • Permanent Ban: Pubkeys can be permanently blacklisted, and certain keywords can trigger an immediate permanent ban.
  • Temporary Ban: Specify keywords that lead to a temporary ban, with configurable thresholds for how many violations lead to a permanent ban.
  • Max Ban Limits: You can control the duration of temporary bans and the number of violations before converting them to a permanent ban.

  • Event Purging 🗑️:

  • Automatic Event Cleanup: Added event purging functionality to automatically delete older events based on configurable rules.
  • Events are purged after a set duration, and purging can be based on event categories (replaceable, parameterized, etc.) and kinds.
  • Events from whitelisted pubkeys can be excluded from purging.

  • Resource Limits 🔧:

  • Server Resource Management: Implemented resource limit controls to improve performance and prevent resource exhaustion.
  • Set limits for CPU cores, memory usage, heap size, and the number of concurrent Go routines to optimize resource usage.

  • NIP42 AUTH Relay Implementation 🔑:

  • Client Authentication: Added support for NIP-42 AUTH, allowing the server to authenticate clients via signed ephemeral events.
  • Clients can authenticate before publishing events or making specific requests, adding a layer of security to relay operations.

🐛 Bug Fixes

  • Improved Request Handling: Now processes REQ and event messages concurrently using a queue system for better performance.
  • created_at Bug Fixed: Resolved an issue where events were being inserted with the wrong created_at (was createdat) field, ensuring accurate timestamps.
  • Special Characters Escaping: Fixed an issue where special characters were not properly escaped, which led to incorrect event IDs and signatures.
  • Parameterized Event Handling: Fixed improper handling of parameterized replaceable events, ensuring that old events are deleted when replaced.

🛠️ Other Changes

- Code Refactoring: Significant refactoring of code throughout the application to improve maintainability and performance.

To install just extract the app folder to the same directory as your executable, then run the program!

Full Changelog: https://github.com/0ceanSlim/grain/compare/v0.1.1...v0.1.2

Data updated on: 2024-10-16 00:02 UTC