* [NOD-1476] Add dependency to BlockRelationStore in BlockProcessor.
* [NOD-1476] Add dependency to BlockStatusStore in BlockValidator.
* [NOD-1476] Add dependency to GHOSTDAGManager in BlockValidator.
* [NOD-1476] Rename CalculateConsensusStateChanges to AddBlockToVirtual.
* [NOD-1476] Remove RestoreDiffFromVirtual.
* [NOD-1476] Remove RestorePastUTXOSet.
* [NOD-1476] Add dependency to GHOSTDAGDataStore in ConsensusStateManager.
* [NOD-1476] Rename CalculateAcceptanceDataAndUTXOMultiset to just CalculateAcceptanceData.
* [NOD-1476] Remove UTXODiffManager and add dependencies to AcceptanceManager.
* [NOD-1476] Rename CalculateAcceptanceData to CalculateAcceptanceDataAndMultiset.
* [NOD-1476] Add dependency to DAGTopologyManager from ConsensusStateManager.
* [NOD-1476] Add dependency to BlockStore from ConsensusStateManager.
* [NOD-1476] Add dependency to PruningManager from ConsensusStateManager.
* [NOD-1476] Remove unnecessary stuff from ConsensusStateChanges.
* [NOD-1476] Add dependency to UTXODiffStore from ConsensusStateManager.
* [NOD-1476] Add tips to BlockRelationsStore.
* [NOD-1476] Add dependency to BlockRelationsStore from ConsensusStateManager.
* [NOD-1476] Remove Tips() from ConsensusStateStore.
* [NOD-1476] Remove acceptanceManager.
* [NOD-1476] Remove irrelevant functions out of ConsensusStateManager.
* [NOD-1461] Change the external api interface to not having anything besides DomainTransactions and DomainBlocks.
* [NOD-1462] Move external api types to a separate package.
* [NOD-1462] Clarify which model we're using in miningmanager.
* [NOD-1462] Extract coinbase data to its own struct.
* [NOD-1462] Add a comment above CoinbaseData.
* [NOD-1462] Fix the comment above CoinbaseData.
* [NOD-1458] Rename RestoreUTXOSet to RestorePastUTXOSet.
* [NOD-1458] Make CalculateAcceptanceDataAndMultiset take BlockGHOSTDAGData and nothing else.
* [NOD-1458] Make ConsensusStateStore's Update take ConsensusStateChanges instead of just UTXODiff.
* [NOD-1458] Add Tips() to ConsensusStateStore.
* [NOD-1458] Make all implementation structs private.
* [NOD-1458] Remove BlockAtDepth and add highHash to ChainBlockAtBlueScore.
* [NOD-1458] Rename CalculateAcceptanceDataAndMultiset to CalculateAcceptanceDataAndUTXOMultiset.
* [NOD-1458] Add a dependency to GHOSTDAGManager from ConsensusStateManager.
* [NOD-1458] Add ChooseSelectedParent to GHOSTDAGManager.
* [NOD-1458] Add DifficultyManager.
* [NOD-1458] Add PastMedianTimeManager.
* [NOD-1458] Add Hash() to Multiset.
* [NOD-1458] Add a dependency to ghostdagManager from blockProcessor.
* [NOD-1458] Add errors to all interfaces that need them.
* [NOD-1458] Uppercasify types in comments.
* [NOD-1458] Fix a bad comment.
* [NOD-1458] Fix a comment.
* [NOD-1458] Rename ChainBlockAtBlueScore to HighestChainBlockBelowBlueScore.
* [NOD-1458] Replace BlockAndTransactionValidator with an anonymous interface.
* [NOD-1460] Move the miningmanager interfaces into its model package.
* [NOD-1460] Decouple miningmanager model from appmessage.
* [NOD-1460] Decouple miningmanager model from util.
* [NOD-1460] Make miningmanager implementation structs unexported.
* [NOD-1457] Pass DomainDBContext to all constructors, instead of passing a general dbContext
* [NOD-1457] Add NewTx to DomainDBContext
* [NOD-1457] Added comment
* [NOD-1413] Remove /cmd/addblock
* [NOD-1413] Define and implement TransactionValidator.
* [NOD-1413] Make changes to ConsensusStateManager's interface.
* [NOD-1413] Make changes to PruningManager's interface.
* [NOD-1413] Make changes to DAGTraversalManager's interface.
* [NOD-1413] Make changes to MultisetStore's interface.
* [NOD-1413] Make changes to UTXODiffStore's interface.
* [NOD-1413] Make changes to UTXODiffStore's interface harder.
* [NOD-1413] Make changes to AcceptanceDataStore's interface harder.
* [NOD-1413] Make changes to PruningStore's interface.
* [NOD-1413] Delete BlockIndex.
* [NOD-1413] Add FeeDataStore.
* [NOD-1413] Update BlockMessageStore's interface.
* [NOD-1413] Fix interface violations.
* [NOD-1413] Add FeeDataStore to BlockProcessor.
* [NOD-1413] Make go vet happy.
* [NOD-1413] Add missing fields to ConsensusStateChanges.
* [NOD-1413] Add another missing field to ConsensusStateChanges.
* [NOD-1413] Add a reference to blockStore in consensusStateManager.
* [NOD-1413] Add missing methods to UTXODiffStore.
* [NOD-1413] Rename pruningPointStore to pruningStore everywhere.
* [NOD-1413] Remove superfluous parameters from CalculateConsensusStateChanges.
* [NOD-1413] Add missing dependencies to PruningManager.
* [NOD-1413] Remove implementation-y functions from TransactionValidator's interface.
* [NOD-1413] Make go vet happy.
* [NOD-1413] Add a couple of methods to DAGTopologyManager.
* [NOD-1413] Fix a typo in a file name.
* [NOD-1413] Remove non-interface functions from Validator.
* [NOD-1416] Move processes/datastructures interfaces into the model package.
* [NOD-1416] Decouple the model from dbaccess.
* [NOD-1413] Implement DomainBlock and DomainTransaction.
* [NOD-1413] Decouple model from appmessage.
* [NOD-1413] Decouple model from util.
* [NOD-1413] Decouple model from subnetworkid.
* [NOD-1413] Remove an unused const.
* [NOD-1413] Add DomainHash and DomainTransactionID.
* [NOD-1413] Decouple model from daghash.
* [NOD-1413] Decouple model from mstime.
* [NOD-1413] Decouple model from go-secp256k1.
* [NOD-1413] Add a proxy over dbaccess.
* [NOD-1413] Add comments over all added types.
* [NOD-1413] Fix a comment.
* [NOD-1413] Get rid of DomainTime.
* [NOD-1413] Simplify BlockGHOSTDAGData.
* [NOD-1444] Implement getHeaders RPC command
* [NOD-1444] Fix tests and comments
* [NOD-1444] Fix error message
* [NOD-1444] Make GetHeaders propagate header serialization errors
* [NOD-1444] RLock the dag on GetHeaders
* [NOD-1444] Change the error field number to 1000
* [NOD-1414] Add interfaces for Factory and State.
* [NOD-1414] Create interfaces for algorithms and data stores.
* [NOD-1414] Create empty implementations for algorithms and data stores.
* [NOD-1414] Add new functions for all the implementations.
* [NOD-1414] Begin filling in the interfaces.
* [NOD-1414] Fill in the interfaces for the data structures.
* [NOD-1414] Fill in the interfaces for the algorithms.
* [NOD-1414] Fix a bug in package names.
* [NOD-1414] Connect up the various interfaces.
* [NOD-1414] Add stubs to all the implementations.
* [NOD-1414] Create MiningManager and its Factory.
* [NOD-1414] Add interfaces for mempool and blockTemplateBuilder.
* [NOD-1414] Add implementation structs for miningManager.
* [NOD-1414] Add stub implementations for mempool and blockTemplateBuilder.
* [NOD-1414] Rename state to kaspadState.
* [NOD-1414] Restructure where interfaces sit.
* [NOD-1414] Restructure where interfaces sit in the algorithms package as well.
* [NOD-1414] Move remaining models out of models.go.
* [NOD-1414] Modified some interfaces.
* [NOD-1414] Make go vet happy.
* [NOD-1414] Move SerializedUTXOSet into PruningManager.
* [NOD-1414] Modify FindNextPruningPoint to return found and nextPruningPointUTXOSet.
* [NOD-1414] Add IsDAGAncestorOf.
* [NOD-1414] Add PruningPoint().
* [NOD-1414] Add Entry() to ReadOnlyUTXOSet.
* [NOD-1414] Add MergeSet() to BlockGHOSTDAGData.
* [NOD-1414] Write comments for all the exported types and functions in miningmanager.
* [NOD-1414] Add comments to the upper levels of KaspadState.
* [NOD-1414] Replace AddNode with ReachabilityChangeset.
* [NOD-1414] Add payAddress and extraData to GetBlockTemplate.
* [NOD-1414] Add scriptPublicKey and extraData to BuildBlock.
* [NOD-1414] Rename algorithms to processes.
* [NOD-1414] Rename kaspadState to consensus.
* [NOD-1414] Add ValidateAgainstPastUTXO and ValidateFinality.
* [NOD-1414] Add BlockGHOSTDAGData to ReachabilityChangeset.
* [NOD-1414] Fix the comment over Mempool.
* [NOD-1414] Fix the comment over ValidateTransaction.
* [NOD-1414] Fill up the data structures.
* [NOD-1414] Add comments to remaining uncommented items in miningmanager.
* [NOD-1414] Add comments to structs and constructors.
* [NOD-1414] Rename Set to Insert.
* [NOD-1414] Add comments to everything inside datastructures.
* [NOD-1414] Add comments to everything inside models.
* [NOD-1414] Add comments to the interfaces in processes.
* [NOD-1414] Add comments to everything in processes.
* [NOD-1414] Make go vet happy.
* [NOD-1414] Rename scriptPublicKey to coinbaseScriptPublicKey.
* [NOD-1414] Add handlers to the consensus.
* [NOD-1414] Add highHash to blockAtDepth.
* [NOD-1414] Add resolveFinalityConflict.
* [NOD-1414] Reorg BlockValidator.
* [NOD-1414] In ResolveFinalityConflicts, rename blockHash to newFinalityBlockHash.
* [NOD-1414] Fix a comment.
* [NOD-1414] Make reachability structs public.
* [NOD-1414] Make UTXO structs public.
* [NOD-1447] checkEntryAmounts should check against totalSompiInAfter, not totalSompiInBefore
* [NOD-1447] Remove lastSompiIn, and use totalSompiInBefore instead
* [NOD-1412] Remove ffldb, and make ldb implement all the database
interfaces
* [NOD-1412] Removed any reference to dataStore and updated block dbaccess to work directly with key/values
* [NOD-1320] Flush UTXOs to disk.
* [NOD-1320] Minor improvements and fixes.
* FullUTXOSet: change size type from int64 to uint64.
* Rename FullUTXOSet.size to FullUTXOSet.estimatedSize
* Fill NewFullUTXOSetFromContext with db context on virtual block
creation.
* Typo fixes.
* [NOD-1320] Stylystic fixes.
* [NOD-1320] Update tests. Improvements and fixes.
* Update blockdag/dag tests: prepare DB for tests.
* Update blockdag/utxoset tests: prepare DB for tests.
* Update blockdag/test_utils utils.
* Update blockdag/common tests.
* FullUTXOSet: remove embedded utxoCollection type. Rename
utxoCollection to utxoCache.
* Fix blockdag/block_utxo genesisPastUTXO func.
* Minor fixes and improvements.
* [NOD-1388] Write a deterministic test that reproduces the crash.
* [NOD-1388] Fix a typo.
* [NOD-1388] Use isInPastOfAny in addValidTip instead of just checking the parents.
* [NOD-1388] Add a json representation of the crashing DAG.
* [NOD-1388] Remove crash_test.go.
* [NOD-1388] Change variable name, add a comment.
* [NOD-1388] Rephrase a comment.
* [NOD-1249] Add pruning related constants (#869)
* [NOD-1249] Add pruning related constants
* [NOD-1249] Change status suspect to UTXONotVerified
* [NOD-1249] Add TestPruningDepth
* [NOD-1249] Add comment to pruningDepth
* [NOD-1249] Add pruning helper functions (#875)
* [NOD-1249] Added node.blockAtDepth
* [NOD-1249] Added node.finalityPoint()
* [NOD-1249] Add hasFinalityPointInOthersSelectedChain
* [NOD-1249] Add nonFinalityViolatingBlues
* [NOD-1249] Added isInPastOfAny
* [NOD-1249] Updated all calls to blockNode functions that require dag
* [NOD-1249] Add blockNode.reds field and persist it
* [NOD-1249] Add checkObjectiveFinality
* [NOD-1249] Add isViolatingSubjectiveFinality
* [NOD-1249] Added to TestGHOSTDAG check that reds are as expected
* [NOD-1249] Add checkMergeLimit and checkDAGRelations
* [NOD-1249] Invert condition in blockInDepth
* [NOD-1249] Make isInPastOfAny resemble isInPast
* [NOD-1249] Added comments to isInPast and isInPastOfAny
* [NOD-1252] Remove any references to legacy finality (#876)
* [NOD-1032] validateParents: check number of parents and that no parents were manually rejected (#877)
* [NOD-1254] Block verification changes (#882)
* [NOD-1254] Call checkDAGRelations and move it to correct place
* [NOD-1254] Use blockStatuses properly
* [NOD-1254] Add support for setting node's verification flag and set it to UTXONotVerified once block passes basic verification
* [NOD-1254] Check for subjctiveFinality, and for node not being in the selectedParentChain
* [NOD-1254] Make blockStatus an ordinary value - not bit flags
* [NOD-1254] Isolate all utxo-requiring validation into a single separate if branches
* [NOD-1254] Re-arrange connectBloc so that things that happen in UTXO-validated blocks only are all grouped together
* [NOD-1254] Resolve and check selectedParent's status before validatingUTXO
* [NOD-1254] Separate virtualUTXODiff from utxoVerificationOutput
* [NOD-1254] Stylistic fixes
* [NOD-1254] Use dag.index.(Set)BlockNodeStatus instead of accessing node.status
* [NOD-1288] Sub-routinize checkConnectToPastUTXO
* [NOD-1288] Re-write checkConnectToPastUTXO in a way that allows to filter-out invalid transactions
* [NOD-1288] Make checkTxSequenceLock use already calculated utxo outputs
* [NOD-1288] Make checkTxMass use already calculated utxo outputs
* [NOD-1288] Use dag.sigCache for ValidateTransactionScripts
* [NOD-1288] Use checkConnectTransactionToPastUTXO in applyBlueBlocks
* [NOD-1288] Clean-up old code-path from no longer used functions
* [NOD-1288] Skip any irrelevant parts of txo verification if block is genesis
* [NOD-1288] Set where it should have been
* [NOD-1288] Fix reachability checks to never use the new node + make isInSelectedParentChainOf return true if node == other
* [NOD-1288] invert the condition for isNewSelectedTip
* [NOD-1288] Separate checkIsAccepted to own function, and properly handle coinbase
* [NOD-1288] Don't update utxo-diff for UTXONotVerified parents/tips + Make PrepareBlockForTest resolve the selectedParent's UTXOSet if needed
* [NOD-1288] Include mass off coinbase transactions
* [NOD-1288] Move comment to correct position
* [NOD-1288] If blockAtDepth should return genesis - do it immidiately
* [NOD-1288] Comment-out instead of removeing scriptval_test.go
* [NOD-1288] Rename: entry -> utxoEntry
* [NOD-1288] Remove special function for calcCoinbaseTxMass
* [NOD-1288] Remove redundant check from checkEntryAmounts
* [NOD-1288] Rename: MaxMassPerBlock -> MaxMassAcceptedByBlock
* [NOD-1255] Implement boundedMergeBreakingParents
* [NOD-1255] Implement selectAllowedTips
* [NOD-1255] Integrate virtual parent selection into block verification process
* [NOD-1255] Add node to tips all the time, remove it from candidates and add it's parents if it's disqualified
* [NOD-1255] remove tips from virtaulBlock
* [NOD-1255] Rename: didVirtualParentsChanged -> didVirtualParentsChange
* [NOD-1255] Remove redundant sanity check
* [NOD-1255] Handle a forgotten error
* [NOD-1255] Prettify selectVirtualParents
* [NOD-1255] UpdateTipsUTXO should run over all UTXO-Verified tips, even if they are not parents of virtual
* [NOD-1311] Make isInPast inclusive
* [NOD-1032] Handle finality conflicts (#904)
* [NOD-1312] AddTip should not include finalityViolating and manuallyRejected blocks
* [NOD-1312] Implement resolveFinalityConflict
* [NOD-1312] Implement dag notifications for finalityChanges + updateing DAG state
* [NOD-1312] Added finality conflict rpc boilerplate
* [NOD-1312] Implement handling of getFinalityConflicts + resolveFinalityConflict RPCs
* [NOD-1312] Implement finality conflict related notifications
* [NOD-1312] Move all time to millisecond time
* [NOD-1312] Add comments + unexport some methods
* [NOD-1312] Add clarification in comments
* [NOD-1312] Move updateFinalityConflictResolution to finality_conflicts.go
* [NOD-1312] Rename: currentSelectedTip -> selectedTip
* [NOD-1312] Add long comment to ResolveFinalityConflict
* [NOD-1312] Convert areAllInSelectedParentChainOf into isInSelectedParentChainOfAll
* [NOD-1312] Rename chainUpdates (type) -> selectedParentChainUpdates, to distinguish from the variable chainUpdates
* [NOD-1032] Make all blockdag tests compile
* [NOD-1278] Fix finality-related tests (#910)
* [NOD-1032] Don't return node.dag.genesis from blockAtDepth because it might still not exist
* [NOD-1032] Actually add a tip in dag.addTip
* [NOD-1278] Add transaction to utxo set if it's coinbase
* [NOD-1278] Use VirtualParentHashes instead of TipHashes where appropriate
* [NOD-1278] If no valid virtual parent candidates - return error, don't wait for panic
* [NOD-1278] Transition TestCalcSequenceLock from newTestDAG to DAGSetup
* [NOD-1278] Fix .bluest() tie-breaker
* [NOD-1278] Remove feeData structure, as it no longer works, store feeData in acceptanceData
* [NOD-1278] Remove dag parameter from blockNode methods
* [NOD-1278] Fix TestBlueBlockWindow
* [NOD-1278] Don't subject selectedParent to MaxMergeSet
* [NOD-1278] se PrepareAndProcessBlockForTest instead of .addTip in TestSelectedPath
* [NOD-1278] Fixed TestDAGStateSerialization
* [NOD-1278] Fix TestAcceptanceIndexRecover
* [NOD-1278] Fix TestCheckConnectBlockTemplate
* [NOD-1278] Fix TestChainUpdates
* [NOD-1278] Fix and rename TestVirtualBlock -> TestTips
* [NOD-1278] Rename checkIsAccepted -> maybeAcceptTx
* [NOD-1278] Re-activate TestDoubleSpends
* Revert "[NOD-1278] Fixed TestDAGStateSerialization"
This reverts commit 845095d6de7207b07cf819d05f3f38ad94da9cf6.
* [NOD-1278] Remove dag parameter from expectedCoinbaseTransaction
* [NOD-1348] Implemented simplified Finality Conflict Resolution scheme (#911)
* [NOD-1348] Rename functions according to Research spec
* [NOD-1348] Added blockSet.areAllIn
* [NOD-1348] Implemented simplified finality conflict resolution scheme
* [NOD-1348] Refactorings and fixes in selectVirtualParents
* [NOD-1278] Fix bugs discovered by unit-tests + Fix unit-tests (#916)
* Updated to version v0.3.1
* [NOD-858] Don't switch sync peer if the syncing process hasn't yet started with the current sync peer (#700)
* [NOD-858] Don't switch sync peer if the syncing process hasn't yet started with the current sync peer
* [NOD-858] SetShouldSendBlockLocator(false) on OnBlockLocator
* [NOD-858] Rename shouldSendBlockLocator->wasBlockLocatorRequested
* [NOD-858] Move panic to shouldReplaceSyncPeer
* [NOD-869] Add a print after os.Exit(1) to see if it is ever called (#701)
* [NOD-1238] Fix acceptance index never being initialized. (#859)
* [NOD-1278] Genesis never violates finality
* [NOD-1348] Refactorings and fixes in selectVirtualParents
* [NOD-1278] Don't call dag.selectVirtualParents for genesis
* [NOD-1278] Properly organize errors in maybeAcceptBlock
* [NOD-1278] updateTipsUTXO should only run on tips whose status is
* [NOD-1278] updateTipsUTXO should only run on tips whose status is `valid`
* [NOD-1278] Fix TestDoubleSpends
* [NOD-1278] Fix TestDAGIndexFailedStatus
* [NOD-1278] IsFinalizedTransaction should use uint64 everywhere
* [NOD-1278] If tx is coinbase and not selectedParent - don't update pastUTXO
* [NOD-1278] Store tips and validTips separately
* [NOD-1278] Store ValidTips and VirtualParents in dagState
* [NOD-1278] Fix TestProcessOrphans
* [NOD-1278] Fix TestProcessOrphans
* [NOD-1278] Fix TestOrderInDiffFromAcceptanceData
* [NOD-1278] Fix TestHelp
* [NOD-1278] Remove mining.PrepareBlockForTest; use blockdag.PrepareBlockForTest instead
* [NOD-1278] Explicitly disallow chained transactions
* [NOD-1278]
* [NOD-1278] Fix some comments
Co-authored-by: Ori Newman <orinewman1@gmail.com>
Co-authored-by: stasatdaglabs <39559713+stasatdaglabs@users.noreply.github.com>
Co-authored-by: Yuval Shaul <yuval.shaul@gmail.com>
* [NOD-1355] Add unit-test for finality + When resolving finalityConflict - make sure the block that will come out selectedTip is statusValid (#919)
* [NOD-1355] Added test for finality
* [NOD-1355] When resolving finalityConflict - make sure the block that will come out selectedTip is statusValid
* [NOD-1032] Renames: anything about inputsWithReferencedUTXOEntries -> remove 'Referenced'
* [NOD-1032] Don't ignore non-rule errors
* [NOD-1032] Fix comment
* [NOD-1032] Enhanced comments on TestChainUpdates
* [NOD-1032] Remove scriptval_test.go
* [NOD-1032] Extracted isNewSelectedTip to a method
* [NOD-1032] Use dag.Now() instead of mstime.Now()
* [NOD-1032] Print block status when accepting block
* [NOD-1032] Add comment explaining boundedMergeBreakingParents
* [NOD-1032] Enhanced test and imporved comments in TestFinality
* [NOD-1032] Rename: Objective finality -> bounded merge depth
* [NOD-1032] No need to check that validTips are valid
* [NOD-1032] Remove dag from arguments of updateDiffAndDiffChild
* [NOD-1032] Correct variable names in LookupNodes
[NOD-1032] Correct variable names in LookupNodes
* [NOD-1032] Fix some comments
* [NOD-1032] Some style changes
* [NOD-1032] Refactor isAnyInPastOf
* [NOD-1032] Enhance comment in updateVirtualParents
* [NOD-1032] Flip condition in updateVirtualParents
* [NOD-1032] Stylistic and grammatic fixes in dag.go and dag_test.go
* [NOD-1032] Explain why updateSelectedParentSet receives geneses on init
* [NOD-1032] Remove ErrParentManuallyRejected
* [NOD-1032] Added wrapper for resolveNodeStatus that creates a special transaction for it
* [NOD-1032] Rename: statusUTXONotVerified -> statusUTXOPendingVerification
* [NOD-1032] Use virtual parents in CurrentBits()
* [NOD-1032] rename: isViolatingSubjectiveFinality -> isViolatingFinality
* [NOD-1032] Move updateVirtualAndTips to applyDAGChanges
* [NOD-1032] Invert condition for isFinalityPointInPast
* [NOD-1032] Fix antiPastBetween isInPast became inclusive
* [NOD-1032] Remove redundant call for addTip
* [NOD-1032] Use calcCoinbaseTxMass where appropriate
* [NOD-1032] Remove time fields from conflict notifications
* [NOD-1032] Assign the correct thing to i
* [NOD-1032] unify checkOutputsAmounts and checkTxOutputAmounts
* [NOD-1032] Cleanup in CheckTransactionInputsAndCalulateFee
* [NOD-1032] Fixed some style and comments
* [NOD-1032] If selectedParent is disqualifiedFromChain - validateAndApplyUTXOSet should return this as a ruleError
* [NOD-1032] Set the status in resolveNodeStatus
* [NOD-1032] Correct comment on boundedMergeBreakingParents
* [NOD-1032] Fix a typo.
* [NOD-1032] Update a variable name.
* [NOD-1032] Fix a comment.
* [NOD-1032] Fix merge errors.
* [NOD-1032] Add VirtualParentHashes to getBlockDagInfo.
* [NOD-1032] Update handleGetBlockTemplate.
* [NOD-1032] Comment out all the old RPC stuff.
* [NOD-1032] Remove irrelevant type.
* [NOD-1032] Implement ResolveFinalityConflict.
* [NOD-1032] Remove irrelevant comments.
* [NOD-1032] Implement NotifyFinalityConflicts.
* [NOD-1032] Add FinalityConflictNotification and FinalityConflictResolvedNotification.
* [NOD-1032] Finish implementing finality conflict notifications.
* [NOD-1032] Remove old RPC stuff.
* [NOD-1032] Fix grammar in a comment.
Co-authored-by: Ori Newman <orinewman1@gmail.com>
Co-authored-by: stasatdaglabs <39559713+stasatdaglabs@users.noreply.github.com>
Co-authored-by: Yuval Shaul <yuval.shaul@gmail.com>
Co-authored-by: stasatdaglabs <stas@daglabs.com>
* [NOD-1319] Create the protorpc package.
* [NOD-1319] Use a general ClientStream in closeSend.
* [NOD-1319] Decouple p2pServer from gRPCServer.
* [NOD-1319] Begin implementing rpcServer.
* [NOD-1319] Move grpcStream to grpc_connection.go.
* [NOD-1319] Fold the rpc messages.proto into a common message.proto.
* [NOD-1319] Remove code duplication in MessageStream.
* [NOD-1319] Rename methods in netadapter.
* [NOD-1319] Rename message_xxx to p2p_xxx.
* [NOD-1319] Section off p2p messages from rpc messages in messages.proto.
* [NOD-1319] Split toPayload to a p2p part and and rpc part.
* [NOD-1319] Rename msgxxx.go to p2p_msgxx.go in the appmessage package.
* [NOD-1319] Implement GetCurrentVersionRequestMessage and GetCurrentVersionResponseMessage.
* [NOD-1319] Implement toAppMessage and fromAppMessage for getCurrentNetwork
* [NOD-1319] Make a temporary workaround so that tests pass.
* [NOD-1319] Begin implementing the rpc manager.
* [NOD-1319] Implement an initial routerInitializer for rpc.
* [NOD-1319] Rename the spawn in routerInitializer.
* [NOD-1319] Implement an RPC context.
* [NOD-1319] Move the actual handlers to a separate package.
* [NOD-1319] Use the correct value for the GetCurrentNetwork response.
* [NOD-1319] Fix some names.
* [NOD-1319] Begin implementing a cli rpc client.
* [NOD-1319] Implement connecting to the RPC server.
* [NOD-1319] Make sure that connecting to the server and sending/receiving messages works.
* [NOD-1319] Make kaspactl2 speak in json strings.
* [NOD-1319] Finish implementing kaspactl2.
* [NOD-1319] Remove debug messages.
* [NOD-1319] Properly handle errors in rpc.go.
* [NOD-1319] Move the grpc client to a separate package.
* [NOD-1319] Extract Post out of PostString.
* [NOD-1319] Implement PostAppMessage.
* [NOD-1319] Stub out submitBlock.
* [NOD-1319] Stub out getBlockTemplate.
* [NOD-1319] Combine request and reponse files.
* [NOD-1319] Implement submitBlock.
* [NOD-1319] Implement returning errors from RPC.
* [NOD-1319] Begin implementing getBlockTemplate.
* [NOD-1319] Add missing field in GetBlockTemplateRequestMessage.
* [NOD-1319] Implement a minimal getBlockTemplate.
* [NOD-1319] Add getBlockTemplate stuff to grpc.
* [NOD-1319] Implement the rest of getBlockTemplate.
* [NOD-1319] Add block/transaction added handlers to the protocol manager.
* [NOD-1319] Implement NotifyTransactionAddedToMempool.
* [NOD-1319] Implement NotifyBlockAddedToDAG.
* [NOD-1319] Connect block/transaction added handlers.
* [NOD-1319] Add notifyBlockAdded.
* [NOD-1319] Add a notification system.
* [NOD-1319] Improve the notification system.
* [NOD-1319] Add a block added listener stub.
* [NOD-1319] Add BlockAddedNotificationMessage.
* [NOD-1319] Finish implementing HandleNotifyBlockAdded.
* [NOD-1319] Println instead of Print in kaspactl2.
* [NOD-1319] Remove unused flags in kaspactl2.
* [NOD-1319] Make kaspaminer work with the new RPC.
* [NOD-1319] Fix a bad log.
* [NOD-1319] Make kaspaminer work.
* [NOD-1319] Disconnect the old RPC.
* [NOD-1319] Move grpcclient.go.
* [NOD-1319] Begin generalizing the rpcClient.
* [NOD-1319] Move errors to the side of the payload.
* [NOD-1319] Add errors to appmessage.
* [NOD-1319] Move AttachRouter to grpcclient.
* [NOD-1319] Fix kaspaminer not handling responses.
* [NOD-1319] Properly handle blockAddedNotifications.
* [NOD-1319] Move errors into individual response objects.
* [NOD-1319] Begin replacing the RPC client in the integration tests.
* [NOD-1319] Implement GetPeerAddresses.
* [NOD-1319] Implement GetPeerAddresses.
* [NOD-1319] Fix setOnBlockAddedHandler.
* [NOD-1319] Remove the old kaspactl.
* [NOD-1319] Move ConvertGetBlockTemplateResultToBlock to the mining package.
* [NOD-1319] Implement getSelectedTipHash.
* [NOD-1319] Simplify testRPCRouter.
* [NOD-1319] Write stubs for the required test RPC commands.
* [NOD-1319] Implement a minimal getMempoolEntry.
* [NOD-1319] Implement a minimal getMempoolEntry.
* [NOD-1319] Implement getConnectedPeerInfo.
* [NOD-1319] Delete the old RPC.
* [NOD-1319] Fix a fromAppMessage.
* [NOD-1319] Implement connectToPeer.
* [NOD-1319] Fix a bug in registerForBlockAddedNotifications.
* [NOD-1319] Fix a deadlock in closing notification listeners.
* [NOD-1319] Fix merge errors.
* [NOD-1319] Fix an import.
* [NOD-1319] Properly handle errors in grpcclient.
* [NOD-1319] Fix TestIBD.
* [NOD-1319] Prevent kaspaminer from running when not connected.
* [NOD-1319] Implement sendRawTransaction.
* [NOD-1319] Implement sendRawTransaction in the client.
* [NOD-1319] Extract a general RPC client from the integration test RPC client.
* [NOD-1319] Use the general RPC client for the miner.
* [NOD-1319] Move the rpcclient package out of netadapter.
* [NOD-1319] Normalize onBlockAdded.
* [NOD-1319] Begin implementing notifyChainChanged.
* [NOD-1319] Implement the model for notifyChainChanged.
* [NOD-1319] Implement conversions for notifyChainChanged.
* [NOD-1319] Implement HandleNotifyChainChanged.
* [NOD-1319] Normalize notifications.
* [NOD-1319] Implement RegisterForChainChangedNotifications.
* [NOD-1319] Begin connecting blockdag's chain-changed notification with the RPC.
* [NOD-1319] Finish implementing notifyChainChanged.
* [NOD-1319] Implement getBlockHex.
* [NOD-1319] Rename getBlockHex to getBlock.
* [NOD-1319] Implement the verbose model for getBlock.
* [NOD-1319] Implement buildBlockVerboseData.
* [NOD-1319] Implement buildTransactionVerboseData.
* [NOD-1319] Move verboseData stuff to verbosedata.go.
* [NOD-1319] Add includeTransactionVerboseData.
* [NOD-1319] Begin implementing getSubnetwork.
* [NOD-1319] Finish implementing getSubnetwork.
* [NOD-1319] Begin implementing getChainFromBlock.
* [NOD-1319] Finish implementing getChainFromBlock.
* [NOD-1319] Begin implementing getBlocks.
* [NOD-1319] Finish implementing getBlocks.
* [NOD-1319] Fix bad responses in HandleNotifyChainChanged.
* [NOD-1319] Fix bugs in verbosedata.go.
* [NOD-1319] Fix more bugs in verbosedata.go.
* [NOD-1319] Make go vet happy.
* [NOD-1319] Extract handleBlockDAGNotifications to a method.
* [NOD-1319] Add a newline.
* [NOD-1319] Use peers instead of connections to check if connected.
* [NOD-1319] Add a comment.
* [NOD-1319] Lock the dag lock in getBlock.
* [NOD-1319] Rename netAdapter.connections to p2pConnections.
* [NOD-1319] In protowire, rename wireXXX to protoXXX.
* [NOD-1319] Rename PostString to PostJSON.
* [NOD-1319] Disallow empty transactions in SendRawTransaction.
* [NOD-1319] Disallow empty blocks in SubmitBlocks.
* [NOD-1319] Add SetLogger.
* [NOD-1319] Fix an error message.
* [NOD-1319] Fix an error message.
* [NOD-1319] Rename testTimeout to rpcTimeout.
* [NOD-1319] Rename SendRawTransaction to SubmitTransaction.
* [NOD-1319] Rename ConnectToPeer to AddPeer.
* [NOD-1319] Add missing longPollID to request.
* [NOD-1319] Rename ChainChangedChainBlock to ChainBlock.
* [NOD-1319] Rename Vin and Vout.
* [NOD-1319] Implement RPCErrorf.
* [NOD-1319] Fix RPCErrorf's comment.
* [NOD-1319] Remove unused flags in kaspaminer.
* Add VirtualBlueHashes to BlockDAG
* Refactor TestGHOSTDAG to read DAGs from json files
* Added a new DAG for the ghostdag test suite
* Pass BehaviorFlags to delayed blocks
* [NOD-592] Remove TODOs related to fake nonces.
* [NOD-592] Remove irrelevant TODOs from handleRescanBlocks and parseTxAcceptedVerboseNtfnParams.
* [NOD-592] Fix TODO in handleGetTxOut.
* [NOD-592] Remove irrelevant TODO from updateAddress.
* [NOD-592] Move StandardVerifyFlags to a separate file.
* [NOD-592] Remove TODOs in sign.go.
* [NOD-592] Remove TODO in scriptval_test.go.
* [NOD-592] Remove TODO in reachabilitystore.go.
* [NOD-592] Remove XXXs.
* [NOD-592] Fix a comment.
* [NOD-557] Move AddAddressByIP out of AddressManager since it's used only for tests..
* [NOD-557] Remove rescan blocks.
* [NOD-592] Fix handleGetTxOut.
* [NOD-557] Remove regTest network.
* [NOD-557] Remove remaining references to regTest.
* [NOD-557] Move newHashFromStr from params.go to params_test.go.
* [NOD-557] Rename test to network in register_test.go.
* [NOD-557] Replaced removed tests in TestDecodeAddressErrorConditions.
* [NOD-1223] Delete unused files/packages.
* [NOD-1223] Move signal and limits to the os package.
* [NOD-1223] Put database and dbaccess into the db package.
* [NOD-1223] Fold the logs package into the logger package.
* [NOD-1223] Rename domainmessage to appmessage.
* [NOD-1223] Rename to/from DomainMessage to AppMessage.
* [NOD-1223] Move appmessage to the app packge.
* [NOD-1223] Move protocol to the app packge.
* [NOD-1223] Move the network package to the infrastructure packge.
* [NOD-1223] Rename cmd to executables.
* [NOD-1223] Fix go.doc in the logger package.
* [NOD-1259] All rule-errors should be protocol-errors
* [NOD-1259] Handle submitting of coinbase transactions properly
* Revert "[NOD-1259] All rule-errors should be protocol-errors"
This reverts commit 2fd30c185640fcee62030f72ed14654570a1d7c7.
* [NOD-1259] Don't panic on non-protocol errors in ProtocolManager.AddTransaction/AddBlock
* [NOD-1259] Implement subnetworkid.IsBuiltInOrNative and use where appropriate
* [NOD-1129] Implement TestIncestousNewBlockTemplate.
* [NOD-1129] Add some debug logs to TestIncestousNewBlockTemplate.
* [NOD-1129] Fix merge errors.
* [NOD-1129] Narrow down on the failure.
* [NOD-1129] Fix bad initial value for child.interval in reachabilityTreeNode.addChild.
* [NOD-1129] Rewrite the test to be specific to reachability.
* [NOD-1223] Move all network stuff into a new network package.
* [NOD-1223] Delete the unused package testutil.
* [NOD-1223] Move infrastructure stuff into a new instrastructure package.
* [NOD-1223] Move domain stuff into a new domain package.