Skip to content

Commit

Permalink
Add a method to reset scorer state.
Browse files Browse the repository at this point in the history
  • Loading branch information
Roman Dmitrienko committed Mar 11, 2024
1 parent f516b9d commit 6a16ed4
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 1 deletion.
2 changes: 2 additions & 0 deletions bindings/ldk_node.udl
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,8 @@ interface LDKNode {
string sign_message([ByRef]sequence<u8> msg);
boolean verify_signature([ByRef]sequence<u8> msg, [ByRef]string sig, [ByRef]PublicKey pkey);
boolean is_running();
[Throws=NodeError]
void reset_scorer_state();
};

[Error]
Expand Down
39 changes: 38 additions & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,11 @@ use lightning::ln::{PaymentHash, PaymentPreimage};

use lightning::sign::EntropySource;

use lightning::util::persist::KVStore;
use lightning::util::persist::{
KVStore, NETWORK_GRAPH_PERSISTENCE_KEY, NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE,
NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE, SCORER_PERSISTENCE_KEY,
SCORER_PERSISTENCE_PRIMARY_NAMESPACE, SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
};

use lightning::util::config::{ChannelHandshakeConfig, UserConfig};
pub use lightning::util::logger::Level as LogLevel;
Expand All @@ -165,6 +169,10 @@ use bitcoin::{Address, Txid};

use rand::Rng;

use crate::io::{
LATEST_RGS_SYNC_TIMESTAMP_KEY, LATEST_RGS_SYNC_TIMESTAMP_PRIMARY_NAMESPACE,
LATEST_RGS_SYNC_TIMESTAMP_SECONDARY_NAMESPACE,
};
use std::default::Default;
use std::net::ToSocketAddrs;
use std::sync::{Arc, Mutex, RwLock};
Expand Down Expand Up @@ -1767,6 +1775,35 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
pub fn verify_signature(&self, msg: &[u8], sig: &str, pkey: &PublicKey) -> bool {
self.keys_manager.verify_signature(msg, sig, pkey)
}

pub fn reset_scorer_state(&self) -> Result<(), Error> {
self.kv_store
.remove(
LATEST_RGS_SYNC_TIMESTAMP_PRIMARY_NAMESPACE,
LATEST_RGS_SYNC_TIMESTAMP_SECONDARY_NAMESPACE,
LATEST_RGS_SYNC_TIMESTAMP_KEY,
false,
)
.map_err(|_| Error::PersistenceFailed)?;
self.kv_store
.remove(
SCORER_PERSISTENCE_PRIMARY_NAMESPACE,
SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
SCORER_PERSISTENCE_KEY,
false,
)
.map_err(|_| Error::PersistenceFailed)?;
self.kv_store
.remove(
NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE,
NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE,
NETWORK_GRAPH_PERSISTENCE_KEY,
false,
)
.map_err(|_| Error::PersistenceFailed)?;

Ok(())
}
}

impl<K: KVStore + Sync + Send + 'static> Drop for Node<K> {
Expand Down

0 comments on commit 6a16ed4

Please sign in to comment.