Files
strfry/golpe.yaml
2023-01-09 15:33:52 -05:00

111 lines
2.8 KiB
YAML

appName: strfry
quadrable: true
flatBuffers: |
include "../fbs/nostr-index.fbs";
tables:
Event:
tableId: 1
primaryKey: quadId
fields:
- name: quadId
- name: receivedAt # microseconds
- name: flat
type: ubytes
nestedFlat: NostrIndex.Event
indices:
created_at:
integer: true
id:
comparator: StringUint64
pubkey:
comparator: StringUint64
kind:
comparator: Uint64Uint64
pubkeyKind:
comparator: StringUint64Uint64
tag:
comparator: StringUint64
multi: true
deletion: # eventId, pubkey
multi: true
indexPrelude: |
auto *flat = v.flat_nested();
created_at = flat->created_at();
uint64_t indexTime = *created_at;
id = makeKey_StringUint64(sv(flat->id()), indexTime);
pubkey = makeKey_StringUint64(sv(flat->pubkey()), indexTime);
kind = makeKey_Uint64Uint64(flat->kind(), indexTime);
pubkeyKind = makeKey_StringUint64Uint64(sv(flat->pubkey()), flat->kind(), indexTime);
for (const auto &tagPair : *(flat->tags())) {
auto tagName = (char)tagPair->key();
auto tagVal = sv(tagPair->val());
tag.push_back(makeKey_StringUint64(std::string(1, tagName) + std::string(tagVal), indexTime));
if (flat->kind() == 5 && tagName == 'e') deletion.push_back(std::string(tagVal) + std::string(sv(flat->pubkey())));
}
config:
- name: db
default: "./strfry-db/"
noReload: true
- name: relay__port
default: 7777
noReload: true
- name: relay__bind
default: "127.0.0.1"
noReload: true
- name: relay__info__name
default: "strfry default"
- name: relay__info__description
default: "This is a strfry instance."
- name: relay__info__pubkey
default: "unset"
- name: relay__info__contact
default: "unset"
- name: relay__numThreads__ingester
default: 3
noReload: true
- name: relay__numThreads__reqWorker
default: 3
noReload: true
- name: relay__numThreads__reqMonitor
default: 3
noReload: true
- name: relay__numThreads__yesstr
default: 1
noReload: true
- name: relay__maxWebsocketPayloadSize
default: 131072
noReload: true
- name: relay__queryTimesliceBudgetMicroseconds
default: 10000
- name: relay__maxFilterLimit
default: 500
- name: events__rejectEventsNewerThanSeconds
default: 900 # 15 mins
- name: events__rejectEventsOlderThanSeconds
default: 604800 # 1 week
- name: events__rejectEphemeralEventsOlderThanSeconds
default: 60
- name: events__ephemeralEventsLifetimeSeconds
default: 300
- name: events__maxEventSize
default: 65536
- name: events__maxNumTags
default: 250
- name: events__maxTagValSize
default: 128