mirror of
https://github.com/mikedilger/gossip.git
synced 2024-09-19 11:43:43 +00:00
POW setting for your posts [This currently blocks the overlord while it's computing PoW]
This commit is contained in:
parent
9d89d95350
commit
9aa2845366
@ -668,7 +668,9 @@ impl Overlord {
|
||||
ots: None,
|
||||
};
|
||||
|
||||
GLOBALS.signer.read().await.sign_preevent(pre_event)?
|
||||
let powint = GLOBALS.settings.read().await.pow;
|
||||
let pow = if powint > 0 { Some(powint) } else { None };
|
||||
GLOBALS.signer.read().await.sign_preevent(pre_event, pow)?
|
||||
};
|
||||
|
||||
let relays: Vec<DbRelay> = GLOBALS
|
||||
@ -724,7 +726,9 @@ impl Overlord {
|
||||
ots: None,
|
||||
};
|
||||
|
||||
GLOBALS.signer.read().await.sign_preevent(pre_event)?
|
||||
let powint = GLOBALS.settings.read().await.pow;
|
||||
let pow = if powint > 0 { Some(powint) } else { None };
|
||||
GLOBALS.signer.read().await.sign_preevent(pre_event, pow)?
|
||||
};
|
||||
|
||||
let relays: Vec<DbRelay> = GLOBALS
|
||||
|
@ -14,6 +14,7 @@ pub const DEFAULT_NUM_RELAYS_PER_PERSON: u8 = 2;
|
||||
pub const DEFAULT_MAX_RELAYS: u8 = 15;
|
||||
pub const DEFAULT_MAX_FPS: u32 = 60;
|
||||
pub const DEFAULT_FEED_RECOMPUTE_INTERVAL_MS: u32 = 1000;
|
||||
pub const DEFAULT_POW: u8 = 0;
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct Settings {
|
||||
@ -29,6 +30,7 @@ pub struct Settings {
|
||||
pub encrypted_private_key: Option<EncryptedPrivateKey>,
|
||||
pub max_fps: u32,
|
||||
pub feed_recompute_interval_ms: u32,
|
||||
pub pow: u8,
|
||||
}
|
||||
|
||||
impl Default for Settings {
|
||||
@ -46,6 +48,7 @@ impl Default for Settings {
|
||||
encrypted_private_key: None,
|
||||
max_fps: DEFAULT_MAX_FPS,
|
||||
feed_recompute_interval_ms: DEFAULT_FEED_RECOMPUTE_INTERVAL_MS,
|
||||
pow: DEFAULT_POW,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -102,6 +105,7 @@ impl Settings {
|
||||
.parse::<u32>()
|
||||
.unwrap_or(DEFAULT_FEED_RECOMPUTE_INTERVAL_MS)
|
||||
}
|
||||
"pow" => settings.pow = row.1.parse::<u8>().unwrap_or(DEFAULT_POW),
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
@ -117,8 +121,9 @@ impl Settings {
|
||||
"REPLACE INTO settings (key, value) VALUES \
|
||||
('feed_chunk', ?),('overlap', ?),('autofollow', ?),\
|
||||
('view_posts_referred_to', ?),('view_posts_referring_to', ?),\
|
||||
('view_threaded', ?),('num_relays_per_person', ?), \
|
||||
('max_relays', ?),('max_fps', ?),('feed_recompute_interval_ms', ?)",
|
||||
('view_threaded', ?),('num_relays_per_person', ?),\
|
||||
('max_relays', ?),('max_fps', ?),('feed_recompute_interval_ms', ?),\
|
||||
('pow', ?)",
|
||||
)?;
|
||||
stmt.execute((
|
||||
self.feed_chunk,
|
||||
@ -139,6 +144,7 @@ impl Settings {
|
||||
self.max_relays,
|
||||
self.max_fps,
|
||||
self.feed_recompute_interval_ms,
|
||||
self.pow,
|
||||
))?;
|
||||
|
||||
// Save private key identity
|
||||
|
@ -58,9 +58,12 @@ impl Signer {
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub fn sign_preevent(&self, preevent: PreEvent) -> Result<Event, Error> {
|
||||
pub fn sign_preevent(&self, preevent: PreEvent, pow: Option<u8>) -> Result<Event, Error> {
|
||||
match self {
|
||||
Signer::Ready(pk) => Ok(Event::new(preevent, pk)?),
|
||||
Signer::Ready(pk) => match pow {
|
||||
Some(pow) => Ok(Event::new_with_pow(preevent, pk, pow)?),
|
||||
None => Ok(Event::new(preevent, pk)?),
|
||||
},
|
||||
_ => Err(Error::NoPrivateKey),
|
||||
}
|
||||
}
|
||||
|
@ -90,6 +90,18 @@ pub(super) fn update(
|
||||
ui.separator();
|
||||
ui.add_space(12.0);
|
||||
|
||||
ui.heading("Posting");
|
||||
|
||||
ui.horizontal(|ui| {
|
||||
ui.label("Proof of Work: ")
|
||||
.on_hover_text("The larger the number, the longer it takes.");
|
||||
ui.add(Slider::new(&mut app.settings.pow, 0..=40).text("leading zeroes"));
|
||||
});
|
||||
|
||||
ui.add_space(12.0);
|
||||
ui.separator();
|
||||
ui.add_space(12.0);
|
||||
|
||||
ui.heading("User Interface");
|
||||
|
||||
ui.horizontal(|ui| {
|
||||
|
Loading…
Reference in New Issue
Block a user