pub struct Options {Show 42 fields
pub orchestrator_url: Url,
pub cdn_endpoint: String,
pub libp2p_bind_address: String,
pub libp2p_heartbeat_interval: Duration,
pub libp2p_history_gossip: usize,
pub libp2p_history_length: usize,
pub libp2p_mesh_n: usize,
pub libp2p_mesh_n_high: usize,
pub libp2p_mesh_n_low: usize,
pub libp2p_mesh_outbound_min: usize,
pub libp2p_max_ihave_length: usize,
pub libp2p_max_ihave_messages: usize,
pub libp2p_published_message_ids_cache_time: Duration,
pub libp2p_iwant_followup_time: Duration,
pub libp2p_max_messages_per_rpc: Option<usize>,
pub libp2p_gossip_retransmission: u32,
pub libp2p_flood_publish: bool,
pub libp2p_duplicate_cache_time: Duration,
pub libp2p_fanout_ttl: Duration,
pub libp2p_heartbeat_initial_delay: Duration,
pub libp2p_gossip_factor: f64,
pub libp2p_gossip_lazy: usize,
pub libp2p_max_gossip_transmit_size: usize,
pub libp2p_max_direct_transmit_size: u64,
pub public_api_url: Option<Url>,
pub libp2p_advertise_address: String,
pub libp2p_bootstrap_nodes: Option<Vec<Multiaddr>>,
pub state_relay_server_url: Url,
pub genesis_file: PathBuf,
pub key_file: Option<PathBuf>,
pub private_staking_key: Option<TaggedBase64>,
pub private_state_key: Option<TaggedBase64>,
modules: Vec<String>,
pub l1_provider_url: Vec<Url>,
pub l1_options: L1ClientOptions,
pub is_da: bool,
pub state_peers: Vec<Url>,
pub config_peers: Option<Vec<Url>>,
pub catchup_backoff: BackoffParams,
pub logging: Config,
pub identity: Identity,
pub proposal_fetcher_config: ProposalFetcherConfig,
}
Fields§
§orchestrator_url: Url
URL of the HotShot orchestrator.
cdn_endpoint: String
The socket address of the HotShot CDN’s main entry point (the marshal)
in IP:port
form
libp2p_bind_address: String
The address to bind to for Libp2p (in host:port
form)
libp2p_heartbeat_interval: Duration
Time between each Libp2p heartbeat
libp2p_history_gossip: usize
Number of past heartbeats to gossip about on Libp2p
libp2p_history_length: usize
Number of heartbeats to keep in the Libp2p memcache
libp2p_mesh_n: usize
Target number of peers for the Libp2p mesh network
libp2p_mesh_n_high: usize
Maximum number of peers in the Libp2p mesh network before removing some
libp2p_mesh_n_low: usize
Minimum number of peers in the Libp2p mesh network before adding more
libp2p_mesh_outbound_min: usize
Minimum number of outbound Libp2p peers in the mesh network before adding more
libp2p_max_ihave_length: usize
The maximum number of messages to include in a Libp2p IHAVE message
libp2p_max_ihave_messages: usize
The maximum number of IHAVE messages to accept from a Libp2p peer within a heartbeat
libp2p_published_message_ids_cache_time: Duration
Libp2p published message ids time cache duration
libp2p_iwant_followup_time: Duration
Time to wait for a Libp2p message requested through IWANT following an IHAVE advertisement
libp2p_max_messages_per_rpc: Option<usize>
The maximum number of Libp2p messages we will process in a given RPC
libp2p_gossip_retransmission: u32
How many times we will allow a Libp2p peer to request the same message id through IWANT gossip before we start ignoring them
libp2p_flood_publish: bool
If enabled newly created messages will always be sent to all peers that are subscribed to the topic and have a good enough score
libp2p_duplicate_cache_time: Duration
The time period that Libp2p message hashes are stored in the cache
libp2p_fanout_ttl: Duration
Time to live for Libp2p fanout peers
libp2p_heartbeat_initial_delay: Duration
Initial delay in each Libp2p heartbeat
libp2p_gossip_factor: f64
How many Libp2p peers we will emit gossip to at each heartbeat
libp2p_gossip_lazy: usize
Minimum number of Libp2p peers to emit gossip to during a heartbeat
libp2p_max_gossip_transmit_size: usize
The maximum number of bytes we will send in a single Libp2p gossip message
libp2p_max_direct_transmit_size: u64
The maximum number of bytes we will send in a single Libp2p direct message
public_api_url: Option<Url>
The URL we advertise to other nodes as being for our public API.
Should be supplied in http://host:port
form.
libp2p_advertise_address: String
The address we advertise to other nodes as being a Libp2p endpoint.
Should be supplied in host:port
form.
libp2p_bootstrap_nodes: Option<Vec<Multiaddr>>
A comma-separated list of Libp2p multiaddresses to use as bootstrap nodes.
Overrides those loaded from the HotShot
config.
state_relay_server_url: Url
URL of the Light Client State Relay Server
genesis_file: PathBuf
Path to TOML file containing genesis state.
key_file: Option<PathBuf>
Path to file containing private keys.
The file should follow the .env format, with two keys:
- ESPRESSO_SEQUENCER_PRIVATE_STAKING_KEY
- ESPRESSO_SEQUENCER_PRIVATE_STATE_KEY
Appropriate key files can be generated with the keygen
utility program.
private_staking_key: Option<TaggedBase64>
Private staking key.
This can be used as an alternative to KEY_FILE.
private_state_key: Option<TaggedBase64>
Private state signing key.
This can be used as an alternative to KEY_FILE.
modules: Vec<String>
Add optional modules to the service.
Modules are added by specifying the name of the module followed by it’s arguments, as in
sequencer [options] – api –port 3000
to run the API module with port 3000.
To see a list of available modules and their arguments, use
sequencer – help
Multiple modules can be specified, provided they are separated by –
l1_provider_url: Vec<Url>
Url we will use for RPC communication with L1.
l1_options: L1ClientOptions
Configuration for the L1 client.
is_da: bool
Whether or not we are a DA node.
state_peers: Vec<Url>
Peer nodes use to fetch missing state
config_peers: Option<Vec<Url>>
Peer nodes use to fetch missing config
Typically, the network-wide config is fetched from the orchestrator on startup and then persisted and loaded from local storage each time the node restarts. However, if the persisted config is missing when the node restarts (for example, the node is being migrated to new persistent storage), it can instead be fetched directly from a peer.
catchup_backoff: BackoffParams
Exponential backoff for fetching missing state from peers.
logging: Config
§identity: Identity
§proposal_fetcher_config: ProposalFetcherConfig
Implementations§
Source§impl Options
impl Options
pub fn modules(&self) -> Modules
pub fn private_keys(&self) -> Result<(BLSPrivKey, StateSignKey)>
Trait Implementations§
Source§impl Args for Options
impl Args for Options
Source§fn group_id() -> Option<Id>
fn group_id() -> Option<Id>
ArgGroup::id
][crate::ArgGroup::id] for this set of argumentsSource§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command
] so it can instantiate self
via
[FromArgMatches::update_from_arg_matches_mut
] Read moreSource§impl FromArgMatches for Options
impl FromArgMatches for Options
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches
to self
.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches
to self
.Source§impl Parser for Options
impl Parser for Options
§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
§fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
Auto Trait Implementations§
impl Freeze for Options
impl !RefUnwindSafe for Options
impl Send for Options
impl Sync for Options
impl Unpin for Options
impl !UnwindSafe for Options
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.