GUI tool for running Masternode with Trezor

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
So I think everithing is fine now on my side (even if I did not try to restart once again to see if the same error appear.
Yestartday I tryed to restart multiple times (without beeing synced, with the sync, with the hardware wallet brodcasted, without...always get the same error and the MN address not listing.
What is the current status, is your MN listed on dashninja?
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
May be it's standard procedure (?). Do you want me to restart dashman to see if I can reproduce it again? (I did not restart since it worked)
If dashninja shows its status as "Active" you should leave it working - there is no need to restart dashd.
If you ever have to restart your dahd and have problems with it, we will analyze step by step what happens.
 

dote

New Member
Masternode Owner/Operator
May 18, 2017
19
4
3
Hi @Bertrand256. I found out, that if an ssh connection was lost it won't reconnect until program restart.

I saw you added voting on proposal in the app. I voted yes on your proposal, but via dashcentral :) It's not very comfortable to use it. Could you add couple filters, like "only active", "no votes" etc and be able to apply then at once?

Could you add option to save ssh password? Yes, I know it's not the best security practice.

BTW, it's may not be such a good idea to replace python with C++. Even I don't code in python I was able to find a bug in it (reported by email and fixed a while ago).

PS. Thank you for such a great tool!
 
Last edited:

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
he
Hi @Bertrand256. I found out, that if an ssh connection was lost it won't reconnect until program restart.

I saw you added voting on proposal in the app. I voted yes on your proposal, but via dashcentral :) It's not very comfortable to use it. Could you add couple filters, like "only active", "no votes" etc and be able to apply then at once?

Could you add option to save ssh password? Yes, I know it's not the best security practice.

BTW, it's may not be such a good idea to replace python with C++. Even I don't code in python I was able to find a bug in it (reported by email and fixed a while ago).

PS. Thank you for such a great tool!
Hi @dote
In the upcoming releases I'm going to make some improvements in the proposal window. It could be: filtering, extra columns and so on, so all suggestions are welcome. Can you write more of what you mean by the "No votes" filter. Did I understand correctly, that you would like to vote for many proposals at once?

I'll consider implementing the saving SSH password feature along with the feature of encrypting the configuration file with a hardware wallet. I'd like to give the user a choice of saving a password in a safe way first. Until then, as a workaround I suggest using SSH public key authentication (https://help.ubuntu.com/community/SSH/OpenSSH/Keys), which is supported by DMT.

As the switching from python to C ++ requires a lot of work, all the pros and cons will be considered. I will definitely not make this decision alone without giving the Dash community the possibility of expressing what they think about this.

Can you send me a bug description through DM? I haven't received any e-mail related to this, but my email server is quite restrictive, so it could have bounced back the message. It could take several days until your server tells you that it was unable to deliver the message.

Thanks for all the suggestions.
 

dote

New Member
Masternode Owner/Operator
May 18, 2017
19
4
3
In the upcoming releases I'm going to make some improvements in the proposal window. It could be: filtering, extra columns and so on, so all suggestions are welcome. Can you write more of what you mean by the "No votes" filter. Did I understand correctly, that you would like to vote for many proposals at once?
Sure, now I see I didn't put it clear. I would love to see the following filters:
Active proposal for a current period
Active proposal for a current period, I still need to vote on
Proposal for a last period

I'll consider implementing the saving SSH password feature along with the feature of encrypting the configuration file with a hardware wallet. I'd like to give the user a choice of saving a password in a safe way first. Until then, as a workaround I suggest using SSH public key authentication (https://help.ubuntu.com/community/SSH/OpenSSH/Keys), which is supported by DMT.
Could you tell how to use this? I didn't find how to add a key to DMT. I'm using Windows, so it's not possible to use a system auth.

Can you send me a bug description through DM? I haven't received any e-mail related to this, but my email server is quite restrictive, so it could have bounced back the message. It could take several days until your server tells you that it was unable to deliver the message.
As I sad you fixed it a long time ago, thank you (Collateral TX field validation/hex issue). I used it just as an example how easy it is to take a look at the source code with python.
 
Last edited:

GrandMasterDash

Grizzled Member
Masternode Owner/Operator
Jul 12, 2015
3,422
1,458
1,183
Just want to say, if you are thinking of rewriting this tool, I think it would be a lot better as a local web interface i.e. local html / javascript client. The reason is, proposals have multiple web links and would therefore integrate more seamlessly. There would also be less issues regarding font scaling etc.
 

GrandMasterDash

Grizzled Member
Masternode Owner/Operator
Jul 12, 2015
3,422
1,458
1,183
Error:

Coundn't read governanceinfo from the Dash network. Some features may not work correctly because of this. Details: unorderable types: dict() > int()
 

dote

New Member
Masternode Owner/Operator
May 18, 2017
19
4
3
Just want to say, if you are thinking of rewriting this tool, I think it would be a lot better as a local web interface i.e. local html / javascript client. The reason is, proposals have multiple web links and would therefore integrate more seamlessly. There would also be less issues regarding font scaling etc.
Even I am a big fan of JS, if this particular case using it would be a bad idea. Besides, I even know would it be possible. Because JS don't have access to a hardware.
 

GrandMasterDash

Grizzled Member
Masternode Owner/Operator
Jul 12, 2015
3,422
1,458
1,183
Even I am a big fan of JS, if this particular case using it would be a bad idea. Besides, I even know would it be possible. Because JS don't have access to a hardware.
I don't know about other hardware but the trezor bridge is accessible via js, how else they do their client side web wallet?

EDIT: Either that or a dedicated android app, that would be really nice.
 

dote

New Member
Masternode Owner/Operator
May 18, 2017
19
4
3
I don't know about other hardware but the trezor bridge is accessible via js, how else they do their client side web wallet?

EDIT: Either that or a dedicated android app, that would be really nice.
A trezor has a "bridge". It's basically a plugin, which connect a hardware to a browser. Neither Keepkey or Ledger has it.
Let's start from the beginning. As fare as I got, you would like to be able to start a masternode using a cell phone?
It's a great idea, but this would be a completely different project.
 

GrandMasterDash

Grizzled Member
Masternode Owner/Operator
Jul 12, 2015
3,422
1,458
1,183
A trezor has a "bridge". It's basically a plugin, which connect a hardware to a browser. Neither Keepkey or Ledger has it.
Let's start from the beginning. As fare as I got, you would like to be able to start a masternode using a cell phone?
It's a great idea, but this would be a completely different project.
Personally, my preferred DMT in order of usefulness would be android app, js client and, lastly, desktop app. Perhaps a poll would help but it's not for me to say, it's bertrand's project, I'm just here making my preference known.
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
Could you tell how to use this? I didn't find how to add a key to DMT. I'm using Windows, so it's not possible to use a system auth.
In short, the steps are as follows:

1. Install Putty package if you don't have it yet (https://www.ssh.com/ssh/putty/download)
2. Run Puttygen.exe and click the "Generate" button to generate a private-public key pair
3. Export your private key to the following location: Drive:\Users\<Your_Username>\.ssh\id_rsa (id_rsa is the file name)
4. Log-in to each of your MN servers with an SSH terminal and open the "~/.ssh/authorized_keys" file in your favorite text editor (create dir/file if it doesn't exist)
5. Copy the contents of the "Public key for pasting..." edit box and paste it into the "authorized_keys" file on your server(s)
6. Save the "authorized_keys" file
From that moment you will be able to log-in to your server with an SSH terminal without entering a password or with the password you set for the private key. The same authentication method will be used by DMT.

Look here: https://www.ssh.com/ssh/putty/windows/puttygen. The only difference between that doc and the above steps is that for DMT we need an OpenSSH format of the private key, not the Putty's format (step 3).

As I sad you fixed it a long time ago, thank you (Collateral TX field validation/hex issue). I used it just as an example how easy it is to take a look at the source code with python.
Ah, ok, your'e right. I thought there is a new bug :)

EDIT: Regarding the step 3, exporting a private key can be done by clicking the `Conversions->Export Open SSH key` menu item.
 
Last edited:
  • Like
Reactions: UdjinM6

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
Error:
Coundn't read governanceinfo from the Dash network. Some features may not work correctly because of this. Details: unorderable types: dict() > int()
1. How is your DMT network connection configured - are you connecting to your own dashd node or to the "public" ones?
2. Can you DM me with your log file contents after the error appears? "Tools->Open log file..."
 

dote

New Member
Masternode Owner/Operator
May 18, 2017
19
4
3
Thank you Bertrand! I was able to connect using a key.

3. Export your private key to the following location: Drive:\Users\<Your_Username>\.ssh\id_rsa (id_rsa is the file name)
It would be nice to be able to set a pay to a key.
1. It will let a user know DMT can use a key for auth
2. Allow to use password even a key file is present
3. Allow multiple keys to be used
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
Thank you Bertrand! I was able to connect using a key.
It would be nice to be able to set a pay to a key.
1. It will let a user know DMT can use a key for auth
2. Allow to use password even a key file is present
3. Allow multiple keys to be used
Ok, thanks, I'll take that into consideration.
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
DashMasternodeTool v0.9.11 released:
  • initial support for Ledger Nano S wallets (no sending funds feature yet); thanks to @chaeplin , this part was super easy
  • additional data (downloaded from dashcentral.org) in the proposals window, as: proposal owner, title, payment months, etc
  • fixed 'couldn't lock mutex' error
  • fixed 'on_btnSaveConfiguration_clicked() missig 1 required positional argument' error
  • a message shown while waiting for confirmation with the hardware wallet's button
  • fixed errors occurring when closing and quickly re-opening the proposals window
  • dates/numbers displayed according to the user operating system's settings
  • keepkey support: fixed the 'Cancelled' error occurring when entering an empty passphrase
  • a few other improvements and error fixes
Ledger Nano users, before you move your collateral to your Ledger, please test the functionality of signing messages using the "Tools-> Sign message..." feature. If this works, then there should not be a problem with starting masternode, as this feature internally uses the message signing function.

Next, I will be focused on finishing support for Ledger Nano S by implementing sending funds feature, that will allow "withdrawing" masternode earnings in a secure way for the masternode's collateral.

Binaries: https://github.com/Bertrand256/dash-masternode-tool/releases/tag/v0.9.11
 

Balych

Active Member
Sep 12, 2015
365
211
113
Dash Address
Xba1ychX7CjgbRrCKE1LjHjT3jLUhcexs5
initial support for Ledger Nano S wallets
After several tries it's works! Thanks!
Created new account on Ledger and used address with 44'/5'/1'/0/0 path. Looks like DMT have some problems with converting address <-> path, when set address from path 1, and click start MN it said, address wrong and show it from path 0.
But after saving settings, reconnecting wallet and restarting program MN was finally started.
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
After several tries it's works! Thanks!
Created new account on Ledger and used address with 44'/5'/1'/0/0 path. Looks like DMT have some problems with converting address <-> path, when set address from path 1, and click start MN it said, address wrong and show it from path 0.
But after saving settings, reconnecting wallet and restarting program MN was finally started.
Is it possible for you to send me a detailed description of the steps you have taken to make this error appear? What did you click and in what order?
Thanks.
 

Balych

Active Member
Sep 12, 2015
365
211
113
Dash Address
Xba1ychX7CjgbRrCKE1LjHjT3jLUhcexs5
Is it possible for you to send me a detailed description of the steps you have taken to make this error appear? What did you click and in what order?
Thanks.
Looks like it mostly appear with opened Chrome wallet. For example: open DMT, paste address, press convert, open wallet (or click some tabs if already opened), try to sign - error: 'ascii' codec can't decode byte 0xf0 in position 4: ordinal not in range(128).
If only DMT opened - no errors.
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
Looks like it mostly appear with opened Chrome wallet. For example: open DMT, paste address, press convert, open wallet (or click some tabs if already opened), try to sign - error: 'ascii' codec can't decode byte 0xf0 in position 4: ordinal not in range(128).
If only DMT opened - no errors.
Unfortunately I could not reproduce the error. Could you do me a favor and take the app's log file contents (Tools->Open log file...) just after the error occurred and send it to me by DM?
What is your OS: Windows/Mac/Linux?
 

Balych

Active Member
Sep 12, 2015
365
211
113
Dash Address
Xba1ychX7CjgbRrCKE1LjHjT3jLUhcexs5
Unfortunately I could not reproduce the error. Could you do me a favor and take the app's log file contents (Tools->Open log file...) just after the error occurred and send it to me by DM?
What is your OS: Windows/Mac/Linux?
Done (Windows 10).
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
Done (Windows 10).
Thanks to the log file I was able to analyze and reproduce the problem. It turns out, that executing another application communicating with Ledger after establishing DMT communication with it, results in later communication errors inside the Ledger client library used in DMT. This behavior is Windows-specific - Mac OS seems to be immune to this.

I've found, that in most cases this issue can be worked around by re-establishing connection to Ledger inside DMT, so I did so. If it doesn't help, DMT will request the user to close that interfering app. These modifications will be available in the next version.

Thanks for the help.
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
DashMasternodeTool v0.9.12 released

This is an unplanned release, fixing the "47,5" conversion error, that occurs for some people in the proposals window (a simmilar issue recently appeared in sentinel).
Other improvements:
  • Showing the position of the user masternodes in the masternode queue ("Get status" button)
  • Workaround of the Ledger error (reported by @Balych), occurring in Windows when the device is used simultaneously by DMT and other application(s).
upload_2017-10-30_13-49-32.png


Binary files: https://github.com/Bertrand256/dash-masternode-tool/releases/tag/v0.9.12
 
Last edited:

GrandMasterDash

Grizzled Member
Masternode Owner/Operator
Jul 12, 2015
3,422
1,458
1,183
error on startup, "free variable 'worker_fun' referenced before assignment in enclosing scope"
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
error on startup, "free variable 'worker_fun' referenced before assignment in enclosing scope"
At a first glance it looks like the python version I had to use for linux binaries (v 3.5) is misbehaving, but I'll try to prepare some workaround.

Did the error appeared only once, at the first start or is showing every time you run the program?
 

GrandMasterDash

Grizzled Member
Masternode Owner/Operator
Jul 12, 2015
3,422
1,458
1,183
At a first glance it looks like the python version I had to use for linux binaries (v 3.5) is misbehaving, but I'll try to prepare some workaround.

Did the error appeared only once, at the first start or is showing every time you run the program?
Only the first time.
 

Balych

Active Member
Sep 12, 2015
365
211
113
Dash Address
Xba1ychX7CjgbRrCKE1LjHjT3jLUhcexs5
It's possible to add maximize button on Proposals window?
 

Bertrand256

Active Member
Feb 13, 2017
264
329
123
Dash Address
XwZzf7yqYoUBnDFqE7r3zuNmpwKo1CYLMC
  • Like
Reactions: tungfa and Balych