pub struct Options {Show 43 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 builder_urls: Vec<Url>,
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: UrlURL of the HotShot orchestrator.
cdn_endpoint: StringThe socket address of the HotShot CDN’s main entry point (the marshal)
in IP:port form
libp2p_bind_address: StringThe address to bind to for Libp2p (in host:port form)
libp2p_heartbeat_interval: DurationTime between each Libp2p heartbeat
libp2p_history_gossip: usizeNumber of past heartbeats to gossip about on Libp2p
libp2p_history_length: usizeNumber of heartbeats to keep in the Libp2p memcache
libp2p_mesh_n: usizeTarget number of peers for the Libp2p mesh network
libp2p_mesh_n_high: usizeMaximum number of peers in the Libp2p mesh network before removing some
libp2p_mesh_n_low: usizeMinimum number of peers in the Libp2p mesh network before adding more
libp2p_mesh_outbound_min: usizeMinimum number of outbound Libp2p peers in the mesh network before adding more
libp2p_max_ihave_length: usizeThe maximum number of messages to include in a Libp2p IHAVE message
libp2p_max_ihave_messages: usizeThe maximum number of IHAVE messages to accept from a Libp2p peer within a heartbeat
libp2p_published_message_ids_cache_time: DurationLibp2p published message ids time cache duration
libp2p_iwant_followup_time: DurationTime 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: u32How 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: boolIf 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: DurationThe time period that Libp2p message hashes are stored in the cache
libp2p_fanout_ttl: DurationTime to live for Libp2p fanout peers
libp2p_heartbeat_initial_delay: DurationInitial delay in each Libp2p heartbeat
libp2p_gossip_factor: f64How many Libp2p peers we will emit gossip to at each heartbeat
libp2p_gossip_lazy: usizeMinimum number of Libp2p peers to emit gossip to during a heartbeat
libp2p_max_gossip_transmit_size: usizeThe maximum number of bytes we will send in a single Libp2p gossip message
libp2p_max_direct_transmit_size: u64The 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: StringThe 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.
builder_urls: Vec<Url>The URL of the builders to use for submitting transactions
state_relay_server_url: UrlURL of the Light Client State Relay Server
genesis_file: PathBufPath 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: L1ClientOptionsConfiguration for the L1 client.
is_da: boolWhether 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: BackoffParamsExponential backoff for fetching missing state from peers.
logging: Config§identity: Identity§proposal_fetcher_config: ProposalFetcherConfigImplementations§
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> 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,
§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.