Author

Topic: 0.94 testing build (Read 2316 times)

legendary
Activity: 3430
Merit: 3080
March 19, 2016, 10:50:20 AM
#20
Carlton:

I'm going to consider these bugs non critical and get them properly fixed for 0.95. I don't want to delay the release of 0.94 any further, and we can get some quicker debugging/testing in the preliminary 0.95 testing phase, which should start some 2-3 weeks after 0.94 is out.

------------------------------------

I'll be away from the forums while I'm traveling (next week), please use the email attached to my github account if you need to contact me.


"0.95" was all you needed to say Cheesy
legendary
Activity: 3794
Merit: 1375
Armory Developer
March 19, 2016, 05:06:42 AM
#19
Carlton:

I'm going to consider these bugs non critical and get them properly fixed for 0.95. I don't want to delay the release of 0.94 any further, and we can get some quicker debugging/testing in the preliminary 0.95 testing phase, which should start some 2-3 weeks after 0.94 is out.

------------------------------------

I'll be away from the forums while I'm traveling (next week), please use the email attached to my github account if you need to contact me.
legendary
Activity: 3430
Merit: 3080
March 18, 2016, 07:06:39 PM
#18
Re: 0.93.99.2

Tx "View Details"

Right-click "View Details" for both initial coinbase and any transactions made using coinbase inputs yields separate errors:

Actual coinbase:
Code:
(ERROR) Traceback (most recent call last):
  File "./ArmoryQt.py", line 3981, in showContextMenuLedger
    self.showLedgerTx()
  File "./ArmoryQt.py", line 3946, in showLedgerTx
    cppTx = TheBDM.bdv().getTxByHash(txHashBin)
  File "/home/user/BitcoinArmory/CppBlockUtils.py", line 2115, in getTxByHash
    def getTxByHash(self, *args): return _CppBlockUtils.BlockDataViewer_getTxByHash(self, *args)
RuntimeError: raw data does not match expected block hash

Traceback (most recent call last):
  File "./ArmoryQt.py", line 3981, in showContextMenuLedger
    self.showLedgerTx()
  File "./ArmoryQt.py", line 3946, in showLedgerTx
    cppTx = TheBDM.bdv().getTxByHash(txHashBin)
  File "/home/user/BitcoinArmory/CppBlockUtils.py", line 2115, in getTxByHash
    def getTxByHash(self, *args): return _CppBlockUtils.BlockDataViewer_getTxByHash(self, *args)
RuntimeError: raw data does not match expected block hash

Tx spending coinbase input:
Code:
-WARN  - 1458344559: (lmdb_wrapper.cpp:707) txhash is less than 4 bytes long

+ "Invalid Tx" error dialog ("The transaction you requested be displayed does not exist in Armory's database.  This is unusual...")




Switching between 0.11.2 & 0.12.0

I'm getting success if I build the Db with 0.12.0 then switch to 0.11.2, but vice-versa refuses to work. Only really pertinent information would be that the Db has a little disjoint in it from when I accidentally loaded the 0.12 client using my only copy of the < 0.11.x Db. You could argue that the solution would be to use an unadjusted set of blockchain files if you wish to continue to use the previous client (0.11.2 in this case), but I expect there could be a lot of tech support questions about what should be something than can be handled (i.e. people will make the same decisions I did, mistaken as it was). I'm going to build a fresh copy of the blockchain using 0.11.2 to test this definitively.
legendary
Activity: 3794
Merit: 1375
Armory Developer
March 17, 2016, 08:17:10 AM
#17
bump, check OP
sr. member
Activity: 525
Merit: 282
March 12, 2016, 01:12:16 PM
#16
I just noticed that message signing and such is completely busted. I'll update later (working on something right now), or maybe upload a patch if it's something I can write quickly.
I only have problems with verifying signatures, not signing. The signing is working fine and those signatures can be verified in Bitcoin Core.

Edit: I wrote a fix here: https://github.com/goatpig/BitcoinArmory/pull/20

I'm not sure your patch will work in my case. I just made a PR for a patch that lets me actually input a message. (I was having a separate issue.) However, when I attempt to specify an address that I control, I get the following error pop-up:

Code:
The private key is not known for this address.

This is for an address that I control. I'd better have the private key!
staff
Activity: 3458
Merit: 6793
Just writing some code
March 11, 2016, 05:29:06 PM
#15
I just noticed that message signing and such is completely busted. I'll update later (working on something right now), or maybe upload a patch if it's something I can write quickly.
I only have problems with verifying signatures, not signing. The signing is working fine and those signatures can be verified in Bitcoin Core.

Edit: I wrote a fix here: https://github.com/goatpig/BitcoinArmory/pull/20
sr. member
Activity: 525
Merit: 282
March 11, 2016, 04:38:41 PM
#14
I just noticed that message signing and such is completely busted. I'll update later (working on something right now), or maybe upload a patch if it's something I can write quickly.
legendary
Activity: 3794
Merit: 1375
Armory Developer
March 11, 2016, 04:29:56 PM
#13
As you can see, something is not right here. Also while the transactions were unconfirmed, spendable funds had some ridiculous number, but that went away before I could screenshot it. It went away when the replacement got a confirmation.

ugh, old bug from 0.93 I fixed in former 0.94. Completely forgot about it.

Quote
Is the manual entropy supposed to show something in the buttons? All I see is this:

forgot to upload the card images =D

Quote
I'm still having problem detecting new blocks when switching between 0.12 and 0.11.2

I was gonna slack and look at that for the next version but I guess I'm not getting away from this this easily.
staff
Activity: 3458
Merit: 6793
Just writing some code
March 11, 2016, 10:50:48 AM
#12
I made a transaction that was Opt-In RBF but I didn't replace it. It confirmed, but that transaction, when I try to open up details from the transactions ledger, shows up with the same error mentioned by pop9119.

Edit: Rescanning the databases did not help

Edit 2: A rebuild and rescan didn't work either.

Did you send the coins to your Armory wallet or did you spend from an Armory wallet?
Sent from
I still have this problem. I can view the details while the transaction is unconfirmed, but as soon as it receives a confirmation, I can no longer view the details. I still get the error dialog
Quote
The transaction you requested be displayed does not exist in Armory's database. This is unusual...

There are also some bugs with receiving RBF transactions:
I created an RBF transaction and then replaced it. It did not show that replacement as being replaced in Armory but rather it came up as a second transaction. Also it is incorrectly showing the data for the two transactions I created. I am testing this on testnet.

txid of the first one: 1286e1f39c09a01178d9017d2dbfa178ca99c59f0a2893e10db605815560a1d3
What armory shows me:


txid of the replacement: ff03b4ee97778f0e4ccec2b81f5f8a56fc81e1ab667965124676e13353a79763
What armory shows me:


As you can see, something is not right here. Also while the transactions were unconfirmed, spendable funds had some ridiculous number, but that went away before I could screenshot it. It went away when the replacement got a confirmation.

Right now with the replacement having a confirmation, it has it in the transaction ledger as two different entries, the confirmed one where it correctly shows it as receiving but not the right details, and an unconfirmed one where it says that it is sending, again with the wrong details. But the details are identical for both entries.

Also, with the confirmations, the details are shown, unlike with sending RBF transactions where after a confirmation the details are not shown.

It is really strange. If you give me a testnet address, I can show you what is happening by sending you a transaction and then replacing it.
staff
Activity: 3458
Merit: 6793
Just writing some code
March 11, 2016, 10:07:36 AM
#11
Is the manual entropy supposed to show something in the buttons? All I see is this:
legendary
Activity: 3430
Merit: 3080
March 10, 2016, 08:48:18 PM
#10
With 013e1ba, I'm still having problem detecting new blocks when switching between 0.12 and 0.11.2. No errors thrown, logs are the same whether during the initial (reliable) Db build or any subsequent attempts to switch Core version. I find that new blocks are successfully built/scanned if I reload Armory using whichever Core version the initial build was done with.

Testing with Debian 8.3 using Qubes 3.0/Xen 4.4 to host.
cle
newbie
Activity: 24
Merit: 0
March 08, 2016, 11:34:03 PM
#9
Thanks so much for this, goatpig!
staff
Activity: 3458
Merit: 6793
Just writing some code
March 07, 2016, 07:51:20 AM
#8
I made a transaction that was Opt-In RBF but I didn't replace it. It confirmed, but that transaction, when I try to open up details from the transactions ledger, shows up with the same error mentioned by pop9119.

Edit: Rescanning the databases did not help

Edit 2: A rebuild and rescan didn't work either.

Did you send the coins to your Armory wallet or did you spend from an Armory wallet?
Sent from
legendary
Activity: 3794
Merit: 1375
Armory Developer
March 07, 2016, 12:09:39 AM
#7
I made a transaction that was Opt-In RBF but I didn't replace it. It confirmed, but that transaction, when I try to open up details from the transactions ledger, shows up with the same error mentioned by pop9119.

Edit: Rescanning the databases did not help

Edit 2: A rebuild and rescan didn't work either.

Did you send the coins to your Armory wallet or did you spend from an Armory wallet?
staff
Activity: 3458
Merit: 6793
Just writing some code
March 06, 2016, 06:52:12 PM
#6
I made a transaction that was Opt-In RBF but I didn't replace it. It confirmed, but that transaction, when I try to open up details from the transactions ledger, shows up with the same error mentioned by pop9119.

Edit: Rescanning the databases did not help

Edit 2: A rebuild and rescan didn't work either.
legendary
Activity: 3794
Merit: 1375
Armory Developer
March 06, 2016, 12:36:41 AM
#5
Quote
Now i have run into problems with viewing previous transactions. (Mainnet). Receiving transactions no longer contain the sending addresses or any info about that. Sending transactions error out unless the transaction was sent with change or sent to another armory wallet. The GUI error states:
"Invalid Tx. The transaction you requested be displayed does not exist in Armory's database. This is unusual..." According to the log: \lmdb_wrapper.cpp:707  txhash is less than 4 bytes long.

This is a design choice. This change was part of the original 0.94 too, when it was in testing about a year ago.

I'll reexplain the decision for the sake of clarity:

Bitcoin transactions are referred to each other by tx hash. Block data is ordered by height in the longest chain. While you can refer to a block either by its header hash or its height in the main chain, the blockchain does not provide any data to resolve a transaction hash to its specific block.

Since there is no quick way to resolve tx hashes to actual transaction data, it befalls on the next layer (in this case Armory's DB engine) to maintain enough data for that purpose. In Armory, this particular feature is called the TxHint database. It keys the 4 first bytes of each tx hash found in the chain with its potential block height and tx index.

This database is generally pretty slow. Since the entries are keyed by hash and hashes do not appear in order in the chain (why would they?), this DB is very fragmented. Moreover, searches in this dataset are usually completely random, so there is little room to optimize the access speed.

This DB is also pretty large. With the current blockchain (~50GB), it's closing on 5GB of data. Such a large and fragmented dataset will grind any HDD to a halt. SSDs will be fine though.

With these parameters in mind, what is this DB used for? In fullnode it only serves 2 purposes:

1) Resolve funding txouts
2) Calculate the fee paid by the sender.

The way transactions are scanned, you will always know the txhash of the transactions you spent from. What you lack is the hash of the transactions that funded your wallet from addresses that are unknown to your wallets, i.e. you have the txhints for your spends, change and all inter wallet transactions, but you are missing hints for any outside coins coming in.

The choice was simple: the current fullnode DB averages 150MB on mainnet, with the txhint DB, you have to add another 5GB to support a non critical dataset, that is only really used in 2 dialogs hidden behind a few clicks. I made the decision before and I am doing it again to remove that dataset from fullnode's default feature.

Now, if there is enough demand to get the full TxHint DB back as an option in fullnode, I will add a command line argument to support the feature for savvy users.

Quote
The scan was concerning at first because it kept updating at 31%, 63% 95% and then starting over at 0%. According to the log file this must of happened when the blockchainScanner scanned from intermediate heights. (Eg. #397557 to #398370, #398371 to #399115, etc, etc)

This should happen when the scan fails and the DB is fixing itself (there is an auto repair code that kicks in when the scan doesn't end gracefully). Are your balances valid atm? Do you experience this issue when you rescan? What about rebuild & rescan?
Quote
I also had this problem with the transaction history progress bar. I thought it might be stuck in a loop (was probably just taking ages due to my old pc) so I closed and restarted Armory. On restarting, it failed to continue the transaction scan and showed my balance from (I believe) the point at which I'd closed Armory.

I'll investigate. What version of Core are you using?
eid
hero member
Activity: 616
Merit: 500
March 05, 2016, 06:58:13 AM
#4
... it kept updating at 31%, 63% 95% and then starting over at 0%. According to the log file this must of happened when the blockchainScanner scanned from intermediate heights. (Eg. #397557 to #398370, #398371 to #399115, etc, etc)

I also had this problem with the transaction history progress bar. I thought it might be stuck in a loop (was probably just taking ages due to my old pc) so I closed and restarted Armory. On restarting, it failed to continue the transaction scan and showed my balance from (I believe) the point at which I'd closed Armory.

This is the relevant part of the log:

Code:
-INFO  - 1457145937: (BlockchainScanner.cpp:607) scanned from height #339476 to #340830
-INFO  - 1457145944: (BlockchainScanner.cpp:607) scanned from height #340831 to #342565
-INFO  - 1457145980: (BlockchainScanner.cpp:607) scanned from height #342566 to #343857
-INFO  - 1457146012: (BlockchainScanner.cpp:607) scanned from height #343858 to #345265
-INFO  - 1457146080: (BlockchainScanner.cpp:607) scanned from height #345266 to #346580
-INFO  - 1457146153: (BlockchainScanner.cpp:607) scanned from height #346581 to #347911
-INFO  - 1457146153: (BDM_mainthread.cpp:273) Stop requested detected


Log file opened at 1457146201: /home/****/.armory/armorycpplog.txt
-INFO  - 1457146213: (BlockUtils.cpp:924) blkfile dir: /home/****/.bitcoin/blocks
-INFO  - 1457146213: (BlockUtils.cpp:925) lmdb dir: /home/****/.armory/databases
-INFO  - 1457146213: (lmdb_wrapper.cpp:387) Opening databases...
-INFO  - 1457146213: (BlockUtils.cpp:1110) Executing: doInitialSyncOnLoad
-INFO  - 1457146226: (DatabaseBuilder.cpp:162) Reading headers from db
-INFO  - 1457146232: (DatabaseBuilder.cpp:195) Found 401275 headers in db
-INFO  - 1457146234: (DatabaseBuilder.cpp:43) updating HEADERS db
-INFO  - 1457146247: (DatabaseBuilder.cpp:223) parsed block file #461
-DEBUG - 1457146249: (Blockchain.cpp:213) Organizing chain
-INFO  - 1457146249: (DatabaseBuilder.cpp:47) updated HEADERS db in 1.37107s
-INFO  - 1457146249: (DatabaseBuilder.cpp:98) scanning new blocks from #347911 to #401214
-INFO  - 1457146249: (BlockchainScanner.cpp:53) no history to scan
-INFO  - 1457146249: (DatabaseBuilder.cpp:149) scanned new blocks in 0.003627s
-INFO  - 1457146249: (DatabaseBuilder.cpp:153) init db in 15.0598s
-INFO  - 1457146249: (BlockDataViewer.cpp:157) Enabling zero-conf tracking
-INFO  - 1457146259: (BlockchainScanner.cpp:607) scanned from height #401215 to #401215

Restarting Armory didn't change this but forcing a rescan (and more patience!) did.



Thanks for all your work devs.
newbie
Activity: 6
Merit: 0
March 04, 2016, 03:51:54 PM
#3
Hi goatpig,

I am running the test build on Win7 with a HDD for both core and armory. 11.2, 93.3.999.

The hard drive isnt a powerful one so the scan and build took 3178.56 sec. The scan was concerning at first because it kept updating at 31%, 63% 95% and then starting over at 0%. According to the log file this must of happened when the blockchainScanner scanned from intermediate heights. (Eg. #397557 to #398370, #398371 to #399115, etc, etc)

Now i have run into problems with viewing previous transactions. (Mainnet). Receiving transactions no longer contain the sending addresses or any info about that. Sending transactions error out unless the transaction was sent with change or sent to another armory wallet. The GUI error states:
"Invalid Tx. The transaction you requested be displayed does not exist in Armory's database. This is unusual..." According to the log: \lmdb_wrapper.cpp:707  txhash is less than 4 bytes long.

I have yet to test sending or receiving and coins yet, but this is what i have encountered so far.
newbie
Activity: 11
Merit: 0
March 04, 2016, 01:25:33 PM
#2
Good stuff, well done for getting this beta out so quickly!
legendary
Activity: 3794
Merit: 1375
Armory Developer
March 03, 2016, 01:55:10 PM
#1
https://github.com/goatpig/BitcoinArmory/releases/tag/0.93.99.2-testing

Third testing builds are available.

All bugs reported here should be fixed now.

I'll be away for a week (Friday through Friday). I'll have a laptop with me so I'll still be committing code, but I won't have my offline signer, so the release will have to wait until next week end (if no major bugs arise).

*******************************************************

https://github.com/goatpig/BitcoinArmory/releases/tag/0.93.99.1

Second testing builds are out. What's new:

- now with OSX builds (courtesy of droark)

- fixed all bugs mentionned here

- new feature: GUI to add entropy using a deck of card at wallet creation (courtesy of jsong)

If this doesn't come up with large bugs, I'm locking this code down as 0.94 sometimes this week end.

-------------------------------------

https://github.com/goatpig/BitcoinArmory/releases/tag/v0.93.99.0-testing

The 0.94 first testing builds are out, dubbed 0.93.99.0. Mac users, you'll have to wait for the second testing builds, gives me time to figure things out on that front.

Stuff to test in particular:

1) Database. It's brand new code, not compatible with previous versions. You will have to give this version it's own database directory (use the --dbdir command line argument), otherwise it will conflict with existing 0.93 databases. I suggest you do not just replace your old DB with the new one, this is a testing build after all. Expected size is ~150MB on mainnet. Post your build & scan times away if you feel so inclined =) (for reference I build & scan in some 350sec)

2) Spending and receiving coins: start with the testnet at first and upgrade to the mainnet. I've spent a few BTC on the mainnet with this code for what it's worth.

3) Incoming RBF transactions. It should be pretty obvious in the UI that an incoming 0-conf is RBF enabled.

4) The address book. I have at least one early tester getting the address book to crash miserably, I need more eyes on that.

5) Phone home code and ATI references should have be all gone. Dig around that, see if anything was missed.

If you run into any bug, please let me see some logs. Usually the last 20~50 lines of armorylog.txt and/or armorycpplog.txt have an obvious output of the error.

While this is being tested I'll be preparing the second testing build, which will be mainly about reviewing and merging the remaining PRs, getting rid of the torrent code, fixing bugs and dealing with the changelog.

These builds are signed with my new offline key, (ID: 0x4922589A), registered under goatpig and the email attached to my github account.

The signature process is the same as before: there a single file, tagged sha256sum, that has the SHA256 digest of each file in the release. The file is signed with my offline key. To check the binaries, verify the sig on the file, hash the build package and make sure it matches the respective hash in the text file.

Happy testing!
Jump to: