- Test was failling with:
generalError(message: "block not found in cache, should always be in cache in darkside mode")
- There was no wait so lightwalletd in darkside mode didn't have enough time to accept mocked state.
- Sample app refactored for the processor being an actor
- tests refactored as well
- dark side tests fixed
- utilities separated to new file
- synchronizer's start and stop are no longer in async context
- updating the UI for the scan fixed
- blocking API removed, only latestBlockHeight() stayed
- non-blocking closure based API removed
- unit tests updated to use async API
[#492] Get rid of blocking API (#551)
- forgotten commented code cleaned up
- some comments were still mentioning result (completion closure), removed
MultiThreadedEventLoopGroup has been replaced with NIOTSEventLoopGroup. It's recommended by authors of grpc-swift especially for iOS platform and it allows us to set the priority because NIOTSEventLoopGroup is GCD based while MultiThreadedEventLoopGroup is pthread based.
[#541] Initialise gRPC on a separate thread (#545)
- priority increased to .default
- sendToAddress and SaplingParameterDownloader refactored to async
- unit tests WIP
[486] sendToAddress async/await
- testing code cleanup
[#486] sendToAddress async/await
- reducing number of Tasks in Sample app
[#486] sendToAddress async/await
- I finally figure out how to make the dark side tests async, using new sendToAddress APIs and pass, POC done, 18 more tests to refactor
[#486] sendToAddress async/await
- async sendToAddress unit test refactored except NetworkUpgradeTests
[#486] sendToAddress async/await
- NetworkUpgradeTests refactored to async API
[#486] sendToAddress async/await
- cleanup
[#486] sendToAddress async/await (#536)
- PR comments resolved
Issue Reported on [0.16.x-beta]
When the synchronizer is stopped, the processor does not cancel
the download correctly. Then when attempting to resume sync, the
synchronizer is not on `.stopped` and can't be resumed
Fix:
This commit makes sure that the download streamer checks cancelation
before processing any block, or getting called back to report progress
Issue Reported:
When the synchronizer is stopped, the processor does not cancel
the download correctly. Then when attempting to resume sync, the
synchronizer is not on .stopped and can't be resumed
this doesn't appear to happen in master branch that uses
structured concurrency for operations.
Fix:
This commit makes sure that the download streamer checks cancelation
before processing any block, or getting called back to report progress
- getting rid of the Operation Queue
- the cleanup is needed
- the update of tests is needed
- tested and it successfully finishes the sync process
[476] CompactBlockProcessor to async/await
- old processNewBlocks() removed
[476] CompactBlockProcessor to async/await
- unused operations removed
[476] CompactBlockProcessor to async/await
- unit tests update
[476] CompactBlockProcessor to async/await
- unit tests refactored
[476] CompactBlockProcessor to async/await
- cleanup of deprecated method
[476] CompactBlockProcessor to async/await
- fail(error) was called even for canceled tasks but that must be excluded
[476] CompactBlockProcessor to async/await
- removal of all ZcashOperations from the code (unit test will follow)
[476] CompactBlockProcessor to async/await
- network tests in building and success order again
[476] CompactBlockProcessor to async/await
- offline tests in building and success order
[476] CompactBlockProcessor to async/await (519)
- cleanup of suspending the task
[476] CompactBlockProcessor to async/await (519)
- most comments resolved
[476] CompactBlockProcessor to async/await (519)
- thread safe state for both sync and async context
[476] CompactBlockProcessor to async/await (519)
- fixed build for a sample project
[476] CompactBlockProcessor to async/await (519)
- func testStartNotifiesSuscriptors() reverted
[476] CompactBlockProcessor to async/await (519)
- TODO added to track why we used NSLock instead of an Actor
- Task priority enhanced
[476] CompactBlockProcessor to async/await (519)
- cleanup in Tasks and priorities
- CompactBlockBatchScanningOperation operation's main reimplemented to be Task based
[472] CompactBlockBatchScanningOperation to async
cleanup
[472] CompactBlockBatchScanningOperation to async (505)
- CompactBlockBatchScanningOperation wrapped to Task
- await/async APIs provided
- async throws unit tests using new API implemented
[464] CompactBlockStorage To async/await (494)
- removed deprecated closure APIs
- upgraded use of the async APIs
- tests updated
- migration of the protocol's methods done
- split the code so there's blocking and non-blocking API separately
[463] Migrate LightwalletService to Async/Await
- draft
[463] Migrate LightwalletService to Async/Await
- failing tests under investigation
[463] Migrate LightwalletService to Async/Await
- code cleanup
- tests cleanup
- async throws unit tests added
[463] Migrate LightwalletService to Async/Await
- sample app updated to the latest API
[463] Migrate LightwalletService to Async/Await
- cleanup
[463] Migrate LightwalletService to Async/Await
- cleanup
[463] Migrate LightwalletService to Async/Await
- fixed non-building tests
[463] Migrate LightwalletService to Async/Await
- reverting back to lastHeight()
[463] Migrate LightwalletService to Async/Await
updated code to AsyncStream
[463] Migrate LightwalletService to Async/Await (493)
- tests fixed
- blockRange reimplemented to use AsyncStream
- grpc proto files regenerated to exclude Server
Closes#455
this reverts queue priority changes from commit `a5d0e447748257d2af5c9101391dd05a5ce929a2` since we detected it might prevent downloads to be scheduled in a
timely fashion
Co-authored-by: pacu <pacu@pacus-MacBook-Pro.local>
0.16.5-beta
- [#449] Use CompactBlock Streamer download instead of batch downloads (#451)
This increases the speed of downloads significantly while reducing the memory footprint.
- [#435] thread sanitizer issues (#448)
Issues related to Thread Sanitizer warnings
Closes#452
* [#449] Use CompactBlock Streamer download instead of batch downloade
This commit implements a small buffer for the stream download operation
so it does not store a block at a time and does it in batches instead.
Closes#449
* Fix tests
* PR Suggestions
* [#435] this commit attempts to fix thread being starved dues to inversion
of priorities where a .userInitiated thread ends up depending on a lower
priority one on GRPC.
* Add an Synchronizer State struct to report state at once
* Make CompactBlockProcessor's downloader available internally for SDKSynchronizer
remove duplicate handling of processor finished
* PR Suggestions