Commit Graph

97 Commits

Author SHA1 Message Date
Vitor Pamplona 7b696f5f54 Adds created_at to tags to speed up tag-ordered queries 2025-12-30 16:23:11 -05:00
Vitor Pamplona c3d741ebd1 Implements AND queries for tags: https://github.com/nostr-protocol/nips/pull/1365 2025-12-30 12:29:04 -05:00
Vitor Pamplona 333285747b Migrates to using indexes instead tagNames to avoid non-ASCII chars reaching the DB 2025-12-30 12:06:22 -05:00
Vitor Pamplona 2a8e7cbe94 Fixes duplicated results 2025-12-30 12:03:09 -05:00
Vitor Pamplona 57a22384b2 Refactoring 2025-12-27 17:57:32 -05:00
Vitor Pamplona 390da16129 Creating a IndexingStrategy interface 2025-12-27 17:55:30 -05:00
Vitor Pamplona 55774b0292 sorting tags before inserting speeds up imports by ~20% 2025-12-27 13:13:46 -05:00
Vitor Pamplona 068ba3b717 Vacuum and Analyze are blocking, so moving to a coroutine. 2025-12-27 12:40:23 -05:00
Vitor Pamplona d435231f55 Setting cache doesn't seem to do anything :( 2025-12-27 12:38:22 -05:00
Vitor Pamplona f0b6fa622c adds vacuum and analyse utility functions 2025-12-27 12:11:58 -05:00
Vitor Pamplona f9582bb007 Increases cache size to up to 40MB 2025-12-27 12:11:31 -05:00
Vitor Pamplona 273d5feb94 - Adds support to delete GiftWraps by p-tag for Deletion and Vanish modules
- Adds Query plans to the test cases
- Reduces the amount of indexes that weren't used.
2025-12-26 15:43:51 -05:00
Vitor Pamplona 4455509e32 Converts pubkey to pubkey hash on vanish events. 2025-12-26 14:33:41 -05:00
Vitor Pamplona 5dcac034ac Uses event_header_row_id as primary key (with index) on event_vanish 2025-12-26 14:32:22 -05:00
Vitor Pamplona ef5ed755be Uses primary key to reuse rowId instead of building a separate index. 2025-12-26 14:31:18 -05:00
Vitor Pamplona 720e4d2c87 Forces the use of the index on Addressables and Replaceables 2025-12-26 14:29:10 -05:00
Vitor Pamplona 09eeebba94 Keeps the hasher cache on the seed module 2025-12-24 15:28:59 -05:00
Vitor Pamplona f1298c3133 Removes event id from the deletion module insert 2025-12-24 15:27:38 -05:00
Vitor Pamplona ff48af5090 Adds a pTagHash utility to the hasher 2025-12-24 15:25:27 -05:00
Vitor Pamplona 01ea413afd Faster SQLLite DB with probabilistic hashvalues 2025-12-22 15:18:59 -05:00
Vitor Pamplona e4f3a56851 Removes the Statement cache since statements are not thread safe 2025-12-20 12:25:16 -05:00
Vitor Pamplona 7e65f1afa7 Fixes the Imodule dependency 2025-12-19 17:45:31 -05:00
Vitor Pamplona fde5d57b16 Faster parseResult array builder 2025-12-18 12:08:05 -05:00
Vitor Pamplona 12beeea8ee Adds a module interface for the SQL Lite db with drop functions too 2025-12-18 12:01:17 -05:00
Vitor Pamplona 9069b11036 small refactoring 2025-12-16 18:03:26 -05:00
Vitor Pamplona eef3f42d3f Creating interfaces for multiple EventStores 2025-12-16 08:31:17 -05:00
Vitor Pamplona aa9ac205c1 deletes Db after tests 2025-12-15 22:04:20 -05:00
Vitor Pamplona 39eed5d85a reformatting 2025-12-11 17:09:03 -05:00
Vitor Pamplona ee972cff35 reverts db deletions to avoid conflicts with the open file 2025-12-09 18:02:26 -05:00
Vitor Pamplona d0efe26ce7 Offers support for external transactions
Offers support for indexing strategies for tags
2025-12-09 17:28:33 -05:00
Vitor Pamplona f4a0cd5af3 The number of params varies but a good limit seems to be 1000. This breaks the tag insert into many 1000 param inserts 2025-12-09 09:20:17 -05:00
Vitor Pamplona e44322adaa Speeds up db deletions 2025-12-09 09:05:37 -05:00
greenart7c3 7c4ad3abb7 Fix default permissions 2025-11-28 05:43:52 -03:00
Vitor Pamplona 8c3ab80e47 More correctly parses null and default values from NIP-55 using Jackson 2025-11-11 14:00:17 -05:00
Vitor Pamplona 948180157f pushes exception upward if triggered 2025-11-07 17:37:34 -05:00
Vitor Pamplona 6ccec0681a Marks address as stable 2025-11-07 17:23:53 -05:00
davotoula c3c75b46a7 optimise imports 2025-10-30 19:20:02 +01:00
greenart7c3 fb7610cafd Fix DecryptZapRequest CommandType 2025-10-29 14:38:54 -03:00
Vitor Pamplona bf664ea0c5 Avoids interning of large strings and objects where the duplication is not common 2025-10-28 12:18:19 -04:00
Vitor Pamplona 39f3aef7b5 Don't intern signatures, content and tags since they are not usually duplicated 2025-10-28 12:11:34 -04:00
Vitor Pamplona a6e4a8d4fc Performance improvement for the address serializer. 2025-10-06 18:05:03 -04:00
greenart7c3 6391ddbbaa Show a dialog to select a signer when using multiple signers 2025-09-24 09:09:51 -03:00
Vitor Pamplona 7a280a3cde - Migrates Quartz from Android to CommonMain
- Fully converts OpenTimestamp Java codebase to Kotlin, migrating the sync and async HTTP call interfaces to OkHttp and coroutines
- Redesigns parsing of relay commands, messages and filters for performance in Jackson.
- Starts the use of KotlinX Serialization when speed is not a requirement
- Migrates all Jackson field annotations to Kotlin Serialization
- Migrates Regex use in Quarts to Kotlin's Regex class
- Migrates Base64 from Android to Kotlin
- Migrates UUID from Android/Java to Kotlin
- Migrates LRUCache usage from Android/Java to Kotlin collections
- Migrates all String to bytearray conversions to Kotlin methods
- Migrates all System.arraycopy calls to kotlin native ones.
- Separates parsing code from the data classes Companion objects
- Exposes Rfc3986 normalizations to each platform.
- Exposes URI parsing classes to each platform.
- Exposes URL Encoders to each platform.
- Exposes BigDecimal to each platform.
- Exposes the Url Detector to each platform.
- Exposes MacInstances to each platform
- Exposes Diggest instances to each platform.
- Exposes a BitSet to each platform.
- Exposes GZip to each platform.
- Exposes Secp256k1 to each platform.
- Exposes SecureRandom to each platform.
- Exposes Time in seconds to each platform.
- Exposes the LargeCache to each platform.
- Exposes AES CBC and AES GCM encryption/decryption to each platform
- Migrate test assertions to Kotlin Tests
- Exposes Address class to each platform because of the Parceleable
- Creates our own ByteArrayOutputStream.
- Removes Lock features inside the Bloomfilters because we don't need data consistency/
- Migrates UserMetadata parser from Jackson to Kotlin serialization
- Removes the need for Static methods in each tag.
- Adds an event template serializer
- Adds KotlinX Datetime to migrate some of the date-based logs
- Adds support for LibSodium in the JVM platform
- Creates a shared test build for iOS targets
- Fixes several usages of Reflection when serializing classes
- Fixes a bug on loading RelayDB for the HintBloom filter test
- Increases the Bloom filter space to better use hints in the app.
- Removes support for iOS in x86
- Creates a Jackson mapper just for NIP-55, which stays in the Android build only.
- Keeps the event store in the android build as well.
- Removes @Syncronized tags in favor of Mutexes.
- Improved sendAndWaitForResponse NostrClient method to properly account for returns from each relay.
- Removes the need for GlobalScope and async calls in the downloadFirstEvent method.
- Restructures the parser and serialization of the relay messages and commands for performance with Jackson
- Removes the dependency on Jackson's error classes across the codebase.
- Moves the hint to quote tag extension methods to their own packages.
- Speeds up the generation of Bech32 addresses
- Migrates NIP-6 and Blossom uploads to use Kotlin Serialization
2025-09-22 19:44:51 -04:00
Vitor Pamplona faffe2a936 About 30-40% event hashing performance boost 2025-09-17 08:40:06 -04:00
Vitor Pamplona c375fa0ab8 Adds another catch to get object errors when parsing NIP-28 metadata 2025-09-17 08:40:06 -04:00
Vitor Pamplona 83e87c2cf4 Adds an event id hash check that doesn't create a separate bytearray to compare between the incoming hex from the relay and the recalculated byte array from SHA256. 2025-09-17 08:40:06 -04:00
Vitor Pamplona eaf8cb3384 Don't check for the max size in string anymore 2025-09-15 17:25:47 -04:00
Vitor Pamplona cd0b1b65fb Merge expanding and checking Hmac functions to avoid re-creating the Mac instance. 2025-09-15 17:25:36 -04:00
Vitor Pamplona e329b096ba Moves the message key to the HKDF function 2025-09-15 16:21:11 -04:00
Vitor Pamplona 239cac430e Adds a test for native vs libsodium chacha20 2025-09-15 16:15:07 -04:00