-
Notifications
You must be signed in to change notification settings - Fork 48
QML Load Snapshot Signet (160,000 height) #424
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
base: main
Are you sure you want to change the base?
Conversation
cb409e3
to
670ca05
Compare
With cb409e3 rebased and got rid off the extra options_mode settings which are not relevant for this evaluation. Also deleted the extra loadsnapshot.cpp file and instead added the load snapshot function in src/node/interfaces.cpp |
Should I be getting a binary specific for this issue? I tried loading a signet snapshot into the one for #421 but was unable to... |
670ca05
to
b77f7c1
Compare
With b77f7c1 minor tweaks to the src/node/interfaces.cpp snapshotload() function. It mimics the rpc call loadtxoutset from bitcoin/bitcoin repository Next will connect the loading to the progress bar |
b77f7c1
to
c59e557
Compare
with c59e557 Integrated the UI with the C++ backend, implementing a progress callback function to dynamically update the loading progress based on the number of coins processed. Touched src/validation.h and src/validation.cpp to extract the coin loading progress. Next: will update the "Loaded Snapshot" stack with the real info from the snapshot |
c59e557
to
e3f8c70
Compare
With e3f8c70 moved the load snapshot functionality from nodeModel to optionsModel since it make it easier to store the snapshot info and reduces redundant variable declarations. |
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.
With e3f8c70 moved the load snapshot functionality from nodeModel to optionsModel since it make it easier to store the snapshot info and reduces redundant variable declarations.
e3f8c70 is a regression because optionsmodel is not an appropriate place for this, and we are now violating the role of settings.json to store the state of a process.
NodeModel and AppMode are more appropriate places for this information. But the entire approach here is still a concept NACK as we are performing unecessary changes to validation and chainparams.
Ok I tested artefact#235 and functionality & UI seems to work. Didn't see block clock so couldn't verify easily. Adding some UI feedback below:
|
e3f8c70
to
90dc0dd
Compare
with 90dc0dd rebased over main and addressed @jarolrod concerns by reverting back to just a minimal integration of the loading snapshot functionality. @yashrajd I will address the UI issues next As a follow up will investigate how to access the snapshot verification progress Also looking into how to make the snapshot data persist and be available for display (i.e. snapshot block height, date, and merkle hash) |
For the chainparams the changes there are only temporary for evaluating and testing within this repo. I checked upstream and the signet snapshot has already been hardcoded so once our repo is synced the changes in chainparams.cpp can be discarded. |
90dc0dd
to
85592f5
Compare
with 85592f5 made the snapshot activation persist on node restart by making use of the interface with chain->hasAssumedValidChain Also changed the green-check icon size to 30 pix Next looking into how to extract the progress from the ActivateSnapshot process |
85592f5
to
955c65d
Compare
with 955c65d modified the snapshotLoad() function in src/node/interfaces.cpp and the initializeSnapshot() function in nodemodel.cpp to extract progress information using regular expressions. This design decision aimed to keep snapshot loading mechanisms self-contained. However, it looks like the use of Perhaps the way to go is to use the handler in src/node/interfaces_ui ... will explore that path then update |
955c65d
to
0eba513
Compare
with 0eba513 reverted back to minimal snapshot load functionality. Snapshot loading progress is still not were I want it to be so in the meantime replaced the progress bar with placeholder text. Also updated the snapshot info display. once successfully loaded, and I'm using the hardcoded info in |
0eba513
to
cd2ec69
Compare
With cd2ec69 added a section to keep track of snapshot loading, it is not ideal so will look for better ways to achieve it. Since the core functionality is there will ask for "pre-reviews" before un-drafting |
5d0756c
to
262bb03
Compare
with 5d0756c updated with 262bb03 updated Next looking into how to finesse the snapshot loading progress... |
eb923ff
to
68efab5
Compare
68efab5
to
109cf42
Compare
109cf42 rebased over main |
109cf42
to
cad966e
Compare
with cad966e rebased over main. Keeping this PR as draft until we get closer to the sync with upstream... |
cad966e
to
6c25cd7
Compare
with 6c25cd7 :
Will keep this as draft until we get closer to the sync with upstream |
6c25cd7
to
4e43df9
Compare
4e43df9 updates the following:
Once the CI completes will undraft since we are not exactly sure when the sync with upstream will happen. And this feature will be demoed at upcoming events. Feedback welcomed! |
4e43df9
to
bbbbf42
Compare
- This introduce the UI flow to load a AssumeUTXO snapshot - It modifies the connection settings - Adds a SnapshotSettings file, Icon, and modified progress bar. - Also it adds error page on snapshotloading failure
- Extend node interface with virtual functions for UTXO snapshot loading - Add signal mechanism to monitor snapshot loading progress - Include predefined signet UTXO dataset in chainparams for validation
- Add SnapshotQml class to encapsulate snapshot loading operations - Integrate QML properties for UTXO snapshot management - Wire up snapshot loading functionality with node interface
bbbbf42
to
e02f382
Compare
e02f382 rebased over main |
Open for review and testing only. Do not merge!
GUI Integration for UTXO Snapshot Loading
Overview
This PR adds initial GUI support for loading a
signet
UTXO snapshot at height 160,000, building on Bitcoin Core'sassumeutxo
infrastructure.What This PR Does
Implementation Details
Core Components Modified
src/node/interfaces.cpp
)snapshotLoad()
based on theloadtxoutset
RPCsrc/qml/models/nodemodel.cpp
)src/qml/components/SnapshotSettings.qml
)Key Design Decisions
assumeutxo
changesTesting Instructions
Ubuntu 22.04 Screenshots
Expected Behavior
Future Work
assumeutxo
changestestnet
andmainnet
)Notes for Reviewers
Snapshot Compatibility
signet
UTXO snapshotm_assumeutxo_data
(the changes there can be discarded once synced since
m_assumeutxo_data
is already hardcoded)feedback welcome on the approach and implementation details.