X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fconfig.rs;h=b1c7ba283e9f73fe7ac732cd76680891fb20a14d;hb=f21d676279519341177f6f4fbc4273a6c750e886;hp=87a7f42c2d29af74c00d9805087a751e8f7fb5a8;hpb=4e8de7598a2bdba675ea5918c4d0013dbcf77a9a;p=rapid-gossip-sync-server diff --git a/src/config.rs b/src/config.rs index 87a7f42..b1c7ba2 100644 --- a/src/config.rs +++ b/src/config.rs @@ -15,18 +15,21 @@ use lightning::util::ser::Readable; use lightning_block_sync::http::HttpEndpoint; use tokio_postgres::Config; -pub(crate) const SCHEMA_VERSION: i32 = 13; -pub(crate) const SNAPSHOT_CALCULATION_INTERVAL: u32 = 3600 * 24; // every 24 hours, in seconds +pub(crate) const SCHEMA_VERSION: i32 = 12; +pub(crate) const SYMLINK_GRANULARITY_INTERVAL: u32 = 3600 * 3; +// generate symlinks based on a 3-hour-granularity /// If the last update in either direction was more than six days ago, we send a reminder /// That reminder may be either in the form of a channel announcement, or in the form of empty /// updates in both directions. pub(crate) const CHANNEL_REMINDER_AGE: Duration = Duration::from_secs(6 * 24 * 60 * 60); pub(crate) const DOWNLOAD_NEW_GOSSIP: bool = true; -pub(crate) fn calculate_interval() -> u32 { - let interval = env::var("RAPID_GOSSIP_SYNC_CALC_INTERVAL").unwrap_or("86400".to_string()) +pub(crate) fn snapshot_generation_interval() -> u32 { + let interval = env::var("RAPID_GOSSIP_SYNC_SERVER_SNAPSHOT_INTERVAL").unwrap_or(SYMLINK_GRANULARITY_INTERVAL.to_string()) .parse::() - .expect("RAPID_GOSSIP_SYNC_CALC_INTERVAL env variable must be a u32."); + .expect("RAPID_GOSSIP_SYNC_SERVER_SNAPSHOT_INTERVAL env variable must be a u32."); + assert!(interval > 0, "RAPID_GOSSIP_SYNC_SERVER_SNAPSHOT_INTERVAL must be positive"); + assert_eq!(interval % SYMLINK_GRANULARITY_INTERVAL, 0, "RAPID_GOSSIP_SYNC_SERVER_SNAPSHOT_INTERVAL must be a multiple of {} (seconds)", SYMLINK_GRANULARITY_INTERVAL); interval } @@ -168,7 +171,7 @@ pub(crate) async fn upgrade_db(schema: i32, client: &mut tokio_postgres::Client) tx_ref.execute("UPDATE channel_updates SET short_channel_id = $1, direction = $2 WHERE id = $3", &[&scid, &direction, &id]).await.unwrap(); }); } - while let Some(_) = updates.next().await { } + while let Some(_) = updates.next().await {} } tx.execute("ALTER TABLE channel_updates ALTER short_channel_id DROP DEFAULT", &[]).await.unwrap(); tx.execute("ALTER TABLE channel_updates ALTER short_channel_id SET NOT NULL", &[]).await.unwrap(); @@ -195,7 +198,7 @@ pub(crate) async fn upgrade_db(schema: i32, client: &mut tokio_postgres::Client) tx_ref.execute("UPDATE channel_announcements SET short_channel_id = $1 WHERE id = $2", &[&scid, &id]).await.unwrap(); }); } - while let Some(_) = updates.next().await { } + while let Some(_) = updates.next().await {} } tx.execute("ALTER TABLE channel_announcements ADD CONSTRAINT channel_announcements_short_channel_id_key UNIQUE (short_channel_id)", &[]).await.unwrap(); tx.execute("ALTER TABLE channel_announcements ALTER short_channel_id DROP DEFAULT", &[]).await.unwrap();