Documentation
¶
Index ¶
- Constants
- type Builder
- type Config
- type Opt
- func WithExpiryBuffer(buf uint) Opt
- func WithMaxCollectionByteSize(limit uint64) Opt
- func WithMaxCollectionSize(size uint) Opt
- func WithMaxCollectionTotalGas(limit uint64) Opt
- func WithMaxPayerTransactionRate(rate float64) Opt
- func WithRateLimitDryRun(dryRun bool) Opt
- func WithUnlimitedPayers(payers ...flow.Address) Opt
Constants ¶
View Source
const ( DefaultExpiryBuffer uint = 15 // 15 blocks for collections to be included DefaultMaxPayerTransactionRate float64 = 0 // no rate limiting )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder is the builder for collection block payloads. Upon providing a payload hash, it also memorizes the payload contents.
NOTE: Builder is NOT safe for use with multiple goroutines. Since the HotStuff event loop is the only consumer of this interface and is single threaded, this is OK.
func NewBuilder ¶
type Config ¶ added in v0.11.0
type Config struct {
// MaxCollectionSize is the maximum size of collections.
MaxCollectionSize uint
// ExpiryBuffer is how much buffer we add when considering transaction
// expiry. If the buffer is set to 10, and a transaction actually expires
// in 15 blocks, we consider it expired in 5 (15-10) blocks. This accounts
// for the time between the collection being built and being included in
// block.
ExpiryBuffer uint
// DryRunRateLimit will, when enabled, log when a transaction would have
// been omitted from a collection due to rate limiting settings. Rate
// limiting settings are not actually enforced while dry-run is true.
DryRunRateLimit bool
// MaxPayerTransactionRate is the maximum number of transactions per payer
// per collection. Fractional values greater than 1 are rounded down.
// Fractional values 0<k<1 mean that only 1 transaction every ceil(1/k)
// collections is allowed.
//
// A negative value or 0 indicates no rate limiting.
MaxPayerTransactionRate float64
// UnlimitedPayer is a set of addresses which are not affected by per-payer
// rate limiting.
UnlimitedPayers map[flow.Address]struct{}
// MaxCollectionByteSize is the maximum byte size of a collection.
MaxCollectionByteSize uint64
// MaxCollectionTotalGas is the maximum of total of gas per collection (sum of maxGasLimit over transactions)
MaxCollectionTotalGas uint64
}
Config is the configurable options for the collection builder.
func DefaultConfig ¶ added in v0.11.0
func DefaultConfig() Config
type Opt ¶
type Opt func(config *Config)
func WithExpiryBuffer ¶
func WithMaxCollectionByteSize ¶ added in v0.11.0
func WithMaxCollectionSize ¶
func WithMaxCollectionTotalGas ¶ added in v0.11.0
func WithMaxPayerTransactionRate ¶ added in v0.11.0
func WithRateLimitDryRun ¶ added in v0.26.16
func WithUnlimitedPayers ¶ added in v0.11.0
Click to show internal directories.
Click to hide internal directories.