witnet / witnet-rust

Open source Rust implementation of the Witnet decentralized oracle protocol, including full node and wallet backend 👁️🦀
https://docs.witnet.io
GNU General Public License v3.0
180 stars 56 forks source link

feat(validations): raise a transaction error when too many witnesses are requested #2444

Closed drcpu-github closed 2 months ago

drcpu-github commented 5 months ago

This PR serves as a proof-of-concept of how we could validate that a data request does not request too many witnesses. The threshold is hard-coded to 1/4th of the amount of validators.

It is probably more convenient to just pass the validator count rather than the full Stakes Tracker. However, I wanted to have this PR serve as a test on how to pass the Stakes Tracker as an argument since that will be required for other validation functions.

The JSON-RPC CLI and wallet cannot really access the Stakes Tracker, so they pass it a None value. If the implementation were to be simplified to pass the validator count as a single number, they could presumably query it from the node before validating the data request.

aesedepece commented 2 months ago

I guess this can be closed in favor of #2446