Remove membership classes (spec, registry schema, enforcement); no roles or tiers

This commit is contained in:
George Coles
2026-09-15 12:59:35 -04:00
parent 276fe5e438
commit dfa1fb1143
16 changed files with 68 additions and 222 deletions
+9 -19
View File
@@ -16,7 +16,7 @@ use serde_json::{Value, json};
use tokio::net::TcpListener;
use tokio::task::JoinHandle;
use crate::config::{CLASS_ENRICHMENT, Config, Member, load_members};
use crate::config::{Config, Member, load_members};
use crate::crypto::{Keypair, now_ts, poll_signing_bytes};
use crate::engine::{SearchEngine, TantivyEngine};
use crate::index::{LocalIndex, SearchHit, response_items};
@@ -193,13 +193,10 @@ impl Node {
*self.members_mtime.lock().expect("members mtime lock") = mtime;
}
fn member_class(&self, members: &[Member], pubkey: &str) -> Option<String> {
fn member_known(&self, members: &[Member], pubkey: &str) -> bool {
members
.iter()
.find(|member| {
member.pubkey == pubkey || member.previous.iter().any(|key| key == pubkey)
})
.map(|member| member.class.clone())
.any(|member| member.pubkey == pubkey || member.previous.iter().any(|key| key == pubkey))
}
pub fn aggregate_for(&self, period: &str, member: Option<&str>) -> AggregateBody {
@@ -464,21 +461,19 @@ impl Node {
return;
}
self.refresh_members();
let (class, listed) = if let Some(watcher) = &self.registry {
let listed = if let Some(watcher) = &self.registry {
watcher.refresh_if_changed();
match watcher.authorized(&envelope.key, now_ts()) {
Some((id, class)) if id == envelope.from => (Some(class), true),
_ => (None, false),
Some(id) if id == envelope.from => true,
_ => false,
}
} else {
let members = self.members.read().expect("members lock");
let class = self.member_class(&members, &envelope.key);
let listed = if members.is_empty() {
if members.is_empty() {
self.config.node.dev_bootstrap
} else {
class.is_some() && envelope.from == envelope.key
};
(class, listed)
self.member_known(&members, &envelope.key) && envelope.from == envelope.key
}
};
if !listed {
return;
@@ -520,11 +515,6 @@ impl Node {
let Ok(body) = envelope.parse_body::<ResponseBody>() else {
return;
};
if class.as_deref() == Some(CLASS_ENRICHMENT)
&& body.results.iter().any(|result| result.content.is_some())
{
return;
}
let mut pending = self.pending.lock().expect("pending lock");
if let Some(list) = pending.get_mut(&body.qid) {
list.push((envelope.from.clone(), body));