jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 04, 2012, 07:45:07 AM |
|
Thanks ! The wallet encryption you can try out now with the beta downloads at: https://github.com/jim618/multibit/downloadsI have been using the encrypted code for real for about a month now - they just need another round of QA and getting the code into bitcoinj. As long as you are careful to keep your wallets/ keys backed up you should be ok.
|
|
|
|
molecular
Donator
Legendary
Offline
Activity: 2772
Merit: 1019
|
|
October 04, 2012, 08:31:08 AM |
|
The Bloom filter work needs changes both to the client and bitcoind - here is the little graphic I put in my London conference talk: http://multibit.org/postImages/bloom.pngThe client creates a Bloom filter for all the bitcoin addresses s/he is interested in and then gives it to bitcoind. Bitcoind then filters all the transactions and only sends back the ones that have a Bloom filter hit. (You get some false positives which helps on privacy). It is a bit more work for the bitcoind but it has to send back less data so for the server it is probably a wash. The big win is for the client and the data bandwidth needed drops dramatically. I am not sure there are any formal specs for it yet as it is still being developed. I expect MultiBit and Andreas's wallet will be the first ones to implement it. I am pretty sure bitcoinj has the tools to implement an Electrum client. All the signing etc would be similar. The work would probably be in the conversations with the Stratum servers for them to give you the data you want. And probably the data objects are different so there is a bit of translation there. All doable - quite a nice project. Jim, I think I understand how bloom filter works now and it seems it's exaclty what's needed here for multibit and light clients. However, I'm still confused on 2 points: - Are you saying bloom filter support will go into mainline satoshi at some point?
- "Bitcoind then filters all the transactions and only sends back the ones that have a Bloom filter hit.": What about old transactions? Afaik there's currently no index for this in bitcoind, right? So will the bloom bitcoind rescan the blockchain to send info on past events concerning the filtered addresses?
I know Andreas's Bitcoin Android Wallet is open source so I dare say you could fork/ reuse that to save time on UI work (obviously asking Andreas and rebranding it to avoid any confusion).
Exactly my thinking, already checked out his code last night to take a look Offtopic sidenote and thoughts: I also took a very rough look at bitcoinj. My idea to make a "class ElectrumWallet extends Wallet" will not work cleanly (for example, Wallet.addKey(ECKey x) would have to be implemented, which wont work for electrum wallet system because keys are generated from a seed). I was kindof expecting an "interface Wallet"... Will probably take a look at multibit wallet abstraction, maybe an electrum wallet impl could be written for multibit?
|
PGP key molecular F9B70769 fingerprint 9CDD C0D3 20F8 279F 6BE0 3F39 FC49 2362 F9B7 0769
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 04, 2012, 10:43:22 AM Last edit: October 04, 2012, 12:08:01 PM by jim618 |
|
Jim, I think I understand how bloom filter works now and it seems it's exaclty what's needed here for multibit and light clients. However, I'm still confused on 2 points: - Are you saying bloom filter support will go into mainline satoshi at some point?
- "Bitcoind then filters all the transactions and only sends back the ones that have a Bloom filter hit.": What about old transactions? Afaik there's currently no index for this in bitcoind, right? So will the bloom bitcoind rescan the blockchain to send info on past events concerning the filtered addresses?
Offtopic sidenote and thoughts: I also took a very rough look at bitcoinj. My idea to make a "class ElectrumWallet extends Wallet" will not work cleanly (for example, Wallet.addKey(ECKey x) would have to be implemented, which wont work for electrum wallet system because keys are generated from a seed). I was kindof expecting an "interface Wallet"... Will probably take a look at multibit wallet abstraction, maybe an electrum wallet impl could be written for multibit? Yes my understanding is that the bloom filter support will go into bitcoind (I don't know when though). It will be very useful when it goes in. RE: the old transactions - I think you would have to set the head of your local blockchain and work forward, unless there is something on the bloom filter API to cater for this (I don't know this). The bitcoinj Wallet is an impl yes - the MultiBit Wallet is practically the same. I would not copy what I have done in MultiBit actually but do what Andreas does which is: 1) Have a fork of the bitcoinj code and then add in support that you want 2) When bitcoinj changes then rebase and pick up the changes. Wallet is a bit too tightly coupled to the current network/ datamodel at the moment - Mike has it on his TODO list to prise them apart a bit. I think a Wallet abstraction would be really useful to handle heterogenous wallets (watch only, scrypt+AES encrypted private keys, HD deterministic, Electrum deterministic) but the MultiBit code is quite a long way away from that currently. I think for writing a Java Electrum client now, the clearest way would be to use the bitcoinj datamodel as far as possible but add in the "best" structures for Electrum's wallets. That way in the future it will be easier to determine what a Wallet really is (interface wise I mean).
|
|
|
|
Mike Hearn
Legendary
Offline
Activity: 1526
Merit: 1134
|
|
October 04, 2012, 10:58:25 AM |
|
Bloom filter on the Satoshi side is here: https://github.com/bitcoin/bitcoin/pull/1795on the bitcoinj side is here: http://code.google.com/r/bluemattme-bitcoinj/source/list?name=bloomfilterWe have consensus that this is the way to go and I'm sure the code will get merged and rolled out soon. Re: old keys. Bloom filtering is just a layer on top of regular chain download. If you import a set of keys, you would redownload the chain from that point with a filter containing the new keys and the transactions would all arrive. Offtopic sidenote and thoughts: I also took a very rough look at bitcoinj. My idea to make a "class ElectrumWallet extends Wallet" will not work cleanly (for example, Wallet.addKey(ECKey x) would have to be implemented, which wont work for electrum wallet system because keys are generated from a seed). I was kindof expecting an "interface Wallet"... Will probably take a look at multibit wallet abstraction, maybe an electrum wallet impl could be written for multibit?
Electrum made deterministic wallets core to its design, and bitcoinj does not have any implementation of that today. If you wanted to implement them, that'd be a very interesting project. As I said, I think seeing this in terms of Electrum is the wrong way to go. Bloom filtering + an implementation of deterministic wallets gives you exactly the same functionality as Electrum/Stratum does, but in a way that meets Satoshis original design goals and which lets you use any peer from the network selected at random.
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 04, 2012, 12:06:56 PM |
|
@Mike Thanks for those URLs Mike - I have meaning to look at Matt's work in detail for weeks now.
Yes - whilst the conversation above was framed in terms of Electrum deterministic wallets I personally am more interested in Pieter's hierarchical deterministic wallets. A Java solution for one would (I think) be relatively easy to extend to the other.
@molecular If you have the time free then working on Java deterministic wallets would definitely be useful for the wider community. With some nice design work you could probably build something that caters for both Electrum and HD wallet key generation.
I am looking forward to when HD wallets enable a user to go to any Bitcoin client, enter their secret information and access their bitcoin.
|
|
|
|
molecular
Donator
Legendary
Offline
Activity: 2772
Merit: 1019
|
|
October 04, 2012, 05:49:13 PM |
|
@jim and @mike: Thanks for your valuable input, I have a pretty clear path to go down now. It will be a slow walk and it's not 100% sure yet I'll go down that road (my free time available is currently pretty limited and I have to choose among many interesting options). I'll try to share early once I have something worth to look at or get input.
|
PGP key molecular F9B70769 fingerprint 9CDD C0D3 20F8 279F 6BE0 3F39 FC49 2362 F9B7 0769
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 05, 2012, 05:17:26 AM |
|
Hi subSTRATA, The next version (0.4.11) shows all the digits e.g 0.12345678 BTC. It will be out in a day or two.
|
|
|
|
bitcoinspot.nl
|
|
October 05, 2012, 11:09:00 AM |
|
Hi Jim,
yesterday i sent myself two transactions but they remain unconfirmed in multibit, yet on blockchain.info they both are confirmed. i really dont want to do a reset blockchain and transactions because i want to keep my list of transactions.
Do you have an idea?
Greetz! Roland.
|
- bitcoinspot.nl - Alles over bitcoin! -
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 05, 2012, 01:16:30 PM |
|
Hi bitcoinspot.nl,
Hmm, have you tried doing a reset transactions but choosing the date to go back to as yesterday ? That will only clear a day or twos transactions before replaying the blocks.
Edit: Or you can create a dummy wallet and do a "reset transactions from a particular date" on THAT wallet. When the blocks get replayed I check every wallet to see if there are any relevant transactions so it should confirm the unconfirmed transactions, whichever wallet they are in.
Jim
|
|
|
|
bitcoinspot.nl
|
|
October 05, 2012, 01:42:53 PM |
|
Ok clicked it is it normal to not see a conformation screen of any sort when i click the resetblockhain button? P.s. i never see this problem occuring on the official client, why does this occur? keep up the good work! Roland.
|
- bitcoinspot.nl - Alles over bitcoin! -
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 05, 2012, 01:52:50 PM |
|
Hi bitcoinspot.nl,
I put various messages on the status bar as it resets things so I did not bother with a confirmation dialog as it is just another screen to dismiss.
As to why it occurs: Well, it shouldn't !
Bugs like that can be difficult to pin down - can be some edge condition that normally does not happen or such like. It really is still experimental software !
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 05, 2012, 01:53:50 PM |
|
There is a new live release of MultiBit at: multibit.orgVersion 0.4.11 Enhancements: User interface + 8 decimal places of BTC now shown + Chart of wallet balance for last 30 days added + Drag and drop QR code to desktop + Slovenian 100% added + Various UI tidyups System + Faster bitcoin network connection + Rolling wallet backup to mitigate sudden power loss + Automatic recopy of installer blockchain if required + Update to bitcoinj version 0.6 + Update to XChart 0.2.0 Scan of release checklist
|
|
|
|
mila
|
|
October 05, 2012, 02:31:12 PM |
|
Version 0.4.11
Also Slovak lang is now 100 % was 95% since 0.4.9
|
your ad here:
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 05, 2012, 02:33:17 PM |
|
Great - thanks for that reminder !
Thanks for your efforts.
It is always nice to have software totally in your native tongue.
:-)
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 05, 2012, 02:50:59 PM |
|
Thanks to the efforts of techmix and mohammad_rafigh there is now a Farsi translation of MultiBit. They will share the bounty on this translation work (pro rata on number of terms done). It just missed the 0.4.11 release but here is a screen shot: I will spend a bit of time over the weekend trying to tidy up some of the layout anomalies and aim to get it out early next week.
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 05, 2012, 05:55:19 PM |
|
Yes it is better I must admit.
It is a production release. If you install it using, say, the default settings it will pick up you user application data directly.
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 06, 2012, 11:08:04 AM |
|
I have set up bounties for the translation of the remaining Arabic and Hindi phrases. If you are interested in either contributing to a bounty or doing the translation, please have a look here: multibit.org/bounties.htmlThere is a link from the main text on the multibit.org landing page too.
|
|
|
|
bitcoinspot.nl
|
|
October 06, 2012, 10:17:07 PM |
|
Hi bitcoinspot.nl,
Hmm, have you tried doing a reset transactions but choosing the date to go back to as yesterday ? That will only clear a day or twos transactions before replaying the blocks.
Edit: Or you can create a dummy wallet and do a "reset transactions from a particular date" on THAT wallet. When the blocks get replayed I check every wallet to see if there are any relevant transactions so it should confirm the unconfirmed transactions, whichever wallet they are in.
Jim
i selected the date (3 october) and clicked the reset blochain button, but nothing happens...
|
- bitcoinspot.nl - Alles over bitcoin! -
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
October 06, 2012, 10:20:14 PM |
|
Try selecting the day before ie 2 October
|
|
|
|
|