Commit Graph

866 Commits

Author SHA1 Message Date
Mike Dilger
f961da72f3 Use Relay functions (score, should_avoid()) 2024-07-24 13:49:05 +12:00
Mike Dilger
4c8aa43669 Relay.score(); relay.should_avoid() now internally covers all avoid cases 2024-07-24 13:42:15 +12:00
Mike Dilger
7ebb8c243e Use exponential decay for PersonRelay association rank scoring 2024-07-24 13:01:04 +12:00
Mike Dilger
f0bbb47905 Move the relay picker back into this crate:
I don't think it's used by others, it breaks often as we change nostr-types.

Also, I need to make changes and it is far harder as a separate crate as it isn't
really a clean interface (the interface may change marketdly and that would be a PITA
as a separate crate).
2024-07-24 12:06:05 +12:00
Mike Dilger
b3fa22ada8 cargo fmt 2024-07-24 12:05:56 +12:00
Mike Dilger
7342eec97d update for nostr-types 2024-07-23 23:53:27 +12:00
Mike Dilger
e0429e035a update nostr-types 2024-07-23 23:26:01 +12:00
Mike Dilger
3a7f11f915 more refactor of relay choice functions 2024-07-23 10:42:33 +12:00
Mike Dilger
50a24622e8 Rename fn to relays_to_post_to, some tweaks 2024-07-23 10:22:23 +12:00
Mike Dilger
c71d73cfb7 Rename a poorly named relay function, and minor tweaks 2024-07-23 10:17:00 +12:00
Mike Dilger
d87be4c2ed Fix general feed: loading the right amount of events from relays 2024-07-23 04:13:56 +12:00
Mike Dilger
e2c07dddf8 cargo fmt 2024-07-22 13:38:13 +12:00
Mike Dilger
d92bd6ff26 More reworking relay selection functions: with RelayUsage param 2024-07-22 13:37:01 +12:00
Mike Dilger
138049d0ae Reworking relay selection functions 2024-07-22 13:36:20 +12:00
Mike Dilger
60b43e44c7 Start of moving all relay selection functions together 2024-07-22 13:35:43 +12:00
Mike Dilger
8189000db1 fix misspelling 2024-07-22 12:29:25 +12:00
Mike Dilger
776bdf1048 Attempt fix for windows (signals) 2024-07-22 12:23:09 +12:00
Mike Dilger
afce8e890a Cleaner shutdown by catching signals 2024-07-19 13:32:58 +12:00
Mike Dilger
dcd932e256 Remove async where it isn't needed/helpful 2024-07-19 06:59:30 +12:00
Mike Dilger
76d7be1c0f Improve process_dm_relay_list with optional LMDB transaction 2024-07-19 06:59:20 +12:00
Mike Dilger
9863f6f1aa LMDB: MDB_NOMETASYNC - don't sync metadata until later; We lose durability but not integrity 2024-07-18 13:25:54 +12:00
Mike Dilger
804959dfbe 0.12.0-unstable (0.11 has been released) 2024-07-18 13:04:58 +12:00
Mike Dilger
2c88117e39 fix possible panic in pending (happens to new users) 2024-07-18 12:48:04 +12:00
Mike Dilger
50c9dfe273 Merge branch 'master' into unstable 2024-07-18 09:15:03 +12:00
Mike Dilger
a500d451ef Revert "stop indexing "delegation" tag"
This reverts commit 49308f5977.
2024-07-18 09:14:18 +12:00
Mike Dilger
0b2381c7a4 cargo fmt 2024-07-17 12:20:29 +12:00
Mike Dilger
a33df30dbb update nostr-types, RelayUsage 2024-07-17 12:20:10 +12:00
Mike Dilger
ceb438f0fb Update for nostr-types (RelayUsage -> RelayListUsage) 2024-07-17 09:30:57 +12:00
Mike Dilger
55352743ec Comments about set_thread_feed 2024-07-17 08:39:31 +12:00
Mike Dilger
c7d85ae2b3 Threads: if main event is replaceable, subscribe replies appropriately 2024-07-16 11:24:44 +12:00
Mike Dilger
def1bfbd37 Use the bonus_relays when thread climbing to an event addr 2024-07-16 08:45:07 +12:00
Mike Dilger
b4ae5df1df misc::display_er(), and comments in EventAncestors logic 2024-07-16 08:40:51 +12:00
Mike Dilger
33bbf61aeb Revert "Updates for nostr-types, including stripping delegation (NIP-26)"
This reverts commit 1722fb78d8.
2024-07-11 21:45:59 +12:00
Mike Dilger
bf0d37329f Update nostr-types 2024-07-11 21:42:58 +12:00
Mike Dilger
87e43d4330 Update nostr-types (event.replies_to() and 'a' tag marker fixes) 2024-07-11 12:42:00 +12:00
Mike Dilger
f51a2877cd Update nostr-types: Unixtime::now() without .unwrap() 2024-07-09 08:53:20 +12:00
Mike Dilger
7eac0f90b8 FIX: private bookmarks 2024-07-04 18:08:09 +12:00
Mike Dilger
803e238449 cargo clippy 2024-07-04 13:28:52 +12:00
Mike Dilger
b72ce77d0d Switch to using a Notify for updating bookmarks 2024-07-04 13:27:23 +12:00
Mike Dilger
b91b28ddb1 Recompute bookmarks only when needed 2024-07-04 11:33:21 +12:00
Mike Dilger
a26f53a967 Overlord commands for adding/removing a bookmark 2024-07-04 11:33:21 +12:00
Mike Dilger
4b58713f51 feed: get bookmarks feed from GLOBALS.current_bookmarks 2024-07-04 10:52:53 +12:00
Mike Dilger
b38fa8b87b Maintain GLOBALS.current_bookmarks as a resolved Vec<Id> via a periodic task 2024-07-04 10:52:53 +12:00
Mike Dilger
8867cedc64 Bookmarks feed including UI 2024-07-04 10:45:25 +12:00
Mike Dilger
845ac978de Subscribe to the user's bookmarks under 'config' subscription 2024-07-04 10:45:25 +12:00
Mike Dilger
72364225bf process: If a newer bookmark list comes in, use it 2024-07-04 10:45:25 +12:00
Mike Dilger
b424579cc5 Store bookmarks in GLOBALS and populate in init() 2024-07-04 10:45:25 +12:00
Mike Dilger
0e3b06e24f BookmarkList 2024-07-04 10:45:25 +12:00
Mike Dilger
87347bb307 tasks: do not return errors or it may skip subsequent tasks 2024-07-04 10:44:53 +12:00
Mike Dilger
6a87b9c98f cargo fmt 2024-07-04 10:23:22 +12:00
Mike Dilger
e6d2ad7293 Retire 2 settings we no longer use 2024-07-04 10:18:56 +12:00
Mike Dilger
66b8c94670 Move people periodic tasks to tasks.rs 2024-07-04 10:16:42 +12:00
Mike Dilger
de9883b275 Move pending periodic tasks to tasks.rs 2024-07-04 10:13:32 +12:00
Mike Dilger
166f794670 Move seeker periodic tasks into tasks.rs 2024-07-04 10:09:59 +12:00
Mike Dilger
a5f357ffb2 Move fetcher periodic tasks into tasks.rs 2024-07-04 10:09:59 +12:00
Mike Dilger
3e0dd2552c Update GLOBALS.unread_dms in new background task system 2024-07-04 09:49:51 +12:00
Mike Dilger
fdd907617b General background task management 2024-07-04 09:47:52 +12:00
dtonon
9bacc21327 Add counter template for inbox/chats notifications 2024-07-03 13:18:07 +02:00
Mike Dilger
2950f374c4 Merge branch 'master' into unstable 2024-07-03 17:08:58 +12:00
Mike Dilger
64f26804bb Add another check of image resize maximums 2024-07-03 17:07:35 +12:00
Mike Dilger
f147ac9787 Use tag set functions from nostr-types 2024-07-02 15:44:33 +12:00
Mike Dilger
9c22771e19 Update nostr-types 2024-07-02 15:44:30 +12:00
Mike Dilger
4f5c3a36c0 Deprecate creating relationships Bookmarks and Curates (which aren't easily workable as relationships) 2024-07-02 07:29:36 +12:00
Mike Dilger
c20311f545 Cargo clippy & fmt 2024-07-01 10:18:47 +12:00
Mike Dilger
14c2ac469b cargo fmt 2024-07-01 07:55:03 +12:00
Mike Dilger
29cb75dd7b Get max_image_side from GL and limit media (resize) to it 2024-07-01 07:53:33 +12:00
Mike Dilger
8f65e87f37 Fewer log msgs 2024-06-29 20:17:56 +12:00
Mike Dilger
a1fa061a41 Fix panic in Uniform 2024-06-29 19:59:42 +12:00
Mike Dilger
ca989958e8 Relay exclusions much smaller (especially if issue could be local) and randomized 2024-06-29 19:54:43 +12:00
Mike Dilger
c38fbe6646 Differentiate when getting best relays (num per person, or essentially all) 2024-06-28 11:50:57 +12:00
Mike Dilger
bcb8b873c3 Limit people's relays to 5 (else too many relay connections) 2024-06-28 11:16:40 +12:00
Mike Dilger
511e82f826 Don't subscribe augments on so damn many relays 2024-06-28 10:44:43 +12:00
Mike Dilger
0325e87097 Overlord no longer disconnecting minions, minions themselves quit when they have no jobs for a while 2024-06-28 10:44:43 +12:00
Mike Dilger
09155d50bb Leave minions connected for 10s after subs have completed (fewer rapid reconnects) 2024-06-28 10:44:12 +12:00
Mike Dilger
3e774e37af Avoid for 120s relays that complete with failed jobs 2024-06-28 09:37:38 +12:00
Mike Dilger
def1be0c28 Render spinner while we switch feeds; Don't ever render empty scroll area or we lose our place. 2024-06-27 12:01:07 +12:00
Mike Dilger
6f9b1a861a When switching feed, clear it 2024-06-26 10:17:15 +12:00
Mike Dilger
91916c72ac Fix missing events in inbox 2024-06-26 10:16:59 +12:00
Mike Dilger
f7a8b4f69c Presume Closed subscriptions that don't give a machine-readable prefix are failures of some kind to avoid loops 2024-06-25 09:00:10 +12:00
Mike Dilger
22ff39a589 cargo clippy 2024-06-21 12:50:53 +12:00
Mike Dilger
4398107c72 cargo fmt 2024-06-21 12:49:22 +12:00
Mike Dilger
f2cbc1e3d7 Pending: consider dm relay list when computing pending items 2024-06-21 12:49:03 +12:00
Mike Dilger
afece133e8 Strip out old storage code for databases prior to m19. IF YOU HAVE AN OLD DATABASE:
If you have an old database you must run gossip 0.9 or 0.10 at least once in order
to upgrade your database to something new enough for gossip 0.11 to recognize.

We intend to only expire code from 3 versions back.
2024-06-21 11:29:11 +12:00
Mike Dilger
8bb4ea0aaf Pending items for setting up relays (of each class: READ, WRITE, DISCOVER, DM) 2024-06-21 10:45:24 +12:00
Mike Dilger
ad7f832863 In sending NIP-17 DMs, find our relays via our relay record bitflags, not our person_relay records 2024-06-21 10:12:21 +12:00
Mike Dilger
c0d6fd375c When getting replies, also get deletes and other related (likes/zaps) 2024-06-21 09:39:29 +12:00
Mike Dilger
e219decc7c Fix transaction deadlock issue blocking list merge/overwrite since 21 May b59f8f48 2024-06-21 09:04:34 +12:00
Mike Dilger
4a987143db More minion error exclusions 2024-06-21 09:04:34 +12:00
Mike Dilger
0649b63260 Presume all relays support EOSE at this point 2024-06-20 10:27:10 +12:00
Mike Dilger
673f1cd1f6 Minion: do not signal EVENT job completion until after all the OK messages for the job arrive 2024-06-20 10:23:31 +12:00
Mike Dilger
99ccd4dc8a Don't disconnect from relay if we are waiting for an OK (doesn't quite work due to wrong overlord signalling) 2024-06-20 09:55:54 +12:00
Mike Dilger
2ca285fd68 Migration 39: flag reprocess relay lists is needed 2024-06-19 14:04:00 +12:00
Mike Dilger
c8ae74d85a Reprocess relay lists reworked to handle kind 3 too 2024-06-19 13:57:10 +12:00
Mike Dilger
a4aba05ead Simplify unused async 2024-06-19 13:01:12 +12:00
Mike Dilger
b4eb4b6281 cargo clippy 2024-06-19 12:14:59 +12:00
Mike Dilger
6d4b6befc3 fix: don't subscribe discover to empty lists, and do it after config/inbox/etc. 2024-06-19 12:01:30 +12:00
Mike Dilger
6978ac38e9 Migration 38: Relay3, should_avoid() time, replaces penalty box 2024-06-19 11:23:20 +12:00
Mike Dilger
51215700c3 Don't fetch nip11 for the same relay more than once per hour 2024-06-19 09:56:56 +12:00
Mike Dilger
83f3fa3083 fix: Don't exit a minion if it still has waiting subscriptions 2024-06-18 13:29:50 +12:00
Mike Dilger
f5bcb73110 Do not AUTH to a relay again if we have already AUTHed to it (either success or failure) 2024-06-18 12:54:29 +12:00
Mike Dilger
168482bf86 Fix corked AUTH subscriptions 2024-06-18 11:59:24 +12:00
Mike Dilger
95113c43c0 Fix possible race condition in engage_minion_inner 2024-06-18 11:23:09 +12:00
Mike Dilger
8b6cb7c42b Separate long-term subscription for giftwraps (since on new DM relays) 2024-06-18 09:56:47 +12:00
Mike Dilger
58381fc494 Revert "fix: Subscribe to DMs on DM relays too"
This reverts commit c7e73a342d.

Giftwrap DMs are not subscribed in this fashion. Since they only tag the recipient,
they can't be per-channel subscribed.  The must be globally subscribed.
2024-06-18 09:34:15 +12:00
Mike Dilger
c7e73a342d fix: Subscribe to DMs on DM relays too 2024-06-18 09:30:44 +12:00
Mike Dilger
10c48c7dea fix last 2024-06-18 09:30:05 +12:00
Mike Dilger
1541b0698b bugfix: Prevent a panic and return a reasonable default 2024-06-18 09:23:23 +12:00
Mike Dilger
cb35077c30 Storage: Migration 37: Rebuild relationships 2024-06-17 15:51:17 +12:00
Mike Dilger
1505caead3 Reorder process relationships so that ReplysTo supercedes Quotes 2024-06-17 15:48:22 +12:00
Mike Dilger
08efc89d8a fix: When getting relay hint, must be among seen-on relays 2024-06-17 11:41:47 +12:00
Mike Dilger
482d81ba0d bugfix: When adding a tag for nevent, use it's first relay as the hint 2024-06-17 11:33:25 +12:00
Mike Dilger
9d0b441263 Rework get_best_relays():
* Always yield their relay-list declared relays first
* Take in a 'min' and if not achieved, yield additional relays in score order,
  including using our own if we still can't achieve the minimum
* Use a bool to indicate 'write' instead of RelayUsage
* Adjust call sites: causes changes regarding min
2024-06-17 09:04:37 +12:00
Mike Dilger
72ffea6a7c Remove now useless comment 2024-06-15 11:09:02 +12:00
Mike Dilger
8495c13d68 Fix NIP17 chat rumor to set kind=14 (not kind=1) 2024-06-14 16:28:50 +12:00
Mike Dilger
deb75b7198 cargo fmt & clippy 2024-06-14 13:15:59 +12:00
Mike Dilger
99b259f69e Tag recipients in NIP-17 rumors (or these giftwraps won't show up in DM channels) 2024-06-14 13:15:00 +12:00
Mike Dilger
04214b4803 When sending DM17 giftwraps, don't error out because we can't unwrap the one for the counterparty 2024-06-14 13:00:55 +12:00
Mike Dilger
2ab39032d1 Rework how we advertise:
* 4 per second, don't care if they fail or not
* Do in rank order
* Change advertise button to show how many remain
2024-06-14 09:56:45 +12:00
Mike Dilger
19acfeb90f Do not restart minion if all jobs were advertise 2024-06-14 08:06:08 +12:00
Mike Dilger
11d2cd7bef Tighter bounds on which relays are good for advertise 2024-06-14 08:06:08 +12:00
Mike Dilger
0adff0c9a3 cargo fmt 2024-06-13 10:06:47 +12:00
Mike Dilger
14a9f3602e Do not return banned relay URLs from get_best_relays() 2024-06-13 10:06:47 +12:00
Bu5hm4nn
d018064e38 Profile Page: Show DM relays below outbox relays 2024-06-12 13:55:57 +03:00
Mike Dilger
038b78b118 Show replies to annotations under the note they annotate 2024-06-12 14:31:57 +12:00
Mike Dilger
286eb4515f migration 36: remove and don't save records for known relays that proliferate under many paths 2024-06-12 09:37:27 +12:00
Mike Dilger
e7db13e863 More work on inbox feed 2024-06-11 10:38:17 +12:00
Mike Dilger
da818abd17 Make inbox load-more work like the others (via a count) 2024-06-11 09:22:35 +12:00
Mike Dilger
49308f5977 stop indexing "delegation" tag 2024-06-11 08:48:31 +12:00
Mike Dilger
1722fb78d8 Updates for nostr-types, including stripping delegation (NIP-26) 2024-06-11 08:43:01 +12:00
Mike Dilger
86610e5643 Update nostr-types 2024-06-11 08:33:53 +12:00
Mike Dilger
6f560c413f Remove overlap setting and other dead code 2024-06-10 09:47:14 +12:00
Mike Dilger
39235ae0c5 fix 'load more' for inbox 2024-06-10 09:42:16 +12:00
Mike Dilger
d8a1301ef7 cargo fmt 2024-06-08 23:41:38 +12:00
Mike Dilger
0eed256584 Use separate anchors for each feedkind 2024-06-08 23:41:01 +12:00
Mike Dilger
ac7cdc5dbb remove a comment 2024-06-08 23:32:40 +12:00
Mike Dilger
5710a667aa Avoid delay in bumping "loading_more" relay count 2024-06-08 23:11:02 +12:00
Mike Dilger
f54645b6b7 Sub to the first batch when we start subs 2024-06-08 14:57:26 +12:00
Mike Dilger
763473044e Recompute feed as soon as we load more (it will grab from storage, then fill in from relays) 2024-06-08 12:57:30 +12:00
Mike Dilger
345f1c1848 Track and show how many relays are currently loading a chunk 2024-06-08 12:31:14 +12:00
Mike Dilger
b51e8b113e Fix double-note overlap at anchor 2024-06-08 12:01:09 +12:00
Mike Dilger
3b43df443f Feed: switch to anchor method 2024-06-08 12:01:09 +12:00
Mike Dilger
c1c76b2706 BROKEN: Modify minions to subscribe using anchor method 2024-06-08 12:01:09 +12:00
Mike Dilger
01c5f05919 feed recompute: inbox feed 2024-06-08 12:01:09 +12:00
Mike Dilger
77ecc77c03 feed recompute: list feed 2024-06-08 12:01:09 +12:00
Mike Dilger
90998765e0 feed recompute: don't load data we don't need 2024-06-08 12:01:09 +12:00
Mike Dilger
d76502b2fc feed recompute: Start rework, person feed 2024-06-08 12:01:09 +12:00
Mike Dilger
ef7d0da7ae move a comment 2024-06-08 12:01:09 +12:00
Mike Dilger
7f5002f84d variable rename 2024-06-08 12:01:09 +12:00
Mike Dilger
e0fce7a4fd remove old inapplicable comment 2024-06-08 12:01:09 +12:00
Mike Dilger
327d728221 feed: updated last_computed *after* the feed is computed 2024-06-08 12:01:09 +12:00