1
0
forked from Kieran/snort

move InMemoryDB to system

This commit is contained in:
Martti Malmi 2024-01-05 12:30:28 +02:00
parent 1a9e571b0f
commit 3eb290a594
6 changed files with 24 additions and 13 deletions

View File

@ -15,7 +15,6 @@ import { addEventToFuzzySearch } from "@/Db/FuzzySearch";
import IndexedDBWorker from "@/Db/IndexedDB?worker";
import { LoginStore } from "@/Utils/Login";
import { hasWasm, WasmOptimizer } from "@/Utils/wasm";
import inMemoryDB from "@/Cache/InMemoryDB"; // move to system or pass alreadyHave fn to system?
export const indexedDB = Comlink.wrap(new IndexedDBWorker());
/**
@ -38,7 +37,6 @@ System.on("auth", async (c, r, cb) => {
});
System.on("event", (_, ev) => {
inMemoryDB.handleEvent(ev);
addEventToFuzzySearch(ev);
socialGraphInstance.handleEvent(ev);
if (CONFIG.useIndexedDBEvents && socialGraphInstance.getFollowDistance(ev.pubkey) <= 2) {
@ -47,7 +45,6 @@ System.on("event", (_, ev) => {
});
System.on("request", (filter: ReqFilter) => {
inMemoryDB.find(filter, e => System.HandleEvent(e));
if (CONFIG.useIndexedDBEvents) {
indexedDB.find(
filter,

View File

@ -21,6 +21,7 @@
"@peculiar/webcrypto": "^1.4.3",
"@types/debug": "^4.1.8",
"@types/jest": "^29.5.1",
"@types/lokijs": "^1.5.14",
"@types/node": "^20.5.9",
"@types/uuid": "^9.0.2",
"@types/ws": "^8.5.5",
@ -39,6 +40,7 @@
"debug": "^4.3.4",
"eventemitter3": "^5.0.1",
"isomorphic-ws": "^5.0.0",
"lokijs": "^1.5.12",
"uuid": "^9.0.0",
"ws": "^8.14.0"
}

View File

@ -1,4 +1,4 @@
import { ID, ReqFilter as Filter, STR, TaggedNostrEvent, UID } from "@snort/system";
import { ID, ReqFilter as Filter, STR, TaggedNostrEvent, UID } from ".";
import loki from "lokijs";
type PackedNostrEvent = {
@ -116,13 +116,6 @@ class InMemoryDB {
remove(eventId: string): void {
const id = ID(eventId);
this.eventsCollection.findAndRemove({ id });
if (this.idb) {
try {
this.idb.events.where({ id: eventId }).delete();
} catch (e) {
console.error(e);
}
}
}
removeOldest(): void {

View File

@ -10,7 +10,7 @@ import { NostrEvent, ReqCommand, ReqFilter, TaggedNostrEvent, u256 } from "./nos
import { RelayInfo } from "./relay-info";
import EventKind from "./event-kind";
import { getHex64 } from "./utils";
import inMemoryDB from "@snort/app/src/Cache/InMemoryDB";
import inMemoryDB from "./InMemoryDB";
/**
* Relay settings
@ -204,7 +204,7 @@ export class Connection extends EventEmitter<ConnectionEvents> {
// skip message processing if we've already seen it
const msgId = getHex64(e.data as string, "id");
if (inMemoryDB.has(msgId)) {
console.log('already have');
console.log("already have");
return;
}

View File

@ -26,6 +26,7 @@ import { RelayCache, RelayMetadataLoader } from "./outbox-model";
import { Optimizer, DefaultOptimizer } from "./query-optimizer";
import { trimFilters } from "./request-trim";
import { NostrConnectionPool } from "./nostr-connection-pool";
import inMemoryDB from "./InMemoryDB";
export interface NostrSystemEvents {
change: (state: SystemSnapshot) => void;
@ -167,6 +168,7 @@ export class NostrSystem extends EventEmitter<NostrSystemEvents> implements Syst
// internal handler for on-event
this.on("event", (sub, ev) => {
inMemoryDB.handleEvent(ev);
for (const [, v] of this.Queries) {
v.handleEvent(sub, ev);
}
@ -317,6 +319,7 @@ export class NostrSystem extends EventEmitter<NostrSystemEvents> implements Syst
qSend.filters = fNew;
fNew.forEach(f => {
inMemoryDB.find(f, e => this.emit("event", "*", e));
this.emit("request", f);
});

View File

@ -3076,6 +3076,7 @@ __metadata:
"@stablelib/xchacha20": ^1.0.1
"@types/debug": ^4.1.8
"@types/jest": ^29.5.1
"@types/lokijs": ^1.5.14
"@types/node": ^20.5.9
"@types/uuid": ^9.0.2
"@types/ws": ^8.5.5
@ -3084,6 +3085,7 @@ __metadata:
isomorphic-ws: ^5.0.0
jest: ^29.5.0
jest-environment-jsdom: ^29.5.0
lokijs: ^1.5.12
ts-jest: ^29.1.0
ts-node: ^10.9.1
typescript: ^5.2.2
@ -3591,6 +3593,13 @@ __metadata:
languageName: node
linkType: hard
"@types/lokijs@npm:^1.5.14":
version: 1.5.14
resolution: "@types/lokijs@npm:1.5.14"
checksum: e5601952d19f5d6ace6e2b5d06771de0b4319bcb211f30f094c954e445b335a42e6e2de73561b837868f0b25a18e17333f1e7ff84b5523c0ef324c4650a549d6
languageName: node
linkType: hard
"@types/magnet-uri@npm:*":
version: 5.1.5
resolution: "@types/magnet-uri@npm:5.1.5"
@ -8170,6 +8179,13 @@ __metadata:
languageName: node
linkType: hard
"lokijs@npm:^1.5.12":
version: 1.5.12
resolution: "lokijs@npm:1.5.12"
checksum: 5cd45facb890048e83977de1451a7b70e1f9e4cfe41c40d2212dfc160df7919b821072f95b10d692f6932c1080193e0715e8fe18dee332f04da4fda0f08984b6
languageName: node
linkType: hard
"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
version: 1.4.0
resolution: "loose-envify@npm:1.4.0"