mirror of
https://github.com/Xahau/xahaud.git
synced 2026-04-29 15:37:46 +00:00
Both xrpld.overlay and xrpl.hook depend on xrpl.protocol, so placing the header there avoids introducing a new xrpld.overlay > xrpl.hook levelization dependency.
33 lines
1.1 KiB
C++
33 lines
1.1 KiB
C++
#ifndef RIPPLE_PROTOCOL_EXPORT_LIMITS_H_INCLUDED
|
|
#define RIPPLE_PROTOCOL_EXPORT_LIMITS_H_INCLUDED
|
|
|
|
#include <cstdint>
|
|
|
|
namespace ripple {
|
|
|
|
// Export system caps.
|
|
//
|
|
// These limits bound the DoS surface of the export signature system:
|
|
// - Each pending export requires every validator to sign it every round
|
|
// (sign-once, broadcast-many via TMValidation)
|
|
// - Inbound signature processing involves crypto verification per sig
|
|
// - The directory cap (maxPendingExports) is the root constraint;
|
|
// signing throughput and inbound processing are transitively bounded by it
|
|
struct ExportLimits
|
|
{
|
|
// Maximum exports a single hook execution may produce
|
|
// (also enforced by hook_api::max_export in Enum.h)
|
|
static constexpr std::uint8_t maxExportsPerHook = 2;
|
|
|
|
// Maximum pending exports in the exported directory at any time.
|
|
// This transitively caps:
|
|
// - signatures per TMValidation message (1 per pending export)
|
|
// - inbound signature processing in PeerImp (clamped to this)
|
|
// - validator signing work per round
|
|
static constexpr std::uint8_t maxPendingExports = 8;
|
|
};
|
|
|
|
} // namespace ripple
|
|
|
|
#endif
|