* [NOD-570] Separate genesis variables for different netwroks
* [NOD-570] Make Testnet genesis
* [NOD-570] Make simnet and regtest genesis
* [NOD-570] Remake devnet genesis
* [NOD-570] Rename regNet -> regTest testnet->testNet
* [NOD-570] Change network names to one word instead of camel case
* [NOD-570] Change network names to one word instead of camel case
* [NOD-570] Fix test names
* [NOD-570] Fix TestGHOSTDAG
Co-authored-by: Dan Aharoni <dereeno@protonmail.com>
* [NOD-540] Implement reachability (#545)
* [NOD-540] Begin implementing reachability.
* [NOD-540] Finish implementing reachability.
* [NOD-540] Implement TestIsFutureBlock.
* [NOD-540] Implement TestInsertFutureBlock.
* [NOD-540] Add comments.
* [NOD-540] Add comment for interval in blockNode.
* [NOD-540] Updated comments over insertFutureBlock and isFutureBlock.
* [NOD-540] Implement interval splitting methods.
* [NOD-540] Begin implementing tree manipulation in blockNode.
* [NOD-540] Implement countSubtreesUp.
* [NOD-540] Add a comment explaining an impossible condition.
* [NOD-540] Implement applyIntervalDown.
* [NOD-540] Moved the reachability tree stuff into reachability.go.
* [NOD-540] Add some comments.
* [NOD-540] Add more comments, implement isInPast.
* [NOD-540] Fix comments.
* [NOD-540] Implement TestSplitFraction.
* [NOD-540] Implement TestSplitExact.
* [NOD-540] Implement TestSplit.
* [NOD-540] Add comments to structs.
* [NOD-540] Implement TestAddTreeChild.
* [NOD-540] Fix a comment.
* [NOD-540] Rename isInPast to isAncestorOf.
* [NOD-540] Rename futureBlocks to futureCoveringSet.
* [NOD-540] Rename isFutureBlock to isInFuture.
* [NOD-540] move reachabilityInterval to the top of reachability.go.
* [NOD-540] Change "s.t." to "such that" in a comment.
* [NOD-540] Fix indentation.
* [NOD-540] Fix a potential bug involving float inaccuracy.
* [NOD-540] Wrote a more descriptive error message.
* [NOD-540] Fix error messsage.
* [NOD-540] Fix the recursive countSubtreesUp.
* [NOD-540] Rename countSubtreesUp to countSubtrees and applyIntervalDown to propagateInterval.
* [NOD-540] Implement updating reachability for a valid new block.
* [NOD-540] Implement a disk storage for reachability data.
* [NOD-540] Fix not all tree nodes being written to the database.
* [NOD-540] Implement serialization for reachabilityData.
* [NOD-540] Implement some deserialization for reachabilityData.
* [NOD-540] Implement restoring the reachabilityStore on node restart.
* [NOD-540] Made interval and remainingInterval pointers.
* [NOD-540] Rename setTreeInterval to setInterval.
* [NOD-540] Rename reindexTreeIntervals to reindexIntervals and fixed the comment above it.
* [NOD-540] Expand the comment above reindexIntervals.
* [NOD-540] Fix comment above countSubtrees.
* [NOD-540] Fix comment above countSubtrees some more.
* [NOD-540] Fix comment above split.
* [NOD-540] Fix comment above isAncestorOf.
* [NOD-540] Fix comment above reachabilityTreeNode.
* [NOD-540] Fix weird condition in addTreeChild.
* [NOD-540] Rename addTreeChild to addChild.
* [NOD-540] Fix weird condition in splitFraction.
* [NOD-540] Reverse the lines in reachabilityTreeNode.String().
* [NOD-540] Renamed f to fraction and x to size.
* [NOD-540] Fix comment above bisect.
* [NOD-540] Implement rtn.isAncestorOf().
* [NOD-540] Use treeNode isAncestorOf instead of treeInterval isAncestorOf.
* [NOD-540] Use newReachabilityInterval instead of struct initialization.
* [NOD-540] Make reachabilityTreeNode.String() use strings.Join.
* [NOD-540] Use sync.RWMutex instead of locks.PriorityMutex.
* [NOD-540] Rename thisTreeNode to newTreeNode.
* [NOD-540] Rename setTreeNode to addTreeNode.
* [NOD-540] Extracted selectedParentAnticone to a separate function.
* [NOD-540] Rename node to this.
* [NOD-540] Move updateReachability and isAncestorOf from dag.go to reachability.go.
* [NOD-540] Add whitespace after multiline function signatures in reachability.go.
* [NOD-540] Make splitFraction return an error on empty interval.
* [NOD-540] Add a comment about rounding to splitFraction.
* [NOD-540] Replace sneaky tabs with spaces.
* [NOD-540] Rename split to splitExponential.
* [NOD-540] Extract exponentialFractions to a separate function.
* [NOD-540] Rename bisect to findIndex.
* [NOD-540] Add call to reachabilityStore.clearDirtyEntries at the end of saveChangesFromBlock.
* [NOD-540] Explain the dirty hack in reachabilityStore.init().
* [NOD-540] Split the function signature for deserializeReachabilityData to two lines.
* [NOD-540] Add a comment about float precision loss to exponentialFractions.
* [NOD-540] Corrected a comment about float precision loss to exponentialFractions.
* [NOD-540] Fixed a comment about float precision loss to exponentialFractions some more.
* [NOD-540] Added further comments above futureCoveringBlockSet.
* [NOD-540] Rename addTreeNode to setTreeNode.
* [NOD-540] Rename splitExponential to splitWithExponentialBias.
* [NOD-540] Fix object references in reachabilityData deserialization (#563)
* [NOD-540] Fix broken references in deserialization.
* [NOD-540] Fix broken references in futureCoveringSet deserialization. Also add comments.
* [NOD-540] Don't deserialize on the first pass in reachabilityStore.init().
* [NOD-540] Remove redundant assignment to loaded[hash].
* [NOD-540] Use NewHash instead of SetBytes. Rename data to destination.
* [NOD-540] Preallocate futureCoveringSet.
* [NOD-541] Implement GHOSTDAG (#560)
* [NOD-541] Implement GHOSTDAG
* [NOD-541] Replace the old PHANTOM variant with GHOSTDAG
* [NOD-541] Move dag.updateReachability to the top of dag.applyDAGChanges to update reachability before the virtual block is updated
* [NOD-541] Fix blueAnticoneSize
* [NOD-541] Initialize node.bluesAnticoneSizes
* [NOD-541] Fix pastUTXO and applyBlueBlocks blues order
* [NOD-541] Add serialization logic to node.bluesAnticoneSizes
* [NOD-541] Fix GHOSTDAG to not count the new block and the blue candidates anticone, add selected parent to blues, and save to node.bluesAnticoneSizes properly
* [NOD-541] Fix test names in inner strings
* [NOD-541] Writing TestGHOSTDAG
* [NOD-541] In blueAnticoneSize change node->current
* [NOD-541] name ghostdag return values
* [NOD-541] fix ghostdag to return slice
* [NOD-541] Split k-cluster violation rules
* [NOD-541] Add missing space
* [NOD-541] Add comment to ghostdag
* [NOD-541] In selectedParentAnticone rename past->selectedParentPast
* [NOD-541] Fix misrefernces to TestChainUpdates
* [NOD-541] Fix ghostdag comment
* [NOD-541] Make PrepareBlockForTest in blockdag package
* [NOD-541] Make PrepareBlockForTest in blockdag package
* [NOD-541] Assign to selectedParentAnticone[i] instead of appending
* [NOD-541] Remove redundant forceTransactions arguments from PrepareBlockForTEST
* [NOD-541] Add non-selected parents to anticoneHeap
* [NOD-541] add test for ghostdag
* [NOD-541] Add comments
* [NOD-541] Use adjusted time for initializing blockNode
* [NOD-541] Rename isAncestorOf -> isAncestorOfBlueCandidate
* [NOD-541] Remove params from PrepareBlockForTest
* [NOD-541] Fix TestChainHeight
* [NOD-541] Remove recursive lock
* [NOD-541] Fix TestTxIndexConnectBlock
* [NOD-541] Fix TestBlueBlockWindow
* [NOD-541] Put prepareAndProcessBlock in common_test.go
* [NOD-541] Fix TestConfirmations
* [NOD-541] Fix TestAcceptingBlock
* [NOD-541] Fix TestDifficulty
* [NOD-541] Fix TestVirtualBlock
* [NOD-541] Fix TestSelectedPath
* [NOD-541] Fix TestChainUpdates
* [NOD-541] Shorten TestDifficulty test time
* [NOD-541] Make PrepareBlockForTest use minimal valid block time
* [NOD-541] Remove TODO comment
* [NOD-541] Move blockdag related mining functions to mining.go
* [NOD-541] Use NextBlockCoinbaseTransaction instead of NextBlockCoinbaseTransactionNoLock in NextCoinbaseFromAddress
* [NOD-541] Remove useMinimalTime from BlockForMining
* [NOD-541] Make MedianAdjustedTime a *BlockDAG method
* [NOD-541] Fix ghostdag to use anticone slice instead of heap
* [NOD-541] Fix NewBlockTemplate locks
* [NOD-541] Fix ghostdag comments
* [NOD-541] Convert MedianAdjustedTime to NextBlockTime
* [NOD-541] Fix ghostdag comment
* [NOD-541] Fix TestGHOSTDAG comment
* [NOD-541] Add comment before sanity check
* [NOD-541] Explicitly initialize .blues in ghostdag
* [NOD-541] Rename *blockNode.lessThan to *blockNode.less
* [NOD-541] Remove redundant check if block != chainBlock
* [NOD-541] Fix comment
* [NOD-541] Fix comment
* [NOD-497] Add comment; General refactoring
* [NOD-497] General refactoring.
* [NOD-497] Use isAncestor of the tree rather than the node
* [NOD-497] Remove reachability mutex lock as it is redundant (dag lock is held so no need); General refactoring.
* [NOD-497] Update comment
* [NOD-497] Undo test blocktimestamp
* [NOD-497] Update comments; Use BlockNode.less for blockset;
* [NOD-497] Change processBlock to return boolean and not the delay duration (merge conflict)
* [NOD-497] Undo change for bluest to use less; Change blocknode less to use daghash.Less
Co-authored-by: stasatdaglabs <39559713+stasatdaglabs@users.noreply.github.com>
Co-authored-by: Dan Aharoni <dereeno@protonmail.com>
* [NOD-549] Update version to 0.1.0 and allow injection of appBuild
* [NOD-549] Fixed peer tests
* [NOD-549] Fixed wire tests
* [NOD-549] Remove any mention of semVer.
* [NOD-549] Don't include appBuild at all if it includes invalid characters
* [NOD-549] Panic if appBuild contains invalid characters
* [NOD-549] Move checkAppBuild into
* [NOD-532] Change chain to DAG in the root package.
* [NOD-532] Change chain to DAG in checkpoints.go.
* [NOD-532] Change chain to DAG in blockdag.
* [NOD-532] Change chain to DAG in cmd.
* [NOD-532] Change chain to DAG in dagconfig.
* [NOD-532] Change chain to DAG in database.
* [NOD-532] Change chain to DAG in mempool.
* [NOD-532] Change chain to DAG in mempool.
* [NOD-532] Change chain to DAG in netsync.
* [NOD-532] Change chain to DAG in rpcclient.
* [NOD-532] Change chain to DAG in server.
* [NOD-532] Change chain to DAG in txscript.
* [NOD-532] Change chain to DAG in util.
* [NOD-532] Change chain to DAG in wire.
* [NOD-532] Remove block heights in dagio.go examples.
* [NOD-532] Rename fakeChain to fakeDAG.
* [NOD-532] Fix comments, remove unused EnableBCInfoHacks flag.
* [NOD-532] Fix comments and variable names.
* [NOD-532] Fix comments.
* [NOD-532] Fix merge errors.
* [NOD-532] Formatted project.
* [NOD-502] Remove checkpoints.
* [NOD-502] Remove remaining references to checkpoints.
* [NOD-500] Split RejectFinality to RejectDifficulty.
* [NOD-500] Remove support for headers-first in p2p.
* [NOD-500] Panic in newHashFromStr in case of an error.
* [NOD-487] Implement a mechanism to gracefully shut down after a panic.
* [NOD-487] Fixed bad log.
* [NOD-487] Removed unused import.
* [NOD-487] Convert panic handlers from anonymous functions to methods.
* [NOD-488] Make getBlueBlocksBetween return error if start hash is not in the selected parent chain of stop hash
* [NOD-488] Convert for to while style
* [NOD-479] Separate max outbound connections and max inbound connections
* [NOD-479] Fix merge
* [NOD-479] Renames and add function countinboundPeers
* [NOD-479] Remove redundant check on maximum outbound peers
* [NOD-479] Rename countinboundPeers -> countInboundPeers
* [NOD-484] Fix deadlock between p2p server and sync manager during shutdown.
* [NOD-484] Fix quitWaitGroup.Wait() potentially not waiting in some scenarios.
* [NOD-484] Add a comment explaining quitWaitGroup.
* [NOD-484] Fix typo.
* [NOD-484] Add etc to comment.
* [NOD-472] Don't fetch accepting block and tx confirmations for getBlocks
* [NOD-472] Don't fetch accepting block and tx confirmations in any block verbose result
* [NOD-472] Add stringPointerToString function
* [NOD-447] Fix deadlocks and hanging goroutines
* [NOD-447] Add tests
* [NOD-447] Add unpatch to spawnPatch
* [NOD-447] Don't send to releaseWait if waitingCounter is zero
* [NOD-447] Change waitingCounter to boolean and rename to isReleaseWaitWaiting, change checkIfRunningSpawnsAreLeft to return only one function, and lock critical code related to wg.isReleaseWaitWaiting
* [NOD-447] Rename txConfirmations -> txConfirmationsNoLock, txConfirmationsWithLock -> txConfirmations
* [NOD-447] Add documentation and delete redundant spawn
* [NOD-447] Fix comments
* [NOD-447] Fix comments
* [NOD-448] Change GetBlocksCmd to be able to include both raw and verbose block data.
* [NOD-448] Update sync logic to only make one getBlocks call per page.
* [NOD-448] Make GetBlocks get each block only once.
* [NOD-423] Rename BestBlock to SelectedTip
* [NOD-423] Implement GetSelectedTip RPC command
* [NOD-423] Add help to getSelectedTip command
* [NOD-423] Fix getSelectedTip test
* [NOD-423] Fix tests so they would compile. These tests will need to be rewriten at some point.
* [NOD-423] Make integration test compile. Test need to be revisited
* [NOD-423] Rename variables
* [NOD-423] Change comment s about best block to selected tip.
* [NOD-423] Update comment
* [NOD-423] Change height to bluescore
* [NOD-395] Write a test for the diffFromAcceptanceData crash.
* [NOD-395] Converted MultiBlockTxsAcceptanceData into a slice.
* [NOD-395] Fix failing test.
* [NOD-395] Populate multiBlockTxsAcceptanceData bottom-to-top.
* [NOD-395] Add comment to FindAcceptanceData.
* [NOD-395] Remove no-longer relevant note about probability in TestOrderInDiffFromAcceptanceData.
* [NOD-413] Make "Max failed connection attempts reached" less frequent
* [NOD-413] Throttle only certain types of logs.
* [NOD-413] Add a comment for shouldWriteConnFailedLog.
* [NOD-413] Fix lint error.
* [NOD-413] Make ErrNoAddress a special type to support error wrapping.
* [NOD-413] Make throttledConnFailedLogInterval 10 minutes.
* [NOD-413] Move p2p errors into variables.
* [NOD-413] Reorganize throttled stuff to be next to each other.
* [NOD-386] Extract net parsing functionality to a shared place.
* [NOD-386] Add extract ActiveNetParams to cmdconfig
* [NOD-386] Adding comments so go-vet won't shout at me
* [NOD-386] Rename package name to config
* [NOD-386] Rename commandConfig to configFlags
* [NOD-386] Rename function to ResolveNetwork
* [NOD-386] Fix renaming errors
* [NOD-386] Refactor network config to btcd level so APIserver and btcd could use it
* [NOD-386] Refactor network config to config package
* [NOD-386] Move ActiveNetParams to network section
* [NOD-386] Explictly return nil
* [NOD-386] Reuse activeNetParams from netwrok config
* [NOD-386] Set ActiveNetworkFlags instance to be global
* [NOD-386] Remove redundant newline
* [NOD-386] Init ActiveNetParams in address manager test
* [NOD-386] Add dnsseeder network config
* [NOD-386] Use ActiveConfig() method to access configuration
* [NOD-373] Implement Schnorr digital signatures and remove ECDSA (based on code from gcash/bchd)
* [NOD-374] Add new error to list; Update comments.
* [NOD-373] Remove leftovers of verifyMessage RPC command (which was deleted)
* [NOD-373] Remove redundant test, add Schnorr tests, and fix tests where needed
* [NOD-373] Fix tests and remove redundant ones
* [NOD-373] Refactor functions names
* [NOD-373] Remove empty line
* [NOD-373] Fix comments, rename functions to more meaningful names
* [NOD-373] Additional data in nonceRFC6979 should not be nil
* [NOD-373] Refactor function name
* [NOD-373] Add permalinks for links to bchd code
* [NOD-404] Calculate mass in API server
* [NOD-404] Fix uninitialized maps
* [NOD-404] Use txID instead of prevDBTransactionsOutput.Transaction.TransactionID
* [NOD-350] Implement testnet faucet
* [NOD-350] Add JSON annotations to api server response types
* [NOD-350] Fix IP check query, update IP usage with upsert, and make IP a primary key
* [NOD-377] Remove redundant float conversion
* [NOD-377] Change not current database error message
* [NOD-377] change API route from /money_request to /request_money
* [NOD-377] Add a constant for 24 hours
* [NOD-377] Remove redundant call for getWalletUTXOSet()
* [NOD-377] Condition refactoring
* [NOD-377] Fix POST request to API server content type
* [NOD-350] Rename day -> timeBetweenRequests
* [NOD-377] Rename timeBetweenRequests -> minRequestInterval, timeBefore24Hours -> minRequestInterval
* [NOD-350] Rename file responsetypes -> response_types
* [NOD-350] Rename convertTxModelToTxResponse -> convertTxDBModelToTxResponse
* [NOD-350] Explicitly select blue_score in fetchSelectedTipBlueScore
* [NOD-350] Refactor and add comments
* [NOD-350] Make calcFee use MassPerTxByte
* [NOD-350] Convert IP column to varchar(39) to allow ipv6 addresses
* [NOD-350] Add comments to isFundedAndIsChangeOutputRequired
* [NOD-350] Remove approximateConfirmationsForCoinbaseMaturity
* [NOD-350] Fix comments
* [NOD-134] Don't connect to an address from the same 16 CIDR
* [NOD-134] Rename outboundPeerConnected variables
* [NOD-134] Change newConnMtx to newConnReqMtx
* [NOD-338] Recover indexer if it didn't work for a while
* [NOD-338] Recover indexer if it didn't work for a while
* [NOD-338] Recover indexer if it didn't work for a while
* [NOD-338] Add tests and move blockidhash.go to blockdag package
* [NOD-338] Delete index current block id when dropping index, and do some refactoring
* [NOD-338] Change comments
* [NOD-338] Change recover error messages
* [NOD-338] Fix comments
* [NOD-338] Fix comments and fix test name