Tier 4 Fund Management Discussion

Still, how would I get only Nu Discourse emails in push notifications? It would be neat if Discourse could trigger a Pushover notification for those who want them.

email notice is meaningless when checking the forum is as easy as checking emails (actually checking the forum might even be easier when you use a port 25 email client at a place where port 25 is blocked).
i for one don’t have an android or apple device.

The point of email notification is that almost everyone nowadays receive email in real time to the phone or desktop.
I agree that otherwise it is actually easier to open the forum, but in that case, If you live “disconnected” and don’t have an android or apple device, something like a phone number should be available for FLOT emergencies.

With my promised available time it shouldn’t be a problem to get online with a computer in time. You can’t sign with only a phone number anyway. I like to discuss in the forum instead of using another platform

I’l get on this tommorow! Will post here.

The repository for the current state of the scripts is here:

Either git clone or download the zip. This is a command line tool, and you’ll need to have nud running (or nu -server). There’s very little error handling or robustness in the scripts, but enough for some actual use.

There are some basic personal settings in config.py. To start, you can rename config-example.py to config.py. Updates to the code will change config-example.py and pubconfig.py but not config.py.

1. Settings - Git

Skip this part if you don't know how to use git.
GIT_ENABLED = 0

To use git set this to 1. git is mainly used to synchronize with your own “flot-operations” repository, which maintains “snapshots” of the tracked address; I recommend to fork from mine: https://github.com/dc-tcs/flot-operations , and post the url here.

Then, you can use the parameter MY_GIT to set the address of your repository for pushing.

Note that in this script git is basically called just from the command line; not a good idea if you’re using windows or OSX, because I don’t know how git works on those.

2. Set RPC port, username and password

RPC_PORT = 14002
RPC_USERNAME = "XXXXX"
RPC_PASSWORD = "YYYYY"

The script makes calls using jsonrpc. Remember to set rpcuser and rpcpassword in nu.conf, and use the same strings in place of XXXXX and YYYYY. Most likely the port is 14002 for the mainnet and 15002 for the testnet.

There are some other shared settings in pubconfig.py like the following:

ADDRESS = "BqyRzFtWXDmjxrYpyJD42MLE5xc8FrB4js"
ADDRESSES = set([])
PUBKEYS = ["034b0bd0f653d4ac0a2e9e81eb1863bb8e5743f6cb1ea40d845b939c225a1a80ff","02a144af74d018501f03d76ead130433335f969772792ec39ce389c8a234155259","03661a4370dfcfbcea25d1800057220f4572b6eecab95bb0670e8676a9e34451dc","0234139729dd413c84a71a0bfd6f236790be861b37311cef3240277c940e4b0c07","02547427fc2ea3a0ab9ef70f5e1640ff5112b113f65696948f992bd0770b942571"]
SIGN_THRESHOLD = 3

Most likely you don’t need to change anything pubconfig.py . I’ll publish changes myself or someone else can help.

3. How to use

You can use this script running either nud or nu -server. In the latter case, you would still have access to the qt interface.

After setting the above, there’s basically only one way to use this script:

> python main.py --recipient RECIPIENT_ADDRESS --amount SEND_AMOUNT

The script first tries to sync the address balance with the blockchain (or download it from REFERENCE_URLS set in config.py), forms the transaction, and spits out the hex. Use decoderawtransaction to check that the content makes sense.

An example output:

$ python main.py --recipient B5Zi5XJ1sgS6mWGu7bWJqGVnuXwiMXi7qj --amount 999.9
Updating address snapshot...
Done.

This is your transaction hex:
010000004e05505601d1c30e31b4dd598332b155d9074f1ed98a75dacb39b1ee5aff5648f28a3ae2ab0000000000ffffffff0298929800000000001976a9140c390f04c4022947b6493cfa5beefa45e306970e88ac48a1a60b000000001976a914f8e77eac0ffff17e4294cdcae6e7b6e3c1fcb4d288ac0000000042

4. Misc

There are more parameters in config.py though they don't really need to be set by the user. I'll set them when they're ready, though it would also be helpful that someone else does it.
4 Likes

Sorry for the delay. I ll give you an instance of pubkey in a few hours. I use win right now.

If you have nud running, see if you can run the script with

python main.py --recipient B5Zi5XJ1sgS6mWGu7bWJqGVnuXwiMXi7qj --amount 999.9

It should be possible to extend Abe to provide unspent outputs for an address. The pubkey table has a pubkey_hash field. The pubkey_id can be used to lookup txouts, but the pubkey_id field in the txout table would need an index. Or maybe txout_scriptPubKey could be used. The txouts would need to not have a corresponding txin to be unspent.

I was planning on trying it out on windows first but it seems it might be better to straight away set this up on my rasppi with linux right? Seeing as your explanation is relevant to linux if I’m correct.

It should be possible to run it on windows (with nud running, setting full path) but I’m not very sure how.

First you’ll need to set like NUD_PATH = “C:\\PATH_TO_NUD\\nud” in config.py, notice the double backslashes. To run Python like that you may need to add python to the PATH environment variable, and you may even need to add the entire project folder somewhere like this: http://stackoverflow.com/questions/3701646/how-to-add-to-the-pythonpath-in-windows-7

Though on Linux everything is more straightforward.

NOTE UPDATE: RPC call directly made at nud is deprecated. NUD_PATH etc. is no longer relevant.

Planning on having it on linux in the future anyway so might as well do so with the testing to.

Thanks for creating that tool!
I’m looking forward to testing it.

I’m currently syncing the testnet blockchain.
BT9AWq9r1i6kghZc6LtrvNb2wRFh7JLCdP doesn’t look like a testnet NBT address, though. Do we start on the real blockchain?

I don’t know of a testnet address with positive balance. By the way, you should still be able to create an address and pubkey while syncing the blockchain.

Happy to move some test NuBits to an address of your choice. Just let me know the testnet address. It might take a while as I have to synchronise the testnet blockchain first though. The current one I have is on a fork and stuck.

Thanks. This is a 2-of-3 address made out of the public keys given by @jooize , @ttutdxh and myself:

beeFAEa7AqQbmhC5qzxyeNLhvoR9MTKAdJ

Let’s burn some testcoins! Do you have testnet coins?

Hmm I also have trouble syncing the testnet blockchain. Perhaps using the testnet is more pain that it’s worth. We’ll play with real money instead. Here’s a mainnet address:

{
“isvalid” : true,
“address” : “BHaPLPkrd6ZaJV9Kj3pykwDz76YVgNtkvN”,
“ismine” : true,
“isscript” : false,
“pubkey” : “034b0bd0f653d4ac0a2e9e81eb1863bb8e5743f6cb1ea40d845b939c225a1a80ff”,
“iscompressed” : true,
“account” : “”
}

Please post public keys of a mainnet address.

I’ll chip in 0.5 NBT for the multisig address for testing purposes.

Also note that the scripts and the short guide above have been updated.

1 Like

I am, but as I’m stuck on syncing the blockchain at block 558859 I will have a hard time doing something useful with it.

Nevertheless:

validateaddress bUwH2742ASyVGYWWzdqMaLXiniRc5AFXBL
{
    "isvalid" : true,
    "address" : "bUwH2742ASyVGYWWzdqMaLXiniRc5AFXBL",
    "ismine" : true,
    "isscript" : false,
    "pubkey" : "02dcbb5367002e86df13d9c5689aa222632e22b3df8d745ac903adc9dd4c65781c",

As there seems to be trouble with syncing the testnet (I used the bootstrap file, btw.), here’s a mainnet address:

validateaddress BKV6t6mw23n1puZUeefY56wZjqcQjvEBKH
{
    "isvalid" : true,
    "address" : "BKV6t6mw23n1puZUeefY56wZjqcQjvEBKH",
    "ismine" : true,
    "isscript" : false,
    "pubkey" : "02a144af74d018501f03d76ead130433335f969772792ec39ce389c8a234155259",
    "iscompressed" : true,

My pubkey is the same, there is no need to create a new secret key for another blockchain, and the public key is the same in all of them using the same secret. The only thing that changes is the actual single key address of that secret for the new chain, but that is not a problem since we are working with the multisig one.

Personally I find more useful to correctly backup and manage a single secret than a bunch of new ones, I can even memorize the seed and generate the key here http://ttutdxh-nubits.github.io/cointoolkit/#newAddress from everywhere.

Also, the multisig address changes depending on the order of their public keys, so I propose order them lexicographically to end up with the same address.

Again my pubkey is 03661a4370dfcfbcea25d1800057220f4572b6eecab95bb0670e8676a9e34451dc