fsdb 0.1.7

This commit is contained in:
Evan Feenstra
2022-07-18 09:08:44 -07:00
parent 0552fc36ea
commit 203c87ac4c
2 changed files with 11 additions and 11 deletions

View File

@@ -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"

View File

@@ -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();