Bitcoin Forum
November 09, 2024, 10:46:09 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 ... 231 »
  Print  
Author Topic: Armory - Discussion Thread  (Read 521827 times)
Nachtwind
Hero Member
*****
Offline Offline

Activity: 700
Merit: 507



View Profile
January 03, 2012, 01:51:00 PM
 #21

Pretty awesome... looking forward testing it..

One thing "Multi wallet" does that also include "multi blockchain"? What i alook for is a single client to hold my BTC, LTC and so on wallets...
bitcoinbetas
Sr. Member
****
Offline Offline

Activity: 240
Merit: 250



View Profile
January 03, 2012, 02:10:30 PM
 #22

totally sick  Grin
Stemby
Legendary
*
Offline Offline

Activity: 2450
Merit: 1008



View Profile
January 03, 2012, 02:37:21 PM
 #23

 Shocked

Chapeau

“…virtual currencies, could have a substitution effect on central bank money if they become widely accepted.”
ECB Report, October 2012
Tuxavant
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1010

Bitcoin Mayor of Las Vegas


View Profile WWW
January 03, 2012, 02:40:29 PM
 #24

Super awesome! Look forward to seeing a donation address..

Can someone explain "Import/Sweep Addresses" please?

BinaryMage
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500


Ad astra.


View Profile
January 03, 2012, 02:44:43 PM
 #25

Incredible! Much thanks for your hard work. I look forward to trying it out.

-- BinaryMage -- | OTC | PGP
Matoking
Sr. Member
****
Offline Offline

Activity: 352
Merit: 250

Firstbits: 1m8xa


View Profile WWW
January 03, 2012, 02:44:55 PM
Last edit: January 03, 2012, 03:05:27 PM by Matoking
 #26

Super awesome! Look forward to seeing a donation address..

Can someone explain "Import/Sweep Addresses" please?
Sweeping takes all the bitcoins from the supplied private key and the address and sends them into your wallet, without adding a new address into the wallet.

Importing imports the private key into the wallet, adding a new Bitcoin address, with all funds already associated with it.

Also, there is a donation address in the Github repository's README file:
https://github.com/etotheipi/BitcoinArmory/blob/master/README

BTC : 1CcpmVDLvR7DgA5deFGScoNhiEtiJnh6H4 - LTC : LYTnoXAHNsemMB2jhCSi1znQqnfupdRkSy
Bitcoin-otc
BitBin - earn bitcoins with your pastes!
jim618
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
January 03, 2012, 03:24:15 PM
 #27

Congratulations on your bitcoin client.
That is a lot of lot of work !

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
minorman
Legendary
*
Offline Offline

Activity: 945
Merit: 1003



View Profile
January 03, 2012, 03:42:44 PM
 #28

Sweet. I wanna try the beta!
- and donate from it when it works!


 ██▄                ██        ▄███████▄        ██                  ██      ▄█████████▄ 
 ████              ██      █                  █      ██                  ██      ██                ██
 ██  ▀█            ██    ▄█                  █▄    ██                  ██    ██                  ██
 ██    █▄          ██    ██                  ██    ██                  ██    ▀█                     
 ██      █▄        ██    ██                  ██    ██                  ██      ██                   
 ██        █▄      ██                                  ██                  ██       ▀████████▄   
 ██          █▄    ██    ██                  ██    ██                  ██                        ██ 
 ██            █▄  ██    ██                  ██    ██                  ██                          ██
 ██              █▄██    ██                  ██    ▀█                  █▀    ▄▄                  █▀
 ██                ███      █                  █        █                  █      ██                ██ 
 ██                  ▀█        ▀███████▀            ▀███████▀         ▀█████████▀   











Nousplatform Youtube     
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
January 03, 2012, 04:11:56 PM
 #29

Thanks for all the compliments.  I've been looking forward to this moment for a while  Smiley  So much that I can't believe I botched the donation address I usually keep in my signature!  (I tried changing it and forgot to restore the address).

Feel free to donate now:  1Gffm7LKXcNFPrtxy6yF4JBoe5rVka4sn1, but I'm definitely more interested in having you donate from the software itself.  If it works well enough to donate, then we're both happy!

I still need to work out some lingering bugs and interface issues.  I have tested the hell out of most of the stuff under-the-hood, and it just needs to be prettied up on the user-interface side.  Once I finish implementing and testing the offline-wallet interface, I'll try to post instructions for those that want to run it themselves.  I plan to make binaries in Windows (though I am struggling with py2exe issues right now), and Ubuntu should only be a few command-line calls (I have a bare VM setup to test that this is true).  Of course, these things never work out as smoothly as I hoped, and I know it's going to be a pain to support multiple OS's... but I suppose that's part of the fun!

If you're interested in helping me test right now... well, I'll make a post tonight or tomorrow with initial build instructions.  Once I have the offline interface working, I'll try to make binaries and post them on my (future) webpage.

As you all have noted, this is a heavy program.  I understand not everyone will be able to use it.  But those than can... well I think you will enjoy it Smiley  I plan to spend half of my immediate development activities (after alpha) on creating a file-based blockchain, but it might be a while before I can get it implemented and tested.  But no doubt:  I will be keeping the full-RAM implementation in there, it will be modified to scan the blockchain in batches (so no huge RAM reqt) and also could be easily ported to some kind of server as people have suggested.   I would love to see the full-RAM implementation used in a server:  with nothing but a blk0001.dat file, I can scan the entire blockchain and collect the balance/unspent-outputs of an address/wallet in less than 1s.  From a cold boot, it's probably 15-20s with all the file ops and blockchain organization ops.


Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
January 03, 2012, 04:26:15 PM
 #30

Very cool.
Finally my 16GB will be of use Smiley.
What about bulk generation of addresses?

I'm not sure what you mean by "bulk generation."  The deterministic wallet feature will generate an infinite number of addresses, but it is kind of slow, because each step in the sequence requires ECC operations to be performed on the CPU.  I believe it will extend the sequence at about 100 addr/sec.

awesome  Grin
can you add a option to download the blocks but dont check them and only check the blocks from the last week/month/user defined time

Right now, there is no blockchain downloading-- it leaches completely off the Satoshi client and its blockchain file.  

On that note:  I should've mentioned that this client does no blockchain validation.  The assumption is made, that if the data made it into the longest blockchain, it is valid.  I let miners do the work so I don't have to.  However, for zero-confirmation transactions, I might add a check to make sure that the previous output is at least in the blockchain.  But, of course, no one should really ever be trusting zero-conf transactions...

Pretty awesome... looking forward testing it..

One thing "Multi wallet" does that also include "multi blockchain"? What i alook for is a single client to hold my BTC, LTC and so on wallets...

Unfortunately, I do not have multi-network support.  The network has to be specified at runtime, and then everything after that is hard-coded.  However, I was surprised to see how painless it was to switch between main-network and testnet, so you could probably add your own network parameters (genesis hash, magic bytes, network port), and run a separate instance of Armory.  I'm not sure it would be any more resource intensive than if I had them all integrated into the same interface... but I recognize it's not as convenient to run multiple instances.  Unfortunately, this feature is not on my radar in terms of near-term improvements.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
finway
Hero Member
*****
Offline Offline

Activity: 714
Merit: 500


View Profile
January 03, 2012, 04:30:45 PM
 #31

So i guess i need to compile .cpp file with SWIG,right?
but how?
Code:
C:\Documents and Settings\admin\BitcoinArmory>python bitcoinarmoryqt.py
********************************************************************************

Loading BitcoinArmory Engine:
   BitcoinArmory Version: 0.50
   PyBtcAddress  Version: 1.00
   PyBtcWallet   Version: 1.00
Detected Operating system: Windows
   User home-directory   : C:\Documents and Settings\admin\Application Data
   Satoshi BTC directory : C:\Documents and Settings\admin\Application Data\Bitc
oin\
   Satoshi blk0001.dat   : C:\Documents and Settings\admin\Application Data\Bitc
oin\blk0001.dat
   BitcoinArmory home dir: C:\Documents and Settings\admin\Application Data\Bitc
oinArmory\
***ERROR:  C++ block utilities not available.
           Make sure that you have the SWIG-compiled modules
           in the current directory (or added to the PATH)
           Specifically, you need:
                  CppBlockUtils.py     and
                  _CppBlockUtils.pyd
Traceback (most recent call last):
  File "bitcoinarmoryqt.py", line 33, in <module>
    from btcarmoryengine import *
  File "C:\Documents and Settings\admin\BitcoinArmory\btcarmoryengine.py", line
285, in <module>
    TheBDM = Cpp.BlockDataManager().getBDM()
NameError: name 'Cpp' is not defined

Meni Rosenfeld
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1054



View Profile WWW
January 03, 2012, 04:50:05 PM
 #32

Very cool.
Finally my 16GB will be of use Smiley.
What about bulk generation of addresses?
I'm not sure what you mean by "bulk generation."  The deterministic wallet feature will generate an infinite number of addresses, but it is kind of slow, because each step in the sequence requires ECC operations to be performed on the CPU.  I believe it will extend the sequence at about 100 addr/sec.
It means I can choose a label (say "My Bitcoin address"), hit the "generate 1000 addresses" button, and obtain a list of 1000 addresses I can use, labeled "My Bitcoin address 1" through "My Bitcoin address 1000", which I can easily copy in order to paste elsewhere. MultiBit does something like this as far as I understand.

On that note:  I should've mentioned that this client does no blockchain validation.  The assumption is made, that if the data made it into the longest blockchain, it is valid.  I let miners do the work so I don't have to.
This may fly for blocks buried deep enough in the chain. But for recent blocks you need to check they are actually valid before propagating them further. Otherwise you get into a situation that nobody does any checking because he trusts that everyone else will do the checking and only feed him clean data.

But, of course, no one should really ever be trusting zero-conf transactions...
I disagree, there are certainly situations where 0-confirm transactions are to be trusted (notable example is paying for a latte).

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
January 03, 2012, 05:17:58 PM
Last edit: January 03, 2012, 05:40:49 PM by etotheipi
 #33

On that note:  I should've mentioned that this client does no blockchain validation.  The assumption is made, that if the data made it into the longest blockchain, it is valid.  I let miners do the work so I don't have to.
This may fly for blocks buried deep enough in the chain. But for recent blocks you need to check they are actually valid before propagating them further. Otherwise you get into a situation that nobody does any checking because he trusts that everyone else will do the checking and only feed him clean data.

But, of course, no one should really ever be trusting zero-conf transactions...

I disagree, there are certainly situations where 0-confirm transactions are to be trusted (notable example is paying for a latte).

"Deep enough" is the standard 6 blocks.  If the rest of the world is building off a blockchain with your transaction 6 blocks deep I'm happy to accept it.  If you flood my node with 100% dishonest connections and start sending me poisoned blocks... well there's nothing the Satoshi client with full node-validation can really do with that, either.  As long as you have 1 honest node out of 100 connections, you will get the longest chain.

As for 0-conf transactions, you are allowed to trust them as much as you want, but I won't encourage it.  All you need is 1 dishonest node out of 100 connections to start sending you invalid transactions.  They can even send you transactions that would appear valid, but since my node doesn't check&forward them,  I don't know that they weren't sent to any miners and won't actually be included in the blockchain.  The only way to avoid this is with full-validation, but that's not something that any lite-client will be doing.

However, since Armory connects through the Satoshi client, all data is filtered through it's full-validation behaviors.  So you can trust the 0-confirmation transactions a bit more than you could on a real, light node, but I still wouldn't trust it too much.  I mostly use it for confirmation that an expected payment entered the system, but there's too many things that can go wrong with 0-confs.  Even 1-confirmation transactions have holes that could be exploited by determined (there's some posts on 1-conf exploits I participated in a while ago... I can dig them up if you are super-interested).  

In terms of risk in accepting transactions, as a function of the number of confirmations, I would apply the following ranking (normalized by zero-confimation risk)
Code:
0:  100%
1:   30%
2:    3%
3:    2%
4:    1%
5:    1%
6:    1%

That's not just exponential decay... there's just extraordinarily fewer options for an attacker once the tx is 2 blocks deep.  That's also why I change the text color from light gray to not-so-light-gray after 2 confirmations Smiley  (but you can't hold me responsible for things going wrong if you don't wait for 6)


Finway: Check out the Using_Armory.README file for more information about how to compile -- or wait for me to post specific/updated instructions.  There might be more hints in the PBE block-explorer demo thread  (but you need to add a few things, like python-twisted, etc).


Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
maaku
Legendary
*
Offline Offline

Activity: 905
Merit: 1012


View Profile
January 03, 2012, 05:21:24 PM
 #34

This may fly for blocks buried deep enough in the chain. But for recent blocks you need to check they are actually valid before propagating them further. Otherwise you get into a situation that nobody does any checking because he trusts that everyone else will do the checking and only feed him clean data.
That's what the Satoshi client does, which this client interfaces with. All he's doing is trusting that the Satoshi client is doing its job.

I'm an independent developer working on bitcoin-core, making my living off community donations.
If you like my work, please consider donating yourself: 13snZ4ZyCzaL7358SmgvHGC9AxskqumNxP
Meni Rosenfeld
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1054



View Profile WWW
January 03, 2012, 05:35:04 PM
 #35

This may fly for blocks buried deep enough in the chain. But for recent blocks you need to check they are actually valid before propagating them further. Otherwise you get into a situation that nobody does any checking because he trusts that everyone else will do the checking and only feed him clean data.
That's what the Satoshi client does, which this client interfaces with. All he's doing is trusting that the Satoshi client is doing its job.
Sure, but isn't the plan to make it standalone at some point? If the "no validation" is only supposed to remain while it uses the Satoshi client then it's not a problem.

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
kwukduck
Legendary
*
Offline Offline

Activity: 1937
Merit: 1001


View Profile
January 03, 2012, 05:51:23 PM
 #36

Looking very good!

14b8PdeWLqK3yi3PrNHMmCvSmvDEKEBh3E
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
January 03, 2012, 05:58:45 PM
 #37

Sure, but isn't the plan to make it standalone at some point? If the "no validation" is only supposed to remain while it uses the Satoshi client then it's not a problem.

You are right:  once I sever the umbilical cord to the Satoshi client, it will not do block-validation.  However, I don't see this as a problem.  The entire future of Bitcoin will revolve around lite-clients which don't have block-validation, and I don't have a problem having my program be one of them.  However, it's not out of the question to do some kind of validation on zero-conf transactions, but it's not my first priority.  As I said before:  it's up to you to pick your own "comfort level" with 0 and 1-conf transactions, but if you wait for 6 like is globally suggested on the network, all types of nodes should have equal confidence.

The only thing to take away from this is that once Armory has standalone networking, those zero-conf transactions should be treated even more cautiously than on a full node.  I'm more focused on having rock-solid wallet management, instead of real-time operational details like this (it's just a matter of priorities)..

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
Greed
Newbie
*
Offline Offline

Activity: 25
Merit: 0



View Profile
January 03, 2012, 06:10:29 PM
 #38

Excellent work, if I do so say so myself. Is it possible to run it without a GUI via the terminal / command line?
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
January 03, 2012, 07:11:54 PM
 #39

Excellent work, if I do so say so myself. Is it possible to run it without a GUI via the terminal / command line?

You can get to 90% of the functionality of Armory via a python shell (loading the blockchain, creating wallets, importing keys, getting blockchain data, scanning addresses, getting unspent-output lists, crypto ops, etc)., but you have to know what calls to use.  You can get some hints from unittest.py, which contains most of the unit-tests for the project.
 
However, while the low-level code is well-commented, I haven't really done any high-level documentation of how to do high-level stuff -- for now you'll have to settle for looking at unittest.py until I get around to making a walk-thru of the high-level interface.  If you want pure-python without any external dependencies, go look at PyBtcEngine which should work without any of the C++/SWIG stuff (it's my own project I forked Armory from a couple months ago, when I had to take the leap from pure-python to hybrid).

From there you can make all kinds of scripts, or setup a simple socket/IO interface to pipe commands to and from a running server.  There's a lot of possibilities... and for now I'll work on build-instructions and try to post them tonight so that all these committed people have a chance to get up and running tonight Smiley  I guess pre-alpha is the new alpha!

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
O_Shovah
Sr. Member
****
Offline Offline

Activity: 410
Merit: 252


Watercooling the world of mining


View Profile
January 03, 2012, 07:30:30 PM
 #40

Thanks you a lot for all your efforts.All your projects apear astounding to me.

I have never worked with python before Embarrassed only C++. But ill make shure to give it a try making this code run on windows.

The Xeon quad core and 64GB of ram shall be doing their job Cheesy

I send you a Donation. Such dedication has to be rewarded.(At least i may help to keep your girlfriend patient;) )

Keep up the work. Is already a great project and for shure will flourish further.

Pages: « 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 ... 231 »
  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!