Modularize mempool acceptance logic #120
Replies: 7 comments 13 replies
-
Re: #119 (comment) @DeepDoge commented
@luke-jr commented
@DeepDoge commented
|
Beta Was this translation helpful? Give feedback.
-
Re: #119 (review) @luke-jr commented
|
Beta Was this translation helpful? Give feedback.
-
I'm leaning toward a way to write "criteria" scripts in some sandboxed scripting language, with the ability to port it to C++ for performance later, and then a very simple miniscript-like syntax (and GUI editor) for the filter options. But it's a lot of work, and I'm having trouble finding a cross-platform sandbox I feel we can really trust for security isolation... :/ |
Beta Was this translation helpful? Give feedback.
-
some other environments to consider:
|
Beta Was this translation helpful? Give feedback.
-
I find this proposal amazing, how can I help in terms of programming |
Beta Was this translation helpful? Give feedback.
-
Hey Jason! Consider applying for funding from OpenSats to get this over the finish line |
Beta Was this translation helpful? Give feedback.
-
Just a possible alternative to consider: rather than building a sandboxed scripting engine into the node itself, you could have Knots optionally make a call (after doing its own internal checks) to some local filtering service(s) to make a filtering decision for it, outside of the node (eg API which takes a TX, returns an The filtering service can handle the complexity and security implications of a scripting engine, or can be written in a language which is easier to hack on/has faster compilation, etc. The main complexity with that approach being 'what do you do if that service fails, is slow, etc', which is probably for configuration to decide, eg:
Supporting just one would be fine IMO, as that service itself could manage the complexity of additional services (and, not being exposed directly to the internet, could more safely be given the power to, eg, restart services). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
The changes to add support for Lua-based TX filtering were written in a hackathon context. As far as modularizing the mempool acceptance logic, I think we've been successful in proving:
That said, I'm 100% aware these changes are pretty far from being accepted into Knots. Even conceptually, I think there is a bit of work to do to determine which code changes we want to include.
Beta Was this translation helpful? Give feedback.
All reactions