From ee31726961c47a050e9932223966a757acc6661d Mon Sep 17 00:00:00 2001 From: kieran Date: Thu, 4 Apr 2024 16:30:30 +0100 Subject: [PATCH] refactor: thread loading improvements --- .../app/src/Components/Embed/LinkPreview.tsx | 2 +- .../app/src/Components/Event/Note/Note.tsx | 5 +- packages/app/src/Feed/ThreadFeed.ts | 42 ++- .../app/src/Utils/Thread/ThreadContext.tsx | 5 +- .../src/Utils/Thread/ThreadContextWrapper.tsx | 19 +- packages/system-wasm/Cargo.lock | 46 --- packages/system-wasm/Cargo.toml | 1 - packages/system-wasm/README.md | 10 + packages/system-wasm/package.json | 2 +- packages/system-wasm/pkg/README.md | 10 + packages/system-wasm/pkg/system_wasm.d.ts | 7 - packages/system-wasm/pkg/system_wasm.js | 29 +- packages/system-wasm/pkg/system_wasm_bg.wasm | Bin 1422723 -> 1406695 bytes .../system-wasm/pkg/system_wasm_bg.wasm.d.ts | 1 - packages/system-wasm/src/diff.rs | 126 +------ packages/system-wasm/src/filter.rs | 239 +++---------- packages/system-wasm/src/lib.rs | 60 +--- packages/system-wasm/src/merge.rs | 326 ++---------------- packages/system/src/connection.ts | 2 +- packages/system/src/const.ts | 9 + packages/system/src/filter-cache-layer.ts | 32 +- packages/system/src/nostr-link.ts | 6 +- packages/system/src/nostr.ts | 1 + packages/system/src/outbox/outbox-model.ts | 66 ++-- packages/system/src/profile-cache.ts | 5 +- packages/system/src/query-manager.ts | 5 +- packages/system/src/query-optimizer/index.ts | 1 + packages/system/src/request-builder.ts | 138 +++----- packages/system/src/request-router.ts | 49 +-- 29 files changed, 272 insertions(+), 972 deletions(-) diff --git a/packages/app/src/Components/Embed/LinkPreview.tsx b/packages/app/src/Components/Embed/LinkPreview.tsx index bbe59321..71428c09 100644 --- a/packages/app/src/Components/Embed/LinkPreview.tsx +++ b/packages/app/src/Components/Embed/LinkPreview.tsx @@ -56,7 +56,7 @@ const LinkPreview = ({ url }: { url: string }) => { const urlTags = ["og:video:secure_url", "og:video:url", "og:video"]; const link = preview?.og_tags?.find(a => urlTags.includes(a[0].toLowerCase()))?.[1]; const videoType = preview?.og_tags?.find(a => a[0].toLowerCase() === "og:video:type")?.[1] ?? "video/mp4"; - if (link) { + if (link && videoType.startsWith("video/")) { return ; } } diff --git a/packages/app/src/Components/Event/Note/Note.tsx b/packages/app/src/Components/Event/Note/Note.tsx index e5f263ef..9a343e05 100644 --- a/packages/app/src/Components/Event/Note/Note.tsx +++ b/packages/app/src/Components/Event/Note/Note.tsx @@ -149,11 +149,12 @@ function useGoToEvent(props, options) { } function Reaction({ ev }: { ev: TaggedNostrEvent }) { - const reactedToTag = ev.tags.find((tag: string[]) => tag[0] === "e"); + const reactedToTag = ev.tags.findLast(tag => tag[0] === "e"); + const pTag = ev.tags.findLast(tag => tag[0] === "p"); if (!reactedToTag?.length) { return null; } - const link = NostrLink.fromTag(reactedToTag); + const link = NostrLink.fromTag(reactedToTag, pTag?.[1]); return (
diff --git a/packages/app/src/Feed/ThreadFeed.ts b/packages/app/src/Feed/ThreadFeed.ts index f944bafb..c239d525 100644 --- a/packages/app/src/Feed/ThreadFeed.ts +++ b/packages/app/src/Feed/ThreadFeed.ts @@ -1,10 +1,14 @@ import { EventExt, EventKind, NostrLink, RequestBuilder } from "@snort/system"; -import { useReactions, useRequestBuilder } from "@snort/system-react"; -import { useEffect, useMemo, useState } from "react"; +import { SnortContext, useRequestBuilder } from "@snort/system-react"; +import { useContext, useEffect, useMemo, useState } from "react"; + +import { randomSample } from "@/Utils"; export default function useThreadFeed(link: NostrLink) { const [root, setRoot] = useState(); + const [rootRelays, setRootRelays] = useState>(); const [allEvents, setAllEvents] = useState>([]); + const system = useContext(SnortContext); const sub = useMemo(() => { const sub = new RequestBuilder(`thread:${link.id.slice(0, 12)}`); @@ -13,7 +17,7 @@ export default function useThreadFeed(link: NostrLink) { }); sub.withFilter().link(link); if (root) { - sub.withFilter().link(root); + sub.withFilter().link(root).relay(rootRelays ?? []); } const grouped = [link, ...allEvents].reduce( (acc, v) => { @@ -24,11 +28,14 @@ export default function useThreadFeed(link: NostrLink) { {} as Record>, ); - for (const [, v] of Object.entries(grouped)) { - sub.withFilter().kinds([EventKind.TextNote]).replyToLink(v); + for (const v of Object.values(grouped)) { + sub.withFilter() + .kinds([EventKind.TextNote]) + .replyToLink(v) + .relay(rootRelays ?? []); } return sub; - }, [allEvents.length]); + }, [allEvents.length, rootRelays]); const store = useRequestBuilder(sub); @@ -57,15 +64,28 @@ export default function useThreadFeed(link: NostrLink) { ]), ); } + } else { + setRoot(link); } } } }, [store?.length]); - const reactions = useReactions(`thread:${link.id.slice(0, 12)}:reactions`, [link, ...allEvents]); + useEffect(() => { + if (root) { + const rootEvent = store?.find(a => root.matchesEvent(a)); + if (rootEvent) { + system.relayCache.buffer([rootEvent.pubkey]).then(() => { + const relays = system.relayCache.getFromCache(rootEvent.pubkey); - return { - thread: store ?? [], - reactions: reactions ?? [], - }; + if (relays) { + const readRelays = randomSample(relays.relays.filter(a => a.settings.read).map(a => a.url), 3); + setRootRelays(readRelays); + } + }) + } + } + }, [link, root, store?.length]); + + return store ?? []; } diff --git a/packages/app/src/Utils/Thread/ThreadContext.tsx b/packages/app/src/Utils/Thread/ThreadContext.tsx index 8ce0c06c..4c8d0683 100644 --- a/packages/app/src/Utils/Thread/ThreadContext.tsx +++ b/packages/app/src/Utils/Thread/ThreadContext.tsx @@ -2,13 +2,12 @@ import { TaggedNostrEvent } from "@snort/system"; import { createContext } from "react"; -interface ThreadContext { +export interface ThreadContextState { current: string; root?: TaggedNostrEvent; chains: Map>; data: Array; - reactions: Array; setCurrent: (i: string) => void; } -export const ThreadContext = createContext({} as ThreadContext); +export const ThreadContext = createContext({} as ThreadContextState); diff --git a/packages/app/src/Utils/Thread/ThreadContextWrapper.tsx b/packages/app/src/Utils/Thread/ThreadContextWrapper.tsx index 413cc58f..f43fd338 100644 --- a/packages/app/src/Utils/Thread/ThreadContextWrapper.tsx +++ b/packages/app/src/Utils/Thread/ThreadContextWrapper.tsx @@ -6,7 +6,7 @@ import { useLocation } from "react-router-dom"; import useThreadFeed from "@/Feed/ThreadFeed"; import useModeration from "@/Hooks/useModeration"; import { chainKey, replyChainKey } from "@/Utils/Thread/ChainKey"; -import { ThreadContext } from "@/Utils/Thread/ThreadContext"; +import { ThreadContext, ThreadContextState } from "@/Utils/Thread/ThreadContext"; export function ThreadContextWrapper({ link, children }: { link: NostrLink; children?: ReactNode }) { const location = useLocation(); @@ -16,8 +16,8 @@ export function ThreadContextWrapper({ link, children }: { link: NostrLink; chil const chains = useMemo(() => { const chains = new Map>(); - if (feed.thread) { - feed.thread + if (feed) { + feed ?.filter(a => !isBlocked(a.pubkey)) .forEach(v => { const replyTo = replyChainKey(v); @@ -31,30 +31,29 @@ export function ThreadContextWrapper({ link, children }: { link: NostrLink; chil }); } return chains; - }, [feed.thread]); + }, [feed]); // Root is the parent of the current note or the current note if its a root note or the root of the thread const root = useMemo(() => { const currentNote = - feed.thread?.find(a => chainKey(a) === currentId) ?? + feed?.find(a => chainKey(a) === currentId) ?? (location.state && "sig" in location.state ? (location.state as TaggedNostrEvent) : undefined); if (currentNote) { const key = replyChainKey(currentNote); if (key) { - return feed.thread?.find(a => chainKey(a) === key); + return feed?.find(a => chainKey(a) === key); } else { return currentNote; } } - }, [feed.thread.length, currentId, location]); + }, [feed.length, currentId, location]); - const ctxValue = useMemo(() => { + const ctxValue = useMemo(() => { return { current: currentId, root, chains, - reactions: feed.reactions, - data: feed.thread, + data: feed, setCurrent: v => setCurrentId(v), }; }, [root, chains]); diff --git a/packages/system-wasm/Cargo.lock b/packages/system-wasm/Cargo.lock index 227365c2..a2eead3e 100644 --- a/packages/system-wasm/Cargo.lock +++ b/packages/system-wasm/Cargo.lock @@ -23,18 +23,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" -[[package]] -name = "argon2" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ba4cac0a46bc1d2912652a751c47f2a9f3a7fe89bcae2275d418f5270402f9" -dependencies = [ - "base64ct", - "blake2", - "cpufeatures", - "password-hash", -] - [[package]] name = "async-trait" version = "0.1.73" @@ -52,27 +40,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - [[package]] name = "bitflags" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -283,7 +256,6 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", - "subtle", ] [[package]] @@ -460,17 +432,6 @@ version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" -[[package]] -name = "password-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core", - "subtle", -] - [[package]] name = "plotters" version = "0.3.5" @@ -727,12 +688,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - [[package]] name = "syn" version = "2.0.31" @@ -748,7 +703,6 @@ dependencies = [ name = "system-wasm" version = "0.1.0" dependencies = [ - "argon2", "console_error_panic_hook", "criterion", "hex", diff --git a/packages/system-wasm/Cargo.toml b/packages/system-wasm/Cargo.toml index d938f066..12b17ce1 100644 --- a/packages/system-wasm/Cargo.toml +++ b/packages/system-wasm/Cargo.toml @@ -8,7 +8,6 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -argon2 = "0.5.2" console_error_panic_hook = "0.1.7" hex = { version = "0.4.3", features = [], default-features = false } itertools = "0.11.0" diff --git a/packages/system-wasm/README.md b/packages/system-wasm/README.md index 35c32495..2512303b 100644 --- a/packages/system-wasm/README.md +++ b/packages/system-wasm/README.md @@ -1 +1,11 @@ # system-wasm + +## Building + +### Ubuntu/Debian + +```bash +sudo apt install clang +cargo install wasm-pack +yarn build +``` diff --git a/packages/system-wasm/package.json b/packages/system-wasm/package.json index 1360e5d6..3a9d7026 100644 --- a/packages/system-wasm/package.json +++ b/packages/system-wasm/package.json @@ -1,6 +1,6 @@ { "name": "@snort/system-wasm", - "version": "1.0.2", + "version": "1.0.3", "packageManager": "yarn@3.6.3", "author": "Kieran", "license": "MIT", diff --git a/packages/system-wasm/pkg/README.md b/packages/system-wasm/pkg/README.md index 35c32495..2512303b 100644 --- a/packages/system-wasm/pkg/README.md +++ b/packages/system-wasm/pkg/README.md @@ -1 +1,11 @@ # system-wasm + +## Building + +### Ubuntu/Debian + +```bash +sudo apt install clang +cargo install wasm-pack +yarn build +``` diff --git a/packages/system-wasm/pkg/system_wasm.d.ts b/packages/system-wasm/pkg/system_wasm.d.ts index 7c3dcc11..e17b552f 100644 --- a/packages/system-wasm/pkg/system_wasm.d.ts +++ b/packages/system-wasm/pkg/system_wasm.d.ts @@ -33,12 +33,6 @@ export function compress(val: any): any; * @returns {any} */ export function pow(val: any, target: any): any; -/** - * @param {any} password - * @param {any} salt - * @returns {any} - */ -export function argon2(password: any, salt: any): any; /** * @param {any} hash * @param {any} sig @@ -62,7 +56,6 @@ export interface InitOutput { readonly flat_merge: (a: number, b: number) => void; readonly compress: (a: number, b: number) => void; readonly pow: (a: number, b: number, c: number) => void; - readonly argon2: (a: number, b: number, c: number) => void; readonly schnorr_verify: (a: number, b: number, c: number, d: number) => void; readonly schnorr_verify_event: (a: number, b: number) => void; readonly rustsecp256k1_v0_9_1_context_create: (a: number) => number; diff --git a/packages/system-wasm/pkg/system_wasm.js b/packages/system-wasm/pkg/system_wasm.js index 3ebc649e..6542fa61 100644 --- a/packages/system-wasm/pkg/system_wasm.js +++ b/packages/system-wasm/pkg/system_wasm.js @@ -340,27 +340,6 @@ export function pow(val, target) { } } -/** - * @param {any} password - * @param {any} salt - * @returns {any} - */ -export function argon2(password, salt) { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.argon2(retptr, addHeapObject(password), addHeapObject(salt)); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - var r2 = getInt32Memory0()[retptr / 4 + 2]; - if (r2) { - throw takeObject(r1); - } - return takeObject(r0); - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - } -} - /** * @param {any} hash * @param {any} sig @@ -484,10 +463,6 @@ function __wbg_get_imports() { const ret = new Error(getStringFromWasm0(arg0, arg1)); return addHeapObject(ret); }; - imports.wbg.__wbindgen_object_clone_ref = function (arg0) { - const ret = getObject(arg0); - return addHeapObject(ret); - }; imports.wbg.__wbindgen_jsval_loose_eq = function (arg0, arg1) { const ret = getObject(arg0) == getObject(arg1); return ret; @@ -507,6 +482,10 @@ function __wbg_get_imports() { const ret = arg0; return addHeapObject(ret); }; + imports.wbg.__wbindgen_object_clone_ref = function (arg0) { + const ret = getObject(arg0); + return addHeapObject(ret); + }; imports.wbg.__wbindgen_string_new = function (arg0, arg1) { const ret = getStringFromWasm0(arg0, arg1); return addHeapObject(ret); diff --git a/packages/system-wasm/pkg/system_wasm_bg.wasm b/packages/system-wasm/pkg/system_wasm_bg.wasm index 9873f280415fd905d07613acff2c09d09517934c..6fae1c8fcf8e88d3e97596859b000fedf945a34d 100644 GIT binary patch delta 208031 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 delta 224194 zcma%k37lkAd2ijSUaI%%y?VcOyJx0*)}Do#0S1|BL=aqn5L8eBbrhRL76|hRjm*1JS0Y zSS-@g9cze0Vl9!LSTqvFRir5viA9~L6N$w-8XIFylM{6qL?cbnMqE0PXrt2@bz-r`NTeYeYih+CxN5_HVu0B+cxhu(8wQKU z~VI5b3tqS5B|_QnRbuuHV5!D)0NPAn2_1%QS~J3zJIsw3JwJUZUm z81)yLCo_10HuFCsh5zXv$B8+P+(sH>4b9HY&in9xP!~xxwKy3koz0daZOsqHdYf)M zcH^6lzbzVRf885j|N5(6|Hd0`J9hlm$YV~&vA5oQ?M<&UEs?)*;%_*1+tut8DLbvN zzv0^3F1`B3W5?fcEb=WU{@OR)c=PdNx8550wiCPgO>c=j?lfI{{0(oqXyMqtP!!ACCTM zv=IGY(Lcf8&qp7M{>J$`=dB-!J{tWn{{6_=aPD;eA3B}{Z&#epIg8F+(F+&xs3iZF z-XG22{-@~l&yL(b8vPg=9z@UkoDbsaL(VUpk30X4|5lx+onPVV-<_wNpE*Bw{wVq` z1-OiEe9E(szhyME%acP3UiW+3hf;mgjJw3#fkijr_FaB2P+2=P59YXC zZr>IDS?v=$`}nW}clYAI-O^=MyR^IAXlzKY1h+l@JKE38FHgmKuMk42XUr34S9naO zW(^^h`hp<@JW_UKmBCqqbOA_ryKQbe0JXWj{V}fqd;4|z+l+q#uZN;rpfL0*E`)~L)x)xPSHEn zd_vST%307Iu)eqt{Hf^y*1G5s2bf?^?41XV;TYf*dnBMh=;7bkHJ0fO`j%$r-9FRz z+!Iiz9-(ht5$kk&uDEx>9TGYyg)Ury%03;@^?HJFiWmosD$SlIml8P7{+58kzWH-R zYUY-?oN%||@V~Ig`LK@fhO5>pa&)s{RLBHi%&-tu>xM$}JEj3wCL-H&& zMNmWXEHxD%Px34^Rd9slDWmS~aknMies>T6``sZC?b1F0+vyGo7ORRyr~g#X46x|9 zXRIHrjgXG&Zo>f(HsoK@JB#Oc_V#5szQwU>L}hU-pn*tR9LvCwNLw5$z>!E>ju+5C zPR=SLE8t(Z+vz5OZ_-T()+>tUu$#KV@9UeotWy=SbCbF$-g~{I2n3Sp;6-IOCZ@Dt zgAR}RKV&CKT z0`G*|tMXSE9d1Hy*LMrZ4xz9iy`i+hn8?L~{Lf4}%voU6qZoCBFb>6%ezrf+ua zft1_xxMgoJ%NNfOS$E4E#3Fpa+)j#Guj|u>^yOMuEEVBTLomACyQ*!;AWAnniaw#TTy+e?(nPTG#M8k>wdTC1XpOl9TmdXl+F%!Ky0fJKn)nh6}Ssc z!%(XcLgXey$0}m147F+Z=?Vgg^Ce4X0d$gjOH&mMBo;>7UvhOS-sAZm}`i^_-S;S=ZgblCJ51!7N|a0Rv0Ap|?H$wc~0@cl7IA`0rR! z|I_2=WW+tpfvg&b{!nZhxMv{_veJqp3+_`sRvcv`A1jUm#6c~w;;0(=SaFoploWQU z7garDSHM}Ya%hwNT~g|-{S9uD{>LV^IX$$wTj<|lzR|j5cNiICDDk99AgdSKg+U+x zGJ~8DW^YjEHqii7p(a!$OKjCpZ;34#>MgN3&_?aF#8wRTme`^ao7=_R^Ef;c5KFU7 zAJ@uPiR$#f~+=xmGs&eX0K2v?6@Pf&#&z`oAvx4_79YpA9cO0Mt%o4c`H zl)Tj)@SjeNTtpKTEJ(DhFh{NR;3Kq5wN@=K*ULI^i`#ZNJjQ1KS}&D(Fgo1sfSu_a zB!-|$QjD@Q6T2kbeU@hAQG#aLb<%5U_pI|@otDROERuX&(Z|-gC~lL-5!u!{>2-Z< zHU?u2>4LuQGTejLtNL8`GUJm&8m=g!6QA2HNCD__YFI4FK$7@bxLGt1BfAAD0THO5 z*(SYv(m0%D(`<(>8CZ7cqJd?Ht{7N$=$wINcQ@6oqG**FokB(EmjrlnGuTK|4NB8+ zIAy&r�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⋙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 J { @@ -11,7 +12,7 @@ enum StringOrNumberEntry<'a> { Number((&'static str, &'a i32)), } -#[derive(PartialEq, Clone, Serialize, Deserialize)] +#[derive(PartialEq, Clone, Serialize, Deserialize, Default)] pub struct ReqFilter { #[serde(rename = "ids", skip_serializing_if = "Option::is_none")] pub ids: Option>, @@ -33,6 +34,8 @@ pub struct ReqFilter { pub a_tag: Option>, #[serde(rename = "#g", skip_serializing_if = "Option::is_none")] pub g_tag: Option>, + #[serde(rename = "relays", skip_serializing_if = "Option::is_none")] + pub relays: Option>, #[serde(rename = "search", skip_serializing_if = "Option::is_none")] pub search: Option, #[serde(rename = "since", skip_serializing_if = "Option::is_none")] @@ -50,7 +53,7 @@ impl Debug for ReqFilter { } } -#[derive(PartialEq, PartialOrd, Clone, Serialize, Deserialize)] +#[derive(PartialEq, PartialOrd, Clone, Serialize, Deserialize, Default)] pub struct FlatReqFilter { #[serde(rename = "ids", skip_serializing_if = "Option::is_none")] pub id: Option, @@ -74,6 +77,8 @@ pub struct FlatReqFilter { pub g_tag: Option, #[serde(rename = "search", skip_serializing_if = "Option::is_none")] pub search: Option, + #[serde(rename = "relay", skip_serializing_if = "Option::is_none")] + pub relay: Option, #[serde(rename = "since", skip_serializing_if = "Option::is_none")] pub since: Option, #[serde(rename = "until", skip_serializing_if = "Option::is_none")] @@ -117,11 +122,13 @@ impl Distance for FlatReqFilter { ret += prop_dist(&self.id, &b.id); ret += prop_dist(&self.kind, &b.kind); ret += prop_dist(&self.author, &b.author); + ret += prop_dist(&self.relay, &b.relay); ret += prop_dist(&self.e_tag, &b.e_tag); ret += prop_dist(&self.p_tag, &b.p_tag); ret += prop_dist(&self.d_tag, &b.d_tag); ret += prop_dist(&self.r_tag, &b.r_tag); ret += prop_dist(&self.t_tag, &b.t_tag); + ret += prop_dist(&self.g_tag, &b.g_tag); ret } @@ -143,26 +150,12 @@ impl CanMerge for FlatReqFilter { impl From> for ReqFilter { fn from(value: Vec<&FlatReqFilter>) -> Self { - let ret = ReqFilter { - ids: None, - authors: None, - kinds: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, - }; + let ret = Default::default(); value.iter().fold(ret, |mut acc, x| { array_prop_append(&x.id, &mut acc.ids); array_prop_append(&x.author, &mut acc.authors); array_prop_append(&x.kind, &mut acc.kinds); + array_prop_append(&x.relay, &mut acc.relays); array_prop_append(&x.e_tag, &mut acc.e_tag); array_prop_append(&x.p_tag, &mut acc.p_tag); array_prop_append(&x.t_tag, &mut acc.t_tag); @@ -182,26 +175,12 @@ impl From> for ReqFilter { impl From> for ReqFilter { fn from(value: Vec<&ReqFilter>) -> Self { - let ret = ReqFilter { - ids: None, - authors: None, - kinds: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, - }; + let ret = Default::default(); value.iter().fold(ret, |mut acc, x| { array_prop_append_vec(&x.ids, &mut acc.ids); array_prop_append_vec(&x.authors, &mut acc.authors); array_prop_append_vec(&x.kinds, &mut acc.kinds); + array_prop_append_vec(&x.relays, &mut acc.relays); array_prop_append_vec(&x.e_tag, &mut acc.e_tag); array_prop_append_vec(&x.p_tag, &mut acc.p_tag); array_prop_append_vec(&x.t_tag, &mut acc.t_tag); @@ -245,6 +224,13 @@ impl Into> for &ReqFilter { .collect(); inputs.push(t_ids); } + if let Some(relays) = &self.relays { + let t_relays = relays + .iter() + .map(|z| StringOrNumberEntry::String(("relay", z))) + .collect(); + inputs.push(t_relays); + } if let Some(e_tags) = &self.e_tag { let t_ids = e_tags .iter() @@ -313,6 +299,14 @@ impl Into> for &ReqFilter { } None }), + relay: p.iter().find_map(|q| { + if let StringOrNumberEntry::String((k, v)) = q { + if (*k).eq("relay") { + return Some((*v).to_string()); + } + } + None + }), kind: p.iter().find_map(|q| { if let StringOrNumberEntry::Number((k, v)) = q { if (*k).eq("kind") { @@ -394,6 +388,7 @@ impl Distance for ReqFilter { ret += prop_dist_vec(&self.ids, &b.ids); ret += prop_dist_vec(&self.kinds, &b.kinds); ret += prop_dist_vec(&self.authors, &b.authors); + ret += prop_dist_vec(&self.relays, &b.relays); ret += prop_dist_vec(&self.e_tag, &b.e_tag); ret += prop_dist_vec(&self.p_tag, &b.p_tag); ret += prop_dist_vec(&self.d_tag, &b.d_tag); @@ -478,9 +473,10 @@ fn array_prop_append_vec( #[cfg(test)] mod tests { - use crate::ReqFilter; use std::collections::HashSet; + use crate::filter::FlatReqFilter; + use crate::ReqFilter; #[test] fn test_expand_filter() { @@ -493,16 +489,9 @@ mod tests { kinds: Some(HashSet::from([1, 2, 3])), ids: Some(HashSet::from(["x".to_owned(), "y".to_owned()])), p_tag: Some(HashSet::from(["a".to_owned()])), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }; let output: Vec = (&input).into(); @@ -512,288 +501,162 @@ mod tests { kind: Some(1), id: Some("x".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("a".to_owned()), kind: Some(1), id: Some("y".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("a".to_owned()), kind: Some(2), id: Some("x".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("a".to_owned()), kind: Some(2), id: Some("y".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("a".to_owned()), kind: Some(3), id: Some("x".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("a".to_owned()), kind: Some(3), id: Some("y".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("b".to_owned()), kind: Some(1), id: Some("x".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("b".to_owned()), kind: Some(1), id: Some("y".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("b".to_owned()), kind: Some(2), id: Some("x".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("b".to_owned()), kind: Some(2), id: Some("y".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("b".to_owned()), kind: Some(3), id: Some("x".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("b".to_owned()), kind: Some(3), id: Some("y".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("c".to_owned()), kind: Some(1), id: Some("x".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("c".to_owned()), kind: Some(1), id: Some("y".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("c".to_owned()), kind: Some(2), id: Some("x".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("c".to_owned()), kind: Some(2), id: Some("y".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("c".to_owned()), kind: Some(3), id: Some("x".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, FlatReqFilter { author: Some("c".to_owned()), kind: Some(3), id: Some("y".to_owned()), p_tag: Some("a".to_owned()), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, since: Some(99), - until: None, limit: Some(10), - e_tag: None, + ..Default::default() }, ]; assert_eq!(output.len(), expected.len()); diff --git a/packages/system-wasm/src/lib.rs b/packages/system-wasm/src/lib.rs index 0965af0a..de03eb07 100644 --- a/packages/system-wasm/src/lib.rs +++ b/packages/system-wasm/src/lib.rs @@ -1,6 +1,5 @@ extern crate console_error_panic_hook; -use argon2::{Argon2}; use secp256k1::{Message, XOnlyPublicKey, SECP256K1}; use serde::{Deserialize, Serialize}; use serde_json::json; @@ -90,16 +89,6 @@ pub fn pow(val: JsValue, target: JsValue) -> Result { Ok(serde_wasm_bindgen::to_value(&val_parsed)?) } -#[wasm_bindgen] -pub fn argon2(password: JsValue, salt: JsValue) -> Result { - console_error_panic_hook::set_once(); - let password_parsed: String = serde_wasm_bindgen::from_value(password)?; - let salt_parsed: String = serde_wasm_bindgen::from_value(salt)?; - let mut key = [0u8; 32]; - Argon2::default().hash_password_into(password_parsed.as_bytes(), salt_parsed.as_bytes(), &mut key).expect("Failed to generate key"); - Ok(serde_wasm_bindgen::to_value(&hex::encode(key))?) -} - #[wasm_bindgen] pub fn schnorr_verify(hash: JsValue, sig: JsValue, pub_key: JsValue) -> Result { console_error_panic_hook::set_once(); @@ -137,15 +126,7 @@ mod tests { fn flat_merge_expanded() { let input = vec![ ReqFilter { - ids: None, kinds: Some(HashSet::from([1, 6969, 6])), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, authors: Some(HashSet::from([ "kieran".to_string(), "snort".to_string(), @@ -155,56 +136,23 @@ mod tests { ])), since: Some(1), until: Some(100), - search: None, - limit: None, + ..Default::default() }, ReqFilter { - ids: None, kinds: Some(HashSet::from([4])), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, authors: Some(HashSet::from(["kieran".to_string()])), - limit: None, + ..Default::default() }, ReqFilter { - ids: None, - authors: None, kinds: Some(HashSet::from([4])), - e_tag: None, p_tag: Some(HashSet::from(["kieran".to_string()])), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, ReqFilter { - ids: None, kinds: Some(HashSet::from([1000])), authors: Some(HashSet::from(["snort".to_string()])), p_tag: Some(HashSet::from(["kieran".to_string()])), - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - e_tag: None, - limit: None, + ..Default::default() }, ]; diff --git a/packages/system-wasm/src/merge.rs b/packages/system-wasm/src/merge.rs index 56349ef1..74f4b543 100644 --- a/packages/system-wasm/src/merge.rs +++ b/packages/system-wasm/src/merge.rs @@ -59,83 +59,25 @@ mod tests { fn distance() { let a = FlatReqFilter { id: Some("a".to_owned()), - author: None, - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }; let b = FlatReqFilter { id: Some("a".to_owned()), - author: None, - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }; let c = FlatReqFilter { id: Some("c".to_owned()), - author: None, - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }; let d = FlatReqFilter { id: Some("a".to_owned()), - author: None, kind: Some(1), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }; let e = FlatReqFilter { id: Some("e".to_owned()), - author: None, kind: Some(1), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }; assert_eq!(a.distance(&b), 0); assert_eq!(a.distance(&c), 1); @@ -148,51 +90,21 @@ mod tests { let a = FlatReqFilter { id: Some("0".to_owned()), author: Some("a".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, limit: Some(10), + ..Default::default() }; let b = FlatReqFilter { id: Some("0".to_owned()), author: Some("b".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, limit: Some(10), + ..Default::default() }; let output = ReqFilter { ids: Some(HashSet::from(["0".to_owned()])), authors: Some(HashSet::from(["a".to_owned(), "b".to_owned()])), - kinds: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, limit: Some(10), + ..Default::default() }; assert_eq!(ReqFilter::from(vec![&a, &b]), output); } @@ -202,50 +114,20 @@ mod tests { let a = FlatReqFilter { id: Some("0".to_owned()), author: Some("a".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, limit: Some(10), + ..Default::default() }; let b = FlatReqFilter { id: Some("0".to_owned()), author: Some("b".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, limit: Some(10), + ..Default::default() }; let c = FlatReqFilter { id: Some("0".to_owned()), author: Some("b".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, limit: Some(100), + ..Default::default() }; assert!(&a.can_merge(&b)); assert!(!&b.can_merge(&c)); @@ -257,146 +139,44 @@ mod tests { FlatReqFilter { id: Some("0".to_owned()), author: Some("a".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, FlatReqFilter { id: Some("0".to_owned()), author: Some("b".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, FlatReqFilter { - id: None, - author: None, kind: Some(1), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, FlatReqFilter { - id: None, - author: None, kind: Some(2), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, FlatReqFilter { - id: None, - author: None, kind: Some(2), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, FlatReqFilter { id: Some("0".to_owned()), author: Some("c".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, FlatReqFilter { - id: None, author: Some("c".to_owned()), kind: Some(1), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, FlatReqFilter { - id: None, author: Some("c".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, limit: Some(100), + ..Default::default() }, FlatReqFilter { id: Some("1".to_owned()), author: Some("c".to_owned()), - kind: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, ]; let output = vec![ @@ -407,82 +187,26 @@ mod tests { "b".to_owned(), "c".to_owned(), ])), - kinds: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, ReqFilter { - ids: None, - authors: None, kinds: Some(HashSet::from([1, 2])), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, ReqFilter { - ids: None, authors: Some(HashSet::from(["c".to_owned()])), kinds: Some(HashSet::from([1])), - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, ReqFilter { - ids: None, authors: Some(HashSet::from(["c".to_owned()])), - kinds: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, limit: Some(100), + ..Default::default() }, ReqFilter { ids: Some(HashSet::from(["1".to_owned()])), authors: Some(HashSet::from(["c".to_owned()])), - kinds: None, - e_tag: None, - p_tag: None, - t_tag: None, - d_tag: None, - r_tag: None, - a_tag: None, - g_tag: None, - search: None, - since: None, - until: None, - limit: None, + ..Default::default() }, ]; diff --git a/packages/system/src/connection.ts b/packages/system/src/connection.ts index 19190e52..994b9765 100644 --- a/packages/system/src/connection.ts +++ b/packages/system/src/connection.ts @@ -397,7 +397,7 @@ export class Connection extends EventEmitter { this.queueReq(["REQ", id, ...newFilters], item.cb); } }; - if (this.Info?.software?.includes("strfry")) { + if (this.Address.startsWith("wss://relay.snort.social")) { const newFilters = filters.map(a => { if (a.ids_only) { const copy = { ...a }; diff --git a/packages/system/src/const.ts b/packages/system/src/const.ts index 795345bd..5b381fcd 100644 --- a/packages/system/src/const.ts +++ b/packages/system/src/const.ts @@ -49,3 +49,12 @@ export const MentionNostrEntityRegex = /@n(pub|profile|event|ote|addr|)1[acdefgh * Regex to match markdown code content */ export const MarkdownCodeRegex = /(```.+?```)/gms; + +/** + * Public metadata relays + */ +export const MetadataRelays = [ + "wss://purplepag.es/", + "wss://relay.nostr.band/", + "wss://relay.snort.social/" +] \ No newline at end of file diff --git a/packages/system/src/filter-cache-layer.ts b/packages/system/src/filter-cache-layer.ts index 32a8e96b..fa205493 100644 --- a/packages/system/src/filter-cache-layer.ts +++ b/packages/system/src/filter-cache-layer.ts @@ -1,5 +1,5 @@ -import { BuiltRawReqFilter, RequestStrategy } from "./request-builder"; -import { NostrEvent, TaggedNostrEvent } from "./nostr"; +import { BuiltRawReqFilter } from "./request-builder"; +import { NostrEvent } from "./nostr"; import { Query } from "./query"; export interface EventCache { @@ -9,31 +9,3 @@ export interface EventCache { export interface FilterCacheLayer { processFilter(q: Query, req: BuiltRawReqFilter): Promise; } - -export class IdsFilterCacheLayer implements FilterCacheLayer { - constructor(readonly cache: EventCache) {} - - async processFilter(q: Query, req: BuiltRawReqFilter) { - for (const f of req.filters) { - if (f.ids) { - const cacheResults = await this.cache.bulkGet(f.ids); - if (cacheResults.length > 0) { - const resultIds = new Set(cacheResults.map(a => a.id)); - f.ids = f.ids.filter(a => !resultIds.has(a)); - - // this step is important for buildDiff, if a filter doesnt exist with the ids which are from cache - // we will create an infinite loop where every render we insert a new query for the ids which are missing - q.insertCompletedTrace( - { - filters: [{ ...f, ids: [...resultIds] }], - strategy: RequestStrategy.ExplicitRelays, - relay: req.relay, - }, - cacheResults as Array, - ); - } - } - } - return req; - } -} diff --git a/packages/system/src/nostr-link.ts b/packages/system/src/nostr-link.ts index b34d3ea6..14265c73 100644 --- a/packages/system/src/nostr-link.ts +++ b/packages/system/src/nostr-link.ts @@ -177,14 +177,14 @@ export class NostrLink implements ToNostrEventTag { throw new Error(`Unknown tag kind ${tag.key}`); } - static fromTag(tag: Array) { + static fromTag(tag: Array, author?: string, kind?: number) { const relays = tag.length > 2 ? [tag[2]] : undefined; switch (tag[0]) { case "e": { - return new NostrLink(NostrPrefix.Event, tag[1], undefined, undefined, relays); + return new NostrLink(NostrPrefix.Event, tag[1], kind, author, relays); } case "p": { - return new NostrLink(NostrPrefix.Profile, tag[1], undefined, undefined, relays); + return new NostrLink(NostrPrefix.Profile, tag[1], kind, author, relays); } case "a": { const [kind, author, dTag] = tag[1].split(":"); diff --git a/packages/system/src/nostr.ts b/packages/system/src/nostr.ts index 568871ff..846398a5 100644 --- a/packages/system/src/nostr.ts +++ b/packages/system/src/nostr.ts @@ -58,6 +58,7 @@ export interface ReqFilter { until?: number; limit?: number; ids_only?: boolean; + relays?: string[]; [key: string]: Array | Array | string | number | undefined | boolean; } diff --git a/packages/system/src/outbox/outbox-model.ts b/packages/system/src/outbox/outbox-model.ts index 60d1df57..75535fba 100644 --- a/packages/system/src/outbox/outbox-model.ts +++ b/packages/system/src/outbox/outbox-model.ts @@ -1,10 +1,10 @@ import { EventKind, NostrEvent, ReqFilter, RequestBuilder, SystemInterface } from ".."; -import { dedupe, removeUndefined, unixNowMs, unwrap } from "@snort/shared"; +import { appendDedupe, dedupe, removeUndefined, unixNowMs, unwrap } from "@snort/shared"; import { FlatReqFilter } from "../query-optimizer"; import { RelayListCacheExpire } from "../const"; import { AuthorsRelaysCache, EventFetcher, PickedRelays, DefaultPickNRelays, parseRelaysFromKind } from "."; import debug from "debug"; -import { BaseRequestRouter, RelayTaggedFilter, RelayTaggedFlatFilters } from "../request-router"; +import { BaseRequestRouter } from "../request-router"; /** * Simple outbox model using most popular relays @@ -89,15 +89,10 @@ export class OutboxModel extends BaseRequestRouter { * @param pickN Number of relays to pick per author * @returns */ - forRequest(filter: ReqFilter, pickN?: number): Array { + forRequest(filter: ReqFilter, pickN?: number): Array { const authors = filter.authors; if ((authors?.length ?? 0) === 0) { - return [ - { - relay: "", - filter, - }, - ]; + return [filter]; } const topRelays = this.pickTopRelays(unwrap(authors), pickN ?? DefaultPickNRelays, "write"); @@ -106,22 +101,17 @@ export class OutboxModel extends BaseRequestRouter { const picked = pickedRelays.map(a => { const keysOnPickedRelay = dedupe(topRelays.filter(b => b.relays.includes(a)).map(b => b.key)); return { - relay: a, - filter: { - ...filter, - authors: keysOnPickedRelay, - }, - } as RelayTaggedFilter; + ...filter, + authors: keysOnPickedRelay, + relays: appendDedupe(filter.relays, [a]) + } as ReqFilter; }); const noRelays = dedupe(topRelays.filter(a => a.relays.length === 0).map(a => a.key)); if (noRelays.length > 0) { picked.push({ - relay: "", - filter: { - ...filter, - authors: noRelays, - }, - }); + ...filter, + authors: noRelays, + } as ReqFilter); } this.#log("Picked %O => %O", filter, picked); return picked; @@ -133,32 +123,32 @@ export class OutboxModel extends BaseRequestRouter { * @param pickN Number of relays to pick per author * @returns */ - forFlatRequest(input: Array, pickN?: number): Array { - const authors = input.filter(a => a.authors).map(a => unwrap(a.authors)); + forFlatRequest(input: Array, pickN?: number): Array { + const authors = removeUndefined(input.flatMap(a => a.authors)); if (authors.length === 0) { - return [ - { - relay: "", - filters: input, - }, - ]; + return input; } const topRelays = this.pickTopRelays(authors, pickN ?? DefaultPickNRelays, "write"); const pickedRelays = dedupe(topRelays.flatMap(a => a.relays)); - const picked = pickedRelays.map(a => { + const picked = pickedRelays.flatMap(a => { const authorsOnRelay = new Set(topRelays.filter(v => v.relays.includes(a)).map(v => v.key)); - return { - relay: a, - filters: input.filter(v => v.authors && authorsOnRelay.has(v.authors)), - } as RelayTaggedFlatFilters; + return input + .filter(v => v.authors && authorsOnRelay.has(v.authors)) + .flatMap(b => { + // if flat filter isnt already relay tagged, set relay tag or + // create a duplicate filter with the authors picked relay + if (!b.relay) { + b.relay = a; + return [b]; + } else { + return [b, { ...b, relay: a }]; + } + }); }); const noRelays = new Set(topRelays.filter(v => v.relays.length === 0).map(v => v.key)); if (noRelays.size > 0) { - picked.push({ - relay: "", - filters: input.filter(v => !v.authors || noRelays.has(v.authors)), - } as RelayTaggedFlatFilters); + picked.push(...input.filter(v => !v.authors || noRelays.has(v.authors))); } this.#log("Picked %d relays from %d filters", picked.length, input.length); diff --git a/packages/system/src/profile-cache.ts b/packages/system/src/profile-cache.ts index 07b8e983..3e4da501 100644 --- a/packages/system/src/profile-cache.ts +++ b/packages/system/src/profile-cache.ts @@ -19,7 +19,10 @@ export class ProfileLoaderService extends BackgroundLoader { override buildSub(missing: string[]): RequestBuilder { const sub = new RequestBuilder(`profiles`); - sub.withFilter().kinds([EventKind.SetMetadata]).authors(missing); + sub.withFilter() + .kinds([EventKind.SetMetadata]) + .authors(missing) + .relay(["wss://purplepag.es/"]); return sub; } diff --git a/packages/system/src/query-manager.ts b/packages/system/src/query-manager.ts index 74e80e53..6a1d29c5 100644 --- a/packages/system/src/query-manager.ts +++ b/packages/system/src/query-manager.ts @@ -1,8 +1,8 @@ import debug from "debug"; import { EventEmitter } from "eventemitter3"; -import { BuiltRawReqFilter, RequestBuilder, RequestStrategy, SystemInterface, TaggedNostrEvent } from "."; +import { BuiltRawReqFilter, RequestBuilder, SystemInterface, TaggedNostrEvent } from "."; import { Query, TraceReport } from "./query"; -import { FilterCacheLayer, IdsFilterCacheLayer } from "./filter-cache-layer"; +import { FilterCacheLayer } from "./filter-cache-layer"; import { trimFilters } from "./request-trim"; interface QueryManagerEvents { @@ -35,7 +35,6 @@ export class QueryManager extends EventEmitter { constructor(system: SystemInterface) { super(); this.#system = system; - this.#queryCacheLayers.push(new IdsFilterCacheLayer(system.eventsCache)); setInterval(() => this.#cleanup(), 1_000); } diff --git a/packages/system/src/query-optimizer/index.ts b/packages/system/src/query-optimizer/index.ts index 821ee21a..ef1905ab 100644 --- a/packages/system/src/query-optimizer/index.ts +++ b/packages/system/src/query-optimizer/index.ts @@ -19,6 +19,7 @@ export interface FlatReqFilter { since?: number; until?: number; limit?: number; + relay?: string; resultSetId: string; } diff --git a/packages/system/src/request-builder.ts b/packages/system/src/request-builder.ts index 37b1a548..ba1371f2 100644 --- a/packages/system/src/request-builder.ts +++ b/packages/system/src/request-builder.ts @@ -1,41 +1,18 @@ import debug from "debug"; import { v4 as uuid } from "uuid"; -import { appendDedupe, dedupe, sanitizeRelayUrl, unixNowMs, unwrap } from "@snort/shared"; +import { appendDedupe, dedupe, removeUndefined, sanitizeRelayUrl, unixNowMs, unwrap } from "@snort/shared"; import EventKind from "./event-kind"; -import { NostrLink, NostrPrefix, SystemInterface } from "."; +import { FlatReqFilter, NostrLink, NostrPrefix, SystemInterface } from "."; import { ReqFilter, u256, HexKey, TaggedNostrEvent } from "./nostr"; import { RequestRouter } from "./request-router"; -/** - * Which strategy is used when building REQ filters - */ -export const enum RequestStrategy { - /** - * Use the users default relays to fetch events, - * this is the fallback option when there is no better way to query a given filter set - */ - DefaultRelays = "default", - - /** - * Using a cached copy of the authors relay lists NIP-65, split a given set of request filters by pubkey - */ - AuthorsRelays = "authors-relays", - - /** - * Use pre-determined relays for query - */ - ExplicitRelays = "explicit-relays", -} - /** * A built REQ filter ready for sending to System */ export interface BuiltRawReqFilter { filters: Array; relay: string; - strategy: RequestStrategy; - // Use set sync from an existing set of events syncFrom?: Array; } @@ -133,8 +110,12 @@ export class RequestBuilder { } build(system: SystemInterface): Array { - const expanded = this.#builders.flatMap(a => a.build(system.requestRouter, this.#options)); - return this.#groupByRelay(system, expanded); + let rawFilters = this.buildRaw(); + if (system.requestRouter) { + rawFilters = system.requestRouter.forAllRequest(rawFilters); + } + const expanded = rawFilters.flatMap(a => system.optimizer.expandFilter(a)); + return this.#groupFlatByRelay(system, expanded); } /** @@ -143,55 +124,41 @@ export class RequestBuilder { async buildDiff(system: SystemInterface, prev: Array): Promise> { const start = unixNowMs(); - const diff = system.optimizer.getDiff(prev, this.buildRaw()); + let rawFilters = this.buildRaw(); + if (system.requestRouter) { + rawFilters = system.requestRouter.forAllRequest(rawFilters); + } + const diff = system.optimizer.getDiff(prev, rawFilters); const ts = unixNowMs() - start; this.#log("buildDiff %s %d ms +%d", this.id, ts, diff.length); if (diff.length > 0) { - if (system.requestRouter) { - // todo: fix for explicit relays - return system.requestRouter.forFlatRequest(diff).map(a => { - return { - strategy: RequestStrategy.AuthorsRelays, - filters: system.optimizer.flatMerge(a.filters), - relay: a.relay, - }; - }); - } else { - return [ - { - strategy: RequestStrategy.DefaultRelays, - filters: system.optimizer.flatMerge(diff), - relay: "", - }, - ]; - } + return this.#groupFlatByRelay(system, diff); } return []; } - /** - * Merge a set of expanded filters into the smallest number of subscriptions by merging similar requests - */ - #groupByRelay(system: SystemInterface, filters: Array) { + #groupFlatByRelay(system: SystemInterface, filters: Array) { const relayMerged = filters.reduce((acc, v) => { - const existing = acc.get(v.relay); + const relay = v.relay ?? ""; + delete v.relay; + const existing = acc.get(relay); if (existing) { existing.push(v); } else { - acc.set(v.relay, [v]); + acc.set(relay, [v]); } return acc; - }, new Map>()); + }, new Map>()); - const filtersSquashed = [...relayMerged.values()].map(a => { - return { - filters: system.optimizer.flatMerge(a.flatMap(b => b.filters.flatMap(c => system.optimizer.expandFilter(c)))), - relay: a[0].relay, - strategy: a[0].strategy, - } as BuiltRawReqFilter; - }); - - return filtersSquashed; + const ret = []; + for (const [k, v] of relayMerged.entries()) { + const filters = system.optimizer.flatMerge(v); + ret.push({ + relay: k, + filters, + } as BuiltRawReqFilter); + } + return ret; } } @@ -207,7 +174,10 @@ export class RequestFilterBuilder { } get filter() { - return { ...this.#filter }; + return { + ...this.#filter, + relays: this.#relays.size > 0 ? [...this.#relays] : undefined + }; } /** @@ -232,6 +202,7 @@ export class RequestFilterBuilder { authors(authors?: Array) { if (!authors) return this; this.#filter.authors = appendDedupe(this.#filter.authors, authors); + this.#filter.authors = this.#filter.authors.filter(a => a.length === 64); return this; } @@ -281,6 +252,9 @@ export class RequestFilterBuilder { .authors([unwrap(link.author)]); } else { this.ids([link.id]); + if (link.author) { + this.authors([link.author]); + } } link.relays?.forEach(v => this.relay(v)); return this; @@ -298,46 +272,18 @@ export class RequestFilterBuilder { tags[0][0], tags.map(v => v[1]), ); + this.relay(removeUndefined(links.map(a => a.relays).flat())); return this; } /** * Build/expand this filter into a set of relay specific queries */ - build(model?: RequestRouter, options?: RequestBuilderOptions): Array { - return this.#buildFromFilter(this.#filter, model, options); - } - - #buildFromFilter(f: ReqFilter, model?: RequestRouter, options?: RequestBuilderOptions) { - // use the explicit relay list first - if (this.#relays.size > 0) { - return [...this.#relays].map(r => { - return { - filters: [f], - relay: r, - strategy: RequestStrategy.ExplicitRelays, - }; - }); + build(model?: RequestRouter, options?: RequestBuilderOptions): Array { + if (model) { + return model.forRequest(this.filter, options?.outboxPickN); } - // If any authors are set use the gossip model to fetch data for each author - if (f.authors && model) { - const split = model.forRequest(f, options?.outboxPickN); - return split.map(a => { - return { - filters: [a.filter], - relay: a.relay, - strategy: RequestStrategy.AuthorsRelays, - }; - }); - } - - return [ - { - filters: [f], - relay: "", - strategy: RequestStrategy.DefaultRelays, - }, - ]; + return [this.filter]; } } diff --git a/packages/system/src/request-router.ts b/packages/system/src/request-router.ts index 008b7f58..40bd0fd6 100644 --- a/packages/system/src/request-router.ts +++ b/packages/system/src/request-router.ts @@ -1,21 +1,7 @@ +import { unwrap } from "@snort/shared"; import { NostrEvent, ReqFilter } from "./nostr"; import { FlatReqFilter } from "./query-optimizer"; -export interface RelayTaggedFilter { - relay: string; - filter: ReqFilter; -} - -export interface RelayTaggedFlatFilters { - relay: string; - filters: Array; -} - -export interface RelayTaggedFilters { - relay: string; - filters: Array; -} - /** * Request router managed splitting of requests to one or more relays, and which relay to send events to. */ @@ -35,7 +21,7 @@ export interface RequestRouter { * @param pickN Number of relays to pick * @returns */ - forRequest(filter: ReqFilter, pickN?: number): Array; + forRequest(filter: ReqFilter, pickN?: number): Array; /** * Split a request filter to one or more relays. @@ -43,34 +29,37 @@ export interface RequestRouter { * @param pickN Number of relays to pick * @returns */ - forFlatRequest(filter: Array, pickN?: number): Array; + forFlatRequest(filter: Array, pickN?: number): Array; + + /** + * Same as forRequest, but merges the results + * @param filters + */ + forAllRequest(filters: Array): Array; } export abstract class BaseRequestRouter implements RequestRouter { abstract forReply(ev: NostrEvent, pickN?: number): Promise>; - abstract forRequest(filter: ReqFilter, pickN?: number): Array; - abstract forFlatRequest(filter: FlatReqFilter[], pickN?: number): Array; + abstract forRequest(filter: ReqFilter, pickN?: number): Array; + abstract forFlatRequest(filter: FlatReqFilter[], pickN?: number): Array; forAllRequest(filters: Array) { const allSplit = filters .map(a => this.forRequest(a)) .reduce((acc, v) => { for (const vn of v) { - const existing = acc.get(vn.relay); - if (existing) { - existing.push(vn.filter); - } else { - acc.set(vn.relay, [vn.filter]); + for (const r of (vn.relays?.length ?? 0) > 0 ? unwrap(vn.relays) : [""]) { + const existing = acc.get(r); + if (existing) { + existing.push(vn); + } else { + acc.set(r, [vn]); + } } } return acc; }, new Map>()); - return [...allSplit.entries()].map(([k, v]) => { - return { - relay: k, - filters: v, - } as RelayTaggedFilters; - }); + return [...allSplit.values()].flat() } }