Performance and param URL tweaks

This commit is contained in:
fekt
2023-09-22 23:02:07 -04:00
parent a0369490db
commit 69c83c5adb
2 changed files with 11 additions and 8 deletions

View File

@@ -37,24 +37,24 @@ object ZcashSdk {
// Because blocks are buffered in memory upon download and storage into SQLite, there is an upper bound
// above which OutOfMemoryError is thrown. Experimentally, this value is below 50 blocks.
// Back of the envelope calculation says the maximum block size is ~100kb.
const val DOWNLOAD_BATCH_SIZE = 10
const val DOWNLOAD_BATCH_SIZE = 50
/**
* Default size of batches of blocks to scan via librustzcash. The smaller this number the more granular information
* can be provided about scan state. Unfortunately, it may also lead to a lot of overhead during scanning.
*/
val SCAN_BATCH_SIZE = 150
val SCAN_BATCH_SIZE = 500
/**
* Default amount of time, in milliseconds, to poll for new blocks. Typically, this should be about half the average
* block time.
*/
val POLL_INTERVAL = 20_000L
val POLL_INTERVAL = 18_000L
/**
* Estimate of the time between blocks.
*/
val BLOCK_INTERVAL_MILLIS = 75_000L
val BLOCK_INTERVAL_MILLIS = 36_000L
/**
* Default attempts at retrying.
@@ -87,11 +87,13 @@ object ZcashSdk {
val OUTPUT_PARAM_FILE_NAME = "sapling-output.params"
/**
* The Url that is used by default in zcashd.
* The Url that is used by default in hushd.
* We'll want to make this externally configurable, rather than baking it into the SDK but
* this will do for now, since we're using a cloudfront URL that already redirects.
* this will do for now
*/
val CLOUD_PARAM_DIR_URL = "https://z.cash/downloads/"
val CLOUD_PARAM_DIR_URL = listOf("https://git.hush.is/hush/hush3/raw/branch/master/",
"https://github.com/hushmirror/hush3/raw/dev/")
/**
* The default memo to use when shielding transparent funds.

View File

@@ -57,7 +57,8 @@ class SaplingParamTool {
ZcashSdk.SPEND_PARAM_FILE_NAME,
ZcashSdk.OUTPUT_PARAM_FILE_NAME
).forEach { paramFileName ->
val url = "${ZcashSdk.CLOUD_PARAM_DIR_URL}/$paramFileName"
val url = "${ZcashSdk.CLOUD_PARAM_DIR_URL.random()}/$paramFileName"
twig("Downloading Sapling params from ${url}...")
val request = Request.Builder().url(url).build()
val response = withContext(Dispatchers.IO) { client.newCall(request).execute() }
if (response.isSuccessful) {