Pages:
Author

Topic: MultiBit - page 89. (Read 336309 times)

legendary
Activity: 1708
Merit: 1066
October 08, 2011, 04:31:06 AM
#24
Thanks very much for your thoughtful post.

If I go through your points in turn:
RE: running under Linux on a Mac book.   If you want, you can run MultiBit as a fully fledged Mac app (with pretty icons and everything).   It's the same code but just better integrated for the Mac platform.   I only finished this off this week but will put out a beta next week with the Mac dmg file.

RE: 1).   Yes encryption is a must have.   I plan to copy the standard client's encryption *exactly*.

RE: 2), 3)  Importing and exporting keys are, when it comes down it it, about interoperability.   One of the things that I am adding in the current round of dev work is to change the MultiBit wallet storage format to 'Protocol Buffers' which can be read and written by C++, Java and Python easily.   (You can basically auto-generate the code to access the wallet).
One of the reasons to copy the standard client's encryption exactly is that it makes the possibility of interoperable *wallets* possible.   This is more a long term goal than anything - I haven't even started talking to the C++ devs about it yet.    This would cut out a lot of the importing/ exporting of private keys people currently have to do.

For wider adoption of bitcoin, I think people are happy with the idea of a 'wallet' but the moment you start talking about private keys and asymmetric encryption you are talking another language and they switch off.

RE: 4)  Redirecting change to a fixed address.  Would you mind explaining why you want to do that?  I mean, what is the use case that you are trying to fulfil ?


RE: 5), 6) and 7) Integration with fiat currencies.   This is a tricky one.   If you think of the work the exchanges put in to make exchanging BTC for fiat you realise it is a big task.    Also, you add a lot of complexity and touch points (points of interoperation with 'something else' you don't control) into the code.
Whilst there are other things to do (e.g. encryption) I plan to hold off adding fiat support.
If the exchanges make it easy to convert fiat/ BTC (and perhaps come up with a standard API common between exchanges so that you can get quotes and buy from the best one) then it might be worth doing as the exchanges would then 'own' the complexity.   I expect this is a way off yet.   Also I think fellow traveler is already doing this in his Open Transactions project.

The 'design goal' for multibit is actually the usage you describe as 'Run it from your USB drive/ home computer.   Nice and secure.   Send and receive bitcoin easily'.  

RE: Ripple.   Yes Ripple looks very nice and is obviously complementary to Bitcoin in its philosophy and decentralisation.   Which leads on nicely to your final point . . .

If you want to write code there are various approaches you can take, depending on where your interests lie.   First of all, definitely start using github.com.   It is a step up from coding using SVN or whatever and is practically designed to support open source projects.   It's free for open source.   It is a bit of a learning curve (I am still learning loads) but, well, it is just better.

If you want to work directly on MultiBit then there is plenty of work going !   I think all open source projects are man-power limited and help is definitely welcome.

You might also want to think about 'cloning' MultiBit and using it as a basis for your own project.   I am quite happy for people to reuse the work I have put in as the starting point for their own project.   It is all MIT licence.   Reading some of your other posts I think you might be interested in producing a bitcoinj *Ripple* client.   By this I mean something that connects to the Ripple network but also connects to the bitcoin network.   A bridge if you like.   By reusing the work I have done on the UI work and concentrating on the Ripple network integration you could get further, faster.

I must admit I am not following the Ripple project at the development level so you would want to talk to them to see if they are already working on such a project in Java.   I haven't seen anything on the bitcoinj mailing list about it so I *think* it is 'up for grabs'.   You might also want to check with fellow traveler (who writes Open Transactions) to check there is no duplication there.   (IMHO it is always better to contribute to an existing project that has the same goals rather than starting up a new one as you can get further in a team and it is more fun).

If you want to have a look at the MultiBit code and start building it, create an account on github.com and then do a 'git clone' of the project (jim618/multibit) onto your machine.

The build is now a fairly standard Maven build (the building of the installers is a bit 'round the houses' but it works ok).   If you are not familiar with Maven definitely read up on it as it is excellent.
(The MultiBit readme is a bit out of date actually - it refers to a previous build using ANT - so I would ignore that for now).

Let me know if you need any help.   You can send messages in github.com directly so please use that for any technical questions.   (I try to keep this thread as free as possible from technical mumbo-jumbo to keep it readable for everyone).

Edit: for developing MultiBit, it is fairly independent of the IDE (integrated design environment) you use.  I use Eclipse but  I know other people use Netbeans.   Pretty much everything now understands the structure of Maven projects so you just import it and away you go.








  

member
Activity: 62
Merit: 10
October 07, 2011, 05:11:23 PM
#23
Hi,

congratulations to your client, it really downloads the blockchain fast as hell under linux on my mac book.
Also the blockchain is really small so that I can keep the client, the blockchain and the wallet file on a TrueCrypted USB thumbdrive.

For me, that is a near perfect solution.

I have some improvement suggestions. The reasons I posted here:
https://bitcointalksearch.org/topic/m.553496

Here are my improvement requests in short:

1) Please add optional wallet encryption like in the standard client.
2) Please add a feature to import and export the private keys.
    There are some discussions and improvement requests about this for the standard bitcoin client, too.
    Therefore it would be nice if you could find a format that is also supported from the standard bitcoin client.
3) I would also find it practical if you could import/export private keys in QR code format, maybe even supporting
    https://www.casascius.com/ or http://www.bitbills.com/ 
4) I would like to have the possibility to redirect exchange bitcoins to a choosable fixed address instead of the automatic generation of a new address for exchange bitcoins.

I feel that the above requests are badly needed by any client to improve the ability of bitcoin to provide a secure and reliable storage of wealth.
The next requests should enable bitcoin to improve usability in a "real-world" economy.

5) The client should offer the possibility to display the balance in any currency the user likes, e.g. $, EUR, etc.
6) The client should offer the possibility to choose the currency for a money transfer in any currency that the user chooses for the specific transfer. The exchange rate should be customizable like in otc-marketplace.
7) The client should display the transaction history with the specific currency and exchange rate that the user selected for the specific money transfer.

I know the above whishlist is already huge, but wait for the last one:

Cool The client should have an interface to a crowd-based currency exchange mechanism like e.g. ripple. This way the user is not forced to get into the details of currency exchange. This is like using credit card payments in a foreign country: You do not bother about the details, you should pay in the currency you are requested to and the rest is done by the payment system itself. Of course one can think to incorporate online exchanges etc, but personally I prefer to as much keep the concept of distributed crowd services, because it minimizes possible attack vectors against single weak points (and online exchanges have abundantly prooved to be single weak points, even without mentioning past centralized systems like e-gold which were shut down by the governments)


Please keep up the good work.
I am considering contributing with coding to your work, can you give me directions where to start?
Because I am totally unfamiliar to the development environment you are using.
legendary
Activity: 1708
Merit: 1066
October 07, 2011, 09:31:24 AM
#22
You are correct - like other bitcoinj clients (including the mobile ones) it only 'takes' blocks and does not 'give' blocks to other nodes.   

The Satoshi clients/miners are the backbone of the network.   In some ways they *are* the network.
There have to be enough Satoshis/miners for the bitcoin network to be effective.   If there were 100.00% lightweight clients it wouldn't work as the blocks would not propagate around.   It would be like everybody listening but nobody talking.


Another further simplification in bitcoinj/MultiBit is that whilst the blocks are downloaded with all the transactions, once the block is processed it is stored *without* the transactions.   This is the main reason the bitcoinj blockchain is so much smaller than the Satoshi client's on the disk.   (Of course everything comes at a price - not having all the transactions on disk makes things like rescanning and importing keys more difficult.)

I expect we will eventually migrate to a 'hub and spoke' network where the Satoshi clients / miners are the interconnected hubs and the various lightweight clients are the spokes.


sr. member
Activity: 300
Merit: 250
October 07, 2011, 02:22:12 AM
#21
Just out of curiosity. If i understand it correct, multibit is a lighweight client, so it doensnt download and distribute the entire blockchain?
But if everyone starts using lightweight clients, will the blockchain still be distributed over the internet.
legendary
Activity: 1708
Merit: 1066
October 06, 2011, 04:34:39 AM
#20
Thanks for the feedback - good to hear it runs happily on older Linux boxes.
At the moment I am not setting any special memory options so, for instance, on my 2 gigabyte memory Mac it will be running in 512 MB.

I expect to be making a beta and putting a download on github early next week (mainly to get people to test the installers on different platforms) so that will have the functionality to connect to a single node if you want to try it out then.
sr. member
Activity: 369
Merit: 250
October 05, 2011, 06:13:28 PM
#19
I found my older Linux box takes minutes to load the official bitcoin client, and uses huge amounts of CPU loading and checking the blockchain. Multibit runs like a dream on the same machine, loads instantly, catches up on the blockchain in seconds. Will definitely be keeping multibit around for lightweight usage.

The connect to single node sounds good too, force it to connect to my main bitcoin client, save on bandwidth.

Keep up the good work..
legendary
Activity: 1708
Merit: 1066
October 05, 2011, 04:38:47 PM
#18
A couple of things that have gone into MultiBit recently:

You can now connect to a single node with the following property in multibit.properties:
singleNodeConnection=

The name can be a domain name or 'naked' IP address.
This was a feature request.
 

I have been improving the MultiBit packaging so that the build now automatically produces:

+ a proper Mac application bundle with Help/ Preferences/ Quit/ About menu integration + nice icons.
+ a Mac dmg file that has an 'Applications' alias you can drop the app to.
+ The Windows installer now has program shortcuts for MultiBit and the MultiBit uninstaller

This is all to make MultiBit easier to install and use.
legendary
Activity: 1708
Merit: 1066
September 26, 2011, 06:23:55 AM
#17
MultiBit is now being translated into French by the friendly staff of Global Standard Bank, based in Montreal.  

http://www.globalstandardbank.com/
Global Standard Bank - The Bitcoin Bank, aims to bring Bitcoin to a mainstream audience by providing Bitcoin banking solutions such as the BitCard - Bitcoins on a high security card. Now available on amazon.com, eBay and from Authorized BitCard Agents.

Thanks very much to the staff of Global Standard Bank for donating their time to MultiBit.



p.s MultiBit is now being translated to:

o English
o French
o Italian
o Norwegian
o Russian
o Spanish
o Swedish


legendary
Activity: 1708
Merit: 1066
September 25, 2011, 10:28:57 AM
#16
Yes that is the plan exactly as you state.

The work I mentioned on protocol buffers (which is a data storage format that is easy for both Java and C++ to read) is a good opportunity to add that information into the wallet.

Also with bitcoinj you can have several wallets 'listening' to the transactions coming from the network simultaneously. I will be using this with the multiple wallets screen.

Note that any MultiBit wallets created in 0.1.3 will have an upgrade path for any wallet format changes so people probably won't even notice the change.
hero member
Activity: 784
Merit: 1009
firstbits:1MinerQ
September 25, 2011, 06:38:21 AM
#15
Regarding your info about multiple wallets and missed blocks: couldn't you associate a "last" block count with each wallet such that if you switch wallets it immediately knows where to rescan from, and update the wallet transactions (if any).
legendary
Activity: 1708
Merit: 1066
September 22, 2011, 06:02:05 AM
#14
I thought you might be interested in the feature list for the next major release of MultiBit.
After feedback from the bitcoinj mailing list, the features we are aiming for are:


Proposed feature list for MultiBit 0.2.0.

Protocol buffers format for wallet. (http://en.wikipedia.org/wiki/Protocol_Buffers)
Support for multiple wallets.
Provide installers for Windows, Linux and an application bundle for Mac.
Improved cut and paste.
Increase number of languages.
Technical/ build improvements.


There is a detailed description at the github wiki : https://github.com/jim618/multibit/wiki

Of course there are other things we want to put in (also on the wiki) but this is the feature set we will be concentrating on for the next release.


Edit: We have decided to look at using protocol buffers rather than XML for wallet storage.
legendary
Activity: 1708
Merit: 1066
September 20, 2011, 01:25:09 AM
#13
Hi Roland,

On the top bar on the screen you can see that your wallet contains 0.4985 BTC but that the 'available to spend' is 0.0000 BTC. I have written an explanation on available to spend here:
http://multibit.org/help_availableToSpend.html as it is unfortunately not an obvious concept.

If you read through that it explains there are two ways you can have the available to spend less than the total in the wallet (pending receipts and waiting for change).

I notice bitpay uses the same terminology as it is a built in consequence of bitcoin rather than MultiBit itself. Hopefully the terminology will become standard.

If you have been switching wallets it could be you missed the transaction confirm of a bitcoin receive. You would notice that if your bitcoins never confirmed - on the transactions page you would see an empty progress box in the status field that never fills out and turns into a tick (no matter how long you waited).
If it is this post back - this is a bit of a limitation of the current MultiBit code that I should get rid of in the next release - and I will explain how to get rid of it.
sr. member
Activity: 300
Merit: 250
September 19, 2011, 02:11:06 PM
#12
Hi

I was trying to send some bitcoins, 0.001 to be exact.
But multibit says that i am unable to spend, though it reports that i have bitcoins in my wallet.
I have included a screenshot.
Am i doing something wrong ?

Greetz, Roland.



legendary
Activity: 1708
Merit: 1066
September 18, 2011, 01:54:02 PM
#11
Thanks for trying it out.   Waiting for the blocks to arrive is definitely the most frustrating thing about bitcoin but I guess we will have to learn to live with it.

In the most recent code (in github) I have added 'copy' icons next to the addresses on both the Send and Receive screens.   There is also a paste icon on the Send screen. One of the beta testers requested it.

I wasn't planning to put the current receiving address on the transactions screen no.  I have an idea for a screen with a list of all your wallets and their balances (a 'My Wallets" screen) so if anything is a main screen it is most likely going to be that.
You might have noticed that whatever you were looking at when you shut down MultiBit is shown when you start it up (like with an iPhone).   I figure if you were in a shop you might always sit on the 'Receive Bitcoins' screen.

RE: will it stay as a Java app.
I have been working on the installers this weekend - I'll just cut and paste from something I just put on the bitcoinj mailing list:

"
I have converted the MultiBit github project to Maven and removed the old ant build.
It now also creates:
o a 'universal' Java based installer - based on IzPack.
o which also gets packaged up to a Mac application bundle.
o and converted to a Windows exe using JSmooth.   JSmooth also handles searching for/ installing a JRE for the installer which means it is there for MultiBit to use too.
Some of the pom is a bit hacky (dropping down to ANT) and there are a few things to do (e.g. no shortcuts, don't really need an installer on Mac) but it's a good start.
"

People will just install it using an installer (or in the usual way with a dmg on a Mac) and shouldn't really be aware if it is using Java, C++ or magic pixie dust under the covers.


Edit: for completeness I thought I would add that I am proposing people install it on Linux using:
  wget
  chmod +x
  java -jar

This will then run an installer that looks the same as on Windows (thanks to the magic of IzPack).
I figure Linux users are familiar with command lines and that covers all (I think) the flavours with practically no extra work for me.

The installers have more work to do on them and then I will ask for some help with testing them on different platforms.

sr. member
Activity: 300
Merit: 250
September 18, 2011, 10:28:32 AM
#10
Hi there,

just installed multibit and it seems to be working fine, its still waiting to verify the first 0,5 received bitcoins.

A few questions:
- Is it possible to display the std receiving adress somewhere in the main screen, with an easy way of copying it ?
- Will it stay a java app, or will there be some kind of installer in the future ?

Thanks!

Roland.
legendary
Activity: 1708
Merit: 1066
September 15, 2011, 09:28:47 AM
#9
Hi,
Thanks - good to hear the QR codes are readable on BitcoinTrader.   I have liaised with Andreas (Android bitcoin wallet) to make sure his app can read them but the wider the testing the better.

It is a thin client yes.   It does not mine and does not offer up blocks to other nodes.   I don't think bitcoinj (which is used for the bitcoin network stuff) is ever planned to be expanded to be a full client.   

It does need to download all of the blockchain to pick up transactions.   The blockchain is smaller in bitcoinj though as the transactions aren't stored after the wallets see them so it is less of a problem.
(All the blocks on the main blockchain are <16MB at the moment).

RE: block count.
I think I will put a 'drilldown' screen when you click the 'Online/ Connecting...' label to give people more network stats.
I don't want to put them in the main screens though as I think it will frighten off the 'general user' which is who I am trying to target it to.

It uses DNS to look up the nodes but I guess it could connect to a specific node.   I will put that on the feature request list.
sr. member
Activity: 369
Merit: 250
September 15, 2011, 06:28:27 AM
#8
Nice.  This looks great and is simple to use.  The QR functionality works well and plays nice with BitcoinTrader on iPhone.

I have a couple of questions..

  • Currently the bitcoin p2p network could benefit from more listening/reachable "full" nodes, i assume this "thin" client cannot be a full listening node?
  • Does this client need to download the most recent blocks just like the official client? if so a block count / total blocks stat might be useful
  • Is it possible to add an option to force multibit to connect to a specific node only.. via IP or hostname?

Keep up the good work.
legendary
Activity: 1708
Merit: 1066
September 14, 2011, 09:59:19 AM
#7
Great thanks.
I will have a look at that site - I was wondering how best to organise the localisation work.
Cheers
staff
Activity: 4270
Merit: 1209
I support freedom of choice
September 14, 2011, 09:07:39 AM
#6
I can help you with the italian language.

Anyway, you should give a look a this one: http://crowdin.net ( I think that there are also other services like it )
This will be useful to translate it on many languages! Grin
legendary
Activity: 1708
Merit: 1066
September 14, 2011, 08:15:03 AM
#5
I have added a little image with the language code into the Preferences | Choose language panel | language combo

Here is a screenshot of the combo box open in Russian:
http://multibit.org/postImages/2011-0914-languageCodeInCombo.png

It helps you navigate when you accidentally set things to a language you cannot read.

Currently MultiBit is localised to:
o English
o Spanish
o Russian (it is missing a few terms that I have added in the last few days).

Swedish is on its way so I have put it in the UI in anticipation.


If anybody would like to volunteer to localise other languages, please do !
It is about 200 terms to localise.
Pages:
Jump to: