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 127.0.0.1:14002: xxx
Enter password for flotty in jsonrpc at 127.0.0.1:14002:
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 127.0.0.1:14002: xxx
Enter password for flotty in jsonrpc at 127.0.0.1:14002:
ā€¦

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])

Right?

Yeah sorry for being careless. Fixed in the repo.