relay: split descriptors to {our,all}_descriptors

Now that we have ephemeral relays, we don't want them used everywhere
This commit is contained in:
William Casarin
2023-05-10 12:20:33 -07:00
parent 1367be0d10
commit fe6d7e5118
10 changed files with 17 additions and 13 deletions

View File

@@ -146,7 +146,7 @@ func send_zap(damus_state: DamusState, event: NostrEvent, lnurl: String, is_cust
} }
// Only take the first 10 because reasons // Only take the first 10 because reasons
let relays = Array(damus_state.pool.descriptors.prefix(10)) let relays = Array(damus_state.pool.our_descriptors.prefix(10))
let target = ZapTarget.note(id: event.id, author: event.pubkey) let target = ZapTarget.note(id: event.id, author: event.pubkey)
let content = comment ?? "" let content = comment ?? ""

View File

@@ -739,7 +739,7 @@ func find_event(state: DamusState, evid: String, search_type: SearchType, find_f
case .eose: case .eose:
if !has_event { if !has_event {
attempts += 1 attempts += 1
if attempts == state.pool.descriptors.count / 2 { if attempts == state.pool.our_descriptors.count / 2 {
callback(nil) callback(nil)
} }
state.pool.unsubscribe(sub_id: subid, to: [relay_id]) state.pool.unsubscribe(sub_id: subid, to: [relay_id])

View File

@@ -42,7 +42,11 @@ class RelayPool {
network_monitor.start(queue: network_monitor_queue) network_monitor.start(queue: network_monitor_queue)
} }
var descriptors: [RelayDescriptor] { var our_descriptors: [RelayDescriptor] {
return all_descriptors.filter { d in !d.info.ephemeral }
}
var all_descriptors: [RelayDescriptor] {
relays.map { r in r.descriptor } relays.map { r in r.descriptor }
} }

View File

@@ -105,7 +105,7 @@ class PostBox {
return return
} }
let remaining = to ?? pool.descriptors.map { $0.url.id } let remaining = to ?? pool.our_descriptors.map { $0.url.id }
let posted_ev = PostedEvent(event: event, remaining: remaining, skip_ephemeral: skip_ephemeral) let posted_ev = PostedEvent(event: event, remaining: remaining, skip_ephemeral: skip_ephemeral)
events[event.id] = posted_ev events[event.id] = posted_ev

View File

@@ -83,7 +83,7 @@ func load_relay_filters(_ pubkey: String) -> Set<RelayFilter>? {
} }
func determine_to_relays(pool: RelayPool, filters: RelayFilters) -> [String] { func determine_to_relays(pool: RelayPool, filters: RelayFilters) -> [String] {
return pool.descriptors return pool.our_descriptors
.map { $0.url.url.absoluteString } .map { $0.url.url.absoluteString }
.filter { !filters.is_filtered(timeline: .search, relay_id: $0) } .filter { !filters.is_filtered(timeline: .search, relay_id: $0) }
} }

View File

@@ -22,7 +22,7 @@ struct RelayFilterView: View {
} }
var relays: [RelayDescriptor] { var relays: [RelayDescriptor] {
return state.pool.descriptors return state.pool.our_descriptors
} }
var body: some View { var body: some View {

View File

@@ -107,7 +107,7 @@ struct RecommendedRelayView: View {
guard let ev_before_add = damus.contacts.event else { guard let ev_before_add = damus.contacts.event else {
return return
} }
guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: damus.pool.descriptors, relay: relay, info: .rw) else { guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: damus.pool.our_descriptors, relay: relay, info: .rw) else {
return return
} }
process_contact_event(state: damus, ev: ev_after_add) process_contact_event(state: damus, ev: ev_after_add)

View File

@@ -17,7 +17,7 @@ struct RelayConfigView: View {
init(state: DamusState) { init(state: DamusState) {
self.state = state self.state = state
_relays = State(initialValue: state.pool.descriptors) _relays = State(initialValue: state.pool.our_descriptors)
} }
var recommended: [RelayDescriptor] { var recommended: [RelayDescriptor] {
@@ -32,7 +32,7 @@ struct RelayConfigView: View {
var body: some View { var body: some View {
MainContent MainContent
.onReceive(handle_notify(.relays_changed)) { _ in .onReceive(handle_notify(.relays_changed)) { _ in
self.relays = state.pool.descriptors self.relays = state.pool.our_descriptors
} }
.onReceive(handle_notify(.switched_timeline)) { _ in .onReceive(handle_notify(.switched_timeline)) { _ in
dismiss() dismiss()
@@ -95,7 +95,7 @@ struct RelayConfigView: View {
state.pool.connect(to: [new_relay]) state.pool.connect(to: [new_relay])
guard let new_ev = add_relay(ev: ev, privkey: privkey, current_relays: state.pool.descriptors, relay: new_relay, info: info) else { guard let new_ev = add_relay(ev: ev, privkey: privkey, current_relays: state.pool.our_descriptors, relay: new_relay, info: info) else {
return return
} }

View File

@@ -38,7 +38,7 @@ struct RelayDetailView: View {
return return
} }
let descriptors = state.pool.descriptors let descriptors = state.pool.our_descriptors
guard let new_ev = remove_relay( ev: ev, current_relays: descriptors, privkey: privkey, relay: relay) else { guard let new_ev = remove_relay( ev: ev, current_relays: descriptors, privkey: privkey, relay: relay) else {
return return
} }
@@ -54,7 +54,7 @@ struct RelayDetailView: View {
guard let ev_before_add = state.contacts.event else { guard let ev_before_add = state.contacts.event else {
return return
} }
guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: state.pool.descriptors, relay: relay, info: .rw) else { guard let ev_after_add = add_relay(ev: ev_before_add, privkey: privkey, current_relays: state.pool.our_descriptors, relay: relay, info: .rw) else {
return return
} }
process_contact_event(state: state, ev: ev_after_add) process_contact_event(state: state, ev: ev_after_add)

View File

@@ -76,7 +76,7 @@ struct RelayView: View {
return return
} }
let descriptors = state.pool.descriptors let descriptors = state.pool.our_descriptors
guard let new_ev = remove_relay( ev: ev, current_relays: descriptors, privkey: privkey, relay: relay) else { guard let new_ev = remove_relay( ev: ev, current_relays: descriptors, privkey: privkey, relay: relay) else {
return return
} }