mirror of
https://github.com/stakwork/sphinx-key.git
synced 2025-12-19 00:04:25 +01:00
fsdb 0.1.7
This commit is contained in:
@@ -10,4 +10,4 @@ lightning-signer-core = { git = "https://gitlab.com/Evanfeenstra/validating-ligh
|
|||||||
lightning-signer-server = { git = "https://gitlab.com/Evanfeenstra/validating-lightning-signer", branch = "patch-sign-chan", default-features = false, features = ["persist"] }
|
lightning-signer-server = { git = "https://gitlab.com/Evanfeenstra/validating-lightning-signer", branch = "patch-sign-chan", default-features = false, features = ["persist"] }
|
||||||
serde = { version = "1.0.105" }
|
serde = { version = "1.0.105" }
|
||||||
hex = "0.4.3"
|
hex = "0.4.3"
|
||||||
fsdb = "0.1.4"
|
fsdb = "0.1.7"
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
use fsdb::{Bucket, Fsdb};
|
use fsdb::{Bucket, DoubleBucket, Fsdb};
|
||||||
use lightning_signer::persist::Persist;
|
use lightning_signer::persist::Persist;
|
||||||
use lightning_signer_server::persist::model::{ChannelEntry, NodeEntry};
|
use lightning_signer_server::persist::model::{ChannelEntry, NodeEntry};
|
||||||
use std::string::String;
|
use std::string::String;
|
||||||
@@ -23,7 +23,7 @@ const FAT32_MAXFILENAMESIZE: usize = 8;
|
|||||||
|
|
||||||
pub struct FsPersister {
|
pub struct FsPersister {
|
||||||
nodes: Bucket<NodeEntry>,
|
nodes: Bucket<NodeEntry>,
|
||||||
channels: Bucket<ChannelEntry>,
|
channels: DoubleBucket<ChannelEntry>,
|
||||||
allowlist: Bucket<AllowlistItemEntry>,
|
allowlist: Bucket<AllowlistItemEntry>,
|
||||||
chaintracker: Bucket<ChainTrackerEntry>,
|
chaintracker: Bucket<ChainTrackerEntry>,
|
||||||
pubkeys: Bucket<PublicKey>,
|
pubkeys: Bucket<PublicKey>,
|
||||||
@@ -34,7 +34,7 @@ impl FsPersister {
|
|||||||
let db = Fsdb::new("home/ubuntu/sdcard").expect("could not create db");
|
let db = Fsdb::new("home/ubuntu/sdcard").expect("could not create db");
|
||||||
let mut nodes = db.bucket("nodes").expect("fail nodes");
|
let mut nodes = db.bucket("nodes").expect("fail nodes");
|
||||||
nodes.set_max_file_name(FAT32_MAXFILENAMESIZE);
|
nodes.set_max_file_name(FAT32_MAXFILENAMESIZE);
|
||||||
let mut channels = db.bucket("channel").expect("fail channel");
|
let mut channels = db.double_bucket("channel").expect("fail channel");
|
||||||
channels.set_max_file_name(FAT32_MAXFILENAMESIZE);
|
channels.set_max_file_name(FAT32_MAXFILENAMESIZE);
|
||||||
let mut allowlist = db.bucket("allowlis").expect("fail allowlis");
|
let mut allowlist = db.bucket("allowlis").expect("fail allowlis");
|
||||||
allowlist.set_max_file_name(FAT32_MAXFILENAMESIZE);
|
allowlist.set_max_file_name(FAT32_MAXFILENAMESIZE);
|
||||||
@@ -66,7 +66,7 @@ impl Persist for FsPersister {
|
|||||||
fn delete_node(&self, node_id: &PublicKey) {
|
fn delete_node(&self, node_id: &PublicKey) {
|
||||||
let pk = hex::encode(node_id.serialize());
|
let pk = hex::encode(node_id.serialize());
|
||||||
// clear all channel entries within "pk" sub-bucket
|
// clear all channel entries within "pk" sub-bucket
|
||||||
let _ = self.channels.clear_within(&pk);
|
let _ = self.channels.clear(&pk);
|
||||||
let _ = self.nodes.remove(&pk);
|
let _ = self.nodes.remove(&pk);
|
||||||
let _ = self.pubkeys.remove(&pk);
|
let _ = self.pubkeys.remove(&pk);
|
||||||
}
|
}
|
||||||
@@ -80,7 +80,7 @@ impl Persist for FsPersister {
|
|||||||
id: Some(id.channel_id()),
|
id: Some(id.channel_id()),
|
||||||
enforcement_state: EnforcementState::new(0),
|
enforcement_state: EnforcementState::new(0),
|
||||||
};
|
};
|
||||||
let _ = self.channels.put_within(&chan_id, entry, &pk);
|
let _ = self.channels.put(&pk, &chan_id, entry);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
fn new_chain_tracker(&self, node_id: &PublicKey, tracker: &ChainTracker<ChainMonitor>) {
|
fn new_chain_tracker(&self, node_id: &PublicKey, tracker: &ChainTracker<ChainMonitor>) {
|
||||||
@@ -118,7 +118,7 @@ impl Persist for FsPersister {
|
|||||||
channel_setup: Some(channel.setup.clone()),
|
channel_setup: Some(channel.setup.clone()),
|
||||||
enforcement_state: channel.enforcement_state.clone(),
|
enforcement_state: channel.enforcement_state.clone(),
|
||||||
};
|
};
|
||||||
let _ = self.channels.put_within(&chan_id, entry, &pk);
|
let _ = self.channels.put(&pk, &chan_id, entry);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
fn get_channel(
|
fn get_channel(
|
||||||
@@ -129,7 +129,7 @@ impl Persist for FsPersister {
|
|||||||
let pk = hex::encode(node_id.serialize());
|
let pk = hex::encode(node_id.serialize());
|
||||||
let id = NodeChannelId::new(node_id, channel_id);
|
let id = NodeChannelId::new(node_id, channel_id);
|
||||||
let chan_id = hex::encode(id.channel_id().as_slice());
|
let chan_id = hex::encode(id.channel_id().as_slice());
|
||||||
let ret: ChannelEntry = match self.channels.get_within(&chan_id, &pk) {
|
let ret: ChannelEntry = match self.channels.get(&pk, &chan_id) {
|
||||||
Ok(ce) => ce,
|
Ok(ce) => ce,
|
||||||
Err(_) => return Err(()),
|
Err(_) => return Err(()),
|
||||||
};
|
};
|
||||||
@@ -138,12 +138,12 @@ impl Persist for FsPersister {
|
|||||||
fn get_node_channels(&self, node_id: &PublicKey) -> Vec<(ChannelId, CoreChannelEntry)> {
|
fn get_node_channels(&self, node_id: &PublicKey) -> Vec<(ChannelId, CoreChannelEntry)> {
|
||||||
let mut res = Vec::new();
|
let mut res = Vec::new();
|
||||||
let pk = hex::encode(node_id.serialize());
|
let pk = hex::encode(node_id.serialize());
|
||||||
let list = match self.channels.list_within(&pk) {
|
let list = match self.channels.list(&pk) {
|
||||||
Ok(l) => l,
|
Ok(l) => l,
|
||||||
Err(_) => return res,
|
Err(_) => return res,
|
||||||
};
|
};
|
||||||
for channel in list {
|
for channel in list {
|
||||||
if let Ok(entry) = self.channels.get_within(&channel, &pk) {
|
if let Ok(entry) = self.channels.get(&pk, &channel) {
|
||||||
let id = entry.id.clone().unwrap();
|
let id = entry.id.clone().unwrap();
|
||||||
res.push((id, entry.into()));
|
res.push((id, entry.into()));
|
||||||
};
|
};
|
||||||
@@ -181,7 +181,7 @@ impl Persist for FsPersister {
|
|||||||
}
|
}
|
||||||
fn clear_database(&self) {
|
fn clear_database(&self) {
|
||||||
let _ = self.nodes.clear();
|
let _ = self.nodes.clear();
|
||||||
let _ = self.channels.clear();
|
let _ = self.channels.clear_all();
|
||||||
let _ = self.allowlist.clear();
|
let _ = self.allowlist.clear();
|
||||||
let _ = self.chaintracker.clear();
|
let _ = self.chaintracker.clear();
|
||||||
let _ = self.pubkeys.clear();
|
let _ = self.pubkeys.clear();
|
||||||
|
|||||||
Reference in New Issue
Block a user