Commit Graph

1428 Commits

Author SHA1 Message Date
Alva Swanson
c1c4caf87f
Gradle: Apply bisq.java-conventions to all projects 2023-02-05 22:02:13 +01:00
Alva Swanson
bf95af07bd
Remove unused Utilities.getScheduledThreadPoolExecutor(...) 2023-02-05 13:42:39 +01:00
Alva Swanson
1066e83a27
DaoStateStorageService: Fix shutdown data corruption bug
The DaoStateStorageService submits tasks to a daemon thread executor
service. The JVM continues to execute threads until all non-daemon
threads have terminated. So the JVM will kill the DaoStateStorageService
during write requests leading to data corruption.

This change uses a non-daemon thread executor service at waits during
shutdown until all data is written to disk.
2023-01-31 16:04:06 +02:00
Alva Swanson
6a8fb05156
Centralize all ExecutorService creations in Utilities 2023-01-27 16:15:24 +02:00
Alejandro García
fda3c45008
Merge pull request #6501 from HenrikJannsen/always_include_high_prio_payload_in_get_data_response
Always include high prio payload in get data response
2023-01-12 16:33:08 +00:00
Alejandro García
2705244e64
Merge branch 'master' into release/v1.9.9 2023-01-12 15:01:22 +00:00
Alejandro García
c55ecfa2d4
Bump version number for v1.9.9 2023-01-07 15:18:15 +02:00
HenrikJannsen
23e45a2843
Add GetDataResponsePriority enum
Add default getGetDataResponsePriority impl. to NetworkPayload

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-04 18:23:26 -05:00
HenrikJannsen
64db59ba53
Catch RejectedExecutionException at UncaughtExceptionHandler and log error instead calling the uncaughtExceptionHandler
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-01-04 14:05:19 +02:00
HenrikJannsen
abbee20284
Remove CompletableFutureUtil
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-27 17:54:10 -05:00
HenrikJannsen
c3acd5fb4a
Handle OutOfMemoryError to cause a shutdown at seed node 2022-12-27 17:54:01 -05:00
HenrikJannsen
e0f4aa281a
Catch RejectedExecutionException at UncaughtExceptionHandler and log error instead calling the uncaughtExceptionHandler
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-27 17:11:38 -05:00
Christoph Atteneder
cdb9fe44c1
Bump version number for v1.9.8 2022-12-22 08:44:13 +01:00
HenrikJannsen
30afccb2d6
Use ThreadPoolExecutor with custom set queueCapacity instead of CachedThreadPool
The previously used newCachedThreadPool carries higher risk for execution exceptions if exceeded.

Originally we had only one executor with a corePoolSize of 15 and a maximumPoolSize of 30 and queueCapacity was set to maximumPoolSize.
This was risky when the 15 corePool threads have been busy and new messages or connection creation threads are
queued up with potentially significant delay until getting served leading to timeouts.
Now we use (if maxConnections is 12) corePoolSize of 24, maximumPoolSize 36 and queueCapacity 10. This gives
considerable headroom. We also have split up the executors in 2 distinct ones.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-19 16:50:55 +01:00
Christoph Atteneder
2b77f777a3
Update data stores for v1.9.7 2022-12-14 11:13:23 +01:00
Christoph Atteneder
68ea90a1fb
Bump version number for v1.9.7 2022-12-14 10:36:20 +01:00
Christoph Atteneder
5dea677644
Merge pull request #6459 from HenrikJannsen/handle_exception_at_send
Handle exception at send
2022-12-14 10:20:07 +01:00
Christoph Atteneder
71d6e126dd
Merge pull request #6423 from HenrikJannsen/add-burningman-accounting
Add burningman accounting
2022-12-14 10:17:38 +01:00
HenrikJannsen
776714fbd4
Remove setting of RejectedExecutionHandler
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-13 20:36:36 -05:00
HenrikJannsen
8c65da9c85
Add thread index format
Add name param to newCachedThreadPool

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-13 20:35:49 -05:00
HenrikJannsen
071a352443
Remove rejectedExecutionHandler at newCachedThreadPool.
It is more convenient to handle the RejectedExecutionException in the calling code to get more context for error logging.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-13 17:33:31 -05:00
HenrikJannsen
6addd27a33
Add params to newCachedThreadPool method.
Use executor at httpClient builder.
Use httpClient.sendAsync.
Add keep-alive header.
Add RejectedExecutionHandler.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-11 17:06:01 -05:00
HenrikJannsen
46b2cf914b
Remove DevEnv.isDevTesting
Add check for number of confirmations in devMode to show support button after 5 blocks

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-11 11:15:19 -05:00
HenrikJannsen
2615309931
Add Config options 2022-12-11 11:15:16 -05:00
HenrikJannsen
ff55830405
Add DateUtil and Hex.decodeLast4Bytes
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-11 11:15:16 -05:00
HenrikJannsen
a6a018883d
Add isDevTesting method for adjusting behaviour for dev testing purposes
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-11 11:15:12 -05:00
HenrikJannsen
3308e35e8c
Add newCachedThreadPool to Utilities
Use newCachedThreadPool instead of getThreadPoolExecutor

Utilities.getThreadPoolExecutor use a BlockingQueue which prevents the intended
behaviour to increase the pool size to the max value.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-08 09:56:11 -05:00
HenrikJannsen
3a4ed1fc01
Add seedNodeReportingServerUrl option
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-07 11:51:49 -05:00
HenrikJannsen
f4536b6a56
Add CompletableFutureUtil
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-07 11:47:51 -05:00
HenrikJannsen
96f7db9c80
Print log path
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-07 11:47:38 -05:00
HenrikJannsen
a925017e4b
Rename readCommitHash to findCommitHash, make it static and return optional.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-12-07 11:03:08 -05:00
Alejandro García
a6293a64cb
Merge pull request #6396 from jmacxx/show_commit_hash
Store the build's commit hash in Jarfile manifest
2022-11-25 17:36:34 +02:00
Bisq GitHub Admin
60522218a7
Merge pull request #6412 from bisq-network/release/v1.9.6
Merge release branch
2022-11-15 21:03:40 +01:00
HenrikJannsen
b5df4afd40
Remove DevEnv.isDaoActivated method as not used anymore
Remove daoActivatedToggleButton from PreferencesView and NewsView

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-11-03 11:16:10 -05:00
HenrikJannsen
008cfaac57
Remove daoActivated options
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2022-11-03 10:46:26 -05:00
jmacxx
797bfe5cd5
Store the build's commit hash in Jarfile manifest. 2022-10-29 22:12:31 -05:00
Christoph Atteneder
80246e5d66
Update data stores for v1.9.6 2022-10-20 12:19:30 +02:00
Christoph Atteneder
3580b648c8
Bump version number for v1.9.6 2022-10-13 09:54:32 +02:00
Christoph Atteneder
7cddb74168
Update data stores for v1.9.5 2022-08-22 11:34:59 +02:00
Christoph Atteneder
15aaa77b91
Bump version number for v1.9.5 2022-08-21 21:32:26 +02:00
Christoph Atteneder
2561de9951
Merge pull request #6285 from jmacxx/tor_log_level
Set Tor logging to DEBUG level at startup
2022-07-12 09:53:10 +02:00
jmacxx
9893f52e57
Set Tor logging to DEBUG level at startup. 2022-07-08 12:26:58 -05:00
Christoph Atteneder
efe306aae6
Bump version number for v1.9.4 2022-07-04 09:52:27 +02:00
Christoph Atteneder
9bd1fd1423
Update data stores for v1.9.3 2022-06-27 17:00:56 +02:00
Christoph Atteneder
791ad62a51
Bump version number for v1.9.3 2022-06-23 09:39:04 +02:00
Christoph Atteneder
56d8842092
Merge branch 'master' of github.com:bisq-network/bisq into release/v1.9.2
Conflicts:
	build.gradle
	desktop/package/linux/Dockerfile
	desktop/package/macosx/finalize.sh
	desktop/package/macosx/insert_snapshot_version.sh
	relay/src/main/resources/version.txt
2022-06-23 09:03:33 +02:00
Christoph Atteneder
043f1e4c70
Bump version number for v1.9.2 2022-06-21 20:39:23 +02:00
chimp1984
61b91e0511
Add params for url:port 2022-06-14 12:53:06 +02:00
Christoph Atteneder
0e4d25f007
Bump version number for v1.9.1 2022-05-02 09:50:46 +02:00
Christoph Atteneder
cbc1a6f43b
Update data stores for v1.9.0 2022-04-28 13:11:05 +02:00
Christoph Atteneder
dd6c8d1c30
Bump version number for v1.9.0 2022-04-22 11:36:43 +02:00
jmacxx
c6209e0142
Use Locale.ENGLISH when accessing directories and JAR resource paths. 2022-04-12 18:25:06 -05:00
Christoph Atteneder
8136f0a6ca
Bump version number for v1.8.4 2022-03-07 16:42:10 +01:00
Christoph Atteneder
05f4f68356
Update data stores for v1.8.3 2022-02-24 20:48:17 +01:00
Christoph Atteneder
602101c117
Bump version number for v1.8.3 2022-02-17 10:49:55 +01:00
sqrrm
f315bd299e
Merge pull request #5993 from bisq-network/release/v1.8.2
Release/v1.8.2
2022-01-24 16:26:35 +01:00
Christoph Atteneder
c4fa58db78
Bump version number for v1.8.2 2022-01-24 09:40:46 +01:00
Christoph Atteneder
06ab4dfa2a
Update data stores for v1.8.1 2022-01-18 11:38:30 +01:00
jmacxx
684fd39c75
Force persistence write when editing Tor Bridge settings.
This is necessary because Tor settings are edited before the app has
completed startup and normally persistence is prohibited.
2022-01-16 11:52:44 -06:00
Christoph Atteneder
9d39f16d35
Bump version number for v1.8.1 2022-01-12 10:41:29 +01:00
Christoph Atteneder
a1d0e570d1
Apply minor improvements and clean-ups 2022-01-11 12:36:44 +01:00
jmacxx
9334cffc89
Feature enabling log file upload to mediators 2022-01-06 13:22:44 -06:00
Steven Barclay
34409638f7
Avoid enumerating every jar entry in FileUtil::listResourceDirectory
Use 'java.nio.file.FileSystem' in place of 'java.util.jar.JarFile' to
list all the resources under a given classpath (on Windows & Linux), as
that is a bit neater and potentially more efficient than scanning the
entire ZIP directory structure.
2021-12-09 09:52:30 +01:00
Steven Barclay
e07c7b5d4b
Fix BSQ blocks resync from resources on Windows & Linux
Prevent a "URI is not hierarchical" IllegalArgumentException from the
expression, 'new File(dirUrl.toURI())', which occurs on Linux & Windows
when listing the resource directory of BSQ blocks. Adapt a solution from
StackOverflow which uses two separate code paths depending on the
environment, into the new method 'FileUtil::listResourceDirectory'.

The issue is caused by the resource URL taking one of the two forms:

  file:/Users/[USER]/Java/bisq/bisq/p2p/out/production/resources/BsqBlocks_BTC_MAINNET
  jar:file:...p2p.jar!/BsqBlocks_BTC_MAINNET

depending on whether the system is OSX or not.
2021-12-09 09:52:30 +01:00
chimp1984
81d112bdf3
Add null checks
Return early at connection if stopped
Cleanup logs
2021-12-08 19:39:37 +01:00
Steven Barclay
d5839bc6b2
Add separate ProofOfWork.solution proto field for Equihash
Avoid repurposing the 'ProofOfWork.payload' field for Equihash puzzle
solutions, as that may be of later use in interactive PoW schemes such
as P2P network DoS protection (where the challenge may be a random nonce
instead of derived from the offer ID). Instead, make the payload the
UTF-8 bytes of the offer ID, just as with Hashcash.

Also, make the puzzle seed the SHA-256 hash of the payload concatenated
with the challenge, instead of just the 256-bit challenge on its own, so
that the PoW is tied to a particular payload and cannot be reused for
other payloads in the case of future randomly chosen challenges.
2021-12-07 09:35:46 +01:00
Steven Barclay
ceb9b9acbd
Code cleanup: proto fields, duplicated expr & null char separator
1. Reorder the PoW fields in the 'Filter' proto by field index, instead
 of contextually.
2. Deduplicate expression for 'pow' & replace if-block with boolean op
 to simplify 'FilterManager::isProofOfWorkValid'.
3. Avoid slightly confusing use of null char as a separator to prevent
 hashing collisions in 'EquihashProofOfWorkService::getChallenge'. Use
 comma separator and escape the 'itemId' & 'ownerId' arguments instead.

(based on PR #5858 review comments)
2021-12-07 09:35:45 +01:00
Steven Barclay
c9c2be6dcd
Fix bug in Equihash.IntListMultimap & adjust constants
Fix a trivial bug in the iterator returned by 'IntListMultimap::get',
caused by mistaken use of the iterator index in place of the key when
doing lookups into the overspill map. This was causing puzzle solutions
to be invalid about 3% of the time, as well as substantially reducing
the average number of solutions found per nonce.

As the fix increases the mean solution count per nonce to the correct
value of 2.0 predicted by the paper (regardless of puzzle params k & n),
inline the affected constants to simplify 'Equihash::adjustDifficulty'.
2021-12-07 09:35:45 +01:00
Steven Barclay
92209c3ed7
Inline predicates to simplify HashCashService & FilterManager
Remove all the 'challengeValidation', 'difficultyValidation' and
'testDifficulty' BiPredicate method params from 'HashCashService' &
'ProofOfWorkService', to simplify the API. These were originally
included to aid testing, but turned out to be unnecessary.

Patches committed on behalf of @chimp1984.
2021-12-07 09:35:45 +01:00
Steven Barclay
772cd74ab2
Store difficulty as floating point in Filter & PoW
Change the type of the 'difficulty' field in the Filter & ProofOfWork
proto objects from int32/bytes to double and make it use a linear scale,
in place of the original logarithmic scale which counts the (effective)
number of required zeros.

This allows fine-grained difficulty control for Equihash, though for
Hashcash it simply rounds up to the nearest power of 2 internally.

NOTE: This is a breaking change to PoW & filter serialisation (unlike
the earlier PR commits), as the proto field version nums aren't updated.
2021-12-07 09:35:44 +01:00
Steven Barclay
266a7ccea4
Add+enable service to mint/verify Equihash proofs of work
Add an abstract base class, 'ProofOfWorkService', for the existing PoW
implementation 'HashCashService' and a new 'EquihashProofOfWorkService'
PoW implementation based on Equihash-90-5 (which has 72 byte solutions &
5-10 MB peak memory usage). Since the current 'ProofOfWork' protobuf
object only provides a 64-bit counter field to hold the puzzle solution
(as that is all Hashcash requires), repurpose the 'payload' field to
hold the Equihash puzzle solution bytes, with the 'challenge' field
equal to the puzzle seed: the SHA256 hash of the offerId & makerAddress.

Use a difficulty scale factor of 3e-5 (derived from benchmarking) to try
to make the average Hashcash & Equihash puzzle solution times roughly
equal for any given log-difficulty/numLeadingZeros integer chosen in the
filter.

NOTE: An empty enabled-version-list in the filter defaults to Hashcash
(= version 0) only. The new Equihash-90-5 PoW scheme is version 1.
2021-12-07 09:35:44 +01:00
Steven Barclay
eb435a9513
Add difficulty adjustment & benchmarking to Equihash(Test)
Provide a utility method, 'Equihash::adjustDifficulty', to linearise and
normalise the expected time taken to solve a puzzle, as a function of
the provided difficulty, by taking into account the fact that there
could be 0, 1, 2 or more puzzle solutions for any given nonce. (Wagner's
algorithm is supposed to give 2 solutions on average, but the observed
number is fewer, possibly due to duplicate removal.) For tractability,
assume that the solution count has a Poisson distribution, which seems
to have good agreement with the tests.

Also add some (disabled) benchmarks to EquihashTest. These reveal an
Equihash-90-5 solution time of ~146ms per puzzle per unit difficulty on
a Core i3 laptop, with a verification time of ~50 microseconds.
2021-12-07 09:35:43 +01:00
Steven Barclay
c3e5dfd19e
Add PoW version(-list) fields to ProofOfWork & Filter
Add a numeric version field to the 'ProofOfWork' protobuf object, along
with a list of allowed version numbers, 'enabled_pow_versions', to the
filter. The versions are taken to be in order of preference from most to
least preferred when creating a PoW, with an empty list signifying use
of the default algorithm only (that is, version 0: Hashcash).

An explicit list is used instead of an upper & lower version bound, in
case a new PoW algorithm (or changed algorithm params) turns out to
provide worse resistance than an earlier version.

(The fields are unused for now, to be enabled in a later commit.)
2021-12-07 09:35:43 +01:00
Steven Barclay
998a0e0aaf
Further Equihash optimisation: partial parallelisation
Run the initial XorTable fillup in 'Equihash::computeAllHashes' in
parallel, using a parallel stream, to get an easy speed up. (The solver
spends about half its time computing BLAKE2b hashes before iteratively
building tables of partial collisions using 'Equihash::findCollisions'.)

As part of this, replace the use of 'java.nio.ByteBuffer' array wrapping
in 'Utilities::(bytesToIntsBE|intsToBytesBE)' with manual for-loops, as
profiling reveals an unexpected bottleneck in the former when used in a
multithreaded setting. (Lock contention somewhere in unsafe code?)
2021-12-07 09:35:43 +01:00
Steven Barclay
0a603167f1
Further Equihash optimisation: avoid lambda+stream in tight loop
Manually iterate over colliding table rows using a while- loop and a
custom 'PrimitiveIterator.OfInt' implementation, instead of a foreach
lambda called on an IntStream, in 'Equihash::findCollisions'. Profiling
shows that this results in a slight speedup.
2021-12-07 09:35:42 +01:00
Steven Barclay
3130d9329c
Add Equihash.IntListMultimap (private) class for speedup
Provide a (vastly cut down) drop-in replacement for the Guava multimap
instance 'indexMultimap', of type 'ListMultimap<Integer, Integer>', used
to map table row indices to block values, to detect collisions at a
given block position (that is, in a given table column).

The replacement stores (multi-)mappings from ints to ints in a flat int-
array, only spilling over to a ListMultimap if there are more than 4
values added for a given key. This vastly reduces the amount of boxing
and memory usage when running 'Equihash::findCollisions' to build up the
next table as part of Wagner's algorithm.
2021-12-07 09:35:42 +01:00
Steven Barclay
95637e0fa0
Add Equihash implementation for use in ASIC-resistant PoW
Implement the Equihash (https://eprint.iacr.org/2015/946.pdf) algorithm
for solving/verifying memory-hard client-puzzles/proof-of-work problems
for ASIC-resistant DoS attack protection. The scheme is asymmetric, so
that even though solving a puzzle is slow and memory-intensive, needing
100's of kB to MB's of memory, the solution verification is instant.

Instead of a single 64-bit counter/nonce, as in the case of Hashcash,
Equihash solutions are larger objects ranging from 10's of bytes to a
few kB, depending on the puzzle parameters used. These need to be
stored in entirety, in the proof-of-work field of each offer payload.

Include logic for fine-grained difficulty control in Equihash with a
double-precision floating point number. This is based on lexicographic
comparison with a target hash, like in Bitcoin, instead of just
counting the number of leading zeros of a hash.

The code is unused at present. Also add some simple unit tests.
2021-12-07 09:35:42 +01:00
Steven Barclay
484afbc522
Code cleanup: replace (Bi)Function<..,Boolean> with (Bi)Predicate<..>
Replace 'BiFunction<T, U, Boolean>' with the primitive specialisation
'BiPredicate<T, U>' in HashCashService & FilterManager.

As part of this, replace similar predicate constructs found elsewhere.
NOTE: This touches the DAO packages (trivially @ VoteResultService).
2021-12-07 09:35:41 +01:00
Steven Barclay
b3f7cb5c76
Code cleanup: remove unused PoW class & test
Remove (possible draft) 'ProofOfWorkService(Test)', which is a near
duplicate of the class 'HashCashService' but is currently unused.
2021-12-07 09:35:41 +01:00
Christoph Atteneder
dd6af18350
Update data stores for v1.8.0 2021-11-24 11:47:53 +01:00
Christoph Atteneder
aacc1105e3
Bump version number for v1.8.0 2021-11-19 18:35:56 +01:00
Christoph Atteneder
284eaf2c11
Merge pull request #5817 from chimp1984/fix-incorrect-app-initialisation
Fix incorrect app initialisation
2021-11-10 19:22:03 +01:00
chimp1984
ae38a54f11
Add util for logger to log by threadname
Helpful for debugging
2021-11-10 12:34:29 +01:00
chimp1984
5c2199ff49
Add freeMemory to log
Cleanup
2021-11-10 12:32:18 +01:00
chimp1984
faa8bd2ab2
Extract code in CommonSetup which uses a timer
to startPeriodicTasks.
Call that from BisqExecutable.onApplicationLaunched

We have created a non-UI timer before for the
printSystemLoadPeriodically as that was called
before the configUserThread was called (where we
define the UI timer for desktop)
2021-11-10 12:26:54 +01:00
chimp1984
67741f0d0e
Add DEFAULT_LOG_LEVEL field 2021-11-09 20:00:34 +01:00
chimp1984
cf9e49134a
Add shutDown method to ClockWatcher and shut it down at shutdown 2021-11-09 20:00:34 +01:00
chimp1984
c209da7c66
Fix package statement 2021-11-09 19:32:44 +01:00
chimp1984
603e9fde17
Add CompletableFutureUtils
Convenience util for CompletableFuture.allOf method
2021-11-09 19:20:34 +01:00
chimp1984
62b3e51b22
Cleanups, change log levels 2021-11-09 13:01:19 +01:00
chimp1984
7c32587453
Persist bsq blocks as buckets of 1000 blocks
Improve logging

Add BsqBlockStore to protobuf

Remove DaoStateMonitoringService field

Do not persist the blocks in daoState anymore.

This improves persistence performance and reduces memory
requirements for snapshots.
2021-11-09 13:01:19 +01:00
chimp1984
7b68686b28
Improve GcUtil
Increase duration for autoReleaseMemory from 60 to 120 sec.
Improve logging.
Add print stack trace when in dev mode to show caller for debugging/tuning.
Remove inefficient GC calls (based on test runs when no reduction occurred at those calls).
2021-11-04 12:48:08 +01:00
chimp1984
bcf54d4eb7
Add log 2021-11-02 16:18:50 +01:00
chimp1984
74789b1cc5
Move Utilities.objectToJson to JsonUtil.objectToJson
Move inner class AnnotationExclusionStrategy to JsonUtil
Next commit includes changes why that move to core is needed.
2021-11-02 16:18:50 +01:00
chimp1984
f7fcaa915e
Add BSQ swap code 2021-11-02 16:18:50 +01:00
chimp1984
82c1be1d97
Change log level 2021-10-20 22:51:44 +02:00
Christoph Atteneder
8fbccb7547
Bump version number for v1.7.5 2021-10-19 11:32:09 +02:00
sqrrm
5e84713520
Merge pull request #5730 from bisq-network/release/v1.7.4
Release/v1.7.4
2021-09-28 15:05:42 +02:00
chimp1984
3b97f96515
Disable GC calls if fullDaoNode is set (like in case of seed nodes)
Seed nodes have 4 GB allocated so the attempt to reduce memory
footprint is not needed for those cases. We use the fullDaoNode
prog arg as its expected that any full node will have allocated
sufficient memory and thus the intended reduction of memory by
calling the GC is not required and counter productive.
2021-09-27 13:18:44 +02:00
Christoph Atteneder
29ede5f3c4
Update data stores for v1.7.4 2021-09-23 10:01:04 +02:00