* Rename reachabilityManager.data to dataForInsertion, and use it only during insertions
* Make reachabilityData an interface
* Fix db serialization of reachability data
* Fix reachabilityDataStore
* Fix all tests
* Cleanup debugging code
* Fix insertToFutureCoveringSet
* Add comments
* Rename to ReachabilityData and MutableReachabilityData
* if more candidates then max, choose half with highest blueWork and half with lowest
* Add a Test GhostDAG sorter
* Add a test for pick virtual parents
* Fix review nits
* Fix notifyVirtualSelectedParentBlueScoreChanged to show the selected tip blue score instead of the virtual's
* Fix ShouldMine() to fetch selected tip header
* Remove the limit on the amount of hashes returned from antiPastHashesBetween.
* Guard against requests with a non-existing block hash.
* Move missing-block-hash guards to consensus.go.
* Ban a peer that doesn't send us all the requested headers during IBD.
* Extract blockHeap.ToSlice.
* Re-request headers in requestHeaders if we didn't receive the highHash.
* Increase size of reachability cache
* Change DomainHash to struct with unexported hashArray
* Fixing compilation errors stemming from new DomainHash structure
* Remove obsolete Read/WriteElement methods in appmessage
* Fix all tests
* Fix all tests
* Add comments
* A few renamings
* go mod tidy
* 1) Calculate pruning point incrementally
2) Add IsValidPruningPoint to pruning manager and consensus
3) Use reachability children for selected child iterator
* Add request IBD root hash flow
* Fix UpdatePruningPointByVirtual and IsValidPruningPoint
* Regenerate messages.pb.go
* Make the pruning point the earliest chain block with finality interval higher than the previous pruning point
* Fix merge errors
* Copy over the CLI wallet from Kasparov.
* Fix trivial compilation errors.
* Reimplement the balance command.
* Extract isUTXOSpendable to a separate function.
* Reimplement the send command.
* Fix bad transaction ID parsing.
* Add a missing newline in a log.
* Don't use msgTx in send().
* Fix isUTXOSpendable not checking whether a UTXO is of a coinbase transaction.
* Add --devnet, --testnet, etc. to command line flags.
* In `create`, only print the public key of the active network.
* Use coinbase maturity in isUTXOSpendable.
* Add a readme.
* Fix formatting in readme.
* [NOD-1575] Implement Clone and Equal for all model types
* [NOD-1575] Add assertion for transaction ID equality
* [NOD-1575] Use DomainTransaction.Equal to compare to expected coinbase transaction
* [NOD-1575] Add TestDomainBlockHeader_Clone
* [NOD-1575] Don't clone nil values
* [NOD-1575] Add type assertions
* [NOD-1575] Don't clone nil values
* [NOD-1575] Add missing Equals
* [NOD-1575] Add length checks
* [NOD-1575] Update comment
* [NOD-1575] Check length for TransactionAcceptanceData
* [NOD-1575] Explicitly clone nils where needed
* [NOD-1575] Clone tx id
* [NOD-1575] Flip condition
* Nod 1576 make coverage tests for equal clone inside model externalapi (#1177)
* [NOD-1576] Make coverage tests for equal and clone inside model and externalapi
* Some formatting and naming fixes
* Made transactionToCompare type exported
* Added some tests and made some changes to the tests code
* No changes made
* Some formatting and naming changes made
* Made better test coverage for externalapi clone and equal functions
* Changed expected result for two cases
* Added equal and clone functions tests for ghostdag and utxodiff
* Added tests
* [NOD-1576] Implement reachabilitydata equal/clone unit tests
* [NOD-1576] Full coverage of reachabilitydata equal/clone unit tests
* Made changes and handling panic to transaction_equal_clone_test.go and formating of utxodiff_equal_clone_test.go
* Added recoverForEqual2 for handling panic to transaction_equal_clone_test.go
* [NOD-1576] Full coverage of transaction equal unit test
* [NOD-1576] Add expects panic
* [NOD-1576] Allow composites in go vet
* [NOD-1576] Code review fixes (#1223)
* [NOD-1576] Code review fixes
* [NOD-1576] Code review fixes part 2
* [NOD-1576] Fix wrong name
Co-authored-by: karim1king <karimkaspersky@yahoo.com>
Co-authored-by: Ori Newman <orinewman1@gmail.com>
Co-authored-by: Karim <karim1king@users.noreply.github.com>
* Fix merge errors
* Use Equal where possible
* Use Equal where possible
* Use Equal where possible
Co-authored-by: andrey-hash <74914043+andrey-hash@users.noreply.github.com>
Co-authored-by: karim1king <karimkaspersky@yahoo.com>
Co-authored-by: Karim <karim1king@users.noreply.github.com>
* comments on default constants
* more comments on default constants
* more comments on default constants
* more comments on default constants
* gofmt
* small typos
* Replace default hasher (Double-SHA256) with domain seperated blake2b
* Replace all hashes with domain seperated blake2b
* Update the genesis blocks
* Replace OP_HASH256 with OP_BLAKE2B
* Fix the merkle tree by appending zeros instead of duplicating the hash when there is 1 branch left
* Update tests
* Add a payloadHash function
* Update gitignore to ignore binaries
* Fix a bug in the blake2b opcode
* Add a test script
* add gh action for build and test
* added all the test
* Change github workflow to use the new test script
* Change the docker file to use the new test script
* Add doc comment for ProtocolError.Unwrap()
* Use another github action to increase windows page size
* Run the action after any edit to the PR metadata/base
* Change go version from 1.15 to 1.14
* Rename test.sh to build_and_test.sh
Co-authored-by: Isabella Liu <isabellaliu77@gmail.com>