Bitcoin Forum
May 08, 2024, 03:06:25 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Armory 0.96.5 RC1  (Read 403 times)
goatpig (OP)
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
November 19, 2018, 02:42:52 PM
Last edit: November 20, 2018, 10:31:35 AM by goatpig
 #1

This is a minor release with a lot of bug fixes and a couple new features:
    - Spend to bech32 addresses
    - Set DB dir in GUI (File > Settings menu)

Note
   Recent updates to the MSVC compiler broke CryptoPP's AES-CBC optimized decryption. This affects restoring SecurePrint backups on Windows with 0.96.4 only. All backups made with 0.96.4 are valid. Optimizations for CryptoPP have been disabled on Windows. I'm looking to replace it with libbtc sooner rather than later as a result.

Changelog

Code:
v0.96.5
== Added ==
   - You can now set the database path from the Settings menu.
   - You can now spend to bech32 addresses.
   - Added support for satoshi-port CLI argument in ArmoryDB.

== Fixes ==
   - Improved bitcoind path detection.
   - Properly carry thread-count and ram-usage command line arguments from client to automated db process.
   - Custom paths set in the GUI will now properly overrule custom paths from armoryqt.conf.
   - Fixed spending from lockboxes.
   - Fixed deleting lockboxes.
   - Fixed Simulfund promisory note creation and signing.
   - Fixed preview dialog for unconfirmed transactions.
   - Fixed previewing unsigned transactions in offline mode.
   - Fixed SecurePrint decryption on Windows.

   - Recent updates to the MSVC compiler resulted in invalid decryption of AES-CBC packets. This issue only
     affects the decryption of SecurePrint encrypted backups. Encryption still operates as expected, no
     SecurePrint backups created with the incriminated builds are faulty. Wallets are not concerned, as they
     use AES-CFB.
    
     The solution was to turn off all optimizations in MSVC when buidling CryptoPP. This may impact DB boostrapping
     performance.

     This issue affects all Windows builds of 0.96.4.

Binaries:

https://github.com/goatpig/BitcoinArmory/releases/tag/v0.96.4.99

Test away!

1715137585
Hero Member
*
Offline Offline

Posts: 1715137585

View Profile Personal Message (Offline)

Ignore
1715137585
Reply with quote  #2

1715137585
Report to moderator
Every time a block is mined, a certain amount of BTC (called the subsidy) is created out of thin air and given to the miner. The subsidy halves every four years and will reach 0 in about 130 years.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3074



View Profile
November 20, 2018, 01:39:03 AM
 #2

Smiley

Vires in numeris
Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3074



View Profile
November 21, 2018, 07:58:03 PM
 #3

works on mainnet, but ArmoryDB doesn't connect to testnet bitcoin nodes. Maybe something to do with the satoshi-port option?

Vires in numeris
goatpig (OP)
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
November 21, 2018, 11:29:13 PM
 #4

works on mainnet, but ArmoryDB doesn't connect to testnet bitcoin nodes. Maybe something to do with the satoshi-port option?

Botched the defaults for testnet/regtest, you'd have to force the proper port with the new cli arg.

Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3074



View Profile
November 21, 2018, 11:53:40 PM
Last edit: November 23, 2018, 08:33:03 PM by Carlton Banks
 #5

yeah, that works. The log tells you loud and clear what the error is, who would've guessed that would happen! Smiley

Vires in numeris
droark
Sr. Member
****
Offline Offline

Activity: 525
Merit: 282


View Profile WWW
November 22, 2018, 01:21:30 AM
 #6

works on mainnet, but ArmoryDB doesn't connect to testnet bitcoin nodes. Maybe something to do with the satoshi-port option?

On top of goatpig's suggestion, I PRed a fix days ago.
TierNolan
Legendary
*
Offline Offline

Activity: 1232
Merit: 1083


View Profile
November 23, 2018, 08:17:46 PM
 #7

The log files that I included for the satoshi-port fix were unintentionally misleading.

Specifically:

Code:
2018-11-14 01:34:40 (WARNING) -- SDM.pyc:396 - Spawning DB with command: ./ArmoryDB.exe --db-type="DB_FULL" --cookie --satoshi-datadir="F:\bitcoin_data_dir\blocks" --datadir="G:\armory_data" --dbdir="G:\armory_data/database_dir --debug --satoshi-port=8500"

It doesn't actually pass the satoshi-port parameter at all to the db.  The dbdir parameter is actually merged together for some reason.  I suspect windows decided to "help".

It ended up creating a directory with the name "database_dir --debug --satoshi-port=8500".

The parameter passed to the database is:

Code:
--dbdir="G:\armory_data/database_dir --debug --satoshi-port=8500"

I don't think I included the quotes when invoking things, but I may have messed up a copy/paste.

The end result is that the python code doesn't actually forward the parameter to the database process.

1LxbG5cKXzTwZg9mjL3gaRE835uNQEteWF
Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3074



View Profile
November 23, 2018, 08:20:07 PM
 #8

On top of goatpig's suggestion, I PRed a fix days ago.

And that's even better of course, although I should really have realised that the --satoshi-port option solved the problem in itself. Looking at the code for your patch, it's incredibly obvious

Vires in numeris
Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3074



View Profile
November 23, 2018, 08:31:21 PM
 #9

I don't think I included the quotes when invoking things, but I may have messed up a copy/paste.

The end result is that the python code doesn't actually forward the parameter to the database process.

Do you mean this: --dbdir="G:\armory_data/database_dir --debug --satoshi-port=8500"

The quote marks for --dbdir aren't closed, so you end up with
"G:\armory_data/database_dir --debug --satoshi-port=8500"
as the entire argument for the --dbdir parameter

Edit: sorry, that's clearly exactly what you meant.

Vires in numeris
TierNolan
Legendary
*
Offline Offline

Activity: 1232
Merit: 1083


View Profile
November 24, 2018, 05:23:41 PM
Last edit: November 24, 2018, 06:15:57 PM by TierNolan
 #10

I was going to submit a PR about the port thing and this involved building against the dev branch.

This doesn't seem to be possible using Ubuntu 18.04 apt-get to get dependencies.

In addition to the packages in the linux build instructions, I used the following.

Code:
sudo apt-get install libprotobuf-dev protobuf-compiler  python-websocket libwebsockets-dev libevent-dev

However, the libwebsockets-dev package in 18.04 (and 18.10) is not sufficiently advanced.

I get an error that "lws_fop_fd_t" due to not in the include file.  

This typedef doesn't appear in the libwebsockets.h include file until version 2.2.0.

In Ubuntu-18.04, apt-get uses version 2.0.3-3build1.

Even in Ubuntu-18.10, apt-get still uses version 2.0.3-3build1.

I realize that this is the dev branch and things aren't stable yet, but I thought I would flag this.  

Being able to build from source is an important feature for Armory.  If websockets 2.2 functionality is required, would it be directly included in the repo, like some of the other dependencies?

[Edit]
I manually installed the package and looks like it needs v3.0 to work.

1LxbG5cKXzTwZg9mjL3gaRE835uNQEteWF
goatpig (OP)
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
November 24, 2018, 06:17:51 PM
 #11

I was going to submit a PR about the port thing and this involved building against the dev branch.

This doesn't seem to be possible using Ubuntu 18.04 apt-get to get dependencies.

In addition to the packages in the linux build instructions, I used the following.

Code:
sudo apt-get install libprotobuf-dev protobuf-compiler  python-websocket libwebsockets-dev libevent-dev

However, the libwebsockets-dev package in 18.04 (and 18.10) is not sufficiently advanced.

I get an error that "lws_fop_fd_t" due to not in the include file.  

This typedef doesn't appear in the libwebsockets.h include file until version 2.2.0.

In Ubuntu-18.04, apt-get uses version 2.0.3-3build1.

Even in Ubuntu-18.10, apt-get still uses version 2.0.3-3build1.

I realize that this is the dev branch and things aren't stable yet, but I thought I would flag this.  

Being able to build from source is an important feature for Armory.  If websockets 2.2 functionality is required, would it be directly included in the repo, like some of the other dependencies?

Dev is 0.97, if you gonna PR you should do it against the testing branch, with 0.96.5. If you want to build dev, you need to clone the libwebsockets repo, checkout v3.0.0 or higher, build it, then give that path to the configure script in this fashion:

Code:
./configure --with-own-lws=/my/path/to/lws

P.S:

The client in dev cannot speak to db, I have not updated that part yet. Considering dropping swig and moving to CFFI to ease to migration to py3.

TierNolan
Legendary
*
Offline Offline

Activity: 1232
Merit: 1083


View Profile
November 25, 2018, 12:32:38 AM
 #12

Dev is 0.97, if you gonna PR you should do it against the testing branch, with 0.96.5. If you want to build dev, you need to clone the libwebsockets repo, checkout v3.0.0 or higher, build it, then give that path to the configure script in this fashion:

Ironically, I originally had it relative to testing but then saw that dev was more advanced.

Anyway, I submitted the change required.

I spent way more time on this tiny change that I intended Smiley , at least I have a 18.04 environment now, so the time isn't lost.

Quote
Code:
./configure --with-own-lws=/my/path/to/lws

P.S:

The client in dev cannot speak to db, I have not updated that part yet. Considering dropping swig and moving to CFFI to ease to migration to py3.

I was 99% of the way there.  I had it compiling but it couldn't find the shared library.

1LxbG5cKXzTwZg9mjL3gaRE835uNQEteWF
goatpig (OP)
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
November 25, 2018, 01:39:03 AM
 #13

I'm looking at your PR and it makes me wonder how was the port ever passed before? I need to investigate this before doing anything with the PR. I'll let you know on the github page.

Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3074



View Profile
November 26, 2018, 11:00:03 AM
 #14

Signing to bech32 addresses with 0.96.4.0 succeeds, but the transaction it signs substitutes P2PKH for the intended bech32. Presumably this can't be worked around, as you can't force 0.96.4 to understand it's doing something wrong. I'm assuming the result won't be what the user wanted.

Vires in numeris
goatpig (OP)
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
November 26, 2018, 03:56:18 PM
 #15

Signing to bech32 addresses with 0.96.4.0 succeeds, but the transaction it signs substitutes P2PKH for the intended bech32. Presumably this can't be worked around, as you can't force 0.96.4 to understand it's doing something wrong. I'm assuming the result won't be what the user wanted.

Are you saying the output script is P2PKH instead of P2WPKH?

Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3074



View Profile
November 26, 2018, 05:46:27 PM
 #16

Signing to bech32 addresses with 0.96.4.0 succeeds, but the transaction it signs substitutes P2PKH for the intended bech32. Presumably this can't be worked around, as you can't force 0.96.4 to understand it's doing something wrong. I'm assuming the result won't be what the user wanted.

Are you saying the output script is P2PKH instead of P2WPKH?

not sure, didn't actually check (never used armoryd). Preview in online 96.4.99 shows a P2PKH address in place of bech32 address and script type as PKH, but only if signed using 96.4.0. If bech32 is signed using 96.4.99, address and it's script type is bech32 as expected. Well, it actually says P2SH segwit for the script type, but I assumed that's just cosmetic.

Vires in numeris
goatpig (OP)
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
November 26, 2018, 06:46:52 PM
 #17

not sure, didn't actually check (never used armoryd). Preview in online 96.4.99 shows a P2PKH address in place of bech32 address and script type as PKH, but only if signed using 96.4.0. If bech32 is signed using 96.4.99, address and it's script type is bech32 as expected. Well, it actually says P2SH segwit for the script type, but I assumed that's just cosmetic.

I haven't tried signing with an older version, I'll look into it.

goatpig (OP)
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
November 28, 2018, 09:04:43 PM
 #18

After testing this, it turns out signing a tx with a bech32 recipient using 0.96.4 will result in 0.96.4 extracting the pubkey from the script and paying to it using a standard p2pkh script. Obvioulsy cannot have that. I'll have to add versioning to the unsigned tx packet to stop previous versions from doing anything with these specific transactions.

bobulus
Newbie
*
Offline Offline

Activity: 11
Merit: 0


View Profile
November 29, 2018, 05:28:38 PM
 #19

Trying to compile from source, and seeing the following error when running ./autogen:


> ./autogen.sh
Preparing the BitcoinArmory build system...please wait

Found GNU Autoconf version 2.69
Found GNU Automake version 1.15
Found GNU Libtool version 2.4.6
./autogen.sh: 1: eval: Syntax error: Unterminated quoted string
./autogen.sh: 1: eval: Syntax error: Unterminated quoted string


I'm successfully compiled Armory 0.96.4 on this same Docker image, and I haven't tweaked anything in that image since then. Did the dependencies change? How should I debug this?

Compiling the tagged release from the .tar.xz, running on Ubuntu 16.04.
goatpig (OP)
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
November 29, 2018, 05:46:52 PM
 #20

Is /cppForSwig/fcgi empty?

Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!