Commit Graph

12 Commits

Author SHA1 Message Date
Carter Jernigan 5f40d7a14e [#344] Minimize threads; reduce risk of SQLite issues
While there are a lot of changes, the most significant are:
 - Update the main entrypoint of the SDK to use a suspending function and eliminate lazy initialization.  This also resolves #310
 - Changing Dao methods to `suspend`, allowing Room to implicitly manage the threading model under the hood
 - Explicitly set the executor thread for the `CompactBlockDb` and `DerivedDataDb`, which is the same thread used when calling into the Rust native library.  Room will then use this thread for `suspend` fun calls into it
 - With the above set, remove unnecessary hops to Dispatchers.IO which is a thread pool
 - Eliminate lazy initialization in `PagedTransactionRepository` to make it easier to reason about the threading model and resolve #355 where the database was being touched from the UI thread

Note that `PendingTransactionsDb` is not opted into this single-threaded approach, because that database is not shared with the Rust code
2022-01-19 15:27:30 -05:00
Carter Jernigan 108fe249d9 Update gitignore 2021-11-18 06:46:58 -05:00
Kevin Gorham 8885a3e306
Update Cargo and SDK version 2021-04-22 18:56:52 -04:00
Kevin Gorham fca75169c4
Update and improve build files. 2020-09-25 09:56:45 -04:00
Kevin Gorham 2132bc14fd Fix bugs 2019-03-27 01:37:46 -04:00
Kevin Gorham 4d226a8c5e Create CompactBlockProcessor and refine responsibilities of collaborators
The synchronizer now primarily collaborates with a downloader, processor and repository; each with a more focused set of responsibilities.
The downloader streams blocks into a channel, the processor saves blocks from that channel and scans for transactions, the repository
exposes transaction change events.
2019-03-27 01:37:46 -04:00
Jack Grigg 3188cf8942
Remove now-unused ValueReceived protobuf 2019-01-31 16:09:37 +00:00
Kevin Gorham 56154ee506
Update build-ndk-standalone scripts.
Previous version did a bad job of recognizing an incorrect config file.
This makes it a bit better. It also removes the need for a config in the
parent directory.

Co-authored-by: Jack Grigg <jack@z.cash>
2018-12-01 01:47:55 +00:00
Jack Grigg 7bc3f2eede
Generate Rust protobuf representing received value 2018-12-01 01:46:35 +00:00
Jack Grigg 05e6ab8133
Add target/ to ignores (for e.g. RLS data) 2018-11-21 13:51:16 +00:00
Kevin Gorham 4fe155ac20 completely ignore intellij files for now 2018-11-21 02:03:35 -05:00
Kevin Gorham 32af4b9559 initial commit of sample project code
The next step is to clean this up and integrate it with the latest version of the android app
2018-11-20 12:59:08 -05:00