-
Notifications
You must be signed in to change notification settings - Fork 170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
P2P networking support for bootstrapping with UTXO set snapshot #1444
Merged
Merged
Changes from all commits
Commits
Show all changes
208 commits
Select commit
Hold shift + click to select a range
a5b7bf0
utxo.md started
kushti c25a267
Merge branch 'v4.0.15' of github.com:ergoplatform/ergo into utxo-set-…
kushti 1083fb9
snapshotsToKeep setting, UtxoSnapshotExample
kushti f5b6dd4
Merge branch 'v4.0.16' of github.com:ergoplatform/ergo into utxo-set-…
kushti 9fca93e
leafDataStats
kushti 5b0229d
utxoBootstrap flag
kushti b1226c6
UTXOSnapshotChunk rework #1
kushti 5673b2c
get tree stats via traversal
kushti d17b9e3
utxo snapshot entities rework #2
kushti 1b605dd
Merge branch 'scorex-ref-2' of github.com:ergoplatform/ergo into utxo…
kushti 956388d
estimatedTip parameter
kushti 72eba60
save snapshot condition
kushti dcab0a3
saveSnapshotIfNeeded stub
kushti 0838f27
Merge branch 'v4.0.17' of github.com:ergoplatform/ergo into utxo-set-…
kushti 72c91f9
comparing common subtrees experiment
kushti e6924aa
starting SnapshotsDb
kushti e4f569c
estimatedTip fix, postponing wallet scanning
kushti 5ded2ed
Merge branch 'v4.0.17' of github.com:ergoplatform/ergo into utxo-set-…
kushti d2ab04e
writeSnapshotsInfo / readSnapshotsInfo
kushti 229b55b
writeSnapshot / readManifestBytes / readSubtreeBytes
kushti 506776f
writing snapshots to the disk
kushti 84828c7
Merge branch 'v4.0.17' of github.com:ergoplatform/ergo into utxo-set-…
kushti 85f1a45
Merge branch 'v4.0.17' of github.com:ergoplatform/ergo into utxo-set-…
kushti 4b0aa89
pruneSnapshots
kushti 2d3aa31
calling prune()
kushti 8705e23
Merge branch 'v4.0.17' of github.com:ergoplatform/ergo into utxo-set-…
kushti cea355d
removing experimental manifests comparison code
kushti 8c47902
removing snapshotsToKeep setting
kushti 90060b9
BlockSection, comment for applyModifier
kushti 6b2a248
optimizing apply code in *Synchronizer actors
kushti a76d546
utxoNetworkingSupported
kushti 0352912
Implement getSnapshotsInfo message
knizhnik 58d9a1b
Add GetSnapshotsInfoSpec/SnapshotsInfoSpec
knizhnik 2d3f4d9
fromLatestSnapshot
kushti b76f5af
Merge branch 'v4.0.17' of github.com:ergoplatform/ergo into utxo-set-…
kushti 80ed884
Handle GetSnapshotsInfo message in ErgoNodeViewSycnhronizer
knizhnik 22d9adb
Merge branch 'utxo-snapshot-networking' of github.com:ergoplatform/er…
kushti 7c743dc
fixing messages sizes
kushti 3e875cc
merging with remote
kushti f9c6ead
ChangedState
kushti 26f4f3c
Fix sending GetSnapshotsInfo message
knizhnik 6c63fa7
fixing GetSnapshotInfo
kushti 84bd7a3
Merge pull request #1521 from ergoplatform/i1517
kushti 78dc2de
merging w. master
kushti 2d21df5
merging with parent branch
kushti 58ec522
merging w. remote
kushti a77205f
fixing getsnapshot processing
kushti f37c72e
Add GetManifest/GetSnapshotChunk messages
knizhnik 427aec2
Fix matching messages in msgHandlers
knizhnik a405038
slicedTree, simplifying tests
kushti 71e20da
increased manifest and chunk message size limits
kushti 31a0b3d
Merge pull request #1571 from ergoplatform/i1552
kushti 333e56e
merging w. 4.0.32
kushti 1c69cde
merging w. 4.0.35 candidate
kushti 52794bc
merging with ENVS refactoring
kushti 31eb791
Merge branch 'v4.0.37' of github.com:ergoplatform/ergo into utxo-set-…
kushti 5082d0d
merging w. 4.0.37
kushti c6a6de1
Merge branch 'v4.0.37' of github.com:ergoplatform/ergo into utxo-set-…
kushti 3f73ad7
UtxoSetNetworkingFilter
kushti cf06782
merging w. remote
kushti 007ad88
fixing imports
kushti 12c7fde
Merge branch 'v4.0.39' of github.com:ergoplatform/ergo into utxo-set-…
kushti d6322ca
merging w. 4.0.37
kushti c60a69b
MapPimp moved to score.core.utils
kushti f33b218
cosmetic improvements in nextModifiersToDownload
kushti a7cce4d
synthetic snapshotsinfo id, requesting snapshotsinfo from nextModifie…
kushti 537eebc
ElementPartitioner.distribute signature changed
kushti 5ded307
merging w. 5.0.4
kushti de846ec
Merge branch 'v5.0.4' of github.com:ergoplatform/ergo into utxo-set-b…
kushti d961daa
new sections in EIP draft
kushti b9284c2
trying to read snapshot on start if state is empty
kushti 6aaeb27
log.info instead of println
kushti 26047e9
Merge branch 'v5.0.4' of github.com:ergoplatform/ergo into utxo-set-b…
kushti b2a52d8
sectionIdsWithNoProof
kushti 035b43a
trait FullBlockPruningProcessor
kushti e3e2c59
estimatedTip parameter removed from nextModifiersToDownload
kushti 6369ecb
merging w. utxo-set-bootstrapping
kushti a682d75
Merge pull request #1514 from ergoplatform/utxo-snapshot-networking
kushti e613f93
requestSnapshotInfo
kushti 346c8ab
requestsManifest, processSnapshotsInfo, checkUtxoSetManifests
kushti e0595b7
finishing checkUtxoSetManifests
kushti 593cfe4
requestUtxoSetChunk , processManifest
kushti 80f87e7
processUtxoSnapshotChunk
kushti 60d66e2
InitStateFromSnapshot
kushti b13961c
Merge branch 'v5.0.5' of github.com:ergoplatform/ergo into utxo-set-b…
kushti 20b5437
more log output
kushti 9781ef2
fixin init issues
kushti 61331b5
manifestChosen removed, comment added
kushti db5dd1a
UtxoSetSnapshotPersistence, more comments, testing section in doc
kushti 94ff33e
utxo set snapshot filter test
kushti 5f059df
known peers in sync tracker
kushti b387aa6
log in sendSnapshotsInfo
kushti 438bd7d
messageHandlers fixed in ErgoApp, Application trait removed
kushti 00fd66f
fixing basicSpecs, increased max size for SnapshotsInfo
kushti b6962c0
checkUtxoSetManifests
kushti 637c5c8
getSnapshotInfo, getManifest, getUtxoSnapshotChunk moved to UtxoSetSn…
kushti edbb1c7
updating snapshots info on pruneSnapshots
kushti 42bf44b
downloading latest snapshot
kushti 605c77d
debug log on sending out chunks
kushti e643271
requestMoreChunksIfNeeded
kushti e2d0ba0
moving isGenesis to reader
kushti 6ce1111
utxoSnapshotApplied
kushti 381e281
UtxoSetSnapshotDownloadPlan, writeDownloadPlanToTheDb, readDownloadPl…
kushti c22a4a4
registerManifestToDownload, getUtxoSetSnapshotDownloadPlan
kushti 566780c
persistence for utxo set snapshot chunks
kushti 9b2d5f6
InitStateFromSnapshot not passing data
kushti 85864ef
createPersistentProver
kushti 484c037
polishing createPersistentProver, initial version of InitStateFromSna…
kushti f96dc1f
writing metadata to state db
kushti 9f31fab
UtxoSetSnapshotProcessorSpecification, downloadedChunksIterator
kushti 5ea4969
downloading from multiple peers
kushti 37537d4
no persistence for downloading plan, logging improvs
kushti 7fd67c1
re-requesting non-delivered utxo set chunks via delivery tracker, do …
kushti 48c0a56
first real test in UtxoSetSnapshotProcessorSpecification
kushti 51ece26
downloadedChunksIterator & createPersistentProver covered in test
kushti 6bb08d8
bigger state size in test
kushti dc69ee2
fixing proxy nodes serialization
kushti bd9f697
redownloading chunk fixed
kushti 5dfe30d
Merge branch 'v5.0.5' of github.com:ergoplatform/ergo into utxo-set-b…
kushti 23df49c
warning on double state application attempt
kushti dbf8d49
downloadPlanOpt, tweaking downloading params
kushti 022855d
MinSnapshots = 2, more debug logging
kushti d30be43
logging peers chunks will be downloaded from
kushti 5c70a2c
clearing availableManifests, scaladoc for it
kushti 9f10438
fixing duplicates in availableManifests
kushti f22380c
fixing duplicates in availableManifests
kushti 4dca828
fixing sectionIdsWithNoProof def
kushti a5b7cf9
ProxyInternalProverNode parameter names fix, ScalaDoc
kushti 41f7aa2
ProxyInternalProverNode scaladoc
kushti 695efec
nodeKey => nodeLabel, more scaladoc in VersionedLDBAVLStorage
kushti 572a80f
Merge branch 'v5.0.5' of github.com:ergoplatform/ergo into utxo-set-b…
kushti cfc37fb
fromSnapshot removed
kushti ebdb513
unused code for state recovering removed
kushti 6b130da
UtxoSnapshotChunk removed
kushti 13068e3
UTXOSnapshotManifest removed
kushti 77b774c
PoPoWProof removal, ModifierTypeId trait
kushti e840c1b
Merge branch 'master' of github.com:ergoplatform/ergo into utxo-set-b…
kushti e7c4983
Merge branch 'master' of github.com:ergoplatform/ergo into utxo-set-b…
kushti f153c66
ScalaDocs in VersionedLDBAVLStorage
kushti 17142c5
Merge branch 'master' of github.com:ergoplatform/ergo into utxo-set-b…
kushti 98e6c97
extracting recreate to VersionedLDBAVLStorage object
kushti 4289417
Merge branch 'master' of github.com:ergoplatform/ergo into utxo-set-b…
kushti 0ba48cc
penalizing peer for sending wrong bytes
kushti 7ef0fbe
merging w. master
kushti df13aff
minor styling improvements
kushti bdac932
NetworkObjectTypeId -> ModifierTypeId, ScalaDoc
kushti 4ba17f2
ScalaDoc for HF in VersionedLDBAVLStorage
kushti b28f00a
merging w. 5.0.7
kushti 24d9728
StateTreeParameters replacing instantiations
kushti 96bd7c2
importing some changes from nipopow-bootstrapping
kushti 09bdb67
SnapshotsInfoSpecification
kushti 8612322
writeSnapshot temporal rework, unused methods removed from SnapshotsDb
kushti f988d35
merging w. 5.0.7
kushti 1707790
merging with master
kushti 2da650a
more elegant solution for topNodeKey / topNodeHeight
kushti 3059103
storingUtxoSnapshots setting
kushti 7803bec
storing from snapshot
kushti 33fe159
fixing test
kushti 3aa3281
dump in Future, code cleaning
kushti 2c83233
moving Future call to saveSnapshotIfNeeded
kushti 5c1f825
ErgoSerializer, scaladoc
kushti 3bfbca7
removing writeDownloadPlanToTheDb
kushti 31b9641
merging w. master
kushti e12bc76
merging most of biggest changes from preparation branch
kushti d4b0603
importing DiffSer and comments from preparation branch
kushti 31296c6
Merge branch 'master' of github.com:ergoplatform/ergo into utxo-set-b…
kushti a5b6531
SnapshotsInfoSerializer
kushti f067833
pruneSnapshots considers num of snapshots to store setting
kushti a1b44f7
test for pruning
kushti 0d86318
scaladoc in SnapshotsDb
kushti 2f539cc
constants in state made protected, removing unused vals in ErgoStateR…
kushti c1c0922
UtxoSetSnapshotPersistence scaladoc
kushti 583ecc0
expectedRootHash
kushti ccfa678
pulling changes from preparation
kushti 7778623
merging w 5.0.11
kushti 2c8a8bb
remove manifests for height if contradictions are found
kushti 7e12ac7
UtxoSettings
kushti 6db2c62
fixing MinSnapshots in checkUtxoSetManifests
kushti 111b881
BlockSectionTypeId / AuxiliaryTypeId
kushti f919805
BlockSectionThreshold / isBlockSection
kushti 3aa87db
ManifestTypeId, checking if utxo set snapshot chunk was requested
kushti 724958a
eliminating BatchAVLProverSerializer usages, spam manifest check
kushti a545164
polishing requestMoreChunksIfNeeded
kushti 84b79e9
merging w. 5.0.12
kushti 957429b
matching download plan in processUtxoSnapshotChunk
kushti b59e04f
bestHeaderIdAtHeight.get fixed
kushti 95d2168
_utxoSnapshotApplied made private
kushti 57f1010
removing unused code #1
kushti ed8b416
removing unused code #2
kushti b73ef27
fixes in NetworkObjectTypeId hierarchy, fix in nodeConfigurationReader
kushti 9be0153
close #1991: LDBKVStore.insert for pairs eliminated
kushti fd35b3e
5.0.12 todo removed
kushti 74ef9d6
handling empty peers in requestDownload, scaladoc fixes
kushti 0482fc7
handling empty peers case in distribute, more scaladoc
kushti fad8784
peersToDownload added to download plan
kushti 178bd2d
code cleaning 1
kushti 54f601c
_utxoSnapshotApplied removed, startingTime removed from UtxoSetSnapsh…
kushti 4cc7d55
UtxoSetSnapshotDownloadPlan scaladoc
kushti 133f82d
externalizing UtxoSetSnapshotDownloadPlan
kushti 4fcb85b
UtxoSetSnapshotProcessor cleanup and scaladocs
kushti f635b37
more code polishing
kushti eb1b033
Merge branch 'utxo-set-bootstrapping' of github.com:ergoplatform/ergo…
kushti 946e70d
Merge pull request #1992 from ergoplatform/i1991
kushti 1feac92
emptyArrayOfByteArray
kushti f4b2654
manifest verification, comments addressed
kushti a272ffc
utxo-set-bootstrapping: typos
aslesarenko f3d2a5d
merging w. 5.0.12
kushti e63ea9b
Merge branch 'utxo-set-bootstrapping' of github.com:ergoplatform/ergo…
kushti File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't it be toByteExact?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, by construction AVL+ tree has height <= 127 , then manifest has the same limitation also. Need to fix manifest in scrypto about that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but it makes more assumption about input data. If however there is a mistake in the data, the silent overflow will lead to hard to localize bugs. Why not to do checks here? It will not impact performance.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There MUST BE NOT mistakes here, if prover is having root height > 127 it can not work with the tree simply, forming bad manifest is very secondary issue then. Even more, height is much less than 127 always, there is a descriptive comment in scrypto about that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, I just curious why you think not checking overflow is better than checking?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because it could be more confusing actually for a reader to find a check for a thing which MUST NOT happen by construction. Conversion to int in some manifest / db classes is already confusing.