broadcast to multiple relays, inbox is less relays

This commit is contained in:
dbth 2024-12-31 00:02:27 +01:00
parent 24f2f70d1c
commit b5bd309a91
8 changed files with 29 additions and 34 deletions

View File

@ -128,4 +128,5 @@ async def admin_make_database_updates(adminconfig: AdminConfig = None, dvmconfig
await fetch_nip88_event(keys, event_id, client, dvmconfig)
if adminconfig.UPDATE_PROFILE:
await update_profile(dvmconfig, client, lud16=dvmconfig.LN_ADDRESS)
event = await update_profile(dvmconfig, client, lud16=dvmconfig.LN_ADDRESS)
print(event.output)

View File

@ -25,9 +25,8 @@ class DVMConfig:
]
# announce inbox relays, dm relays and NIP89 announcement to
ANNOUNCE_RELAY_LIST = ["wss://relay.primal.net",
"wss://nostr.mom", "wss://relay.damus.io",
"wss://nostr.oxtr.dev", "wss://nostr.mom",
"wss://relay.nostrdvm.com"
"wss://relay.damus.io",
"wss://nostr.oxtr.dev", "wss://nostr.mom"
]
# Straight Censorship (reply guy spam)

View File

@ -8,13 +8,7 @@ from nostr_dvm.utils.print_utils import bcolors
async def announce_dm_relays(dvm_config, client):
tags = []
RELAY_LIST = dvm_config.ANNOUNCE_RELAY_LIST
for relay in dvm_config.RELAY_LIST:
if relay not in RELAY_LIST:
RELAY_LIST.append(relay)
dvm_config.RELAY_LIST = RELAY_LIST
for relay in RELAY_LIST:
r_tag = Tag.parse(["r", relay])
tags.append(r_tag)
@ -22,7 +16,7 @@ async def announce_dm_relays(dvm_config, client):
content = ""
event = EventBuilder(Kind(10050), content).tags(tags).sign_with_keys(keys)
eventid = await send_event(event, client=client, dvm_config=dvm_config)
eventid = await send_event(event, client=client, dvm_config=dvm_config, broadcast=True)
if eventid is not None:
print(
bcolors.BLUE + "[" + dvm_config.NIP89.NAME + "] Announced DM relays for " + dvm_config.NIP89.NAME + " (EventID: " + str(
@ -38,14 +32,7 @@ async def nip65_announce_relays(dvm_config, client):
tags = []
RELAY_LIST = dvm_config.ANNOUNCE_RELAY_LIST
for relay in dvm_config.RELAY_LIST:
if relay not in RELAY_LIST:
RELAY_LIST.append(relay)
dvm_config.RELAY_LIST = RELAY_LIST
for relay in RELAY_LIST:
r_tag = Tag.parse(["r", relay])
tags.append(r_tag)
@ -53,7 +40,7 @@ async def nip65_announce_relays(dvm_config, client):
content = ""
event = EventBuilder(EventDefinitions.KIND_RELAY_ANNOUNCEMENT, content).tags(tags).sign_with_keys(keys)
eventid = await send_event(event, client=client, dvm_config=dvm_config)
eventid = await send_event(event, client=client, dvm_config=dvm_config, broadcast=True)
if eventid is not None:
print(
bcolors.BLUE + "[" + dvm_config.NIP89.NAME + "] Announced NIP 65 for " + dvm_config.NIP89.NAME + " (EventID: " + str(

View File

@ -31,11 +31,8 @@ async def nip89_announce_tasks(dvm_config, client):
content = dvm_config.NIP89.CONTENT
event = EventBuilder(EventDefinitions.KIND_ANNOUNCEMENT, content).tags([k_tag, d_tag]).sign_with_keys(keys)
RELAY_LIST = dvm_config.ANNOUNCE_RELAY_LIST
for relay in dvm_config.RELAY_LIST:
if relay not in RELAY_LIST:
dvm_config.RELAY_LIST.append(relay)
eventid = await send_event(event, client=client, dvm_config=dvm_config)
eventid = await send_event(event, client=client, dvm_config=dvm_config, broadcast=True)
print(eventid.output)
print(
bcolors.BLUE + "[" + dvm_config.NIP89.NAME + "] Announced NIP 89 for " + dvm_config.NIP89.NAME + " (" + eventid.id.to_hex() + ")" + bcolors.ENDC)

View File

@ -259,7 +259,7 @@ async def send_event_outbox(event: Event, client, dvm_config) -> SendEventOutput
return event_id
async def send_event(event: Event, client: Client, dvm_config):
async def send_event(event: Event, client: Client, dvm_config, broadcast=False):
try:
relays = []
for tag in event.tags().to_vec():
@ -274,13 +274,19 @@ async def send_event(event: Event, client: Client, dvm_config):
index] + " couldn't be added to outbox relays")
break
if len(relays) == 0:
relays = dvm_config.RELAY_LIST
relay_list = dvm_config.RELAY_LIST
if broadcast:
relay_list = dvm_config.ANNOUNCE_RELAY_LIST
if len(relays) == 0:
relays = relay_list
print(relays)
for relay in relays:
if relay not in dvm_config.RELAY_LIST:
await client.add_relay(relay)
await client.connect()
try:
event_id = await client.send_event(event)
except Exception as e:
@ -389,7 +395,7 @@ async def update_profile_lnaddress(private_key, dvm_config, lud16="", ):
await client.set_metadata(metadata)
async def update_profile(dvm_config, client, lud16=""):
async def update_profile(dvm_config, client, lud16="", broadcast=True):
keys = Keys.parse(dvm_config.PRIVATE_KEY)
try:
nip89content = json.loads(dvm_config.NIP89.CONTENT)
@ -415,7 +421,12 @@ async def update_profile(dvm_config, client, lud16=""):
print("[" + dvm_config.NIP89.NAME + "] Setting profile metadata for " + keys.public_key().to_bech32() + "...")
print(metadata.as_json())
await client.set_metadata(metadata)
if broadcast:
for relay in dvm_config.ANNOUNCE_RELAY_LIST:
await client.add_relay(relay)
await client.connect()
return await client.set_metadata(metadata)
async def send_nip04_dm(client: Client, msg, receiver: PublicKey, dvm_config):

View File

@ -41,10 +41,10 @@ log_level = LogLevel.ERROR
max_sync_duration_in_h = 24
SYNC_DB_RELAY_LIST = ["wss://relay.damus.io",
#"wss://relay.primal.net",
"wss://relay.primal.net",
"wss://nostr.oxtr.dev"]
RELAY_LIST = ["wss://nostr.mom",
RELAY_LIST = ["wss://relay.nostrdvm.com",
#"wss://relay.primal.net",
"wss://nostr.oxtr.dev",
#"wss://relay.nostr.net"

View File

@ -10,8 +10,8 @@ from nostr_dvm.utils.dvmconfig import build_default_config
from nostr_dvm.utils.nip89_utils import create_amount_tag, NIP89Config, check_and_set_d_tag
rebroadcast_NIP89 = False # Announce NIP89 on startup
rebroadcast_NIP65_Relay_List = False
update_profile = False
rebroadcast_NIP65_Relay_List = True
update_profile = True
global_update_rate = 500 # set this high on first sync so db can fully sync before another process trys to.
use_logger = True

View File

@ -32,7 +32,7 @@ const store = createStore({
results: [],
profile_results: [],
image_command_sent: false,
relays: ["wss://relay.primal.net",
relays: ["wss://relay.nostrdvm.com",
"wss://nostr.mom",
"wss://nostr.oxtr.dev",
],