Pages:
Author

Topic: Armory 0.93 testing release! (with 0.05 BTC bug bounty) - page 14. (Read 35768 times)

legendary
Activity: 1428
Merit: 1093
Core Armory Developer
Armory's startup time is lower than I can ever remember it being before.
Yep, truly impressive, even when loading a supernode from an HDD.

I noticed this little symbol in the lower left corner of the transaction window. When I hover over it, it expands and tells me where I am in the list. Is this meant to be just a debug thing that should be taken out before final release of 0.93?



Heh, we've been debating this widget forever.  I'm not a big fan of its placement, but it is intended to be a permanent fixture.  The idea is that for huge wallet histories, you can use that widget to go to any point in the history (we've been testing with 1VayNert and it definitely helps get through the 10,000 pages of tx history).  You can click on the block or time to manually type/select where you want to go.  Or just click "Top". 

Glad to hear the positive feedback about the changes.  We knew this was going to be a rough testing round given how much has changed under the hood, but it does appear to be wrapping up nicely, and I think 0.93 really is a huge step forward for Armory, especially as an option for exchanges and webservices that need a strong API to the network.

Okay, a contest.  Extra 2 bounties for the winner!

Wtf do we do with the paging control widget?  Since writing the above message, we have spent even more time debating this.  The problem stems from the fact that
- If it's placed on the tableview itself, it obstructs things (or at least, it annoys me), and the user may not want/need it
- If it's placed outside the tableview, then the dialog must have extra space to put it.   Not a problem for the main window, but it will need to be placed for the wallet address ledger and the lockbox ledger.  Both those dialogs are short on space.

Obviously we want it to be available for those that need it, and it shouldn't be a easter-egg... it should be easily accessible for users that want it (i.e. we don't want to have a feature then get emails asking for us to implement it because they don't realize it's there).

One option is to leave it where it is, but add a setting to allow the user to disable/hide it.  That's probably the easiest to implement, and not a bad choice.  I'll give an extra two bounties to whoever provides and idea that we like enough to implement.  If you have a transaction history of 1,000,000 rows, spanning multiple years, how would you like to navigate that history?  And if you switch the filter to a wallet that has only one page of history, what happens to that control?  Should it be hidden, moved, or left where it is?  Should it be totally user configurable.

Ideally, whatever it is can be non-intrusive enough to have visible all the time and not inconvenience users that have small transaction histories and/or don't need the fancy controls.
legendary
Activity: 3794
Merit: 1375
Armory Developer
Not a horrible problem but... I've been playing with .5 on Windows 7. If you try to restore a wallet from digital backup Armory prompts for the file name twice. Like I said not terrible. It works, but you have to answer the file name prompt twice.

Most likely related to some changes trying to improve the OSX file browser, we'll get it under control.
legendary
Activity: 3794
Merit: 1375
Armory Developer
I noticed this little # symbol in the lower left corner of the transaction window. When I hover over it, it expands and tells me where I am in the list. Is this meant to be just a debug thing that should be taken out before final release of 0.93?

I've originally developed that as a proof of concept to demonstrate the on-the-fly transaction history paging system the new backend runs on (the previous one would keep all history in RAM on both the C++ and Python side). I didn't expect it would get rolled in this early, but in the end it was better than the piss poor page browsing UI I added the first time around (that huge input box at the bottom on the transaction table in the lobby).

The widget is meant to let you center the transaction table by time or block height, and it was heavily influenced by the large wallet I was developing this around (with 1VayNert and 1ExOdUs, some ~80k pages). I'm not much of UI guru and I would welcome any feedback and suggestions on this feature. One of the reason we released it as it stand is that the simplest way to improve user experience is the let the users tell us what they think.
sr. member
Activity: 306
Merit: 250
Not a horrible problem but... I've been playing with .5 on Windows 7. If you try to restore a wallet from digital backup Armory prompts for the file name twice. Like I said not terrible. It works, but you have to answer the file name prompt twice.

legendary
Activity: 1428
Merit: 1093
Core Armory Developer
Armory's startup time is lower than I can ever remember it being before.
Yep, truly impressive, even when loading a supernode from an HDD.

I noticed this little symbol in the lower left corner of the transaction window. When I hover over it, it expands and tells me where I am in the list. Is this meant to be just a debug thing that should be taken out before final release of 0.93?



Heh, we've been debating this widget forever.  I'm not a big fan of its placement, but it is intended to be a permanent fixture.  The idea is that for huge wallet histories, you can use that widget to go to any point in the history (we've been testing with 1VayNert and it definitely helps get through the 10,000 pages of tx history).  You can click on the block or time to manually type/select where you want to go.  Or just click "Top". 

Glad to hear the positive feedback about the changes.  We knew this was going to be a rough testing round given how much has changed under the hood, but it does appear to be wrapping up nicely, and I think 0.93 really is a huge step forward for Armory, especially as an option for exchanges and webservices that need a strong API to the network.
sr. member
Activity: 250
Merit: 253
I noticed this little # symbol in the lower left corner of the transaction window. When I hover over it, it expands and tells me where I am in the list. Is this meant to be just a debug thing that should be taken out before final release of 0.93?



Armory's startup time is lower than I can ever remember it being before.
Yep, truly impressive, even when loading a supernode from an HDD.

Armory's startup time is lower than I can ever remember it being before.

How about the (reliably instant) shutdown time also? 0.92.3 can take several minutes to quit if you're unlucky.
So far, so good. But then, maybe I've just been lucky?
legendary
Activity: 3430
Merit: 3080
Armory's startup time is lower than I can ever remember it being before.

How about the (reliably instant) shutdown time also? 0.92.3 can take several minutes to quit if you're unlucky.
legendary
Activity: 1400
Merit: 1013
Armory's startup time is lower than I can ever remember it being before.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
Just pushed .5 .  It should return the OSX build to it's previously mostly-stable state, and includes a new ledger paging mechanism.  We normally wouldn't have made such a late change, but there was some issues with the old paging, and goatpig had already finished this, so we merged it in.  If you have a large transaction history, please try it out!  It follows the pattern of the infiniscroll websites such as imgur or facebook.  The more you scroll, the more it loads!

As usual, please get from the Secure Downloader if possible.

  Armory 0.92.99.5-testing for Windows XP, Vista, 7, 8+ (32- and 64-bit)
  Armory 0.92.99.5-testing for MacOSX 10.7+ (64bit)
  Armory 0.92.99.5-testing for Ubuntu 12.04+ (32bit)
  Armory 0.92.99.5-testing for Ubuntu 12.04+ (64bit)
  Armory 0.92.99.5-testing for RaspberryPi  (armhf)

  Armory 0.92.99.5-testing Offline Bundle for Ubuntu 12.04 exact (32bit)
  Armory 0.92.99.5-testing Offline Bundle for Ubuntu 12.04 exact (64bit)
  Armory 0.92.99.5-testing Offline Bundle for RaspberryPi  (armhf)

  Armory 0.92.99.5-testing: Signed hashes of all installers
newbie
Activity: 17
Merit: 0
With HEAD on the 0.93-bugfix branch, we an interesting error in a TXSIGCOLLECT generated by armoryd. If there was a change output, the change output was an old-style multisig script, rather than the new p2sh style. For example, this testnet transaction, and its decomposition:

Code:
python armoryd.py --testnet createlockboxustxtoaddress msj42CCGruhRsFrGATiUuh25dtxYtnpbTx 0.00001
=====TXSIGCOLLECT-7wVXpYd2======================================
AQAAAAsRCQcAAAAAAf0yAwEAAAALEQkHFlKTRmxBEIR+RS7+7Bn3BHT1Knrc7z9X
teo0PybMXhwBAAAA4AEAAAABMHL7+n0jQTpbJEMuaGIWgk8bPIQAqVqLIktH9Rhs
kq8AAAAAa0gwRQIhAIUOb2E0rRgyH1GDH6M+zSe7Wywdn9SDh0WaF6G2iXJEAiBl
dLUvW2Y98+ts300DviZzHdCraWvvwdmGuiUGmgftlAEhAqrp5NO+YM0ZtRBP/fcB
YEfiGgenxpbnfmRzDfrd92UV/////wLEUNvCAQAAABl2qRQlHSkniekJJ+sqkMjw
HpdKOvMYx4isAKAlJgAAAAAXqRTGlTR6NgKKM+8ygdYqQaT0cskvWocAAAAA/QsB
U0EEcaqfnSuuk4Af7OcIjanGzUf2Y8Cx/gXLgv0q3URd5H1eczOHOCO3AWMYxTJ+
Lu651FCjylV3Kv1FLVsIQpDjWkEEzrop2hr5ag8u982mlQuL4rrrGt8SwNXv67cN
vKoIa6ApzYKgz7je32W4dgzycfK4pQRmu/C5M5xf/vvipBZTJkEE1aQrkOnXFWFV
Zhl5UwoJ0uEuJS70EE5WESdKeufisJQGVzB7EpvvlI6pMtLT8g4aBRPJ6E/YUPdD
7mai4zSNH0EE/+7DDlt2V/EvUiSearKC52inqCm3khOFCvYBId6kn9IwWYZ3kp5j
e+7ZYkv8+2JyH/fxSojZllIVIGUcmT4/QVSuAAD/////BEEEcaqfnSuuk4Af7OcI
janGzUf2Y8Cx/gXLgv0q3URd5H1eczOHOCO3AWMYxTJ+Lu651FCjylV3Kv1FLVsI
QpDjWgAAQQTOuinaGvlqDy73zaaVC4viuusa3xLA1e/rtw28qghroCnNgqDPuN7f
Zbh2DPJx8rilBGa78LkznF/+++KkFlMmAABBBNWkK5Dp1xVhVWYZeVMKCdLhLiUu
9BBOVhEnSnrn4rCUBlcwexKb75SOqTLS0/IOGgUTyehP2FD3Q+5mouM0jR8AAEEE
/+7DDlt2V/EvUiSearKC52inqCm3khOFCvYBId6kn9IwWYZ3kp5je+7ZYkv8+2Jy
H/fxSojZllIVIGUcmT4/QQAAAjQBAAAACxEJBxl2qRSF60f+mPNJBl1vBE4npKxU
Gvee4ois6AMAAAAAAAAAAAROT05FAAAA/SgBAQAAAAsRCQf9CwFTQQRxqp+dK66T
gB/s5wiNqcbNR/ZjwLH+BcuC/SrdRF3kfV5zM4c4I7cBYxjFMn4u7rnUUKPKVXcq
/UUtWwhCkONaQQTOuinaGvlqDy73zaaVC4viuusa3xLA1e/rtw28qghroCnNgqDP
uN7fZbh2DPJx8rilBGa78LkznF/+++KkFlMmQQTVpCuQ6dcVYVVmGXlTCgnS4S4l
LvQQTlYRJ0p65+KwlAZXMHsSm++Ujqky0tPyDhoFE8noT9hQ90PuZqLjNI0fQQT/
7sMOW3ZX8S9SJJ5qsoLnaKeoKbeSE4UK9gEh3qSf0jBZhneSnmN77tliS/z7YnIf
9/FKiNmWUhUgZRyZPj9BVK4IdSUmAAAAAAAABE5PTkUAAAA=
================================================================

...
  'outputs': [ { 'addrstr': '',
                 'authdata': '',
                 'authmethod': 'NONE',
                 'contribid': '',
                 'contriblabel': '',
                 'hasaddrstr': False,
                 'ismultisig': True,
                 'isp2sh': False,
                 'magicbytes': '0b110907',
                 'p2shscript': '',
                 'scripttypeint': 3,
                 'scripttypestr': 'Multi-Signature',
                 'txoutscript': '53410471aa9f9d2bae93801fece7088da9c6cd47f663c0b1fe05cb82fd2add445de47d5e7333873823b7016318c5327e2eeeb9d450a3ca55772afd452d5b084290e35a4104ceba29da1af96a0f2ef7cda6950b8be2baeb1adf12c0d5efebb70dbcaa086ba029cd82a0cfb8dedf65b8760cf271f2b8a50466bbf0b9339c5ffefbe2a41653264104d5a42b90e9d7156155661979530a09d2e12e252ef4104e5611274a7ae7e2b0940657307b129bef948ea932d2d3f20e1a0513c9e84fd850f743ee66a2e3348d1f4104ffeec30e5b7657f12f52249e6ab282e768a7a829b79213850af60121dea49fd230598677929e637beed9624bfcfb62721ff7f14a88d996521520651c993e3f4154ae',
                 'txoutvalue': 639989000,
                 'version': 1,
                 'wltlocator': ''},
               { 'addrstr': 'msj42CCGruhRsFrGATiUuh25dtxYtnpbTx',
                 'authdata': '',
                 'authmethod': 'NONE',
                 'contribid': '',
                 'contriblabel': '',
                 'hasaddrstr': True,
                 'ismultisig': False,
                 'isp2sh': False,
                 'magicbytes': '0b110907',
                 'p2shscript': '',
                 'scripttypeint': 0,
                 'scripttypestr': 'Standard (PKH)',
                 'txoutscript': '76a91485eb47fe98f349065d6f044e27a4ac541af79ee288ac',
                 'txoutvalue': 1000,
                 'version': 1,
                 'wltlocator': ''}],

...

Transaction summary:

   UnsignedTx ID:  G2EhcNgd
   Curr TxID    :  348a4c33feaafb73076cd070bcc57b6f0049584883af00925ff5192b236030df
   Version      :  1
   Lock Time    :  0
   Fee (BTC)    :  0.0001
   #Inputs      :  1
      1c5ecc26:1 / Multi-Signature* / (M=3, N=4) /   6.40000000 / PubSz: (65 65 65 65)
   #Outputs     :  2
      Recip: [Multisig 3-of-4] (not P2SH but would be 2NBMEXDBRPPeu3SGBV1bw79JycNnz4dwR19)         6.39989    BTC
      Recip: msj42CCGruhRsFrGATiUuh25dtxYtnpbTx          0.00001    BTC
   Tx has 1 inputs:
       (3-of-4) AllSigned: False  AllSlots: _ _ _ _   ReqSorted: _ _ _



This patch fixes the problem and the change output is properly created as a p2sh script.

Code:
diff --git a/armoryd.py b/armoryd.py
index e8052f1..185a4a5 100644
--- a/armoryd.py
+++ b/armoryd.py
@@ -1962,7 +1962,7 @@ class Armory_Json_Rpc_Server(jsonrpc.JSONRPC):
                                              self.convLBDictToList())
             outputPairs.append( [ustxScr['Script'], totalChange] )
          else:
-            outputPairs.append( [lbox.binScript, totalChange] )
+            outputPairs.append( [script_to_p2sh_script(lbox.binScript), totalChange] )
       random.shuffle(outputPairs)
 
       # If this has nothing to do with lockboxes, we need to make sure
newbie
Activity: 15
Merit: 1
Done traveling, ugh airports...

I have imported wallet with small amount. But after scanning Armory shows zero balance.

With .4?


With .4, after I had deleted Armory database and rebuild it Armory becomes showing right wallet amount
legendary
Activity: 3794
Merit: 1375
Armory Developer
Done traveling, ugh airports...

I have imported wallet with small amount. But after scanning Armory shows zero balance.

With .4?

I also have a couple of questions, what does each file in the databases directory contain, excluding 'blocks' and 'headers'?
And does supernode have the same HDD optimizations that fullnode has? Armory is estimating it will take me a full day to build supernode, but fullnode takes less than 1.5 hours?

The different databases holding relevant data like blocks, transactions hints (hash to DB key), headers and your wallets history. Lock files are self explanatory. I will be rolling some of the HDD optimizations into supernode soon, but eventually supernode will always horribly slow on a HDD. HDDs fail at high random access loads, and while I mitigated data fragmentation with the HDD opts, supernode tracks too much random data to manage that.

At any rate, supernode node is meant for server backends and power users. You should stay away from it, unless you have tons of RAM and ~90 GB disk space to spare for the DB.

Bug: Opened .4 on my windows computer, displayed spendable funds as 184.4 billion BTC. Will rebuild+rescan database and see if that helps.

Rescan should be enough. Remember what you did to get there? Also did you delete your .3 DB before trying .4?

You should put a store inside armory to monetize, sell Trezor and shirts

The webshop is for armoryd (RPC Armory), it doesn't work with ArmoryQt (GUI Armory). Those are independent codebases, even though they share the same C++ lib.

It's meant to demonstrate Armory's capabilities as a server backend, we don't intent to bring any of that to GUI interface.
newbie
Activity: 15
Merit: 1
I have imported wallet with small amount. But after scanning Armory shows zero balance.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
Will we ever get to spend unconfirmed inputs?

You technically already can... If they are from yourself :-)

We added a command line arg after the malleability issues that does the opposite... It makes ALL unconfirmed unspendable even if they came from yourself.  It would probably not be hard to switch it to make them spendable instead, but we won't be adding that to any official releases.

If you're interested, search for IGNOREZC in the codebase (maybe IGNORE_ZC)
legendary
Activity: 2912
Merit: 1060
Will we ever get to spend unconfirmed inputs?
full member
Activity: 120
Merit: 100
Java Coder

That's intended behavior.  How would you suggest dealing with it otherwise?  We don't store any tx data in the wallet, so there's no way to save the tx-received time between loads.  The best we can do is simply give it the first confirming block time.

Oh, my mistake.

I also have a couple of questions, what does each file in the databases directory contain, excluding 'blocks' and 'headers'?
And does supernode have the same HDD optimizations that fullnode has? Armory is estimating it will take me a full day to build supernode, but fullnode takes less than 1.5 hours?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
Found a new bug, this one has to do with transaction times
If the transaction is unconfirmed, it displays the time it was executed.
If it is confirmed, it displays the time the first confirming block was mined.

http://prntscr.com/5y8jrv
http://prntscr.com/5y8ket
http://prntscr.com/5y8luc
http://prntscr.com/5y8nqn

That's intended behavior.  How would you suggest dealing with it otherwise?  We don't store any tx data in the wallet, so there's no way to save the tx-received time between loads.  The best we can do is simply give it the first confirming block time.
full member
Activity: 120
Merit: 100
Java Coder
Found a new bug, this one has to do with transaction times
If the transaction is unconfirmed, it displays the time it was executed.
If it is confirmed, it displays the time the first confirming block was mined.

http://prntscr.com/5y8jrv - 6 TX's allegedly happening at the exact same time
http://prntscr.com/5y8ket - TX detail window in Armory, note the TXID
http://prntscr.com/5y8luc - Block 340257 info, note the time (the block the TX is in)
http://prntscr.com/5y8nqn - Proof that the TX (with the same TXID) did not happen at 11:49:22 pm
legendary
Activity: 2912
Merit: 1060
You should put a store inside armory to monetize, sell Trezor and shirts
sr. member
Activity: 255
Merit: 250
Senior Developer - Armory
Also I noticed something in there called Webshop, what exactly is that?

It's experimental code designed to show how armoryd could integrate with a web store. Regular users need not worry about it. AFAIK, the code has to be explicitly called by the user in order for it to do anything.
Pages:
Jump to: