You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Gateway operators want to punish node operators dependent on specific error messages (i.e., rate limiting) and the time to punish is opinionated.
Currently, there is a default behavior of a punishment (stop sending requests) of ~15 seconds whenever a node operator returns an unrelated POKT error/RPC error. The code can be found here.
Proposal
We can extend the gateway server error capabilities by allowing gateway operators to supply specific error substrings and a corresponding punishment duration for the node operator.
This information should be pulled from the PostgreSQL database table similiar fashion to any of our other registries. It could be called NodeErrorRegistry, and periodically updated. Whenever a node operator returns an error response, we can iterate over the rows returned from the NodeErrorRegistry and if there is a match, punish for the specified interval.
Suggested Schema:
error_substring (varchar) -> parsed as a string
punish_interval (varchar) -> parsed as time.Duration
Benefits
Gateway operators can now flexibly punish node operators on a per-need basis without debating what constitutes a "good" or "bad" error, and the appropriate punishment duration.
The gateway server principles is engrained to provide an opinionated for getting started, allowing gateway operators to fine-tune based on their clients' needs. Long term, we can then add databases migrations to include specific error messages where gateway operators agree that these errors provide unanimous benefits for operations. This is aligned with the "future" roadmap
Excerpt below
Over time, as more gateways enter the network, there will be re-occurring patterns on what is needed on the foundational level and developers can create RFPs to have them included. For example, while rate limiting and multi-tenancy endpoints feel too opinionated right now, there is a future where we can create a service that distributes these endpoints natively in the GW server. The use cases are limitless and we expect that over time, community contributions into the gateway server will enable some of the aforementioned use cases natively.
The text was updated successfully, but these errors were encountered:
Context
Gateway operators want to punish node operators dependent on specific error messages (i.e., rate limiting) and the time to punish is opinionated.
Currently, there is a default behavior of a punishment (stop sending requests) of ~15 seconds whenever a node operator returns an unrelated POKT error/RPC error. The code can be found here.
Proposal
We can extend the gateway server error capabilities by allowing gateway operators to supply specific error substrings and a corresponding punishment duration for the node operator.
This information should be pulled from the PostgreSQL database table similiar fashion to any of our other registries. It could be called
NodeErrorRegistry
, and periodically updated. Whenever a node operator returns an error response, we can iterate over the rows returned from theNodeErrorRegistry
and if there is a match, punish for the specified interval.Suggested Schema:
error_substring
(varchar) -> parsed as astring
punish_interval
(varchar) -> parsed astime.Duration
Benefits
Gateway operators can now flexibly punish node operators on a per-need basis without debating what constitutes a "good" or "bad" error, and the appropriate punishment duration.
The gateway server principles is engrained to provide an opinionated for getting started, allowing gateway operators to fine-tune based on their clients' needs. Long term, we can then add databases migrations to include specific error messages where gateway operators agree that these errors provide unanimous benefits for operations. This is aligned with the "future" roadmap
Excerpt below
The text was updated successfully, but these errors were encountered: