Strfry
Jump to navigation
Jump to search
Running
ssh nostr cd projects/nostr/strfry ./strfry relay
ssh -i path/to/key.pem -L 7777:127.0.0.1:7777 nostr -N
~/.ssh/ssh_config set up:
ssh -L 7777:127.0.0.1:7777 nostr -N
Ops
Deleting
$ ./strfry delete --filter='{"ids":["0647ec28094826947018c861676098d3d8ea71224fd019891ddb51679b48d96c"]}'
Troubleshooting
['NOTICE', 'ERROR: bad req: std::get: wrong index for variant']
Filters need to be arrays, not single values:
critique_filters = { "kinds": [1985], "#A": [community_a_tag], "#E": [post_event_id_hex] }
Links
- GitHub: https://github.com/hoytech/strfry
- Whitelist / Blacklist: https://github.com/hoytech/strfry/blob/master/docs/plugins.md
Install
Base Server
ssh admin@52.11.172.130 sudo apt update && sudo apt dist-upgrade -y sudo apt install -y emacs-nox
Install
sudo apt install -y git build-essential libsecp256k1-dev libzstd-dev sudo apt install -y libyaml-perl libtemplate-perl libregexp-grammars-perl sudo apt install -y libssl-dev zlib1g-dev liblmdb-dev libflatbuffers-dev mkdir -p projects/nostr cd projects/nostr git clone https://github.com/hoytech/strfry.git cd strfry git submodule update --init make setup-golpe make -j4
Testing
Fetch the test data:
mkdir /home/admin/projects/nostr/data/ curl https://assets.wellorder.net/nostr/nostr-wellorder-early-500k-v1.jsonl.bz2 -o /home/admin/projects/nostr/data/nostr-wellorder-early-500k-v1.jsonl.bz2
Make a backup copy of Strfry
cd /home/admin/projects/nostr/ cp -r strfry bak.2023-10-07.01.strfry
Load the data into the live instance of Strfry
cd strfry bzip2 -dc ../data/nostr-wellorder-early-500k-v1.jsonl.bz2 | ./strfry import
Appears successful in 245 seconds:
2023-10-08 03:28:56.082 ( 245.368s) [Writer ]INFO| Committed 5587. Processed 500000 lines. 495122 added, 4878 rejected, 0 dups 2023-10-08 03:28:56.082 ( 245.368s) [main thread ]INFO| Done. Processed 500000 lines. 495122 added, 4878 rejected, 0 dups 2023-10-08 03:28:56.086 ( 245.372s) [main thread ]INFO| atexit
Install JSON-XS for Perl and JQ for command line
sudo apt install -y libjson-xs-perl sudo apt install -y jq
Run the tests (these are run-forever tests, they'll run until killed)
perl test/filterFuzzTest.pl scan-limit # test query engine with limit perl test/filterFuzzTest.pl scan # test query engine without limit (I don't know what limit is) perl test/filterFuzzTest.pl monitor # test the monitor engine