georgem
Legendary
Offline
Activity: 1484
Merit: 1007
spreadcoin.info
|
|
September 24, 2014, 04:12:25 AM |
|
There is QT Creator a similar thing to visual basic. You could definitely make the wallet look like those screen shots using it. Here's a link to a program written in QT. (just like the darkcoin wallet) https://amarok.kde.org/en/screenshotsEdit Edit: Here is the showcase for QT developed apps/gui's http://showroom.qt-project.org/Edit: Mmmm donuts... QT4 is going to struggle slightly with the some bits of the wallet design as it stands as posted above, but you could get pretty close. And QT designer is only like Visual Basic in that it produces truly horrible code - although actually it just produces XML, which when run through your UIC script produces truly horrible code. It's not the QT part that's difficult though, it's the C++ re-write of the existing wallet, which is going to be fairly major and needs someone pretty experienced. I'm actually hoping Evan and the team get stuck into Electrum-DRK first, it fits better with the whole MN system. I am an expert in creating Adobe Air/Actionscript Apps (also as standalone EXE/app that don't need to download any plugin) for windows and mac. (unfortunately not for linux (anymore) although there is a deprecated linux version for air available that is not being developped anymore: http://helpx.adobe.com/air/kb/install-air-2-64-bit.html). I have 10 years experience. What I could do (although I don't know if this is reasonable security wise) is to create an app that communicates with the darkcoind (darkcoind runs in the background as service). So basically it will be like a frontend that when started, looks if the darkcoind is active, and if not starts it, and then makes API calls to it, and listens. That's why I asked for a client API call list yesterday: https://bitcointalk.org/index.php?topic=421615.msg8933337#msg8933337I have already done a few experiments with different coins over the past 2 years, namely namecoin. If the Darkcoin GUI is ready, I could create something like this pretty fast, I will probably not need more than a full weeks work for that. (40-50 hours) Should I give it a try? The awesome thing about that would be that I don't need to touch/change the darkcoind at all. It would do all darkcoin related things as it already does so well. So we don't have to debug two versions of the darkcoin software, just the darkcoind and the frontend separately.
|
|
|
|
thelonecrouton
Legendary
Offline
Activity: 966
Merit: 1000
|
|
September 24, 2014, 04:19:29 AM |
|
There is QT Creator a similar thing to visual basic. You could definitely make the wallet look like those screen shots using it. Here's a link to a program written in QT. (just like the darkcoin wallet) https://amarok.kde.org/en/screenshotsEdit Edit: Here is the showcase for QT developed apps/gui's http://showroom.qt-project.org/Edit: Mmmm donuts... QT4 is going to struggle slightly with the some bits of the wallet design as it stands as posted above, but you could get pretty close. And QT designer is only like Visual Basic in that it produces truly horrible code - although actually it just produces XML, which when run through your UIC script produces truly horrible code. It's not the QT part that's difficult though, it's the C++ re-write of the existing wallet, which is going to be fairly major and needs someone pretty experienced. I'm actually hoping Evan and the team get stuck into Electrum-DRK first, it fits better with the whole MN system. I am an expert in creating Adobe Air/Actionscript Apps (also as standalone EXE/app that don't need to download any plugin) for windows and mac. (unfortunately not for linux (anymore) although there is a deprecated linux version for air available that is not being developped anymore: http://helpx.adobe.com/air/kb/install-air-2-64-bit.html). I have 10 years experience. What I could do (although I don't know if this is reasonable security wise) is to create an app that communicates with the darkcoind (darkcoind runs in the background as service). So basically it will be like a frontend that when started, looks if the darkcoind is active, and if not starts it, and then makes API calls to it, and listens. That's why I asked for a client API call list yesterday: https://bitcointalk.org/index.php?topic=421615.msg8933337#msg8933337If the Darkcoin GUI is ready, I could create something like this pretty fast, I will probably not need more than a full weeks work for that. Should I give it a try? The awesome thing about that would be that I don't need to touch/change the darkcoind at all. It would do all darkcoin related things as it already does so well. So we don't have to debug two versions of the darkcoin software, just the darkcoind and the frontend separately. That's basically what I did, but I used python to make the darkcoind calls:
|
|
|
|
georgem
Legendary
Offline
Activity: 1484
Merit: 1007
spreadcoin.info
|
|
September 24, 2014, 04:21:00 AM |
|
That's basically what I did, but I used python to make the darkcoind calls: Yes, I thought so. Your app looks more and more awesome BTW.
|
|
|
|
jackychan
Full Member
Offline
Activity: 189
Merit: 100
The future will be Digital
|
|
September 24, 2014, 04:29:01 AM |
|
When the instant transaction go in place?
|
|
|
|
thelonecrouton
Legendary
Offline
Activity: 966
Merit: 1000
|
|
September 24, 2014, 04:34:43 AM |
|
That's basically what I did, but I used python to make the darkcoind calls:
Yes, I thought so. The whole thing (including the toolchain) needs to be open source though for it to be trusted, not sure how Adobe stuff works on that front. And you'll need code of your own to keep the balance updated, load the transaction list etc. I've been tinkering with the Electrum-DRK client as it's in python (I can read c++ but I wouldn't trust myself to write it) but it uses a different backend (node.js or something I believe) so I'm kind of stuck between learning c++ properly to help with the official wallet, learning js from scratch to help with the electrum wallet, or doing my own thing...
|
|
|
|
Propulsion
|
|
September 24, 2014, 04:35:40 AM |
|
When the instant transaction go in place?
When you kung fu them Jackie. Should I give it a try? The awesome thing about that would be that I don't need to touch/change the darkcoind at all. It would do all darkcoin related things as it already does so well. So we don't have to debug two versions of the darkcoin software, just the darkcoind and the frontend separately.
I'm not sure. That would require adding more lines into the config files adding confusion to end users.
|
|
|
|
Minotaur26
Legendary
Offline
Activity: 1092
Merit: 1000
|
|
September 24, 2014, 04:39:25 AM |
|
When the instant transaction go in place?
We are open sourcing Darksend next monday (US time), then the next project is instant transactions the dev team will be working on them and when they have a first version ready they will start a testing environment. So we don’t really know yet but I guess it will be at least a couple of months.
|
|
|
|
georgem
Legendary
Offline
Activity: 1484
Merit: 1007
spreadcoin.info
|
|
September 24, 2014, 04:39:43 AM |
|
Should I give it a try? The awesome thing about that would be that I don't need to touch/change the darkcoind at all. It would do all darkcoin related things as it already does so well. So we don't have to debug two versions of the darkcoin software, just the darkcoind and the frontend separately.
I'm not sure. That would require adding more lines into the config files adding confusion to end users. Not at all. I am not talking about RPC calls that need a specific port to be open or an IP allowed in the conf file. I am talking about direct commandline communication between Frontend and darkcoind. Frontend.exe and darkcoind.exe would best be in the same folder. It's like when you type commandline commands by hand, but now the frontend.exe makes this for you (with the darkcoind running in the background invisible)
|
|
|
|
thelonecrouton
Legendary
Offline
Activity: 966
Merit: 1000
|
|
September 24, 2014, 04:43:58 AM |
|
Not at all. I am not talking about RPC calls that need a specific port to be open or something. I am talking about direct commandline communication between Frontend and darkcoind.
Frontend.exe and darkcoind.exe would best be in the same folder.
It's like when you type commandline commands by hand, but now the frontend.exe makes this for you (with the darkcoind running in the background invisible)
You still need to generate an RPC user/pwd and stick it in the conf file for that to work. At least I had to.
|
|
|
|
thelonecrouton
Legendary
Offline
Activity: 966
Merit: 1000
|
|
September 24, 2014, 04:46:23 AM |
|
When the instant transaction go in place?
We are open sourcing Darksend next monday (US time), then the next project is instant transactions the dev team will be working on them and when they have a first version ready they will start a testing environment. So we don’t really know yet but I guess it will be at least a couple of months. A couple of months? I bet we'll have instant tx on testnet by mid October.
|
|
|
|
georgem
Legendary
Offline
Activity: 1484
Merit: 1007
spreadcoin.info
|
|
September 24, 2014, 05:02:57 AM |
|
Not at all. I am not talking about RPC calls that need a specific port to be open or something. I am talking about direct commandline communication between Frontend and darkcoind.
Frontend.exe and darkcoind.exe would best be in the same folder.
It's like when you type commandline commands by hand, but now the frontend.exe makes this for you (with the darkcoind running in the background invisible)
You still need to generate an RPC user/pwd and stick it in the conf file for that to work. At least I had to. It has nothing to do with RPC. It's not remote at all. It's direct access to the daemon on a commandline level (shell), passing it any commands and parameters you need to, and reading the return data the darkcoind itself gives back. (not going thru some port, but outputting to the shell so to speak) An example: Suppose this is the folder where the darkcoind resides: Now I simply start it by making a Commandcall and the daemon starts. I can even start it with parameters, for example: >E:\darkcoin/darkcoind -datadir=E:\blockchains/drk/ this tells the darkcoind where to look for the blockchain and wallet.dat. WITHOUT the need for any conf file telling it to do that. Everything you put in a conf file can also be added as a parameter when you start the darkcoin daemon. A conf file is not needed if you work like that. So... after the darkcoind is ready, I can make calls to it, for example getblockcount, and it will return the JSON string. >E:\darkcoin/darkcoind -datadir=E:\blockchains/drk/ getblockcount etc. I can start the darkcoind in testnet mode by making the call like that: >E:\darkcoin/darkcoind -testnet=1 I can combine any parameters: >E:\darkcoin/darkcoind -datadir=E:\blockchains/drk/ -testnet=1 and so forth. By using Adobe Air's native extensions functionality I can use ANY external executables I like and trigger their functions and pass the results/data back to the frontend. This would also work with multiple coins at the same time.
|
|
|
|
thelonecrouton
Legendary
Offline
Activity: 966
Merit: 1000
|
|
September 24, 2014, 05:07:02 AM |
|
Not at all. I am not talking about RPC calls that need a specific port to be open or something. I am talking about direct commandline communication between Frontend and darkcoind.
Frontend.exe and darkcoind.exe would best be in the same folder.
It's like when you type commandline commands by hand, but now the frontend.exe makes this for you (with the darkcoind running in the background invisible)
You still need to generate an RPC user/pwd and stick it in the conf file for that to work. At least I had to. It has nothing to do with RPC. It's not remote at all. It's direct communication with the daemon, adding any command and parameters you need to, and reading the return the darkcoind itself gives back. An example: Suppose this is the folder where the darkcoind resides: Now I simply start it by making a Commandcall and the daemon starts. I can even start it with parameters, for example: >E:\darkcoin/darkcoind -datadir=E:\blockchains/drk/ this tells the darkcoind where to look for the blockchain and wallet.dat. WITHOUT the need for any conf file telling it to do that. Everything you put in a conf file can also be added as a parameter when you start the darkcoin daemon. A conf file is not needed if you work like that. So... after the darkcoind is ready, I can make calls to it, for example getblockcount, and it will return the JSON string. >E:\darkcoin/darkcoind -datadir=E:\blockchains/drk/ getblockcount (not that all previous parameters must be repeated) etc. I can start the darkcoind in testnet mode by making the call like that: >E:\darkcoin/darkcoind -testnet=1 I can combine any parameters: >E:\darkcoin/darkcoind -datadir=E:\blockchains/drk/ -testnet=1 and so forth. By using Adobe Air's native extensions functionality I can use ANY external executables I like and trigger their functions and pass the results/data back to the frontend. This would also work with multiple coins at the same time. Try it. You're going to be seeing this: Error: To use darkcoind, you must set a rpcpassword in the configuration file: /home/stu/.darkcoin/darkcoin.conf It is recommended you use the following random password: rpcuser=darkcoinrpc rpcpassword=FgS1HunBZZjp71789svfbkDB56gvzdiuygEq7QxedJgtro6Sw47L (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; for example: alertnotify=echo %s | mail -s "DarkCoin Alert" admin@foo.com
|
|
|
|
georgem
Legendary
Offline
Activity: 1484
Merit: 1007
spreadcoin.info
|
|
September 24, 2014, 05:13:25 AM Last edit: September 24, 2014, 05:26:48 AM by georgem |
|
Try it. You're going to be seeing this: Error: To use darkcoind, you must set a rpcpassword in the configuration file: /home/stu/.darkcoin/darkcoin.conf It is recommended you use the following random password: rpcuser=darkcoinrpc rpcpassword=FgS1HunBZZjp71789svfbkDB56gvzdiuygEq7QxedJgtro6Sw47L (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; for example: alertnotify=echo %s | mail -s "DarkCoin Alert" admin@foo.com
Nope , you simply add >E:\darkcoin/darkcoind -rpcuser=darkcoinrpc -rpcpassword=FgS1HunBZZjp71789svfbkDB56gvzdiuygEq7QxedJgtro6Sw47L -testnet=1 Ofcourse, any conf file in the blockchain folder must not exist in this case, or else the daemon will still go looking for it after it starts. (and possibly override your parameters. I am not sure, have not tested this case, I keep no conf file) As I said, you can completely ommit the conf file IF you have direct shell access possibility to the daemon. (which is key) I just tested it again, and it works. The thing to understand here, is that this command is not written somewhere... it's a shell command call that the frontend.exe is making on the fly, it does not need a textfile somewhere, hence no need for a conf file. So the frontend would make commands like this for every possible thing a darkcoin wallet is supposed to do, and recieve results back from the daemon, and use the beautiful darkcoin GUI to make it look sexy.
|
|
|
|
thelonecrouton
Legendary
Offline
Activity: 966
Merit: 1000
|
|
September 24, 2014, 05:26:48 AM |
|
Try it. You're going to be seeing this: Error: To use darkcoind, you must set a rpcpassword in the configuration file: /home/stu/.darkcoin/darkcoin.conf It is recommended you use the following random password: rpcuser=darkcoinrpc rpcpassword=FgS1HunBZZjp71789svfbkDB56gvzdiuygEq7QxedJgtro6Sw47L (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; for example: alertnotify=echo %s | mail -s "DarkCoin Alert" admin@foo.com
Nope , you simply add >E:\darkcoin/darkcoind -rpcuser=darkcoinrpc -rpcpassword=FgS1HunBZZjp71789svfbkDB56gvzdiuygEq7QxedJgtro6Sw47L -testnet=1 Any conf file in the blockchain folder must not exist, or else the daemon will still go looking for it after it starts. (and possibly override your parameters? I am not sure, have not tested this case, I keep no conf file) As I said, you can completely ommit the conf file IF you have direct shell access possibility to the daemon. (which is key) I just tested it again, and it works. You have to understand, this command is not written somewhere... it's a shell command call that the frontend.exe is making on the fly, it does not need a textfile somewhere, hence no need for a conf file. You can do that, but you'll need to generate a unique pwd for each user - otherwise you'll have a bunch of users with the same rpc credentials which is probably not a great idea. What I did was to check for an existing .conf file, and if it didn't exist, or if it threw an error anyway as it didn't include an rpc user/pwd, run the daemon, take the suggested name/pwd and... stick it in the .conf file, because you're going to need it next time you start the daemon before you can do anything.
|
|
|
|
georgem
Legendary
Offline
Activity: 1484
Merit: 1007
spreadcoin.info
|
|
September 24, 2014, 05:34:23 AM Last edit: September 24, 2014, 06:19:49 AM by georgem |
|
You can do that, but you'll need to generate a unique pwd for each user - otherwise you'll have a bunch of users with the same rpc credentials which is probably not a great idea. What I did was to check for an existing .conf file, and if it didn't exist, or if it threw an error anyway as it didn't include an RPC user/pwd, run the daemon, take the suggested name/pwd and... stick it in the .conf file. Ofcourse, didn't the daemon create the unique password for you in the first place? This is all rather obvious. My frontend.exe decides the rpc password randomly. On the fly, even for every start of the daemon a new rpc password, why not. It's just an rpc password, not your walletpassphrase. I was just making an example with your rpc credentials. And you assumed it will be the same for all users? I am not sure yet, but I think there is even a parameter with which you can tell darkcoind to NOT use RPC at all. I assume the reason why it keeps bitching about the missing rpc password/username is because rpc has not been deactived. Basically I look at it like when I enter mining credentials into cgminer and tell it password=x. Useless but still necessary. It's not like the password has any meaning in this case, but the pool will bitch if you don't add the password parameter. It will be a similar thing with the frontend and RPC, because who needs a password if the frontend.exe is located right next to the darkcoind.exe on the same machine controlled by the same user, and they are directly talking to each other. Therefor if it still needs those parameters I will just do: >E:\darkcoin/darkcoind -rpcuser=x -rpcpassword=y -testnet=1 rpc username and password is mainly for when you allow outside access to your server.
|
|
|
|
georgem
Legendary
Offline
Activity: 1484
Merit: 1007
spreadcoin.info
|
|
September 24, 2014, 05:47:00 AM Last edit: September 24, 2014, 06:02:51 AM by georgem |
|
Here is a list of bitcoind Command-line arguments (not RPC calls) https://en.bitcoin.it/wiki/Running_Bitcoin
|
|
|
|
georgem
Legendary
Offline
Activity: 1484
Merit: 1007
spreadcoin.info
|
|
September 24, 2014, 06:47:51 AM |
|
What I did was to check for an existing .conf file, and if it didn't exist, or if it threw an error anyway as it didn't include an rpc user/pwd, run the daemon, take the suggested name/pwd and... stick it in the .conf file, because you're going to need it next time you start the daemon before you can do anything. That's actually a great idea. The frontend could create the conf file, and save whatever you want in it. We could make the conf file editable from within the frontend itself. Save the conf file, stop the daemon, restart the daemon, all without the need to restart the frontend itself. Adding additional Nodes (addnode, as if darkcoin needs those with this fantastic masternode network) would be easy as never before.
|
|
|
|
chaeplin
|
|
September 24, 2014, 07:02:20 AM Last edit: September 24, 2014, 07:20:01 AM by chaeplin |
|
https://darkcointalk.org/threads/monitoring-multiple-nm-using-blocknotify.1728/#post-19307
Using python and https://github.com/jgarzik/python-bitcoinrpc
[code] #!/usr/bin/python import io import os import sys import datetime from time import time from time import sleep import getpass from bitcoinrpc.authproxy import AuthServiceProxy
#-------------- def ParseConfig(fileBuffer): assert type(fileBuffer) is type(b'') f = io.StringIO(fileBuffer.decode('ascii', errors='ignore'), newline=None) result = {} for line in f: assert type(line) is type(b''.decode()) stripped = line.strip() if stripped.startswith('#'): continue if stripped == '': continue parts = stripped.split('=') assert len(parts) == 2 parts[0] = parts[0].strip() parts[1] = parts[1].strip() result[parts[0]] = parts[1] return result
#----------------------------
with open(os.path.join(os.path.expanduser("~"), '.darkcoin', 'darkcoin.conf'), mode='rb') as f: configFileBuffer = f.read() config = ParseConfig(configFileBuffer) serverURL = 'http://' + config['rpcuser'] + ':' + config['rpcpassword'] + '@localhost:' + str(config['rpcport']) access = AuthServiceProxy(serverURL)
#----------------------------- oneday = int(time()) USER=getpass.getuser()
#-----------------------------
i1 = access.getinfo() i2 = access.masternode('debug') i3 = access.masternode('count') i4 = access.masternode('current')
getinfo = 'bl: ' + str(i1['blocks']) + ' diff: ' + str(i1['difficulty']) + ' conn: ' + str(i1['connections']) + ' errors: ' + str(i1['errors']) + '\n'
i1fo = open('/dev/shm/getinfo.' + USER, 'w') i2fo = open('/dev/shm/debug.' + USER, 'w') i3fo = open('/dev/shm/count.' + USER, 'w') i4fo = open('/dev/shm/current.' + USER, 'w')
i1fo.write(getinfo) i1fo.close()
i2fo.write(str(i2) + '\n') i2fo.close()
i3fo.write(str(i3) + '\n') i3fo.close()
i4fo.write(str(i4) + '\n') i4fo.close()
my darkcoin.conf has rpcallowip [/code]
|
|
|
|
reflexmk
|
|
September 24, 2014, 07:22:18 AM |
|
We have a 66% of the network updated in two days Someone should kindly post a pic of the ENFORCEMENT button.
|
|
|
|
georgem
Legendary
Offline
Activity: 1484
Merit: 1007
spreadcoin.info
|
|
September 24, 2014, 07:38:29 AM Last edit: September 24, 2014, 08:11:58 AM by georgem |
|
A question, how many dummy masternodes are active on the TESTNET on average and at the moment?
How can I find out?
Are only enough of them online when we are making RC bug hunting, or do people generally keep a few of them testnet masternodes active?
or is it possible to run masternode and testnet masternode side by side on the same server?
|
|
|
|
|