[−][src]Struct lightning::chain::keysinterface::KeysManager
Simple KeysInterface implementor that takes a 32-byte seed for use as a BIP 32 extended key and derives keys from that.
Your node_id is seed/0' ChannelMonitor closes may use seed/1' Cooperative closes may use seed/2' The two close keys may be needed to claim on-chain funds!
Implementations
impl KeysManager
[src]
pub fn new(
seed: &[u8; 32],
network: Network,
starting_time_secs: u64,
starting_time_nanos: u32
) -> Self
[src]
seed: &[u8; 32],
network: Network,
starting_time_secs: u64,
starting_time_nanos: u32
) -> Self
Constructs a KeysManager from a 32-byte seed. If the seed is in some way biased (eg your CSRNG is busted) this may panic (but more importantly, you will possibly lose funds). starting_time isn't strictly required to actually be a time, but it must absolutely, without a doubt, be unique to this instance. ie if you start multiple times with the same seed, starting_time must be unique to each run. Thus, the easiest way to achieve this is to simply use the current time (with very high precision).
The seed MUST be backed up safely prior to use so that the keys can be re-created, however, obviously, starting_time should be unique every time you reload the library - it is only used to generate new ephemeral key data (which will be stored by the individual channel if necessary).
Note that the seed is required to recover certain on-chain funds independent of ChannelMonitor data, though a current copy of ChannelMonitor data is also required for any channel, and some on-chain during-closing funds.
Note that until the 0.1 release there is no guarantee of backward compatibility between versions. Once the library is more fully supported, the docs will be updated to include a detailed description of the guarantee.
pub fn derive_channel_keys(
&self,
channel_value_satoshis: u64,
params_1: u64,
params_2: u64
) -> InMemoryChannelKeys
[src]
&self,
channel_value_satoshis: u64,
params_1: u64,
params_2: u64
) -> InMemoryChannelKeys
Derive an old set of ChannelKeys for per-channel secrets based on a key derivation parameters. Key derivation parameters are accessible through a per-channel secrets ChannelKeys::key_derivation_params and is provided inside DynamicOuputP2WSH in case of onchain output detection for which a corresponding delayed_payment_key must be derived.
Trait Implementations
impl KeysInterface for KeysManager
[src]
type ChanKeySigner = InMemoryChannelKeys
A type which implements ChannelKeys which will be returned by get_channel_keys.
pub fn get_node_secret(&self) -> SecretKey
[src]
pub fn get_destination_script(&self) -> Script
[src]
pub fn get_shutdown_pubkey(&self) -> PublicKey
[src]
pub fn get_channel_keys(
&self,
_inbound: bool,
channel_value_satoshis: u64
) -> Self::ChanKeySigner
[src]
&self,
_inbound: bool,
channel_value_satoshis: u64
) -> Self::ChanKeySigner
pub fn get_secure_random_bytes(&self) -> [u8; 32]
[src]
Auto Trait Implementations
impl RefUnwindSafe for KeysManager
impl Send for KeysManager
impl Sync for KeysManager
impl Unpin for KeysManager
impl UnwindSafe for KeysManager
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,