Skip to content

Commit 7f21bb2

Browse files
committed
Rename persistence namespace/key constants to be more concise
The constants in `lightning::util::persist` are sufficiently long that its often difficult eyeball their correctness which nearly led to several bugs when adding async support. Here we take a further step towards condensing them by making them somewhat more concise, dropping words which are obvious from context. Importantly, this changes the prefix for monitor *update* persistence namespaces from monitor persistence namespaces so that they are visually distinct. This runs the following replacements: * s/_PERSISTENCE_/_/g * s/CHANNEL_MONITOR_UPDATE/MONITOR_UPDATE/g * s/ARCHIVED_CHANNEL_MONITOR/ARCHIVED_MONITOR/g
1 parent 27cba43 commit 7f21bb2

File tree

4 files changed

+141
-178
lines changed

4 files changed

+141
-178
lines changed

lightning-background-processor/src/lib.rs

Lines changed: 59 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,10 @@ use lightning::sign::EntropySource;
5555
use lightning::sign::OutputSpender;
5656
use lightning::util::logger::Logger;
5757
use lightning::util::persist::{
58-
KVStore, KVStoreSync, KVStoreSyncWrapper, CHANNEL_MANAGER_PERSISTENCE_KEY,
59-
CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE, CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE,
60-
NETWORK_GRAPH_PERSISTENCE_KEY, NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE,
61-
NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE, SCORER_PERSISTENCE_KEY,
62-
SCORER_PERSISTENCE_PRIMARY_NAMESPACE, SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
58+
KVStore, KVStoreSync, KVStoreSyncWrapper, CHANNEL_MANAGER_KEY,
59+
CHANNEL_MANAGER_PRIMARY_NAMESPACE, CHANNEL_MANAGER_SECONDARY_NAMESPACE, NETWORK_GRAPH_KEY,
60+
NETWORK_GRAPH_PRIMARY_NAMESPACE, NETWORK_GRAPH_SECONDARY_NAMESPACE, SCORER_KEY,
61+
SCORER_PRIMARY_NAMESPACE, SCORER_SECONDARY_NAMESPACE,
6362
};
6463
use lightning::util::sweep::OutputSweeper;
6564
#[cfg(feature = "std")]
@@ -796,9 +795,9 @@ where
796795
log_trace!(logger, "Persisting scorer after update");
797796
if let Err(e) = kv_store
798797
.write(
799-
SCORER_PERSISTENCE_PRIMARY_NAMESPACE,
800-
SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
801-
SCORER_PERSISTENCE_KEY,
798+
SCORER_PRIMARY_NAMESPACE,
799+
SCORER_SECONDARY_NAMESPACE,
800+
SCORER_KEY,
802801
scorer.encode(),
803802
)
804803
.await
@@ -932,9 +931,9 @@ where
932931
let fut = async {
933932
kv_store
934933
.write(
935-
CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE,
936-
CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE,
937-
CHANNEL_MANAGER_PERSISTENCE_KEY,
934+
CHANNEL_MANAGER_PRIMARY_NAMESPACE,
935+
CHANNEL_MANAGER_SECONDARY_NAMESPACE,
936+
CHANNEL_MANAGER_KEY,
938937
channel_manager.get_cm().encode(),
939938
)
940939
.await
@@ -995,9 +994,9 @@ where
995994
let fut = async {
996995
if let Err(e) = kv_store
997996
.write(
998-
NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE,
999-
NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE,
1000-
NETWORK_GRAPH_PERSISTENCE_KEY,
997+
NETWORK_GRAPH_PRIMARY_NAMESPACE,
998+
NETWORK_GRAPH_SECONDARY_NAMESPACE,
999+
NETWORK_GRAPH_KEY,
10011000
network_graph.encode(),
10021001
)
10031002
.await
@@ -1037,9 +1036,9 @@ where
10371036
let fut = async {
10381037
if let Err(e) = kv_store
10391038
.write(
1040-
SCORER_PERSISTENCE_PRIMARY_NAMESPACE,
1041-
SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
1042-
SCORER_PERSISTENCE_KEY,
1039+
SCORER_PRIMARY_NAMESPACE,
1040+
SCORER_SECONDARY_NAMESPACE,
1041+
SCORER_KEY,
10431042
scorer.encode(),
10441043
)
10451044
.await
@@ -1142,28 +1141,28 @@ where
11421141
// ChannelMonitor update(s) persisted without a corresponding ChannelManager update.
11431142
kv_store
11441143
.write(
1145-
CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE,
1146-
CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE,
1147-
CHANNEL_MANAGER_PERSISTENCE_KEY,
1144+
CHANNEL_MANAGER_PRIMARY_NAMESPACE,
1145+
CHANNEL_MANAGER_SECONDARY_NAMESPACE,
1146+
CHANNEL_MANAGER_KEY,
11481147
channel_manager.get_cm().encode(),
11491148
)
11501149
.await?;
11511150
if let Some(ref scorer) = scorer {
11521151
kv_store
11531152
.write(
1154-
SCORER_PERSISTENCE_PRIMARY_NAMESPACE,
1155-
SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
1156-
SCORER_PERSISTENCE_KEY,
1153+
SCORER_PRIMARY_NAMESPACE,
1154+
SCORER_SECONDARY_NAMESPACE,
1155+
SCORER_KEY,
11571156
scorer.encode(),
11581157
)
11591158
.await?;
11601159
}
11611160
if let Some(network_graph) = gossip_sync.network_graph() {
11621161
kv_store
11631162
.write(
1164-
NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE,
1165-
NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE,
1166-
NETWORK_GRAPH_PERSISTENCE_KEY,
1163+
NETWORK_GRAPH_PRIMARY_NAMESPACE,
1164+
NETWORK_GRAPH_SECONDARY_NAMESPACE,
1165+
NETWORK_GRAPH_KEY,
11671166
network_graph.encode(),
11681167
)
11691168
.await?;
@@ -1371,9 +1370,9 @@ impl BackgroundProcessor {
13711370
if update_scorer(scorer, &event, duration_since_epoch) {
13721371
log_trace!(logger, "Persisting scorer after update");
13731372
if let Err(e) = kv_store.write(
1374-
SCORER_PERSISTENCE_PRIMARY_NAMESPACE,
1375-
SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
1376-
SCORER_PERSISTENCE_KEY,
1373+
SCORER_PRIMARY_NAMESPACE,
1374+
SCORER_SECONDARY_NAMESPACE,
1375+
SCORER_KEY,
13771376
scorer.encode(),
13781377
) {
13791378
log_error!(logger, "Error: Failed to persist scorer, check your disk and permissions {}", e)
@@ -1471,9 +1470,9 @@ impl BackgroundProcessor {
14711470
if channel_manager.get_cm().get_and_clear_needs_persistence() {
14721471
log_trace!(logger, "Persisting ChannelManager...");
14731472
(kv_store.write(
1474-
CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE,
1475-
CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE,
1476-
CHANNEL_MANAGER_PERSISTENCE_KEY,
1473+
CHANNEL_MANAGER_PRIMARY_NAMESPACE,
1474+
CHANNEL_MANAGER_SECONDARY_NAMESPACE,
1475+
CHANNEL_MANAGER_KEY,
14771476
channel_manager.get_cm().encode(),
14781477
))?;
14791478
log_trace!(logger, "Done persisting ChannelManager.");
@@ -1503,9 +1502,9 @@ impl BackgroundProcessor {
15031502
duration_since_epoch.as_secs(),
15041503
);
15051504
if let Err(e) = kv_store.write(
1506-
NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE,
1507-
NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE,
1508-
NETWORK_GRAPH_PERSISTENCE_KEY,
1505+
NETWORK_GRAPH_PRIMARY_NAMESPACE,
1506+
NETWORK_GRAPH_SECONDARY_NAMESPACE,
1507+
NETWORK_GRAPH_KEY,
15091508
network_graph.encode(),
15101509
) {
15111510
log_error!(logger, "Error: Failed to persist network graph, check your disk and permissions {}", e);
@@ -1532,9 +1531,9 @@ impl BackgroundProcessor {
15321531
log_trace!(logger, "Calling time_passed and persisting scorer");
15331532
scorer.write_lock().time_passed(duration_since_epoch);
15341533
if let Err(e) = kv_store.write(
1535-
SCORER_PERSISTENCE_PRIMARY_NAMESPACE,
1536-
SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
1537-
SCORER_PERSISTENCE_KEY,
1534+
SCORER_PRIMARY_NAMESPACE,
1535+
SCORER_SECONDARY_NAMESPACE,
1536+
SCORER_KEY,
15381537
scorer.encode(),
15391538
) {
15401539
log_error!(logger, "Error: Failed to persist scorer, check your disk and permissions {}", e);
@@ -1572,24 +1571,24 @@ impl BackgroundProcessor {
15721571
// some races where users quit while channel updates were in-flight, with
15731572
// ChannelMonitor update(s) persisted without a corresponding ChannelManager update.
15741573
kv_store.write(
1575-
CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE,
1576-
CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE,
1577-
CHANNEL_MANAGER_PERSISTENCE_KEY,
1574+
CHANNEL_MANAGER_PRIMARY_NAMESPACE,
1575+
CHANNEL_MANAGER_SECONDARY_NAMESPACE,
1576+
CHANNEL_MANAGER_KEY,
15781577
channel_manager.get_cm().encode(),
15791578
)?;
15801579
if let Some(ref scorer) = scorer {
15811580
kv_store.write(
1582-
SCORER_PERSISTENCE_PRIMARY_NAMESPACE,
1583-
SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
1584-
SCORER_PERSISTENCE_KEY,
1581+
SCORER_PRIMARY_NAMESPACE,
1582+
SCORER_SECONDARY_NAMESPACE,
1583+
SCORER_KEY,
15851584
scorer.encode(),
15861585
)?;
15871586
}
15881587
if let Some(network_graph) = gossip_sync.network_graph() {
15891588
kv_store.write(
1590-
NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE,
1591-
NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE,
1592-
NETWORK_GRAPH_PERSISTENCE_KEY,
1589+
NETWORK_GRAPH_PRIMARY_NAMESPACE,
1590+
NETWORK_GRAPH_SECONDARY_NAMESPACE,
1591+
NETWORK_GRAPH_KEY,
15931592
network_graph.encode(),
15941593
)?;
15951594
}
@@ -1681,12 +1680,10 @@ mod tests {
16811680
use lightning::types::payment::PaymentHash;
16821681
use lightning::util::config::UserConfig;
16831682
use lightning::util::persist::{
1684-
KVStoreSync, KVStoreSyncWrapper, CHANNEL_MANAGER_PERSISTENCE_KEY,
1685-
CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE,
1686-
CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE, NETWORK_GRAPH_PERSISTENCE_KEY,
1687-
NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE, NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE,
1688-
SCORER_PERSISTENCE_KEY, SCORER_PERSISTENCE_PRIMARY_NAMESPACE,
1689-
SCORER_PERSISTENCE_SECONDARY_NAMESPACE,
1683+
KVStoreSync, KVStoreSyncWrapper, CHANNEL_MANAGER_KEY, CHANNEL_MANAGER_PRIMARY_NAMESPACE,
1684+
CHANNEL_MANAGER_SECONDARY_NAMESPACE, NETWORK_GRAPH_KEY, NETWORK_GRAPH_PRIMARY_NAMESPACE,
1685+
NETWORK_GRAPH_SECONDARY_NAMESPACE, SCORER_KEY, SCORER_PRIMARY_NAMESPACE,
1686+
SCORER_SECONDARY_NAMESPACE,
16901687
};
16911688
use lightning::util::ser::Writeable;
16921689
use lightning::util::sweep::{OutputSpendStatus, OutputSweeperSync, PRUNE_DELAY_BLOCKS};
@@ -1937,18 +1934,18 @@ mod tests {
19371934
fn write(
19381935
&self, primary_namespace: &str, secondary_namespace: &str, key: &str, buf: Vec<u8>,
19391936
) -> lightning::io::Result<()> {
1940-
if primary_namespace == CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE
1941-
&& secondary_namespace == CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE
1942-
&& key == CHANNEL_MANAGER_PERSISTENCE_KEY
1937+
if primary_namespace == CHANNEL_MANAGER_PRIMARY_NAMESPACE
1938+
&& secondary_namespace == CHANNEL_MANAGER_SECONDARY_NAMESPACE
1939+
&& key == CHANNEL_MANAGER_KEY
19431940
{
19441941
if let Some((error, message)) = self.manager_error {
19451942
return Err(std::io::Error::new(error, message).into());
19461943
}
19471944
}
19481945

1949-
if primary_namespace == NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE
1950-
&& secondary_namespace == NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE
1951-
&& key == NETWORK_GRAPH_PERSISTENCE_KEY
1946+
if primary_namespace == NETWORK_GRAPH_PRIMARY_NAMESPACE
1947+
&& secondary_namespace == NETWORK_GRAPH_SECONDARY_NAMESPACE
1948+
&& key == NETWORK_GRAPH_KEY
19521949
{
19531950
if let Some(sender) = &self.graph_persistence_notifier {
19541951
match sender.send(()) {
@@ -1964,9 +1961,9 @@ mod tests {
19641961
}
19651962
}
19661963

1967-
if primary_namespace == SCORER_PERSISTENCE_PRIMARY_NAMESPACE
1968-
&& secondary_namespace == SCORER_PERSISTENCE_SECONDARY_NAMESPACE
1969-
&& key == SCORER_PERSISTENCE_KEY
1964+
if primary_namespace == SCORER_PRIMARY_NAMESPACE
1965+
&& secondary_namespace == SCORER_SECONDARY_NAMESPACE
1966+
&& key == SCORER_KEY
19701967
{
19711968
if let Some((error, message)) = self.scorer_error {
19721969
return Err(std::io::Error::new(error, message).into());

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 16 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@ use crate::ln::types::ChannelId;
2727
use crate::sign::NodeSigner;
2828
use crate::util::native_async::FutureQueue;
2929
use crate::util::persist::{
30-
MonitorName, MonitorUpdatingPersisterAsync, CHANNEL_MONITOR_PERSISTENCE_PRIMARY_NAMESPACE,
31-
CHANNEL_MONITOR_PERSISTENCE_SECONDARY_NAMESPACE,
32-
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
30+
MonitorName, MonitorUpdatingPersisterAsync, CHANNEL_MONITOR_PRIMARY_NAMESPACE,
31+
CHANNEL_MONITOR_SECONDARY_NAMESPACE, MONITOR_UPDATE_PRIMARY_NAMESPACE,
3332
};
3433
use crate::util::ser::{ReadableArgs, Writeable};
3534
use crate::util::test_channel_signer::TestChannelSigner;
@@ -4935,8 +4934,8 @@ fn native_async_persist() {
49354934
let funding_txo = OutPoint { txid: funding_tx.compute_txid(), index: 0 };
49364935
let key = MonitorName::V1Channel(funding_txo).to_string();
49374936
let pending_writes = kv_store.list_pending_async_writes(
4938-
CHANNEL_MONITOR_PERSISTENCE_PRIMARY_NAMESPACE,
4939-
CHANNEL_MONITOR_PERSISTENCE_SECONDARY_NAMESPACE,
4937+
CHANNEL_MONITOR_PRIMARY_NAMESPACE,
4938+
CHANNEL_MONITOR_SECONDARY_NAMESPACE,
49404939
&key,
49414940
);
49424941
assert_eq!(pending_writes.len(), 1);
@@ -4966,37 +4965,21 @@ fn native_async_persist() {
49664965
persist_futures.poll_futures();
49674966
assert_eq!(async_chain_monitor.release_pending_monitor_events().len(), 0);
49684967

4969-
let pending_writes = kv_store.list_pending_async_writes(
4970-
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
4971-
&key,
4972-
"1",
4973-
);
4968+
let pending_writes =
4969+
kv_store.list_pending_async_writes(MONITOR_UPDATE_PRIMARY_NAMESPACE, &key, "1");
49744970
assert_eq!(pending_writes.len(), 1);
4975-
let pending_writes = kv_store.list_pending_async_writes(
4976-
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
4977-
&key,
4978-
"2",
4979-
);
4971+
let pending_writes =
4972+
kv_store.list_pending_async_writes(MONITOR_UPDATE_PRIMARY_NAMESPACE, &key, "2");
49804973
assert_eq!(pending_writes.len(), 1);
49814974

4982-
kv_store.complete_async_writes_through(
4983-
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
4984-
&key,
4985-
"1",
4986-
usize::MAX,
4987-
);
4975+
kv_store.complete_async_writes_through(MONITOR_UPDATE_PRIMARY_NAMESPACE, &key, "1", usize::MAX);
49884976
persist_futures.poll_futures();
49894977
// While the `ChainMonitor` could return a `MonitorEvent::Completed` here, it currently
49904978
// doesn't. If that ever changes we should validate that the `Completed` event has the correct
49914979
// `monitor_update_id` (1).
49924980
assert!(async_chain_monitor.release_pending_monitor_events().is_empty());
49934981

4994-
kv_store.complete_async_writes_through(
4995-
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
4996-
&key,
4997-
"2",
4998-
usize::MAX,
4999-
);
4982+
kv_store.complete_async_writes_through(MONITOR_UPDATE_PRIMARY_NAMESPACE, &key, "2", usize::MAX);
50004983
persist_futures.poll_futures();
50014984
let completed_persist = async_chain_monitor.release_pending_monitor_events();
50024985
assert_eq!(completed_persist.len(), 1);
@@ -5015,34 +4998,18 @@ fn native_async_persist() {
50154998
persist_futures.poll_futures();
50164999
assert_eq!(async_chain_monitor.release_pending_monitor_events().len(), 0);
50175000

5018-
let pending_writes = kv_store.list_pending_async_writes(
5019-
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
5020-
&key,
5021-
"3",
5022-
);
5001+
let pending_writes =
5002+
kv_store.list_pending_async_writes(MONITOR_UPDATE_PRIMARY_NAMESPACE, &key, "3");
50235003
assert_eq!(pending_writes.len(), 1);
5024-
let pending_writes = kv_store.list_pending_async_writes(
5025-
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
5026-
&key,
5027-
"4",
5028-
);
5004+
let pending_writes =
5005+
kv_store.list_pending_async_writes(MONITOR_UPDATE_PRIMARY_NAMESPACE, &key, "4");
50295006
assert_eq!(pending_writes.len(), 1);
50305007

5031-
kv_store.complete_async_writes_through(
5032-
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
5033-
&key,
5034-
"4",
5035-
usize::MAX,
5036-
);
5008+
kv_store.complete_async_writes_through(MONITOR_UPDATE_PRIMARY_NAMESPACE, &key, "4", usize::MAX);
50375009
persist_futures.poll_futures();
50385010
assert_eq!(async_chain_monitor.release_pending_monitor_events().len(), 0);
50395011

5040-
kv_store.complete_async_writes_through(
5041-
CHANNEL_MONITOR_UPDATE_PERSISTENCE_PRIMARY_NAMESPACE,
5042-
&key,
5043-
"3",
5044-
usize::MAX,
5045-
);
5012+
kv_store.complete_async_writes_through(MONITOR_UPDATE_PRIMARY_NAMESPACE, &key, "3", usize::MAX);
50465013
persist_futures.poll_futures();
50475014
let completed_persist = async_chain_monitor.release_pending_monitor_events();
50485015
assert_eq!(completed_persist.len(), 1);

0 commit comments

Comments
 (0)