Author

Topic: Armory - Discussion Thread - page 107. (Read 521763 times)

cp1
hero member
Activity: 616
Merit: 500
Stop using branwallets
August 30, 2013, 05:16:11 PM
You can also disable armory from running bitcoind itself and run bitcoin-qt separately.
newbie
Activity: 37
Merit: 0
August 30, 2013, 05:11:43 PM
Thank you, pankkake.
newbie
Activity: 37
Merit: 0
August 30, 2013, 05:07:13 PM
Yes, but when I open armory, I don't have a GUI loaded of bitcoin-qt. Can I view the number of connections from the Armory GUI? If not, what is the recommended way to I launch Bitcoin-Qt's GUI without opening a 2nd instance?
I guess it's running bitcoind instead. Easy: run bitcoind getinfo in a terminal.

EDIT (original text removed to avoid confusion): Ah, I get it now.

https://i.imgur.com/zrxGxFK.png
newbie
Activity: 37
Merit: 0
August 30, 2013, 04:34:53 PM
Armory uses bitcoin-qt, so it's the same number.
Yes, but when I open armory, I don't have a GUI loaded of bitcoin-qt. Can I view the number of connections from the Armory GUI? If not, what is the recommended way to I launch Bitcoin-Qt's GUI without opening a 2nd instance?

EDIT: This is what I see when I try to open Bitcoin-Qt while Armory is already running:

https://i.imgur.com/d67vTQx.png
cp1
hero member
Activity: 616
Merit: 500
Stop using branwallets
August 30, 2013, 04:31:56 PM
Armory uses bitcoin-qt, so it's the same number.
newbie
Activity: 37
Merit: 0
August 30, 2013, 04:26:40 PM
N00b here. Search was unsuccessful. Is there a way to view the number of connections when using Armory, like is possible with Bitcoin-Qt?

https://i.imgur.com/rriitmg.png
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
August 29, 2013, 03:24:32 PM

If you want to examine the tx directly, you can load the tx into armoryengine and do something like this:

Code:
from armoryengine import *

rawHex = ''
tx = PyTx().unserialize( hex_to_binary(rawHex) )
tx.pprint()

print prettyHex(rawHex)

You'll get a higher-level overview of what's in the tx from the first pprint command, and then a hex breakout of the raw tx from the second command (if you feel like digging into the raw tx bytemap).  It's not pleasant, but if broadcasting is failing, it's probably invalid and you need to figure out why.
legendary
Activity: 1400
Merit: 1013
August 29, 2013, 03:18:46 PM
Doesn't work there either. There's something about their binary format that no other tool seems to like.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
August 29, 2013, 03:17:21 PM
Sometimes Coinbase forgets (apparently) to broadcast a transaction, even though it shows up in their own blockchain browser.

It will show you the transaction in binary or json formats. Anyone know how to convert one of those formats into something that can be pasted into the Armory offline transactions window and broadcast?

Here's a random example:

https://coinbase.com/network/transactions/b7697479993e54eb6594d607904e3a9c65692124f9b9bcba5a16bb5affe173fc

I opened the binary file in Okteta (hex editor) and tried copying it to the clipboard as a variety of formats, but none of them worked.

I never got around to implementing that, because I wanted the user to be able to examine the transaction before they click broadcast, but a raw transaction doesn't have all the info it needs (refer to SIGHASH_WITHINPUTVALUE discussion).  I probably should've put something in there anyway with a warning, but I never got around to it.

I suggest using https://blockchain.info/pushtx
legendary
Activity: 1400
Merit: 1013
August 29, 2013, 03:05:52 PM
Sometimes Coinbase forgets (apparently) to broadcast a transaction, even though it shows up in their own blockchain browser.

It will show you the transaction in binary or json formats. Anyone know how to convert one of those formats into something that can be pasted into the Armory offline transactions window and broadcast?

Here's a random example:

https://coinbase.com/network/transactions/b7697479993e54eb6594d607904e3a9c65692124f9b9bcba5a16bb5affe173fc

I opened the binary file in Okteta (hex editor) and tried copying it to the clipboard as a variety of formats, but none of them worked.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
August 28, 2013, 11:45:42 PM
BTW, i had log full of this messages
Code:
2013-08-28 18:20 (ERROR) -- ArmoryQt.py:4294 - Error in checkSatoshiVersion
Traceback (most recent call last):
  File "/opt/BitcoinArmory/ArmoryQt.py", line 4248, in checkSatoshiVersion
    not 'SATOSHI' in self.latestVer or \
AttributeError: 'ArmoryMainWindow' object has no attribute 'latestVer'
Tens of these messages by second...

That turned out to be a bug that made it's way into the released version, but doesn't affect performance or functionality at all.  It should be fixed in the testing version, and will not be there for the next version ... but the worst thing it does is make the logs harder to access/read.  It's unrelated to the crashing.



Just to keep things consistent, there was a reddit post asking if Armory was dead.  Here's my response:

Quote
Yeah, things have been slow. Lots of distractions, but still lots of development. We're actually about to replace the entire webpage with something much slicker and prettier. That should give a good indication that things are still moving forward! Smiley

As quantabytes pointed out, all development has been happening on a separate branch, which doesn't update the main github page. The changes are basically a complete overhaul of the underlying blockchain utilities, but I'm doing so to benefit about 30 different functionalities I want to implement in the future. Things like compressed keys, multi-sig, P2SH, arbitrary scripts, arbitrary balance lookup, and a [better] daemon mode. Those will all be much easier to implement when I finally finish this upgrade!

You can follow the Armory thread on bitcointalk as Kupsi linked. I tend to post updates there on my progress. I actually posted a breakthrough last week about passing some really rigorous unit-tests, but then later found out that SatoshiDice crushed the new design, due to some misdirected optimizations in the first round. This second round should be complete in the next couple days, and I can start integrating the new stuff into the GUI.
hero member
Activity: 496
Merit: 500
August 28, 2013, 11:07:48 PM
It is getting worse with time unfortunately, the last time this crash-before-initialize was right after other crash, when I needed access to my bitcoins asap Sad Maybe it is unrelated to unicode bugs...BTW, i had log full of this messages
Code:
2013-08-28 18:20 (ERROR) -- ArmoryQt.py:4294 - Error in checkSatoshiVersion
Traceback (most recent call last):
  File "/opt/BitcoinArmory/ArmoryQt.py", line 4248, in checkSatoshiVersion
    not 'SATOSHI' in self.latestVer or \
AttributeError: 'ArmoryMainWindow' object has no attribute 'latestVer'
Tens of these messages by second...

Did you try completely reinstalling? That doesn't seem like a text encoding issue.
hero member
Activity: 518
Merit: 500
August 28, 2013, 08:34:17 PM
It is getting worse with time unfortunately, the last time this crash-before-initialize was right after other crash, when I needed access to my bitcoins asap Sad Maybe it is unrelated to unicode bugs...BTW, i had log full of this messages
Code:
2013-08-28 18:20 (ERROR) -- ArmoryQt.py:4294 - Error in checkSatoshiVersion
Traceback (most recent call last):
  File "/opt/BitcoinArmory/ArmoryQt.py", line 4248, in checkSatoshiVersion
    not 'SATOSHI' in self.latestVer or \
AttributeError: 'ArmoryMainWindow' object has no attribute 'latestVer'
Tens of these messages by second...
legendary
Activity: 1400
Merit: 1013
August 28, 2013, 07:24:24 PM
etotheipi, what about this "non-US" bugs, random crashes on my Linux is very annoying:
Quote
A lot of users have reported problems with the latest version (0.88.1).  Many things changed in the last upgrade that caused compatibility issues for many users, especially non-US users.
I think that made Armory almost unusable for me, sometimes Armory can`t even process blockchain before it crashes Sad
It's extremely annoying, but I've never had it crash that soon.
hero member
Activity: 518
Merit: 500
August 28, 2013, 02:53:31 PM
etotheipi, what about this "non-US" bugs, random crashes on my Linux is very annoying:
Quote
A lot of users have reported problems with the latest version (0.88.1).  Many things changed in the last upgrade that caused compatibility issues for many users, especially non-US users.
I think that made Armory almost unusable for me, sometimes Armory can`t even process blockchain before it crashes Sad
member
Activity: 108
Merit: 100
August 28, 2013, 01:44:15 PM
@etotheipi: can the view on blockchain.info option go to the https site rather than http
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
August 27, 2013, 10:39:38 AM
For those interested, I got a few more quotes in the paper today.  This time USA Today!

http://www.usatoday.com/story/news/politics/2013/08/26/bitcoin-virtual-currency-regualtions/2702653/

legendary
Activity: 1428
Merit: 1093
Core Armory Developer
August 24, 2013, 10:42:49 AM
We've just started integrating armory / armoryd into our new site (for offline cold storage stuff) - is there some reference code for broadcasting a newly signed transaction? (or converting it into standard bitcoind format and then we can broadcast from there)

also - how come the github code hasnt been updated for a while - there are loads of small fixes that could have been merged - do you have a private dev branch that you work from instead?

There is a "Copy Raw Tx (Hex)" button on the "Sign and/or Broadcast Offline Transaction" window.  You could look for that button in the python code and copy what it's doing.  I'd look it up for you, but I'm on my phone.   I believe that you have a "TxDP" object which represents the signed transaction, and you do something like "txdp.prepareFinalTx()".   That should give you a raw binary transaction in the form that all other nodes on the network recognize.

On that same window is the "Broadcast" button which also should lead you to how I implement broadcasting to the connected bitcoind/-qt instance.  If you already have a running instance of Armory, it should be easy (because it's already connected), but it may take some work if you're writing an isolated script.

I have been working in the "ramreduceleveldb" branch for the past couple months.  I've been heavily distracted, so progress hasn't been as voluminous as I'd hoped, but progress is being made (see a few posts up about the most recent unit tests I passed).  I ran into issues with the new DB stuff being bottlenecked by SatoshiDice addresses and 1VayNert, but I should have the updates for that soon and then will start integrating the new DB stuff into the python layer.  For reference, this first version will use a lot of HDD space -- probably 1.7X the blk*.dat files -- but will provide instantaneous arbitrary address lookup (balances and UTXO sets).  This was the easiest to implement, and when this is done I'll be in a good position to implement much lighter variants. 

full member
Activity: 179
Merit: 100
August 24, 2013, 10:32:26 AM
We've just started integrating armory / armoryd into our new site (for offline cold storage stuff) - is there some reference code for broadcasting a newly signed transaction? (or converting it into standard bitcoind format and then we can broadcast from there)

also - how come the github code hasnt been updated for a while - there are loads of small fixes that could have been merged - do you have a private dev branch that you work from instead?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
August 16, 2013, 01:15:23 PM
Fantastic! Very happy to see results like that - especially measured in msecs  Smiley

I should mention that the timings are artificially inflated due to the fact that it destroys and rebuilds a testing database on every test.  This means there's quite a bit of hard disk I/O involved in just the SetUp and TearDown procedures, and executing a small batch of writes comes with huge overhead.  It will not take 0.6 seconds to add 5 blocks to the DB when doing a full database build...

With re-org handling implemented, I will start benchmarking DB building on much larger data sets (more than 5 blocks).  And then I'll see what has to change to hook this up to the GUI.  The upside is that nearly all the interfaces are the same, so the GUI probably won't see much change (other than not having to wait for startup and importing wallets).  The downside is that some stuff did change:  I added C++ support for compressed keys, multi-sig and P2SH.  This means I need a translation layer for the old wallets to work right until the new wallet format is complete.

But yeah... progress...
Jump to: