Enhanced Darkcoin Wallet UI

Status
Not open for further replies.

moli

Grizzled Member
Aug 5, 2014
3,255
1,830
1,183
moli I think -zapwallettxes and -reindex are kind of... perpendicular so to say.
-zapwallettxes - clean any txes known by your wallet and rediscover them by rescanning blockchain (either filling back old data from a copy or not)
i.e. blockchain was ok, it's smth wrong with txes in your wallet
-reindex - recreate blockchain index
i.e. wallet is kind of ok but blockchain is broken
You mean they contradict each other?
I thought if we have a wallet that has conflicted tx's and a broken chain file... Then the command '-reindex -zapwallettxes' would fix both problems in one shot. No?
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
You mean they contradict each other?
I thought if we have a wallet that has conflicted tx's and a broken chain file... Then the command '-reindex -zapwallettxes' would fix both problems in one shot. No?
No, they don't contradict, it's completely fine to use them together and this should fix both issues but I mean it's quite a rare situation, no? I think in most cases it's a wallet issue (conflicted txes etc) and that requires zapping, in rare cases it's a fork or a major upgrade and that requires reindex. Both issues together... hmmm I don't really know...
To add more: reindex is a computationally/IO heavy operation while zapwallettxes (and rescan that happens automatically during zapping) uses way less resources i.e. take way less time to complete. So if I would have some problem and I had no idea what was broken (wallet or blockchain) I would start with rescan/zapping first and would use reindex only in cases when rescan didn't work.
But if we imagine someone who is "I don't care about time, just do whatever is possible to make it work" then this "combined" option could be ok too I guess ;)
 

AjM

Well-known Member
Foundation Member
Jun 23, 2014
1,341
575
283
Finland
Wallet should be intelligent and automatic enough so user does not need get involved and press
some mystical buttons if there is some problems ;)
 
  • Like
Reactions: moli

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
Wallet should be intelligent and automatic enough so user does not need get involved and press
some mystical buttons if there is some problems ;)
Yeh, and cars should be intelligent and automatic enough to drive user where he wants without user being involved in pushing some mystical pedals. That already started to happen but it took some time ;)
 
  • Like
Reactions: splawik21 and moli

AjM

Well-known Member
Foundation Member
Jun 23, 2014
1,341
575
283
Finland
Yeh, and cars should be intelligent and automatic enough to drive user where he wants without user being involved in pushing some mystical pedals. That already started to happen but it took some time ;)
Yep, i do not mind push the buttons, i love it, but newbie user do not.

Edit: typos
 

moli

Grizzled Member
Aug 5, 2014
3,255
1,830
1,183
No, they don't contradict, it's completely fine to use them together and this should fix both issues but I mean it's quite a rare situation, no? I think in most cases it's a wallet issue (conflicted txes etc) and that requires zapping, in rare cases it's a fork or a major upgrade and that requires reindex. Both issues together... hmmm I don't really know...
To add more: reindex is a computationally/IO heavy operation while zapwallettxes (and rescan that happens automatically during zapping) uses way less resources i.e. take way less time to complete. So if I would have some problem and I had no idea what was broken (wallet or blockchain) I would start with rescan/zapping first and would use reindex only in cases when rescan didn't work.
But if we imagine someone who is "I don't care about time, just do whatever is possible to make it work" then this "combined" option could be ok too I guess ;)
I've done this many times... Did a lot during testing... Just did it again with a few leftover testnet wallets last weekend so i was just wondering if there was a button for it... lol..

But AjM is right, we have whatchamacallit? "autonomous governance"... ? it's about time to have an "autonomous" wallet that's not controlled by humans and can be self-auto corrected! :)
 
  • Like
Reactions: AjM

stan.distortion

Well-known Member
Oct 30, 2014
911
530
163
No idea ;) The Qt interface is a separate part and interacts through clientmodel, walletmodel, etc., right? I'd need those to return the data given by the client, mnbudget, mnfinalbudget, etc? Playing around making a popup window for MN data and maybe voting if I can get that far and I had an error with signals, looking around at how that part works and I've not come across anything so far. Didn't look around long though, thought I'd ask in case its already been done elsewhere. Think I'm on 12.1 but moo helped me out with git, its working and I don't want to bugger it up, will have a look for the version now.
 
Last edited by a moderator:
  • Like
Reactions: Dunedoo and moli

moli

Grizzled Member
Aug 5, 2014
3,255
1,830
1,183
No idea ;) The Qt interface is a separate part and interacts through clientmodel, walletmodel, etc., right? I'd need those to return the data given by the client, mnbudget, mnfinalbudget, etc? Playing around making a popup window for MN data and maybe voting if I can get that far and had an error with signals, looking around at how that part works now and I've not come across anything so far. Didn't look around long though, thought I'd ask in case its already been done elsewhere. Think I'm on 12.1 but moo helped me out with git, its working and I don't want to bugger it up, will have a look for the version now.
Oh.... This thread is all about the wallet qt GUI.... I guess you haven't seen how the qt interface has changed from when we had two versions, 9 (with no DS) and 10 (with DS), which was a fork from Litecoin. Then we moved on to v11 which was the first version forked from Bitcoin... Then crowning added a bunch of features to the wallet... So many things have happened. You have to look up the test threads to read, sorry. And yes the qt can give you info about masternode. Go to the debug screen and type in "masternode help", you'll see. :)
 

moli

Grizzled Member
Aug 5, 2014
3,255
1,830
1,183
Not yet. It's on my ToDo list, but right now I'm swamped with work in my 'other' life, so the implementation has to wait a bit.
But it's not forgotten :)
I guess I didn't understand his question... Are you planning to make the wallet qt to pop out a screen with MN and Budget info like DashNinja?
 

stan.distortion

Well-known Member
Oct 30, 2014
911
530
163
Was having a look and thought that'd be the right spot today, not familiar with the RPC commands but should be okish and it'd be a lot easier not having to learn the whole gui, not getting on well with that stuff at all. Anyone done a scripting language for the RPC commands? You could make building blocks with that thing, something like the ladder logic :)

EDIT: This kind of thing but for transactions, displays, external plugins:
 
Last edited by a moderator:

stan.distortion

Well-known Member
Oct 30, 2014
911
530
163
Had a few more thoughts on that, quite a bit different to the ladder logic example but the same kind of principle. Imho it could be something very useful but I'm kind of stalled with Qt (I don't get on well with OO at all) and any thoughts on it would be appreciated, I'll keep going if others think it has potential but if it looks like something niche then I'll spend some time on the OpenBaazar stuff instead. Cheers.

EDIT: Just realised I kind of talked over Moli after reading back through. Sorry, wasn't intentional.
 
Last edited by a moderator:

stan.distortion

Well-known Member
Oct 30, 2014
911
530
163
Nope, my plan is to add another tab to the "Tools" window, like this:

View attachment 1962
I've been playing around with this again today and getting on ok with clientmodel and rpcconsole, any thoughts on what info to show in there? This was just a few routines to get comfortable with it and I'll get things more detailed like the "Number of Masternodes" string in the information tab but I'd likely add too much information so could do with knowing what's actually wanted in there.


 
Last edited by a moderator:

crowning

Well-known Member
May 29, 2014
1,414
1,997
183
Alpha Centauri Bc
I've been playing around with this again today and getting on ok with clientmodel and rpcconsole, any thoughts on what info to show in there? This was just a few routines to get comfortable with it and I'll get things more detailed like the "Number of Masternodes" string in the information tab but I'd likely add too much information so could do with knowing what's actually wanted in there.
Most people would like to see the budget stuff like displayed here: http://178.254.18.153/~pub/Dash/masternode_payments_stats.html

Since the number of budget-proposals isn't fix a table is needed for all that information. Have a look at transactiontablemodel.cpp, transactionrecord.cpp, transactionview.cpp and transactionfilterproxy.cpp to get an idea how it's done.

That's quite some work for your first feature implementation. But you'll learn a lot along that way :)
 
  • Like
Reactions: stan.distortion

stan.distortion

Well-known Member
Oct 30, 2014
911
530
163
Most people would like to see the budget stuff like displayed here: http://178.254.18.153/~pub/Dash/masternode_payments_stats.html

Since the number of budget-proposals isn't fix a table is needed for all that information. Have a look at transactiontablemodel.cpp, transactionrecord.cpp, transactionview.cpp and transactionfilterproxy.cpp to get an idea how it's done.

That's quite some work for your first feature implementation. But you'll learn a lot along that way :)

Thanks :) I was trying to bite off a bit too much earlier with QGraphicsView and interactive widgets but this is mostly copying existing parts with a bit of tweaking so it's fairly straight forward and I'm getting up to speed and finding my way around better now. I'll see if I can get a table in there tidily, trying to keep it nice and clean like the info tab but might be able to do something with summaries and expanding with detailed info but the working out for the payment info will take me a while, nice to have those tasty figures in there though :)
 

stan.distortion

Well-known Member
Oct 30, 2014
911
530
163
Slowly getting there...



Still a lot to do but getting my head around the models and views was the hard part, should be able to use the existing masternode-budget calls for all the data needed. Any thoughts on what to do with the budget hashes? I'd imagine they should be the primary reference but they're a bit awkward to display.
 

crowning

Well-known Member
May 29, 2014
1,414
1,997
183
Alpha Centauri Bc
Any thoughts on what to do with the budget hashes? I'd imagine they should be the primary reference but they're a bit awkward to display.
Put the basic info in this table and either add a column with a "Details" button, or state somewhere "Click on entry for details" and make the lines clickable.
When clicked just open a standard popup with budget hash, or like I did with the complete voting command, and whatever else the end-user might be interested in.
 

stan.distortion

Well-known Member
Oct 30, 2014
911
530
163
Put the basic info in this table and either add a column with a "Details" button, or state somewhere "Click on entry for details" and make the lines clickable.
When clicked just open a standard popup with budget hash, or like I did with the complete voting command, and whatever else the end-user might be interested in.

Popup windows? That'll take me another week or two to figure out ;) I'll play around with it a bit and see how things look, was thinking a single row below the table just for the hash might be another option, easy to copy and paste and can display detailed info the same way as the peers tab then.

Lots to do before the polishing stage though, not even got the sorting routines done yet. I'll probably try to do the detailed info as a child of each row to allow for a treeview unless there's some reason that's a bad idea, it looks like that would have been a better way to do the detailed peer table data but I'm guessing there's some reason it fetches that data separately to the table data.

It's here fwiw, lots of cleaning up to do though:
https://github.com/stan-distortion/dash/tree/2015-11-04

EDIT: Complete voting command?
 
Status
Not open for further replies.