Ori Newman
23c1ea6c31
[NOD-1525] Implement headers first ibd ( #1017 )
...
* [NOD-1525] Implement headers first IBD
* [NOD-1525] Fix proto translators
* [NOD-1525] Register missing flows
* [NOD-1525] Rename SyncStateNormal->SyncStateRelay, simplifiy IBD peer selection code and get rid of panic in FinishIBD
* [NOD-1525] Remove redundant methods from interface
2020-11-10 16:14:51 +02:00
Ori Newman
31c5264430
[NOD-1527] Allow to process headers while in missing utxo set sync state ( #1018 )
...
* [NOD-1527] Allow to process headers while in missing utxo set sync state
* [NOD-1527] Add isHeaderOnlyBlock function
2020-11-10 14:43:18 +02:00
Ori Newman
32da4440ba
[NOD-1495] Disallow non native transactions ( #988 )
...
* [NOD-1495] Disallow non native transactions
* [NOD-1495] Use deserializeUTXOSetBytes
* [NOD-1495] Delete checkNoNonNativeTransactions
* [NOD-1495] Invert condition in checkTransactionPayload
Co-authored-by: Mike Zak <feanorr@gmail.com>
2020-11-09 17:15:16 +02:00
Svarog
e7a61c7edf
[NOD-1524] Add lock to consensus ( #1014 )
2020-11-09 16:21:09 +02:00
Svarog
6db337c8c5
[NOD-1519] Add TestAPI for BuildBlockWithParents ( #1011 )
...
* [NOD-1519] Separate BlockBuilder and BlockProcessor
* [NOD-1519] Wire blockBuilder properly + implement buildBlockWithParents
* [NOD-1519] Added testapi package, TestConsensus interface, and TestConsensus factory
* [NOD-1519] Add comments
* [NOD-1519] Separate TestBlockBuilder out of BlockBuilder
* [NOD-1519] TestBlockBuilder should also implement BlockBuilder
* [NOD-1519] Add NewTestConsensus to factory interface
2020-11-09 12:02:42 +02:00
Svarog
2282e36196
[NOD-1522] Add IsEqual to SubnetworkID ( #1012 )
...
* [NOD-1519] Add IsEqual to SubnetworkID
* [NOD-1522] Added comment
2020-11-09 10:52:57 +02:00
oudeis
72b5832f30
Update to version 0.8.0
2020-11-09 07:07:30 +00:00
Ori Newman
9a344152aa
[NOD-1517] Properly initialize consensus with Genesis block ( #1009 )
...
* [NOD-1517] Properly initialize consensus with Genesis block
* [NOD-1517] Remove redundant AddHeaderTip
* [NOD-1517] Don't return nil from dbHash<->DomainHash converters
* [NOD-1517] Use pointer receivers
* [NOD-1517] Use domain block in dagParams
* [NOD-1517] Remove boolean from SelectedTip
* [NOD-1517] Rename hasHeader to isHeadersOnlyBlock
* [NOD-1517] Add comment
* [NOD-1517] Change genesis version
* [NOD-1517] Rename TestNewFactory->TestNewConsensus
v0.8.0-rc1
2020-11-08 15:17:20 +02:00
Svarog
281944762d
[NOD-1500] Glue between domain and application ( #1007 )
...
* [NOD-1500] Added Domain type and Constructor
* [NOD-1500] Replaced dag+txpool with domain in flowContext
* [NOD-1500] Replaced dag+txpool with domain in flowContext
* [NOD-1500] Converters: domain objects from/to appmessage
* [NOD-1500] Convert hashes to DomainHashes in appmessages
* [NOD-1500] Remove references to daghash in dagconfig
* [NOD-1500] Fixed all appmessage usages of hashes
* [NOD-1500] Update all RPC to use domain
* [NOD-1500] Big chunk of protocol flows re-wired to domain
* [NOD-1500] Finished re-wiring all protocol flows to new Domain
* [NOD-1500] Fix some mempool and kaspaminer compilation errors
* [NOD-1500] Deleted util/{block,tx,daghash} and dbaccess
* [NOD-1500] util.CoinbaseTransactionIndex -> transactionhelper.CoinbaseTransactionIndex
* [NOD-1500] Fix txsigner
* [NOD-1500] Removed all references to util/subnetworkid
* [NOD-1500] Update RpcGetBlock related messages
* [NOD-1500] Many more compilation fixes
* [NOD-1500] Return full list of missing blocks for orphan resolution
* [NOD-1500] Fixed handshake
* [NOD-1500] Fixed flowcontext compilation
* [NOD-1500] Update users of StartIBDIfRequired to handle error
* [NOD-1500] Removed some more fields from RPC
* [NOD-1500] Fix the getBlockTemplate flow
* [NOD-1500] Fix HandleGetCurrentNetwork
* [NOD-1500] Remove redundant code
* [NOD-1500] Remove obsolete notifications
* [NOD-1500] Split MiningManager and Consensus to separate fields in Domain
* [NOD-1500] Update two wrong references to location of txscript
* [NOD-1500] Added comments
* [NOD-1500] Fix some tests
* [NOD-1500] Removed serialization logic from appmessage
* [NOD-1500] Rename database/serialization/messages.proto to dbobjects.proto
* [NOD-1500] Delete integration tests
* [NOD-1500] Remove txsort
* [NOD-1500] Fix tiny bug
* [NOD-1500] Remove rogue dependancy on bchd
* [NOD-1500] Some stylistic fixes
2020-11-08 11:55:54 +02:00
Ori Newman
e3be67c3c7
[NOD-1516] Implement isBlockInHeaderPruningPointFuture ( #1006 )
2020-11-05 14:18:50 +02:00
Ori Newman
215ab512cd
[NOD-1515] Allow to process pruning point while in SyncStateMissingUTXOSet ( #1005 )
2020-11-05 12:39:39 +02:00
stasatdaglabs
d0fc728c23
[NOD-1514] Allow full block validation during IBD. ( #1004 )
2020-11-05 12:18:16 +02:00
stasatdaglabs
1c710daf98
[NOD-1501] Finish implementing GetSyncInfo ( #1002 )
...
* [NOD-1501] Rename IsBlockInHeaderPruningPointFutureAndVirtualPast to IsBlockInHeaderPruningPointFuture.
* [NOD-1501] Create syncinfo.go.
* [NOD-1501] Implement resolveSyncState.
* [NOD-1501] Fix ChooseSelectedParent.
* [NOD-1501] Fix merge errors.
* [NOD-1501] Finish implementing getSyncState.
* [NOD-1501] Fix bad equality check.
* [NOD-1501] Fix merge errors.
* [NOD-1501] Pass targetTimePerBlock as int64 milliseconds.
2020-11-05 11:50:59 +02:00
Ori Newman
5566aaf95a
[NOD-1512] Implement utxo deserialization ( #1003 )
...
* [NOD-1512] Implement UTXO set deserialization
* [NOD-1512] Remove redundant file
* [NOD-1512] Don't use big endian for serialization
* [NOD-1512] Use Read/Write element
* [NOD-1512] Unexport ReadElement
* [NOD-1512] Fix StageVirtualUTXOSet
* [NOD-1512] Get rid of dagParams in consensusStateManager
* [NOD-1512] Get rid of dagParams in consensusStateManager
2020-11-05 10:59:49 +02:00
Ori Newman
52c73d3a08
[NOD-1511] Implement missingBlockBodyHashes ( #1000 )
...
* [NOD-1511] Implement missingBlockBodyHashes
* [NOD-1511] Rename selectedparentiterator.go to blockiterator.go
* [NOD-1511] Fix condition
* [NOD-1511] Simplify missingBlocks logic
2020-11-05 10:11:42 +02:00
Ori Newman
baf8d25656
[NOD-1510] Update reachability reindex root based on header tips selected tip ( #1001 )
2020-11-04 16:55:59 +02:00
Ori Newman
2eb0d946e5
[NOD-1509] Implement StageVirtualUTXOSet ( #999 )
...
* [NOD-1509] Implement StageVirtualUTXODiff
* [NOD-1509] Fix HasUTXOByOutpoint, get rid of database.ErrNotFound, and fix errors
2020-11-04 16:30:08 +02:00
Elichai Turkel
ce95c6dc9d
[NOD-1464] difficulty refactoring ( #986 )
...
* Refactor the Difficulty adjastment to the new design
* Add the necessary things to the factory for the DAA constructor
* Add missing dagParams to difficultymanager constructor
* Use DAGTraversal for blueBlockWindow, and don't store PowMax compactBits
2020-11-04 11:35:29 +02:00
Elichai Turkel
6a46cb2be6
[NOD-1503] Pruning Manager ( #994 )
...
* Update pruningmanager interface
* Add a ProtoUTXOSet to hashserialization
* Update miningmanager with all the necessary stores and managers
* Implement mining manager
* Prune P.AC not in V.Past
* PruningManager fix all review comments
2020-11-04 10:29:45 +02:00
Ori Newman
f06dc7ea90
[NOD-1508] Implement VirtualUTXOSetIterator ( #998 )
2020-11-03 18:38:57 +02:00
Ori Newman
7f2ef708a6
[NOD-1506] Implement SetPruningPointUTXOSet ( #996 )
...
* [NOD-1506] Implement SetPruningPointUTXOSet
* [NOD-1506] Rename ErrHeaderlessBlockInIBD->ErrMissingBlockHeaderInIBD
* [NOD-1506] Change virtualHeaderHash
2020-11-03 18:24:45 +02:00
Ori Newman
4ab2e0d498
[NOD-1507] Implement model.DBTransaction ( #997 )
2020-11-03 18:08:02 +02:00
stasatdaglabs
ca9161024f
[NOD-1501] Add SyncManager-related interfaces ( #995 )
...
* [NOD-1501] Add logAndMeasureExecutionTime to SyncManager methods.
* [NOD-1501] Implement antiPastHashesBetween.
* [NOD-1501] Implement createBlockLocator.
* [NOD-1501] Implement findNextBlockLocatorBoundaries.
* [NOD-1501] Rename IsBlockHeaderInPruningPointFutureAndVirtualPast to IsBlockInHeaderPruningPointFutureAndVirtualPast.
* [NOD-1501] Add GetSyncInfo.
* [NOD-1501] Make go vet happy.
* [NOD-1501] Rename sync states.
* [NOD-1501] Move maxHashesInGetHashesBetween to antipast.go.
* [NOD-1501] Rename maxHashesInAntiPastHashesBetween.
* [NOD-1501] Implement LowestChainBlockAboveOrEqualToBlueScore.
* [NOD-1501] Fix bad variable name.
* [NOD-1501] Fix LowestChainBlockAboveOrEqualToBlueScore.
* [NOD-1501] Clarify LowestChainBlockAboveOrEqualToBlueScore.
2020-11-03 17:08:52 +02:00
Svarog
8dc246a2a7
[NOD-1498] Consensus State Store ( #992 )
...
* [NOD-1420] Start working on ConsensusStateManager. Might be redundant due to recent changes
* [NOD-1420] Convert model to externalapi in utxo_algerbra helpers
* [NOD-1420] Add UTXO-diff algebra
* [NOD-1420] Prepare skeleton of calculateAcceptanceDataAndMultiset
* [NOD-1420] Added skeleton for AddBlockToVirtual
* [NOD-1420] Implement PopulateTransactionWithUTXOEntries
* [NOD-1420] Implement restorePastUTXO
* [NOD-1420] Implement finality check
* [NOD-1420] Move handling of tips to consensusStateManager
* [NOD-1420] Implement calculateAcceptanceDataAndMultiset
* [NOD-1420] Start implementing resolveBlockStatus
* [NOD-1420] Implement resolveBlockStatus
* [NOD-1420] Update related fields in end of resolveSingleBlockStatus
* [NOD-1420] Start working on selectVirtualParents
* [NOD-1420] Implemented BlockHeap
* [NOD-1420] Implement selectVirtualParents
* [NOD-1420] Implement updateVirtual
* [NOD-1420] Added comments where they were missing
* [NOD-1420] Place all consensusStateManager functions in correct files
* [NOD-1420] Return the missing outpoints from populateTransactionWithUTXOEntriesFromVirtualOrDiff
* [NOD-1420] Outpoint.ID -> TransactionID
* [NOD-1420] Fix Stringer tests
* [NOD-1420] Copy hash.FromString into utils
* [NOD-1420] SetParents should return an error
* [NOD-1420] Remove all reachabilityManager references from consensusStateManager
* [NOD-1420] Remove VirtualData. Get the info from the stores where needed
* [NOD-1420] Invert parameters to IsAncestorOf
* [NOD-1420] Use model.AcceptanceData
* [NOD-1420] Don't return accumulatedMassBefore in error cases
* [NOD-1420] Don't expect store functions to return nil when the requested data was found - instead add HasXXX functions
* [NOD-1420] addTransactionToMultiset sets isCoinbase properly
* [NOD-1420] expected hash string length is externalapi.DomainHashSize * 2
* [NOD-1420] Rename reachabilityTree -> reachabilityManager + updateReindexRoot if isNextVirtualSelectedParent
* [NOD-1420] ValidateCoinbaseTransaction in csm.verifyAndBuildUTXO
* [NOD-1420] Re-write HAsUTXODiffChild
* [NOD-1420] delete past_utxo.go.bak
* [NOD-1420] Implement validateCoinbaseTransaction in CSM
* [NOD-1420] Imlemented missing functionality in ValidateTransactionAndPopulateWithConsensusData
* [NOD-1420] Moved merge depth logic to MergeDepthManager
* [NOD-1420] Add logs
* [NOD-1498] Implement tips-related methods of consensusStateStore
* [NOD-1498] Implement consensusStateStore virtualDiffParents functionality
* [NOD-1498] Implement ConsensusStateStore UTXO-Set part
* [NOD-1498] Implement rest of consensusStateStore methods
* [NOD-1498] Use io.ReadFull instead of r.Read
* [NOD-1498] Added comments
* [NOD-1498] Move utxo serialization to protobufs
* [NOD-1498] Add comments
* [NOD-1498] Minor fixes in ConsensusStateStore
* [NOD-1498] Use empty bucket key + simplify serializeUTXOEntry
2020-11-03 14:42:26 +02:00
Ori Newman
c7f2de73df
[NOD-1502] Implement RestorePastUTXOSetIterator ( #993 )
...
* [NOD-1502] Implement RestorePastUTXOSetIterator
* [NOD-1502] Rename newUtxoSetIterator->newUTXOSetIterator
2020-11-02 18:36:55 +02:00
Ori Newman
3f979399b1
[NOD-1478] Implement coinbase manager ( #990 )
...
* [NOD-1478] Implement coinbase manager
* [NOD-1478] Add arguments to factory
* [NOD-1478] Remove validation functions from CoinbaseManager
* [NOD-1478] Remove ValidateCoinbaseTransactionInContext
* [NOD-1478] Add consts to constants package
* [NOD-1478] Move scriptPublicKeyMaxLength to constants.go
2020-11-02 16:51:47 +02:00
Ori Newman
2abd4a274b
[NOD-1496] Implement headers only verification ( #987 )
...
* [NOD-1496] Implement headers only verification
* [NOD-1496] Add checkParentsExist
* [NOD-1496] Stage block statuses in block processor
* [NOD-1496] Rename AddBlock->AddHeaderTip
* [NOD-1496] Return early from validateAndInsertBlock on header only and put ValidateProofOfWorkAndDifficulty inside validateBlock
2020-11-02 16:30:59 +02:00
Svarog
c5707f64dc
[NOD-1420] Implement consensusStateManager ( #985 )
...
* [NOD-1420] Start working on ConsensusStateManager. Might be redundant due to recent changes
* [NOD-1420] Convert model to externalapi in utxo_algerbra helpers
* [NOD-1420] Add UTXO-diff algebra
* [NOD-1420] Prepare skeleton of calculateAcceptanceDataAndMultiset
* [NOD-1420] Added skeleton for AddBlockToVirtual
* [NOD-1420] Implement PopulateTransactionWithUTXOEntries
* [NOD-1420] Implement restorePastUTXO
* [NOD-1420] Implement finality check
* [NOD-1420] Move handling of tips to consensusStateManager
* [NOD-1420] Implement calculateAcceptanceDataAndMultiset
* [NOD-1420] Start implementing resolveBlockStatus
* [NOD-1420] Implement resolveBlockStatus
* [NOD-1420] Update related fields in end of resolveSingleBlockStatus
* [NOD-1420] Start working on selectVirtualParents
* [NOD-1420] Implemented BlockHeap
* [NOD-1420] Implement selectVirtualParents
* [NOD-1420] Implement updateVirtual
* [NOD-1420] Added comments where they were missing
* [NOD-1420] Place all consensusStateManager functions in correct files
* [NOD-1420] Return the missing outpoints from populateTransactionWithUTXOEntriesFromVirtualOrDiff
* [NOD-1420] Outpoint.ID -> TransactionID
* [NOD-1420] Fix Stringer tests
* [NOD-1420] Copy hash.FromString into utils
* [NOD-1420] SetParents should return an error
* [NOD-1420] Remove all reachabilityManager references from consensusStateManager
* [NOD-1420] Remove VirtualData. Get the info from the stores where needed
* [NOD-1420] Invert parameters to IsAncestorOf
* [NOD-1420] Use model.AcceptanceData
* [NOD-1420] Don't return accumulatedMassBefore in error cases
* [NOD-1420] Don't expect store functions to return nil when the requested data was found - instead add HasXXX functions
* [NOD-1420] addTransactionToMultiset sets isCoinbase properly
* [NOD-1420] expected hash string length is externalapi.DomainHashSize * 2
* [NOD-1420] Rename reachabilityTree -> reachabilityManager + updateReindexRoot if isNextVirtualSelectedParent
* [NOD-1420] ValidateCoinbaseTransaction in csm.verifyAndBuildUTXO
* [NOD-1420] Re-write HAsUTXODiffChild
* [NOD-1420] delete past_utxo.go.bak
* [NOD-1420] Implement validateCoinbaseTransaction in CSM
* [NOD-1420] Imlemented missing functionality in ValidateTransactionAndPopulateWithConsensusData
* [NOD-1420] Moved merge depth logic to MergeDepthManager
* [NOD-1420] Add logs
2020-11-02 16:18:53 +02:00
stasatdaglabs
62bb841e89
[NOD-1497] Add additional methods to consensus' external API ( #991 )
...
* [NOD-1497] Add missing APIs.
* [NOD-1497] Rename some new APIs.
* [NOD-1497] Implement getBlock and getBlockHeader.
* [NOD-1497] Implement getPruningPointUTXOSet.
* [NOD-1497] Implement getSelectedParent.
* [NOD-1497] Implement getBlockInfo.
* [NOD-1497] Fix merge errors.
* [NOD-1497] Implement syncManager-related functions in consensus.
* [NOD-1497] Implement SetPruningPointUTXOSet in consensus.
* [NOD-1497] Add dependency from syncManager to dagTraversalManager.
* [NOD-1497] Move IsBlockHeaderInPruningPointFutureAndVirtualPast to syncManager.
* [NOD-1497] Rename lowHigh to lowHash.
2020-11-02 13:24:03 +02:00
stasatdaglabs
23cccb6396
[NOD-1497] Add additional methods to consensus external API ( #989 )
...
* [NOD-1497] Add missing APIs.
* [NOD-1497] Rename some new APIs.
* [NOD-1497] Add fields to BlockInfo.
* [NOD-1497] Add comments over BlockInfo and BlockLocator.
* [NOD-1497] Rename GetSelectedParent to GetVirtualSelectedParent.
* [NOD-1497] Add SetPruningPointUTXOSet.
* [NOD-1497] Rename GetHashesAbovePruningPoint to GetMissingBlockBodyHashes.
* [NOD-1497] Fix rename error.
2020-11-02 12:05:33 +02:00
Elichai Turkel
87ad9dfc59
[NOD-1423] Refactor the miner and mempool ( #981 )
...
* Make TransactionOutputEstimatedSerializedSize public
* Update the mempool interface
* Refactor the mempool to the new design
* refactor txselection and blocktemplatebuilder to the new design
* Update the mining manager
* Update the MiningManager factory
* mempool fix requested changed
2020-11-01 18:27:49 +02:00
Ori Newman
c59adaa4db
[NOD-1494] Remove transactions from data store delete ( #984 )
...
* [NOD-1494] Remove transactions from data store delete
* [NOD-1494] Remove redundant underscores
2020-10-29 18:15:11 +02:00
Ori Newman
14fbe50636
[NOD-1493] Implement serialization in data stores ( #983 )
...
* [NOD-1493] Implement serialization in data stores
* [NOD-1493] Remove redundant functions
* [NOD-1493] Use bluesAnticoneSizesToDBBluesAnticoneSizes inside BlockGHOSTDAGDataToDBBlockGHOSTDAGData
2020-10-29 17:39:35 +02:00
Elichai Turkel
d3ede3a46f
Add new ErrMissingTxOut and ErrInvalidTransactionsInNewBlock errors ( #972 )
...
* Add new ErrMissingTxOut error
* Add tests for ruleError wrapping
* Update consensus to use new ErrMissingTxOut type where appropriate
* Add new ErrInvalidTransactionsInNewBlock error
* Add wrapping tests for ErrInvalidTransactionsInNewBlock
* Fix Review suggestions
* Fix broken serialization(add pointer redirection)
2020-10-29 16:59:00 +02:00
stasatdaglabs
01c7c67aed
[NOD-1493] Implement serialization in AcceptanceDataStore, BlockRelationStore, BlockStatusStore, and BlockStore ( #982 )
...
* [NOD-1493] Add DbHashToDomainHash and DomainHashToDbHash.
* [NOD-1493] Use DbHashToDomainHash and DomainHashToDbHash.
* [NOD-1493] Begin implementing serializeAcceptanceData.
* [NOD-1493] Extract serialization blockHeader logic to serialization.
* [NOD-1493] Extract serialization acceptance data logic to serialization.
* [NOD-1493] Implement acceptance data serialization/deserialization.
* [NOD-1493] Implement transaction serialization/deserialization.
* [NOD-1493] Implement outpoint serialization/deserialization.
* [NOD-1493] Implement transaction ID serialization/deserialization.
* [NOD-1493] Implement subnetwork ID serialization/deserialization.
* [NOD-1493] Implement block relation serialization/deserialization.
* [NOD-1493] Implement block status serialization/deserialization.
* [NOD-1493] Implement block serialization/deserialization.
* [NOD-1493] Implement serialization/deserialization in BlockRelationStore.
* [NOD-1493] Implement serialization/deserialization in BlockStatusStore.
* [NOD-1493] Implement serialization/deserialization in BlockStore.
* [NOD-1493] Make go vet happy.
* [NOD-1493] Use DomainHashesToDbHashes.
2020-10-29 16:49:05 +02:00
Elichai Turkel
971d50b684
[NOD-1418] Implement DAG Traversal ( #953 )
...
* Implement DAG Traversal
* Update the DAGTraversalManager interface
2020-10-29 16:48:41 +02:00
stasatdaglabs
9cf1557c37
[NOD-1493] Implement types for serialization ( #980 )
...
* [NOD-1493] Add DbAcceptanceData.
* [NOD-1493] Add DbBlockRelations.
* [NOD-1493] Add DbBlockStatus.
* [NOD-1493] Add DbBlockGhostdagData.
* [NOD-1493] Add DbMultiset.
* [NOD-1493] Add DbPruningPoint.
* [NOD-1493] Add DbUtxoSet.
* [NOD-1493] Add DbReachabilityData.
* [NOD-1493] Add DbReachabilityReindexRoot.
* [NOD-1493] Add DbUtxoDiff.
* [NOD-1493] Add DbUtxoDiffChild.
* [NOD-1493] Make sure everything is lowercase.
* [NOD-1493] Add DbHash.
* [NOD-1493] Fix BlockHeaderStore.
2020-10-29 12:18:18 +02:00
stasatdaglabs
126e2e49bb
[NOD-1493] Implement serialization/deserialization inside BlockHeaderStore ( #979 )
...
* [NOD-1492] Rename dbmanager to database.
* [NOD-1492] Write messages.proto for DbBlock and DbTransaction.
* [NOD-1492] Implement serializeHeader.
* [NOD-1492] Implement deserializeHeader.
2020-10-29 11:15:14 +02:00
stasatdaglabs
c88266afed
[NOD-1492] Implement GHOSTDAGDataStore, MultisetStore, PruningStore, ReachabilityDataStore, and UTXODiffStore ( #977 )
...
* [NOD-1492] Implement GHOSTDAGDataStore.
* [NOD-1492] Implement MultisetStore.
* [NOD-1492] Implement PruningStore.
* [NOD-1492] Implement ReachabilityDataStore.
* [NOD-1492] Implement UTXODiffStore.
* [NOD-1492] Pluralize the multiset bucket name.
* [NOD-1492] In PruningPoint and PruningPointSerializedUTXOSet, don't use IsStaged.
* [NOD-1492] Leave pruning point serialization/deserialization for future implementation.
* [NOD-1492] Leave reachability reindex root serialization/deserialization for future implementation.
* [NOD-1492] Leave utxo diff child serialization/deserialization for future implementation.
* [NOD-1492] Add Serialize() to Multiset.
* [NOD-1492] Also check serializedUTXOSetStaging in IsStaged.
* [NOD-1492] Also check utxoDiffChildStaging in IsStaged.
* [NOD-1492] Fix UTXODiffStore.Delete.
2020-10-28 17:13:14 +02:00
Ori Newman
7402f3fb0e
[NOD-1492] Implement some data stores ( #978 )
...
* [NOD-1492] Implement some data stores
* [NOD-1492] Remove pointers to acceptance data
* [NOD-1492] Fix receiver names
* [NOD-1492] Implement delete for acceptanceDataStore
* [NOD-1492] In blockRelationStore rename IsAnythingStaged to IsStaged
* [NOD-1492] Rename bucket name
2020-10-28 16:30:55 +02:00
Ori Newman
eae8bce941
[NOD-1491] Implement block headers store ( #976 )
...
* [NOD-1491] Implement block headers store
* [NOD-1491] Don't commit transaction and delete from staging too
2020-10-28 14:34:00 +02:00
Ori Newman
8c0275421a
[NOD-1490] Implement database manager ( #975 )
2020-10-28 12:59:34 +02:00
Ori Newman
a436b30ebf
[NOD-1417] Implement reachability ( #964 )
...
* [NOD-1417] Implement reachability
* [NOD-1417] Rename package name
* [NOD-1417] Add UpdateReindexRoot to interface api
* [NOD-1417] Remove redundant type
* [NOD-1417] Rename reachabilityTreeManager/reachabilityTree to reachabilityManager
* [NOD-1417] Fix typo
* [NOD-1417] Remove redundant copyright message
* [NOD-1417] Fix comment
2020-10-28 12:19:50 +02:00
Ori Newman
a132f55302
[NOD-1477] Add selected parent to merge set ( #967 )
...
* [NOD-1477] Add selected parent to merge set
* [NOD-1469] Init BluesAnticoneSizes
* [NOD-1477] Undo changes in hash comparison
2020-10-28 11:44:08 +02:00
Ori Newman
be56fb7e8b
[NOD-1488] Get rid of dbaccess ( #973 )
...
* [NOD-1488] Get rid of dbaccess
* [NOD-1488] Rename dbwrapper to dbmanager
* [NOD-1488] Create DBWriter interface
* [NOD-1488] Fix block header store
* [NOD-1488] Rename dbwrapper.go to dbmanager.go
2020-10-28 11:34:06 +02:00
stasatdaglabs
4fbe130592
[NOD-1489] Add BlockHeaderStore ( #974 )
...
* [NOD-1489] Add BlockHeaderStore.
* [NOD-1489] Use BlockHeaderStore.
2020-10-28 10:35:18 +02:00
Ori Newman
ed6d8243ef
[NOD-1487] Implement dagtopology's IsAncestorOfAny and IsInSelectedParentChainOf ( #971 )
...
* [NOD-1487] Implement dagtopology's IsAncestorOfAny and IsInSelectedParentChainOf
* [NOD-1487] Fix IsInSelectedParentChainOf to use reachabilityTree
2020-10-27 17:46:30 +02:00
Ori Newman
03790ad8a2
[NOD-1469] Implement past median time ( #968 )
...
* [NOD-1469] Implement past median time
* [NOD-1469] Move BlueWindow to DAGTraversalManager
2020-10-27 17:45:47 +02:00
stasatdaglabs
97b5b0b875
[NOD-1416] Implement BlockProcessor. ( #969 )
...
* [NOD-1416] Add entry/exit logs to all the functions.
* [NOD-1416] Build some scaffolding inside BlockProcessor.
* [NOD-1416] Implement selectParentsForNewBlock.
* [NOD-1416] Implement validateBlock.
* [NOD-1476] Fix merge errors.
* [NOD-1416] Move buildBlock and validateAndInsertBlock to separate files.
* [NOD-1416] Begin implementing buildBlock.
* [NOD-1416] Implement newBlockDifficulty.
* [NOD-1416] Add skeletons for the rest of the buildBlock functions.
* [NOD-1416] Implement newBlockUTXOCommitment.
* [NOD-1416] Implement newBlockAcceptedIDMerkleRoot.
* [NOD-1416] Implement newBlockHashMerkleRoot.
* [NOD-1416] Fix bad function call.
* [NOD-1416] Implement validateHeaderAndProofOfWork and validateBody.
* [NOD-1416] Use ValidateProofOfWorkAndDifficulty.
* [NOD-1416] Finish validateAndInsertBlock.
* [NOD-1416] Implement newBlockHashMerkleRoot.
* [NOD-1416] Implement newBlockAcceptedIDMerkleRoot.
* [NOD-1416] Fix a comment.
* [NOD-1416] Implement newBlockCoinbaseTransaction.
* [NOD-1416] Add VirtualBlockHash.
* [NOD-1416] Add ParentHashes and SelectedParent to VirtualData().
* [NOD-1416] Make go vet happy.
* [NOD-1416] Implement discardAllChanges.
* [NOD-1416] Implement commitAllChanges.
* [NOD-1416] Fix factory.
* [NOD-1416] Make go vet happy.
* [NOD-1416] Format factory.
* [NOD-1416] Pass transactionsWithCoinbase to buildHeader.
* [NOD-1416] Call VirtualData() from buildHeader.
* [NOD-1416] Fix a typo.
* [NOD-1416] Fix in-out-of-context/header-body confusion.
* [NOD-1416] Extract LogAndMeasureExecutionTime.
* [NOD-1416] Add a comment about LogAndMeasureExecutionTime.
* [NOD-1416] Simplify discardAllChanges and commitAllChanges.
* [NOD-1416] If in-context validations fail, discard all changes and store the block with StatusInvalid.
* [NOD-1416] Add a comment above Store.
* [NOD-1416] Use errors.As instead of errors.Is.
2020-10-27 17:24:15 +02:00
Ori Newman
f62183473c
[NOD-1486] Make coinbase mass and size 0 ( #970 )
2020-10-27 17:14:02 +02:00