auto peer discovery: gossip known peers during sync, discover from_hash automatically

This commit is contained in:
lichenblankie 2026-06-05 00:43:18 +00:00
parent d201fa0bc9
commit 0ed4ec82ba
4 changed files with 87 additions and 1 deletions

View file

@ -246,6 +246,28 @@ class ForumDB:
finally:
self.return_db(db)
def add_known_peer(self, instance_hash):
"""Add a discovered peer to the sync list (auto-discovery)."""
db = self.get_db()
try:
db.execute(
"INSERT OR IGNORE INTO synced_instances (instance_hash) VALUES (?)",
(instance_hash,),
)
db.commit()
finally:
self.return_db(db)
def get_all_known_hashes(self):
"""Get all known instance hashes for peer discovery gossip."""
db = self.get_db()
try:
return [r["instance_hash"] for r in db.execute(
"SELECT instance_hash FROM synced_instances"
).fetchall()]
finally:
self.return_db(db)
def upsert_synced_instance(self, instance_hash, name=""):
db = self.get_db()
try: