William Casarin
f591ad2dff
ndb: add process_client_event helper
...
This is a quick helper for the new client event processing functionality
2023-09-24 17:06:35 -07:00
William Casarin
dacade299d
ndb: bump nostrdb to support client->relay note processing
2023-09-24 17:06:04 -07:00
William Casarin
6f67c159ff
ndb: switch to case-insensitive profile searches
2023-09-21 18:03:22 -04:00
William Casarin
7a85ae29ca
search: switch to nostrdb profile searching
...
Changelog-Changed: Switch to nostrdb for @'s and user search
2023-09-21 13:19:22 -04:00
William Casarin
fafe3b4b3e
ndb: add nostrdb migrations
2023-09-21 09:10:06 -04:00
William Casarin
69c7acea76
tests: add ndb support to tests
...
stops it from crashing
2023-09-21 09:10:06 -04:00
William Casarin
22d635d850
ndb: don't verify flatbuffers in release builds
2023-09-21 09:10:06 -04:00
William Casarin
fc9b9f2940
ndb: switch profile queries to use transactions
...
this should ensure no crashing occurs when querying profiles
2023-09-21 09:10:06 -04:00
William Casarin
622a436589
ndb: add NdbTxn transaction class
...
This will be used for transactions
2023-09-21 09:10:06 -04:00
William Casarin
9398877415
nostrdb/c: update to include transaction support
2023-09-21 09:10:06 -04:00
William Casarin
bb4fd75576
nostrdb: add profiles to nostrdb
...
This adds profiles to nostrdb
- Remove in-memory Profiles caches, nostrdb is as fast as an in-memory cache
- Remove ProfileDatabase and just use nostrdb directly
Changelog-Changed: Use nostrdb for profiles
2023-09-21 09:10:06 -04:00
Grimless
a64f898df7
Move the Block helper type to its own file, collapse the various standalone functions for parsing block data, and refactor consumers to initialize a Block with given data and access its members as needed.
...
Closes: https://github.com/damus-io/damus/pull/1528
Signed-off-by: William Casarin <jb55@jb55.com>
2023-09-03 18:02:32 -07:00
Jon Marrs
dd29e87146
test: pass keypair instead of privkey for test cases
...
Tests were not building due to recent changes in the Damus source code that replaced privkey with keypair. This patch extends those changes to the test cases, allowing the tests to build and pass.
Signed-off-by: Jon Marrs <jdmarrs@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2023-08-31 08:52:28 -07:00
William Casarin
c71b0ee916
blocks: pass keypair instead of privkey to avoid pubkey gen
...
Generating a pubkey is quite slow, so pass a keypair instead of privkey
2023-08-28 11:47:29 -07:00
William Casarin
8e92e28faf
test: optionally remove lmdb db
...
otherwise tests fail on CI
2023-08-28 10:34:37 -07:00
William Casarin
5657512370
ndb: restore escaped slash fix
2023-08-28 10:09:49 -07:00
William Casarin
882f6e2534
ndb: update nostrdb, fix alignment issues
2023-08-28 08:19:03 -07:00
William Casarin
2f60888fb1
ndb: remove patch from copy script, just use sed
2023-08-28 08:18:25 -07:00
William Casarin
ba6792640d
flatbuffers: update bindings, add verifier
2023-08-28 08:17:25 -07:00
William Casarin
984c7b6932
ndb: ensure profile flatbuffers are not copied
...
These are pointers into LMDB's virtual memory map of the database. No
copy required.
2023-08-28 08:00:45 -07:00
William Casarin
0bbc2c6348
ndb: save in documents instead of cache dir
...
This is more long term storage
2023-08-28 08:00:45 -07:00
William Casarin
caffa0398b
nostrdb: profile flatbuffers in nostrdb working!
2023-08-26 20:46:42 -07:00
William Casarin
35b67dc08d
nostrdb: initial Ndb class
2023-08-26 17:11:41 -07:00
William Casarin
1f5f1e28a4
nostrdb: pull latest, adding flatcc and lmdb
2023-08-25 19:05:34 -07:00
William Casarin
f30f93f65c
Revert "Move the Block helper type to its own file"
...
This fixes the broken tests
This reverts commit 286ae68fd6
.
2023-08-25 19:05:34 -07:00
Grimless
286ae68fd6
Move the Block helper type to its own file
...
Collapse the various standalone functions for parsing block data, and
refactor consumers to initialize a Block with given data and access its
members as needed.
Closes: https://github.com/damus-io/damus/pull/1496
Signed-off-by: William Casarin <jb55@jb55.com>
2023-08-21 17:11:43 -07:00
Daniel D‘Aquino
066b3cdde8
Fix image links appearing with escaped slashes
...
Changelog-Fixed: Fix images and links occasionally appearing with escaped slashes
Closes: https://github.com/damus-io/damus/issues/1468
Signed-off-by: Daniel D‘Aquino <daniel@daquino.me>
Signed-off-by: William Casarin <jb55@jb55.com>
Rewarded-sats: 50000
2023-08-18 08:41:21 -07:00
William Casarin
a73271e3d4
debug: remove note size debug
...
ThreadSanitizer was complaining about a data race
2023-08-06 09:07:33 -07:00
William Casarin
cebd1f48ca
ndb: switch to nostrdb notes
...
This is a refactor of the codebase to use a more memory-efficient
representation of notes. It should also be much faster at decoding since
we're using a custom C json parser now.
Changelog-Changed: Improved memory usage and performance when processing events
2023-08-03 13:20:36 -07:00
William Casarin
6e6c1eb7b6
ndb: make AsciiCharacter a CustomStringConvertible
2023-08-01 21:53:19 -07:00
William Casarin
07dfa3b1fb
ndb: update nostrdb
...
This include various fixes for parsing and key decoding
2023-08-01 21:53:19 -07:00
William Casarin
7040235605
refactor: add Pubkey, Privkey, NoteId string aliases
...
This is a non-behavioral change in preparation for the actual switchover
from Strings to Ids. The purpose of this kit is to reduce the size of
the switchover commit which is going to be very large.
2023-07-31 05:38:19 -07:00
William Casarin
593d0e2abe
ndb: sync up a few remaining NdbNote tag differences
2023-07-25 16:22:25 -07:00
William Casarin
2f8aa29e92
ndb: make NostrEvents immutable
...
Since we can't mutate NdbNotes, let's update the existing codebase to
generate and sign ids on NostrEvent constructions. This will allow us to
match NdbNote's constructor
2023-07-25 15:34:05 -07:00
William Casarin
2053033b25
ndb: make note equatble
...
We need this for the switchover
2023-07-24 13:09:27 -07:00
William Casarin
2d44f2744b
ndb: switch to computed property for tags
...
this will allows us to change less code on the switchover
2023-07-24 13:08:18 -07:00
William Casarin
04e408bfea
ndb: implement a few more event things
...
We're basically done. Time to try the switch-over
2023-07-24 12:41:12 -07:00
William Casarin
b5dd90b36a
notes: generalize event_is_reply a bit
...
so that it works with NdbNote as well
2023-07-24 12:39:55 -07:00
William Casarin
6fa9149939
ndb: avoid double constructor on References
2023-07-24 11:05:18 -07:00
William Casarin
1e9e4a7f3a
ndb: implement eventref building from ndb notes
2023-07-24 10:55:34 -07:00
William Casarin
c8e236b6d5
ndb/test: add more test coverage on char iter
2023-07-23 12:21:36 -07:00
William Casarin
e8d0f1db8d
test: fix some ndb test warnings
2023-07-23 12:12:42 -07:00
William Casarin
99b5dc94cb
ndb: copy over perf improvements
2023-07-23 12:11:08 -07:00
William Casarin
e34351ca37
ndb: fix iterators, pack id tags, more tests
2023-07-23 11:55:36 -07:00
William Casarin
5c1043b4e5
ndb: add cchar constructors to AsciiCharacter
...
This will be used for the cchar iterator
2023-07-23 11:54:07 -07:00
William Casarin
dd65209a20
Revert "ndb: remove TagIterators and just use sequences"
...
This reverts commit f0d07c3663
.
2023-07-23 10:56:12 -07:00
William Casarin
f0d07c3663
ndb: remove TagIterators and just use sequences
...
Still learning...
2023-07-22 21:12:53 -07:00
William Casarin
b3119fa41e
test: small test fix
2023-07-22 17:23:11 -07:00
William Casarin
7ec8da6c73
ndb: start implementing existing NostrEvent functionality
...
We eventually want to switch over to NdbNote instead of NostrEvent. To
facilitate this, the plan is to eventually make NostrEvent an alias of
NdbNote. For this to work, let's make sure the NostrEvent extensions are
implemented on NdbNote.
We will likely switch away from string properties as well, but for now
we will try to emulate as much as possible to make sure everything is
working first.
2023-07-22 17:19:47 -07:00
William Casarin
9e659c49b5
ndb/test: add a few more tests
2023-07-22 17:19:47 -07:00