Table of Contents

Class BatchExpiryOptions

Namespace
NArk.Core.Models.Options
Assembly
NArk.Core.dll

Overrides for the bounds applied to the batch expiry an Arkade server declares when it opens a batch. Every property is optional; a null property keeps the network-specific default described on BatchExpiryPolicy.

public class BatchExpiryOptions
Inheritance
BatchExpiryOptions
Inherited Members

Remarks

The floors can be lowered but not switched off. A non-null floor that would stop rejecting anything is refused at startup rather than silently disabling the check: zero or less for either floor, and additionally anything below 512 seconds for MinimumExpiry, which is rounded down to a multiple of 512 before comparison and so would round to zero.

Properties

AllowBlockTypedExpiry

Whether to accept a block-typed (rather than seconds-typed) batch expiry. Defaults to true on regtest and false everywhere else, mirroring arkd, which only permits a block-typed VTXO tree expiry on regtest.

public bool? AllowBlockTypedExpiry { get; set; }

Property Value

bool?

Remarks

Enabling this off regtest weakens the guarantee: block-typed expiries are bounded in blocks rather than wall-clock time, so their real duration depends on how fast blocks arrive. Only set it if you are talking to a server you know is configured that way.

MinimumExpiry

Shortest seconds-typed batch expiry this client will accept. Defaults to 24 hours, or 512 seconds on regtest.

public TimeSpan? MinimumExpiry { get; set; }

Property Value

TimeSpan?

Remarks

BIP-68 encodes seconds in units of 512, so the floor is itself rounded down to a multiple of 512 before comparison. A 24-hour floor therefore accepts 86016 (168 x 512), the closest encodable value below a literal 86400. For the same reason it must be at least 512 seconds when set: a shorter floor rounds down to zero and would accept any declared expiry.

MinimumExpiryBlocks

Shortest block-typed batch expiry this client will accept, in blocks. Only consulted when block-typed expiries are allowed at all. Defaults to 10 on regtest. Must be greater than zero when set.

public int? MinimumExpiryBlocks { get; set; }

Property Value

int?