Author

Topic: Armory - Discussion Thread - page 156. (Read 521829 times)

member
Activity: 72
Merit: 10
December 03, 2012, 10:17:14 AM
maybe you should work on an anti-trojan solution or an automatic lock-out feature after a certain number of seconds

if you copy keepass, it should be more successful
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 03, 2012, 09:52:45 AM
So...I won`t see transaction details until you implement the new wallet design, right? Smiley


Are you in Linux or Windows?  If you are in linux, you could modify the code yourself, to remove the one offending line (well, change it).  It's the same line as you see the error:  first try changing it from "str(...)" to "unicode(...)".  If that doesn't work, then just remove the line entirely and change it to "txtime='0'".  That second one should definitely work...

The new wallet needs to support unicode strings, but I will be going through and updating ALL of Armory for unicode support.  I should've done it from the start, but I wasn't really familiar with unicode when I started... (yes, silly American...)
sr. member
Activity: 427
Merit: 250
December 03, 2012, 06:28:18 AM
So...I won`t see transaction details until you implement the new wallet design, right? Smiley
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 02, 2012, 07:42:05 PM
Oh, just watched to the console, maybe that`s why I don`t see anything:
Code:
Traceback (most recent call last):
  File "/opt/BitcoinArmory/ArmoryQt.py", line 2653, in dblClickLedger
    txtime = str(self.ledgerView.model().index(row, LEDGERCOLS.DateStr).data().toString())
UnicodeEncodeError: 'ascii' codec can't encode characters in position 5-7: ordinal not in range(128)

Quote
It makes it way too easy for someone to plant an address in your and then pay you to that address making you believe you've received coins.
You can prevent it with big red warnings or similar Smiley

Ahh, unicode!  I haven't gotten around to making Armory unicode-friendly... but that is part of the new wallet design, and I'll be upgrading the entire application, with it Smiley
sr. member
Activity: 427
Merit: 250
December 02, 2012, 07:38:01 PM
Oh, just watched to the console, maybe that`s why I don`t see anything:
Code:
Traceback (most recent call last):
  File "/opt/BitcoinArmory/ArmoryQt.py", line 2653, in dblClickLedger
    txtime = str(self.ledgerView.model().index(row, LEDGERCOLS.DateStr).data().toString())
UnicodeEncodeError: 'ascii' codec can't encode characters in position 5-7: ordinal not in range(128)

Quote
It makes it way too easy for someone to plant an address in your and then pay you to that address making you believe you've received coins.
You can prevent it with big red warnings or similar Smiley
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 02, 2012, 07:28:03 PM
Quote
You can already double-click on the transaction in the ledger and see all the inputs and outputs -- which includes the funding addresses.
Um...where is that? Maybe I should go get some sleep...

Quote
The problem is that Armory relies on Bitcoin-Qt/bitcoind to forward the transaction to the rest of the network
Yeah, didn`t think of that. Bummer Sad

Oh! One more suggestion: possibility to add arbitrary "watch-only" address to wallet or separately. Or is it possible already?

N.Z. -- I'm uncomfortable with adding watch-only addresses to watch-only wallets.  It makes it way too easy for someone to plant an address in your and then pay you to that address making you believe you've received coins.  However, I do want to give users some way to do it, I'm just not quite sure how to implement it, yet.
sr. member
Activity: 427
Merit: 250
December 02, 2012, 07:25:43 PM
Quote
You can already double-click on the transaction in the ledger and see all the inputs and outputs -- which includes the funding addresses.
Um...where is that? Maybe I should go get some sleep...

Quote
The problem is that Armory relies on Bitcoin-Qt/bitcoind to forward the transaction to the rest of the network
Yeah, didn`t think of that. Bummer Sad

Oh! One more suggestion: possibility to add arbitrary "watch-only" address to wallet or separately. Or is it possible already?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 02, 2012, 07:09:14 PM
etotheipi, thank for what you`ve done Smiley It works, at least I made two real transactions and checked whether they were "coin controlled". Suggestions:
- Display comments in Coin Control dialog, not only adresses.
- In transaction tab display "from" address(-es) and its description. Maybe that would be better if dialog will be provided for such details by right-clicking on it.

Not related to CC:
- Make an expert (hidden) option to not include fee even if it is supposed to; reference: https://bitcointalksearch.org/topic/update-2015-05-10-bitcoin-core-soft-fork-no-forced-tx-fee-v0101-available-22434

Also maybe you should note elsewhere to add -listen command line option to bitcoin-qt if one is using proxy (Tor), as it turned off if so.

P.S. what about translations?


N.Z. -- I actually did put the comments into the mouse-over text for each address, though I realize it's not ideal.  I didn't want to bloat the interface with all comments visible, but maybe I should try it and see...

I'm not sure what you mean about the "from address(-es)"   You can already double-click on the transaction in the ledger and see all the inputs and outputs -- which includes the funding addresses.  It won't tell you the list of addresses you had in the coin-control pool, but I don't see why one would need that.

I was not aware about the -listen command for bitcoin-qt for Tor.  I should put a comment about that somewhere...

I have tried to add a force-zero-fee option to the interface, but it doesn't actually work.  The problem is that Armory relies on Bitcoin-Qt/bitcoind to forward the transaction to the rest of the network, and if you're using stock bitcoind/-qt, the tx will be DOA.  There's no way to push it through, unless you copy the raw transaction and submit it to a node/miner that will take it.

One day I'll get on the translation train, but it will probably be a mess, because I have so many dynamic messages in the program.  Also, I'll need to support unicode first... Smiley  (but that's coming with the new wallet file)

sr. member
Activity: 427
Merit: 250
December 02, 2012, 06:59:56 PM
etotheipi, thank for what you`ve done Smiley It works, at least I made two real transactions and checked whether they were "coin controlled". Suggestions:
- Display comments in Coin Control dialog, not only adresses.
- In transaction tab display "from" address(-es) and its description. Maybe that would be better if dialog will be provided for such details by right-clicking on it.

Not related to CC:
- Make an expert (hidden) option to not include fee even if it is supposed to; reference: https://bitcointalksearch.org/topic/update-2015-05-10-bitcoin-core-soft-fork-no-forced-tx-fee-v0101-available-22434

Also maybe you should note elsewhere to add -listen command line option to bitcoin-qt if one is using proxy (Tor), as it turned off if so.

P.S. what about translations?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 02, 2012, 05:47:23 PM
No i didnt try it yet as i have no Testnet Coins (nor the blockchain atm).

Send me a testnet address, I'll send you some testnet BTC Smiley

And thanks to whoever just donated e BTC.  Thanks for not sending e^ipi Smiley
hero member
Activity: 496
Merit: 500
December 02, 2012, 03:52:23 PM
who created this?

As etotheipi obersved, I based it off of his cli_sign_txdp.py script.

Cool script.  I wasn't aware of blockchain.info's service.  How does it work exactly?  You give them an address you want the money to end up at, and they give you an address to which you can send coins and they will eventually be forwarded there?  How long does it take?

Thanks! The page that describes their mixer, along with an HTML interface to it is here. Yeah, you give them a destination address, and they give you an anonymous forwarding address. They only keep the association in their database for 8 hours, unless the forwarding address receives funds, then the association is kept until 6 confirmations. When an anonymous transaction is queued, blockchain.info wallet users that create transactions will have their funds routed to your destination address, and your funds will be routed to their destination. They use their taint analysis tools to guarantee that the input and output are not linked through the block chain in any way.

The time varies, depending on how much you need mixed. I've had it take as little as half an hour, as long as two days (but that was for quite a large amount).
legendary
Activity: 1792
Merit: 1008
/dev/null
December 02, 2012, 03:29:20 PM
Great, I switched branches and used the coin control dialog once without issue. It is slick, nice job.

In case anyone else created transferred their savings to Armory in one massive transaction like I did, and now are bothered that their savings is all tainted (if you spend 1 BTC to someone, they can pretty easily see how much you have in your savings), here's the script I used. It asks how much you want to anonymize, and the min and max amount you would want in each address. It creates addresses in your selected wallet, uses blockchain.info's API to create an anonymous forwarding address, and selects a random amount between the min and max. It builds a transaction with as many outputs as needed to hit the total, and then saves it to a file. This can then be imported into Armory, inspected, signed, and broadcast.

http://pastebin.com/XLT5FgdB

Cool script.  I wasn't aware of blockchain.info's service.  How does it work exactly?  You give them an address you want the money to end up at, and they give you an address to which you can send coins and they will eventually be forwarded there?  How long does it take?

For anyone wondering, I just went through the script and it looks like a variant/mod of the extras/cli_sign_script.py that I added to the project recently.  It uses the Armory libraries exactly as they are installed/compiled, to access your wallets, find your coins, get forwarding/anonymizer addresses from blockchain.info, and then constructs an unsigned transaction for it.  I can't vouch for whether it works, but it very much looks like how I would've written it Smiley    (but I didn't write it)

So in talking with some users about the new wallet format, an idea came up:  what about encrypting the watching-only wallets?  And giving the option to encrypt even the public data in an encrypted wallet?  Perhaps the wallet is on a laptop and the laptop gets stolen.  The person can't get your $100k in BTC savings, but they now have your identity and know you have $100k in BTC savings...

I'm thinking that it could be implemented by encrypting, basically all the fields of the wallet, the same way as the private keys are encrypted.  When Armory opens, it will request the passphrase for the outer encryption, and give that key a lock-timeout of inf.  So the wallet will be accessible as long as Armory is open, but if it is closed (rebooted), the wallet will be inaccessible.  I'd prefer the outer encryption be a different key/passphrase than the one protecting the private keys, but I don't know if that would just be a P.I.T.A for the users (they can decide for themselves, I guess).  Really what this does it makes sure your unencrypted wallet information is only ever stored in RAM... it's only ever written to disk encrypted.

I think I like the idea, I just don't know how I want it implemented... perhaps a single password for all your wallets, rather than per-wallet?  That way, if you have 10 different wallets, you won't have to type in 10 passwords everytime you start Armory...

Glad you like the coin-control Smiley  I'm quite happy with the way it turned out!   K1773R:  have you tried it yet?  Does it satisfy your use case?  Or are the other features you were looking for in "coin control"?

No i didnt try it yet as i have no Testnet Coins (nor the blockchain atm). Altough from what i see this is exactly what i need Smiley
Maybe you could implement something like "bitcoind listaddressgroupings" into the GUI? the original link ive send u (the thread) has something like this implemented, if this would be implemented it would be all someone/anyone can ask for! great work!
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 02, 2012, 03:06:07 PM
Great, I switched branches and used the coin control dialog once without issue. It is slick, nice job.

In case anyone else created transferred their savings to Armory in one massive transaction like I did, and now are bothered that their savings is all tainted (if you spend 1 BTC to someone, they can pretty easily see how much you have in your savings), here's the script I used. It asks how much you want to anonymize, and the min and max amount you would want in each address. It creates addresses in your selected wallet, uses blockchain.info's API to create an anonymous forwarding address, and selects a random amount between the min and max. It builds a transaction with as many outputs as needed to hit the total, and then saves it to a file. This can then be imported into Armory, inspected, signed, and broadcast.

http://pastebin.com/XLT5FgdB

Cool script.  I wasn't aware of blockchain.info's service.  How does it work exactly?  You give them an address you want the money to end up at, and they give you an address to which you can send coins and they will eventually be forwarded there?  How long does it take?

For anyone wondering, I just went through the script and it looks like a variant/mod of the extras/cli_sign_script.py that I added to the project recently.  It uses the Armory libraries exactly as they are installed/compiled, to access your wallets, find your coins, get forwarding/anonymizer addresses from blockchain.info, and then constructs an unsigned transaction for it.  I can't vouch for whether it works, but it very much looks like how I would've written it Smiley    (but I didn't write it)

So in talking with some users about the new wallet format, an idea came up:  what about encrypting the watching-only wallets?  And giving the option to encrypt even the public data in an encrypted wallet?  Perhaps the wallet is on a laptop and the laptop gets stolen.  The person can't get your $100k in BTC savings, but they now have your identity and know you have $100k in BTC savings...

I'm thinking that it could be implemented by encrypting, basically all the fields of the wallet, the same way as the private keys are encrypted.  When Armory opens, it will request the passphrase for the outer encryption, and give that key a lock-timeout of inf.  So the wallet will be accessible as long as Armory is open, but if it is closed (rebooted), the wallet will be inaccessible.  I'd prefer the outer encryption be a different key/passphrase than the one protecting the private keys, but I don't know if that would just be a P.I.T.A for the users (they can decide for themselves, I guess).  Really what this does it makes sure your unencrypted wallet information is only ever stored in RAM... it's only ever written to disk encrypted.

I think I like the idea, I just don't know how I want it implemented... perhaps a single password for all your wallets, rather than per-wallet?  That way, if you have 10 different wallets, you won't have to type in 10 passwords everytime you start Armory...

Glad you like the coin-control Smiley  I'm quite happy with the way it turned out!   K1773R:  have you tried it yet?  Does it satisfy your use case?  Or are the other features you were looking for in "coin control"?
legendary
Activity: 1792
Merit: 1008
/dev/null
December 02, 2012, 02:59:57 PM
Great, I switched branches and used the coin control dialog once without issue. It is slick, nice job.

In case anyone else created their savings to Armory in one massive transaction like I did, and now are bothered that the entire amount is linked (if you spend 1 BTC to someone, they can trivially see how many coins you own), here's the script I used. It asks how much you want to anonymize, and the min and max amount you would want in each address. It creates addresses in your selected wallet, uses blockchain.info's API to create an anonymous forwarding address, and selects a random amount between the min and max. It builds a transaction with as many outputs as needed to hit the total, and then saves it to a file. This can then be imported into Armory, inspected, signed, and broadcast.

I used blockchain.info for this because I trust them, they have an API, and they charge a (IMO) reasonable 1.5 % fee.

http://pastebin.com/XLT5FgdB
who created this?
hero member
Activity: 496
Merit: 500
December 02, 2012, 02:44:11 PM
Great, I switched branches and used the coin control dialog once without issue. It is slick, nice job.

In case anyone else created their savings to Armory in one massive transaction like I did, and now are bothered that the entire amount is linked (if you spend 1 BTC to someone, they can trivially see how many coins you own), here's the script I used. It asks how much you want to anonymize, and the min and max amount you would want in each address. It creates addresses in your selected wallet, uses blockchain.info's API to create an anonymous forwarding address, and selects a random amount between the min and max. It builds a transaction with as many outputs as needed to hit the total, and then saves it to a file. This can then be imported into Armory, inspected, signed, and broadcast.

I used blockchain.info for this because I trust them, they have an API, and they charge a (IMO) reasonable 1.5 % fee.

http://pastebin.com/XLT5FgdB
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 01, 2012, 09:18:26 PM
That's awesome news. Question: has the threading branch been merged to master, or do I have to manually merge the two branches to test this?

Oh yeah, it has been merged.  And then "coincontrol" was branched off of that.

P.S. -- Whenever you get in-program notification that a new version is available, it only because it was merged into master.  The URL Armory uses for checking for updates is:

https://raw.github.com/etotheipi/BitcoinArmory/master/versions.txt
hero member
Activity: 496
Merit: 500
December 01, 2012, 09:11:56 PM
Holy moly that was easy!  All I had to do was modify one call to compute the balance and utxoList differently if Coin Control was selected, and it seems to work flawlessly!  It treats your coin-selection as if it was your wallet, yet the dialog pretty clearly identifies that you are in CC mode.

If anyone in Linux or OSX wants to try it right now, you can do so by checking out the "coincontrol" branch.  You don't even need to recompile (well, you do if you haven't upgraded to 0.85 yet).   It is only available under "Expert" usermode.  I recommend running it in the terminal, so that you can see the output when you hit the "Send" button.  It will dump the coin-selection to the terminal so you can verify that the selection was made correctly.  Alternatively, you can click "Create Unsigned Transaction", copy the tx to the clipboard, then re-enter it on the next window and then "Click here for more information about this transaction."

Test this thing!  Tell me if something doesn't work or if it's missing something.  If it's stable enough, I'll make it official ASAP.  There's been so much demand for it over the past year, that I think it deserves its own release!


That's awesome news. Question: has the threading branch been merged to master, or do I have to manually merge the two branches to test this?
legendary
Activity: 1764
Merit: 1002
December 01, 2012, 08:59:37 PM
ya know, i was thinking that the new Keccak SHA 3 really isn't up to my standards.  perhaps i should develop an alternative over the weekend.  would this be helpful?  Wink
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 01, 2012, 08:45:46 PM
Holy moly that was easy!  All I had to do was modify one call to compute the balance and utxoList differently if Coin Control was selected, and it seems to work flawlessly!  It treats your coin-selection as if it was your wallet, yet the dialog pretty clearly identifies that you are in CC mode.

If anyone in Linux or OSX wants to try it right now, you can do so by checking out the "coincontrol" branch.  You don't even need to recompile (well, you do if you haven't upgraded to 0.85 yet).   It is only available under "Expert" usermode.  I recommend running it in the terminal, so that you can see the output when you hit the "Send" button.  It will dump the coin-selection to the terminal so you can verify that the selection was made correctly.  Alternatively, you can click "Create Unsigned Transaction", copy the tx to the clipboard, then re-enter it on the next window and then "Click here for more information about this transaction."

Test this thing!  Tell me if something doesn't work or if it's missing something.  If it's stable enough, I'll make it official ASAP.  There's been so much demand for it over the past year, that I think it deserves its own release!
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 01, 2012, 07:51:48 PM
perfect, but still the ugly ubuntu 10.04 look Tongue why no upgrade to the real (maverick and later) ones, i already send ya a PM.
thanks for this, gonna love it Cheesy

Yeah, thanks for the PM, but I'm actually quite fond of the 10.04 theme, so I don't really have any incentive to switch.  But thanks for the offer.

Got a few more things to work out before it actually works.  But so far, it's going much faster than I expected...
Jump to: