* Make leveldb cache configurable
* Fix leveldb tests
* Add a preallocate option to all caches and disable in tests
Co-authored-by: stasatdaglabs <39559713+stasatdaglabs@users.noreply.github.com>
* Move testGHOSTDagSorter to testutils
* Allow overriding managers in consensus, starting with ghostdag
* Add test prefix to SetDataDir and SetGHOSTDAGManager
Co-authored-by: stasatdaglabs <39559713+stasatdaglabs@users.noreply.github.com>
* Allow GetMissingBlockBodyHashes return an empty list if the missing blocks were requested before IBD start
* Add link to issue in comment about error to be fixed
* Limit mempool size to million transactions and remove the least profitable transactions
* Simplify insert
* Fix typo
* Improve findTxIndexInOrderedTransactionsByFeeRate readability
* Refactor miner and mine when waiting for block to validate
* Fix -n to work after the refactor.
Change foundBlockChan capacity.
Use lock instead of atomic in the template manager.
* Fix self assignment
* Fix lock
* Fix Dockerfile
* Add comment
* Add dummy go files for test only package, to mitigate golang/go#27333
* Stop ignoring errors when producing the coverage
* Add comments explaining the dummy go files
* Make the coverage output non-json
* Use hard-coded sample config instead of assumed path
* Fix bad path to sample-kaspad.conf in TestCreateDefaultConfigFile
Co-authored-by: Elichai Turkel <elichai.turkel@gmail.com>
* Reuse the ticker in ConnectionManager.waitTillNextIteration
* Fix a data race in ConnectionManager by locking the mutex
* Add a mutex to fakeRelayInvsContext in block relay flow test
Co-authored-by: Ori Newman <orinewman1@gmail.com>
* Prevent infinite tickers leaks in kaspaminer
* Reset ticker in ConnectionManager instead of allocating a new one
Co-authored-by: Ori Newman <orinewman1@gmail.com>
* In kaspaminer, don't crash on submitBlock timeout.
* Make timeout messages have a log level of Warn.
* Wait for a second after receiving a reject for IBD.
Co-authored-by: Elichai Turkel <elichai.turkel@gmail.com>
* Mine JSON
* [Reindex tests] add test_params and validate_mining flag to test_consensus
* Rename file and extend tests
* Ignore local test datasets
* Use spaces over tabs
* Reindex algorithm - full algorithm, initial commit, some tests fail
* Reindex algorithm - a few critical fixes
* Reindex algorithm - move reindex struct and all related operations to new file
* Reindex algorithm - added a validateIntervals method and modified tests to use it (instead of exact comparisons)
* Reindex algorithm - modified reindexIntervals to receive the new child as argument and fixed an important related bug
* Reindex attack tests - move logic to helper function and add stretch test
* Reindex algorithm - variable names and some comments
* Reindex algorithm - minor changes
* Reindex algorithm - minor changes 2
* Reindex algorithm - extended stretch test
* Reindex algorithm - small fix to validate function
* Reindex tests - move tests and add DAG files
* go format fixes
* TestParams doc comment
* Reindex tests - exact comparisons are not needed
* Update to version 0.8.6
* Remove TestParams and use AddUTXOInvalidHeader instead
* Use gzipeed test files
* This unintended change somehow slipped in through branch merges
* Rename test
* Move interval increase/decrease methods to reachability interval file
* Addressing a bunch of minor review comments
* Addressed a few more minor review comments
* Make code of offsetSiblingsBefore and offsetSiblingsAfter symmetric
* Optimize reindex logic in cases where reorg occurs + reorg test
* Do not change reindex root too fast (on reorg)
* Some comments
* A few more comments
* Addressing review comments
* Remove TestNoAttackAlternateReorg and assert chain attack
* Minor
Co-authored-by: Elichai Turkel <elichai.turkel@gmail.com>
Co-authored-by: Mike Zak <feanorr@gmail.com>
Co-authored-by: Ori Newman <orinewman1@gmail.com>
* Check for MsgUnexpectedPruningPoint on receivePruningPointBlock as well
* Add IBD test cases
* Revert "Check for MsgUnexpectedPruningPoint on receivePruningPointBlock as well"
This reverts commit 6a6d1ea1807e5e4a4207fd13c78a6f066654606d.
* Change log level for two logs
* Remove "testing a situation where the pruning point moved during IBD (before sending the pruning point block)"
* In kaspactl, prettify responses before printing them.
* Indent with four spaces instead of a tab.
* Unwrap the response.
* Simplify unwrapping the response.
* Don't unwrap responses.
* Use protojson.MarshalOptions for prettification.
* Add request_types and their help
* Added command parser
* Updated main to use command if it's specified
* Some progress in making everything work
* Fix command parser for pointers to structs
* Cleanup code
* Enhance usage text
* Fixed typo
* Some minor style fixing, and remove temporary code
* Correctly fallthrough in stringToValue unsupported types
Co-authored-by: stasatdaglabs <39559713+stasatdaglabs@users.noreply.github.com>
* Ignore ErrDuplicateBlock for any blocks that were requested
* Don't check for DuplicateBlockErr in processHeaders + improve logs
* Return the check for ErrDuplicateBlock in processHeader
* Fix log message
* Implement TestGetPruningPointUTXOs.
* Fix a bad error message.
* Fix TestGetPruningPointUTXOs for testnet.
* Make sure all the UTXOs are returned in TestGetPruningPointUTXOs.
* Implement BenchmarkGetPruningPointUTXOs.
* Pass fromOutpoint into GetPruningPointUTXOs instead of offset, so it could Seek over the cursor.
* Fix weird benchmark timer calls.
* Remove unnecessary collection of outpointAndUTXOEntryPairs from BenchmarkGetPruningPointUTXOs.
* Fix a comment.