Tier 4 Fund Management Discussion

I quote @erasmospunk :

Number of signers: 3-of-5 multisig is a good balance between security, redundancy and the technical capability of the current network.
There is a 500 byte limit on the transaction spending script. A rule of thumb for m-of-n multisig is 6 + m73 + n34 bytes for n < 8, and 8 + m73 + n34 bytes otherwise. I assume compressed pub keys and signatures of 72 bytes (they could also be 71 bytes). This makes the 4-of-6 multisig unusable at 502 bytes but brute forcing 2 signatures to be 71 bytes will just make it at 500 byte input script.

Are we ready to handle the CCEDK repayments?

We can do that, but let’s wait until the other 3 people each feel comfortable with the whole process.

1 Like

I’m in (3 of 5) … so we have @dysconnect, @woodstockmerkle, and @joozie so far … @ttutdxh and @masterOfDisaster from the provisional FLOT on the BqyRzFtWXDmjxrYpyJD42MLE5xc8FrB4js multisig would need to accept this, right?

Sure. Wait for them to say they’re comfortable with the current tools and arrangments. Also, did you try out git-multisig?

Yes; very neat stuff. Thanks for putting that together – it is going to be a big help for us for sure. I am running it under cygwin64 (python 2.7.10) with good results, including the git pull

1 Like

This is really exciting stuff! I figure that something like blockchaininfo for Nu will really help with adoption. This is one of those things.

I find it a must for a number of things, like verifying that the multisig address is really generated with the provided public keys by each FLOT member: http://ttutdxh-nubits.github.io/cointoolkit/?verify=5321034b0bd0f653d4ac0a2e9e81eb1863bb8e5743f6cb1ea40d845b939c225a1a80ff2102a144af74d018501f03d76ead130433335f969772792ec39ce389c8a2341552592103661a4370dfcfbcea25d1800057220f4572b6eecab95bb0670e8676a9e34451dc210234139729dd413c84a71a0bfd6f236790be861b37311cef3240277c940e4b0c072102547427fc2ea3a0ab9ef70f5e1640ff5112b113f65696948f992bd0770b94257155ae#verify

I use windows 32 bit for now. Do I need to change the above in pubconfig.py to my addr and pubkey (mine is 020d369ec7d2d055ea2a98087b3fc100847baab8e14fe1c933981805fb570fffb6 ) ?

For now, no. Changing the address to something not in my flot-operations repository is currently undefined behvaiour for the scripts; I haven’t written anything for complete off-line use, nor a comprehensive initialization script. Until we decide to change the NBT group we shouldn’t change the pub keys part. But it would still be good if you can fork the flot-operation and help with syncing unspent outputs.

On the other hand, if you wish to work with NSR I think you can change the RPC port, set up shared settings (address etc.) and create the flot-operations folder/repository accordingly. I’ll write something for initializing an address snapshot at some point.

I haved tried to run python main.py --recipient BXKidrUiYNgRmDeDX61k6 CASEJ2HjM8pUF --amount 0.12. The scripts starts but asked rpcusername and pword many times like this

Enter username for jsonrpc at xxx
Enter password for flotty in jsonrpc at
Multisig address seems valid.
Snapshot of BqyRzFtWXDmjxrYpyJD42MLE5xc8FrB4js not found on disk.
Trying to fetch online…
Newest remote snapshot for BqyRzFtWXDmjxrYpyJD42MLE5xc8FrB4js found at: dc-tcs
Updating address snapshot…
Enter username for jsonrpc at xxx
Enter password for flotty in jsonrpc at

I think the reason for asking username and passwd is that I start nu with a non-standard directory with these command line options -conf=d:\foo\bar\nu.conf -datadir=d:\foo\bar\. How do I tell main.py where to look for nu.conf ?

Did you set up the rpc username and password in config.py?

Yes. Note that after I typed in user name and password the script went on. Seems it talked with nu successfully?

I just run nud.exe -conf=d:\foo\bar\nu.conf -datadir=d:\foo\bar\ getinfo and it worked

1 Like

The script no longer runs nud directly, it makes http requests to the RPC server within nu -server or nud. If the RPC server runs correctly things should be ok.

I find the multisig address in the receive address list of the wallet so at least we know the script and the server can work together.

1 Like

Apologies. Server is still in maintenance, rebuilding the database. See notification here.

I’m a bit behind testing the scripts, but will be up-to-date soon.
Thank you, @dysconnect and @ttutdxh for your efforts of creating the scripts and the rest of the FLOT to contribute in getting this started!
Looking forward to working with you guys!

Is Python version 3 required for https://github.com/dc-tcs/git-multisig?
I get this error trying out main-py:

python main.py --recipient B5Zi5XJ1sgS6mWGu7bWJqGVnuXwiMXi7qj --amount 1.0
  File "main.py", line 48
    subprocess.call(['git','clone',config.MY_GIT, config.DATA_DIR)
SyntaxError: invalid syntax

I have Python 2.7 installed because of the ALP bots:

python --version
Python 2.7.3
python --version
Python 2.7.10

subprocess.call(['git','clone',config.MY_GIT, config.DATA_DIR)

Lacks a closing ]. I don’t know where it should be.

grep subprocess *
sync.py:    subprocess.call(['git', '-C', git_folder, 'add', '-A'])
sync.py:    subprocess.call(['git', '-C', git_folder, 'commit', '-m', str(time.time())])
sync.py:    subprocess.call(['git', '-C', git_folder, 'push', 'origin', 'master'])

@dysconnect: Help. :smile:

Never mind, I think my brain decided to work again.

It would become git clone <MY_GIT> <DATA_DIR> as set in config, so:

subprocess.call(['git', 'clone', config.MY_GIT, config.DATA_DIR])


Yeah sorry for being careless. Fixed in the repo.