Search content
Sort by

Showing 20 of 75 results by josephbisch
Post
Topic
Board Armory
Re: Armory 0.95 testing phase
by
josephbisch
on 03/09/2016, 21:45:54 UTC
This is strange. If I use the shortcut I made to launch Armory, it doesn't work.

This is the error from the log:
Code:
2016-09-03 01:02 (INFO) -- ArmoryUtils.py:639 - Executing popen: ['./ArmoryDB', '--db-type="DB_FULL"', '--spawnId="5uWPvi3P2wvYyo2xNdpeWKU4spxWvHuDRuCJ9gfxevYd"', '--satoshi-datadir="/media/andy/Data/Programs/Bitcoin/data/blocks"', '--dbdir="/media/andy/Data/Data/bitcoin/ArmoryData/databases"']
2016-09-03 01:02 (ERROR) -- Traceback (most recent call last):
  File "/home/andy/bitcoin/BitcoinArmory/ArmoryQt.py", line 6631, in method_signal
    method()
  File "/home/andy/bitcoin/BitcoinArmory/ArmoryQt.py", line 6668, in completeBlockchainProcessingInitialization
    gotDB = self.startArmoryDBIfNecessary()
  File "/home/andy/bitcoin/BitcoinArmory/ArmoryQt.py", line 2198, in startArmoryDBIfNecessary
    spawnId = TheSDM.spawnDB(TheBDM.armoryDBDir)
  File "/home/andy/bitcoin/BitcoinArmory/SDM.py", line 490, in spawnDB
    launchProcess(pargs, **kargs)
  File "/home/andy/bitcoin/BitcoinArmory/armoryengine/ArmoryUtils.py", line 642, in launchProcess
    return Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, *args, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

However if I run the same command from the terminal, I have no problems whatsoever.

I am running Ubuntu 16.04. This is probably an issue with my system, but I think it is something to note.
Armory is trying to open ArmoryDB as a relative path. That only works if you are have used cd to enter the Armory source tree first. The solution is for Armory to use absolute paths, so people don't need to be in the same directory as Armory to run it.
So this update breaks shortcuts right now. That is a bit of an issue.
It breaks shortcuts or any use case where someone is trying to run Armory from somewhere other than the Armory source tree. So if they are above a level and try to run "python BitcoinArmory/ArmoryQt.py" that should fail too.

A solution is to modify self.dbExecutable in SDM.py to be prepended by the following path.

Code:
path = os.path.dirname(os.path.abspath(__file__))
self.dbExecutable = os.path.join(path, 'ArmoryDB')
if OS_WINDOWS:
    # add .exe to self.dbExecutable
Post
Topic
Board Armory
Re: Armory 0.95 testing phase
by
josephbisch
on 03/09/2016, 20:48:34 UTC
This is strange. If I use the shortcut I made to launch Armory, it doesn't work.

This is the error from the log:
Code:
2016-09-03 01:02 (INFO) -- ArmoryUtils.py:639 - Executing popen: ['./ArmoryDB', '--db-type="DB_FULL"', '--spawnId="5uWPvi3P2wvYyo2xNdpeWKU4spxWvHuDRuCJ9gfxevYd"', '--satoshi-datadir="/media/andy/Data/Programs/Bitcoin/data/blocks"', '--dbdir="/media/andy/Data/Data/bitcoin/ArmoryData/databases"']
2016-09-03 01:02 (ERROR) -- Traceback (most recent call last):
  File "/home/andy/bitcoin/BitcoinArmory/ArmoryQt.py", line 6631, in method_signal
    method()
  File "/home/andy/bitcoin/BitcoinArmory/ArmoryQt.py", line 6668, in completeBlockchainProcessingInitialization
    gotDB = self.startArmoryDBIfNecessary()
  File "/home/andy/bitcoin/BitcoinArmory/ArmoryQt.py", line 2198, in startArmoryDBIfNecessary
    spawnId = TheSDM.spawnDB(TheBDM.armoryDBDir)
  File "/home/andy/bitcoin/BitcoinArmory/SDM.py", line 490, in spawnDB
    launchProcess(pargs, **kargs)
  File "/home/andy/bitcoin/BitcoinArmory/armoryengine/ArmoryUtils.py", line 642, in launchProcess
    return Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, *args, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

However if I run the same command from the terminal, I have no problems whatsoever.

I am running Ubuntu 16.04. This is probably an issue with my system, but I think it is something to note.
Armory is trying to open ArmoryDB as a relative path. That only works if you are have used cd to enter the Armory source tree first. The solution is for Armory to use absolute paths, so people don't need to be in the same directory as Armory to run it.
Post
Topic
Board Armory
Re: How hard would it be to create a Litecoin Armory?
by
josephbisch
on 09/08/2016, 00:54:30 UTC
Here's the repo for the Namecoin fork of Armory: https://github.com/namecoin/BitcoinArmory. If you are checking out the commit history, make sure you look as far back as this commit: https://github.com/namecoin/BitcoinArmory/commit/90351e11601cc5e2c09481dad6b56f6a7a4f620e.

As you can see it hasn't been updated since late 2014. For now, it is abandoned. You can see some reasoning in the remaining open issue. That issue also links to this thread of which you are also the original poster, so you are probably already aware of that thread.

The necessary changes were already covered well by knightdk. For Namecoin, we still needed to touch the C++ code even though Namecoin uses the same hash algorithm as Bitcoin, because we needed to use a different directory to load blocks from (~/.bitcoin versus ~/.namecoin on Linux) and because Namecoin uses merged mining, so the block parsing needs to account for that. For Litecoin you definitely need to touch the C++ code to use scrypt as the hashing algorithm (as knightdk already stated).

If you don't know where to start, the Namecoin fork is better to use as a reference than nothing, even though it is outdated.
Post
Topic
Board Armory
Re: Armory 0.94 is out
by
josephbisch
on 30/03/2016, 23:48:22 UTC
Right, so there was nothing wrong with the one line of python code.

I'm thinking now there must be some uninstall script or another part of the code where the xdg-utils commands are called.

I have:

  • built the .deb as 93.99.2, including the extra line in postint script
  • installed that into a fresh Debian 8 VM
  • built another .deb as 0.93.99.3, also including the extra line
  • installing 93.99.3 over 93.99.2 generates the same errors that installing 0.94 over 0.93.3 does

I can tell the initial modified .deb is working, I stuck 1 print line inside the if statement and then also another print line immediately after the if. Only the latter appeared in stdout, seems convincing to me. The behaviour when installing over 93.99.2 looks so much like it's getting those lines from a different copy of the same script, could that be right? Can't see anything like that in the file structure though

edit: how about the postrm binary? can't see any source for that in the codebase

The postrm is located in dpkgfiles (https://github.com/goatpig/BitcoinArmory/blob/master/dpkgfiles/postrm in the master branch for example). And it does look like there are xdg-utils uninstall commands in that script. So that seems like it is the source of the error when installing a new version over the old version of Armory.
Post
Topic
Board Armory
Re: Armory 0.94 is out
by
josephbisch
on 30/03/2016, 20:03:43 UTC
I'm trying to test a basic fix (adding a test for the path before the xdg-desktop-menu lines, also indenting the xdg-desktop-menu lines and the the blank line after those to make those lines execute contingent on the if statement). It's almost like make_deb_package.py is using the old postinst script, despite copying the correct file to the temporary directory used to build the package. So my coding syntax has got to be wrong.

Here's the line I'm adding:

Code:
if os.path.exists('/usr/share/desktop-directories'):


Other than the correct indentation to delineate the codeblock, what could be the issue? Could it actually be using the old script? Am I not allowed to supply literal string values?
The Python code you added looks correct to me. The problem is that the temporary directory gets recreated from dpkgfiles each time you run make_deb_package.py. So if you are copying to or modifying the file in the temporary directory instead of dpkgfiles, it will get overwritten when you run make_deb_package.py. So if you aren't doing it already, you should modify the postinst in dpkgfiles and then try running make_deb_package.py.
Post
Topic
Board Armory
Re: Armory 0.94 is out
by
josephbisch
on 30/03/2016, 15:45:14 UTC
Maybe the other packages that don't fail to install the desktop file use an install file (debian/armory.install in Armory's case) to install the desktop files? See http://packaging.ubuntu.com/html/debian-dir-overview.html and search the page for "desktop" to find what I am talking about.

You won't be able to generate the desktop files on demand like the postinst script currently does, but it looks like there are static desktop files in dpkgfiles currently anyway.
Post
Topic
Board Armory
Re: Armory 0.94 is out
by
josephbisch
on 30/03/2016, 13:00:31 UTC
Carlton, does /usr/share/desktop-directories/ exist? If not, what happens if you make that directory and try to retrigger the xdg-desktop-menu calls?
Post
Topic
Board Armory
Re: Problem starting Armory
by
josephbisch
on 14/01/2016, 13:55:50 UTC
Well that's interesting - I looked at the logs and saw this is the announcement it is trying to fetch -

2016-01-13 18:31 (INFO) -- announcefetch.py:271 - Fetching: https://bitcoinarmory.com/announce.txt?osvar=centos+linux&os=lin&ver=0.93.3&id=d4cdcaba

When I grabbed that with wget and looked, it appears to grab a wordpress press including crap like googleapi javascript. What the hell is it doing that for?

Here's the log -

http://awel.domblogger.net/7/libre/armorylog.txt
When you navigate to that URL, you are redirected to the bitcoinarmory.com homepage. If you get rid of the parameters (the ? and everything after it) you get announce.txt as Armory is expecting. The reason Armory isn't running for you is that the program is expecting to receive a Bitcoin Signed Message, but is receiving the Armory homepage.
Post
Topic
Board Armory
Re: Why should I trust the Ubuntu compilers to produce an Armory binary?
by
josephbisch
on 31/07/2015, 15:21:37 UTC
First off, I'm just speaking for myself here.

This is a great question. Indeed, there is currently no way to verify that the Ubuntu binaries came from the source code.

Lets start with a description of the way that Debian/Ubuntu packaging works. With Debian, the package maintainer creates one of the packages (the one for the architecture that the maintainer is building on) and the Debian infrastructure builds the rest of the packages for the other architectures. I'm not as familiar with Ubuntu, but I think Ubuntu builds all the packages on their infrastructure (though I may just be thinking of the way PPAs work).

There is a reproducible build effort underway to make Debian as a whole reproducible. You can check out the progress. The percentage of packages that are reproducible is a little above 80% as of the writing of this post. In the future, it looks like it will be a requirement that uploaded packages be reproducible, otherwise they won't be accepted into the Debian Archive. But right now there is no requirement that a package be reproducible.

How does Debian's effort affect Ubuntu? In 2013, Colin Watson stated that Ubuntu will inherit the changes over the natural merging and syncing of packages from Debian. I don't know how many packages are reproducible in Ubuntu, because it doesn't seem like Ubuntu has the infrastructure setup to rebuild and compare packages for reproducibility like Debian has.

Now I probably should have put this earlier, because a lot of you are probably wondering what reproducible builds are and how do they affect the verification that binaries came from the source code. Reproducible builds involve multiple people building the binaries from a particular version of the source code. The hashes of the binaries should match those of all the people building the binaries. If there is a discrepancy in the hashes, then it means that there was some difference in the resulting binaries (whether that means someone's computer was compromised or there was something non-deterministic about the build process that introduced differences). The reproducible build process means that every single builder needs to be compromised to compromise the resulting binaries. If the current method that Debian uses of building packages is used instead, then there is a single target (either the maintainer of the package or the Debian build infrastructure) to compromise. There are some things that reproducible builds just don't protect against. If everyone is using the same OS to do the builds, then it is possible to just compromise the OS and influence the build that way. But you have to define the threat you are trying to protect against and focus on that. Even if you have a foolproof way of making sure your software stack is secure, there is still the hardware you are running. Do you know for sure that your hardware isn't compromised? Of course that worry can be mitigated by having the builders using a variety of hardware, so that it is less likely that all the hardware is compromised.

That explains the Debian/Ubuntu reproducible build effort. However, there is also Gitian, which was originally developed for Bitcoin Core, but is also used by Tor Browser Bundle. Armory is also using Gitian along with the Debian reproducible build toolchain to make Armory reproducible, but that isn't finished yet (I'm pleasantly surprised how many people have asked questions related to reproducible builds after the Armory effort was started). With Gitian, the build is performed in a VM and there is this assert file produced that contains the hashes of the resulting binaries (among other data). The assert file is signed by the builder. In Bitcoin Core's case the assert file and signature get added to a repo called Gitian.sigs on GitHub. Then users can download the signatures and verify them. You should verify the signatures of people you trust.

I think this is a pretty comprehensive answer, but let us know if there is something I should go into more detail on. Unfortunately the reproducible build efforts for OSes aren't complete yet, so you still have to trust in the build processes used and the people that do the builds.
Post
Topic
Board Armory
Re: How can I verify Armory binaries (like I can Bitcoin Core / Gitian)?
by
josephbisch
on 12/07/2015, 12:13:37 UTC
Can you and Joseph somehow prove that you are indeed working for Armory? I hope you understand. You know how it is. On forums, everyone can claim to be anyone.

I can prove that doug_armory works for Armory, but I can't prove that I do. If you look at the last person before the advisors on the about page on the Armory website, you will see Doug's name and near it is the text doug_armory with a link to his bitcointalk profile.

I'm interning under Doug's supervision. It appears that I am not listed on the about page, so I can't use that to prove I work for Armory. Maybe Doug or someone can state that I work for Armory, but you still might not trust them just because they themselves work for Armory. On GitHub, under the pull requests section, you will find a lot of closed pull requests from me, meaning that the code was merged into Armory, but that doesn't necessarily mean that I work for Armory, because some open source projects accept contributions from outside contributors. And still, there is nothing linking the GitHub account josephbisch to this bitcointalk account josephbisch.
Post
Topic
Board Armory
Re: How can I verify Armory binaries (like I can Bitcoin Core / Gitian)?
by
josephbisch
on 07/07/2015, 20:13:06 UTC
We are working on reproducible builds for Armory. The goals are Linux deb packages and a Raspberry Pi package for the next version of Armory (0.94). Right now the only way to be 100% certain that the binaries came from the source code is to build Armory from source yourself. After the reproducible builds exist, you will be able to verify the signatures of people you trust to be sure that the binaries came from the source code without needing to build Armory yourself. You will also be able to follow the reproducible build process to make your own build and sign off on it, so that people that trust you can verify your signature.

The Raspberry Pi package uses Gitian, but the Linux deb packages will use a script that uses the Debian Reproducible Toolchain. We will have instructions for reproducible builds using both systems. The Debian Reproducible Toolchain produces a buildinfo file instead of an assert file, but the idea is more or less the same.

It looks like 0.94 will just be using the signatures to verify that multiple people were able to get the same hash of the binaries. Only if a certain number of signatures are correct will the usual signing process continue. There will probably be a separate repository for signatures, like the Bitcoin gitian.sigs repo, so that ambitious users can verify the signatures themselves.

It seems like the ultimate goal is to have the Secure Downloader (that is part of Armory) verifying the signatures of multiple ATI employees, so that there is not a single computer doing the build and a single key signing the builds. But that won't happen for 0.94.

Work is also being done for OS X and Windows using Gitian. But those definitely won't be a part of 0.94.

Let me know if you have any more you want to know about this. Hopefully we will have 0.94 testing releases soon and then people will be able to try out the reproducible build process.
Post
Topic
Board Armory
Re: Building Armory with Gitian
by
josephbisch
on 15/04/2015, 13:49:24 UTC
Thanks Joseph & Doug, I really should have mentioned I was referring only to the build OS.

I'm using Xen as a host, and according to the gitian documentation I found, only KVM and VirtualBox are known to work. Could this be a massive job to configure?

Also, Ubuntu is a strange choice for build machine, why something office/consumer focused and not Debian? (i.e. developer focused) Everything added to 14.04 that isn't present in it's Wheezy base is unnecessary, as well as a potential source of trouble. Why Ubuntu, there seems to be no compelling reason at all. Or is there something I'm glossing over?

The gitian-builder tools only support KVM, LXC, and maybe VirtualBox (apparently make-base-vm can't actually make VirtualBox VMs). I think Xen support is something that devrandom (https://github.com/devrandom) would know more about.

As for the Ubuntu choice, the gitian-builder tools only support Ubuntu VMs (at least right now). I don't think there is anything preventing Debian VM support other than the fact that no one seems to have tried it. But that would be something that has to be changed with gitian-builder (https://github.com/devrandom/gitian-builder) rather than Armory. I'm not sure what ATI would want to go with if there was a choice between Debian and Ubuntu.
Post
Topic
Board Armory
Re: Building Armory with Gitian
by
josephbisch
on 15/04/2015, 13:00:12 UTC
Hi, Doug (doug_armory) and I are the people working on Gitian builds.

There are two OSes: the base OS and the build OS that runs in a VM. The base OS hosts the build OS VM and the build OS VM is where the actual building of Armory takes place.

It is important that the OS of the VM be consistent so that everyone gets the same results from the build. In Armory's case that is Ubuntu 14.04. The OS of the VM is specified in the descriptor under suites.

So when you create the VM for Armory, you want to run something like:
Code:
bin/make-base-vm --suite trusty

It should be possible for the base OS to be any OS that has the prerequisite programs for gitian-builder. I personally use Debian Jessie. The only prerequisite not available from Debian is python-vm-builder, so I downloaded the .tar.gz from Ubuntu and installed it.
Post
Topic
Board Armory
Re: Welcome Armory users!
by
josephbisch
on 05/04/2015, 15:44:22 UTC
Thanks!  But how do I get to 92.3?  I searched for it, but the download always says 93.1.

Click on "Previous Stable" at https://bitcoinarmory.com/download/.
Post
Topic
Board Armory
Re: General questions arising when adding Namecoin support to Armory
by
josephbisch
on 29/03/2015, 21:21:28 UTC
Wow, this thread is a blast from the past!

It looks like the IETF spec currently has ACH, Bitcoin, and testnet Bitcoin. But it is general, so that Namecoin could be added in the future.
Post
Topic
Board Armory
Re: Minimum Python Files For armoryengine
by
josephbisch
on 28/03/2015, 22:11:54 UTC
To import armoryengine.ALL, you need:

armoryengine directory and its contents
bitcoinrpc_jsonrpc directory and its contents
CppBlockUtils.py
_CppBlockUtils.so
qrcodenative.py
SDM.py

With just those files and directories, I was able to run the samples at https://bitcoinarmory.com/using-armory-python/.
Post
Topic
Board Armory
Re: Update FAILED: 0.93 failed on Ubuntu 12.04 64-bit (Dependency libstdc++6 {>=4.7)
by
josephbisch
on 24/02/2015, 12:35:32 UTC
The issue is that the Armory binary is expecting version 4.7 or above, but Ubuntu 12.04 only has 4.6.3. It does appear to be a mistake since they do list 12.04+ as being supported. Hopefully they'll see this and fix it. Even better would probably be for you to file a ticket at support.bitcoinarmory.com so they will definitely be aware of this issue.
Post
Topic
Board Armory
Re: Armory - Discussion Thread
by
josephbisch
on 20/02/2015, 00:20:57 UTC
I see there is some work towards Python 3 support that has been started on some branches on GitHub. Is there an ETA or expected version number for Python 3 support?
Post
Topic
Board Armory
Re: Raspberry Pi 2 release ?
by
josephbisch
on 04/02/2015, 02:04:37 UTC
If you are running Debian Jessie on the pi, you might be able to run the binaries from Debian Sid https://packages.debian.org/unstable/main/armory). Just note that the Debian binaries are meant to be updated through your package manager, so it has the built-in update functionality disabled.

I haven't actually tested this with a pi.
Post
Topic
Board Armory
Re: Bounty for Debian Maintainer to package Bitcoin Armory
by
josephbisch
on 09/12/2014, 01:03:07 UTC
Bummer.
Thank you for all your good effort, Joseph, nevertheless!

Yes, I got used to git too. It boils down to three, four short commands to install Armory:
- download that stuff from github
- auto-configure the source
- compile the source

I always write down the stuff I did, so it takes only a few seconds the next time.
And that way I end up with an up-to-date version too.

So, as maybe the next-best option, how about having a repository/server where all common Bitcoin software is available and up-to-date? One-stop for bitcoin-core, Armory, Electrum, you name it? Of course that server really, really has to be like Fort Knox! :-)
Like, more secure than github or "regular" linux repos. If this one gets hacked and malware built into it's gonna hurt.
Ah, maybe the little gain in convenience isn't worth it?

Ente

You don't have to worry about the server being compromised, because the software would be signed. The problem is that the person building the software would need to be trusted to not put an exploit into the binaries that the person builds. Someone could probably set up a repository using the binary packages provided by Armory. That way they would be signed by ATI and therefore trusted.

That is a good idea though.