auto peer discovery: gossip known peers during sync, discover from_hash automatically
This commit is contained in:
parent
d201fa0bc9
commit
0ed4ec82ba
4 changed files with 87 additions and 1 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue