pub struct Geth { /* private fields */ }Expand description
Builder for launching geth.
The default mode is an isolated development chain. Geth::p2p_port and
Geth::disable_discovery switch to non-dev mode; Geth::dev and Geth::block_time
switch back to dev mode. Geth::spawn panics on any startup failure; use
Geth::try_spawn to handle errors.
§Example
use alloy_node_bindings::Geth;
let geth = Geth::new().block_time(1).try_spawn()?;
println!("Geth is listening at {}", geth.endpoint());
drop(geth); // this will kill the instanceImplementations§
Source§impl Geth
impl Geth
Sourcepub fn at(path: impl Into<PathBuf>) -> Self
pub fn at(path: impl Into<PathBuf>) -> Self
Creates a Geth builder which will execute geth at the given path.
§Example
use alloy_node_bindings::Geth;
let geth = Geth::at("../go-ethereum/build/bin/geth").spawn();
println!("Geth running at `{}`", geth.endpoint());Sourcepub fn path<T: Into<PathBuf>>(self, path: T) -> Self
pub fn path<T: Into<PathBuf>>(self, path: T) -> Self
Sets the path to the geth executable
By default, it’s expected that geth is in $PATH, see also
std::process::Command::new()
Sourcepub const fn is_clique(&self) -> bool
pub const fn is_clique(&self) -> bool
Returns whether the node is launched in Clique consensus mode.
Sourcepub fn clique_address(&self) -> Option<Address>
pub fn clique_address(&self) -> Option<Address>
Calculates the address of the Clique consensus address.
Sourcepub fn set_clique_private_key<T: Into<SigningKey>>(self, private_key: T) -> Self
👎Deprecated: clique support was removed in geth >=1.14
pub fn set_clique_private_key<T: Into<SigningKey>>(self, private_key: T) -> Self
clique support was removed in geth >=1.14
Sets the Clique Private Key to the geth executable, which will be later
loaded on the node.
The address derived from this private key will be used to set the miner.etherbase field
on the node.
Sourcepub fn port<T: Into<u16>>(self, port: T) -> Self
pub fn port<T: Into<u16>>(self, port: T) -> Self
Sets the port which will be used when the geth-cli instance is launched.
If port is 0 then the OS will choose a random port. GethInstance::port will return the port that was chosen.
Sourcepub fn host<T: Into<String>>(self, host: T) -> Self
pub fn host<T: Into<String>>(self, host: T) -> Self
Sets the host which will be used when the geth instance is launched.
Defaults to localhost.
Sourcepub fn p2p_port(self, port: u16) -> Self
pub fn p2p_port(self, port: u16) -> Self
Sets the port which will be used for incoming p2p connections.
This will put the geth instance into non-dev mode, discarding any previously set dev-mode options.
Sourcepub const fn block_time(self, block_time: u64) -> Self
pub const fn block_time(self, block_time: u64) -> Self
Sets the dev-chain block interval in seconds.
This will put the geth instance in dev mode, discarding any previously set options that
cannot be used in dev mode.
Sourcepub const fn insecure_unlock(self) -> Self
pub const fn insecure_unlock(self) -> Self
Allow geth to unlock accounts when rpc apis are open.
Sourcepub const fn enable_ipc(self) -> Self
pub const fn enable_ipc(self) -> Self
Enable IPC for the geth instance.
Sourcepub fn disable_discovery(self) -> Self
pub fn disable_discovery(self) -> Self
Disable discovery for the geth instance.
This will put the geth instance into non-dev mode, discarding any previously set dev-mode options.
Sourcepub fn ipc_path<T: Into<PathBuf>>(self, path: T) -> Self
pub fn ipc_path<T: Into<PathBuf>>(self, path: T) -> Self
Sets the IPC path for the socket.
This also enables IPC, as setting a path implies the intent to use IPC.
Sourcepub fn genesis(self, genesis: Genesis) -> Self
pub fn genesis(self, genesis: Genesis) -> Self
Sets the genesis.json for the geth instance.
If this is set, geth will be initialized with geth init and the --datadir option will be
set to the same value as data_dir.
This is destructive and will overwrite any existing data in the data directory.
Sourcepub const fn authrpc_port(self, port: u16) -> Self
pub const fn authrpc_port(self, port: u16) -> Self
Sets the port for authenticated RPC connections.
Sourcepub const fn keep_stderr(self) -> Self
pub const fn keep_stderr(self) -> Self
Keep the handle to geth’s stderr in order to read from it.
This is required by GethInstance::stderr and GethInstance::wait_to_add_peer.
Caution: if the stderr handle is not continuously consumed, the child process can block.
Sourcepub fn extend_args<I, S>(&mut self, args: I)
pub fn extend_args<I, S>(&mut self, args: I)
Adds multiple arguments to pass to the geth.
Sourcepub fn arg<T: Into<OsString>>(self, arg: T) -> Self
pub fn arg<T: Into<OsString>>(self, arg: T) -> Self
Adds an argument to pass to geth.
Pass any arg that is not supported by the builder.
Sourcepub fn args<I, S>(self, args: I) -> Self
pub fn args<I, S>(self, args: I) -> Self
Adds multiple arguments to pass to geth.
Pass any args that is not supported by the builder.
Sourcepub fn spawn(self) -> GethInstance
pub fn spawn(self) -> GethInstance
Sourcepub fn try_spawn(self) -> Result<GethInstance, NodeError>
pub fn try_spawn(self) -> Result<GethInstance, NodeError>
Consumes the builder, spawns geth, and waits for its HTTP and active networking services
to report ready.
Returns an error if the process cannot be started, reports a fatal startup error, or does
not become ready before NODE_STARTUP_TIMEOUT is observed. The deadline is checked
between complete stderr lines; a live process that emits no newline can block this call
past the deadline.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Geth
impl RefUnwindSafe for Geth
impl Send for Geth
impl Sync for Geth
impl Unpin for Geth
impl UnsafeUnpin for Geth
impl UnwindSafe for Geth
Blanket Implementations§
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,
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 moreSource§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1184 bytes