jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 05, 2012, 10:05:36 PM Last edit: April 12, 2012, 08:04:27 AM by jim618 |
|
It is not quite finished yet I have just put in quite a handy feature. The list of addresses in the Send and Request screen is now sorted by label. And as you type your label text in the main entry form it moves the row to its correct sort position in the addresses list. It is a bit hard to describe in words: Screenshot: Here you can see I have grouped a few addresses simply by typing 'exact' as a prefix. You create a new address, type the prefix in the label box and you can easily see the other, related addresses. (You can also sort by bitcoin address too if you want).
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 07, 2012, 09:43:01 PM Last edit: April 07, 2012, 10:00:00 PM by jim618 |
|
It is the start of a longish road, but I have started on a command line interface for the MultiBit object model. This will, when it is complete, be able to manipulate all the 'things' in MultiBit using a command line. At the moment all it can do is show help, create new wallets and exit the shell as follows: host47:Java jim$ cat multiBitShell.sh java -classpath multibit-shell-exe.jar org.multibit.viewsystem.commandline.MultiBitCommandLine host47:Java jim$ ./multiBitShell.sh 22:31:33.477 [main] INFO o.m.v.c.MultiBitCommandLine - Starting MultiBitCommandLine 22:31:33.484 [main] INFO o.m.ApplicationDataDirectoryLocator - Application data directory.1 = '/Users/jim/Library/Application Support/MultiBit' 22:31:33.514 [main] DEBUG o.m.v.c.MultiBitCommandLine - useTestNet = false 22:31:33.545 [main] DEBUG o.m.v.c.MultiBitCommandLine - userLanguageCode = en 22:31:33.564 [main] DEBUG o.m.v.c.MultiBitCommandLine - Creating model 22:31:33.569 [main] DEBUG org.multibit.model.MultiBitModel - Initial view from properties file is '1' 22:31:33.569 [main] DEBUG o.m.v.c.MultiBitCommandLine - Creating views MB > 22:31:33.576 [main] DEBUG o.m.v.c.MultiBitCommandLine - Registering with controller 22:31:33.577 [main] DEBUG o.m.v.c.MultiBitCommandLine - Creating Bitcoin service 22:31:33.678 [main] DEBUG org.multibit.network.MultiBitService - Reading block store '/Users/jim/Library/Application Support/MultiBit/multibit.blockchain' from disk 22:31:33.683 [main] INFO o.m.store.ReplayableBlockStore - Reading block store from /Users/jim/Library/Application Support/MultiBit/multibit.blockchain 22:31:33.691 [main] INFO o.m.store.ReplayableBlockStore - Read chain head from disk: 0000000000000a22f6f29ba1f5ca3c95bcf13d5f2bafeb45028971a154d73026 22:31:33.693 [main] DEBUG org.multibit.network.MultiBitService - Connecting ... 22:31:33.720 [main] DEBUG o.m.v.c.MultiBitCommandLine - Locating wallets 22:31:33.721 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/Users/jim/real money/blockChain.wallet' MB:Message : Opening wallet "/Users/jim/real money/blockChain.wallet"... 22:31:36.204 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /Users/jim/real money/blockChain.wallet , walletFileSize 3728832 ,walletFileLastModified 1333804495000 ,walletInfoFileSize 4399 ,walletInfoFileLastModified 1333804493000 MB:Message : Opening wallet "/Users/jim/real money/blockChain.wallet"... done. 22:31:36.219 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/Users/jim/real money/pettyCash.wallet' MB:Message : Opening wallet "/Users/jim/real money/pettyCash.wallet"... 22:31:36.547 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /Users/jim/real money/pettyCash.wallet , walletFileSize 452062 ,walletFileLastModified 1333804496000 ,walletInfoFileSize 1246 ,walletInfoFileLastModified 1333804496000 MB:Message : Opening wallet "/Users/jim/real money/pettyCash.wallet"... done. 22:31:36.563 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/Users/jim/real money/multibitDonate/donations.wallet' MB:Message : Opening wallet "/Users/jim/real money/multibitDonate/donations.wallet"... 22:31:37.072 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /Users/jim/real money/multibitDonate/donations.wallet , walletFileSize 992392 ,walletFileLastModified 1333804841000 ,walletInfoFileSize 1189 ,walletInfoFileLastModified 1333804840000 MB:Message : Opening wallet "/Users/jim/real money/multibitDonate/donations.wallet"... done. 22:31:37.103 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/users/jim/test/test1.wallet' MB:Message : Opening wallet "/users/jim/test/test1.wallet"... 22:31:37.109 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test1.wallet , walletFileSize 3082 ,walletFileLastModified 1333833631000 ,walletInfoFileSize 278 ,walletInfoFileLastModified 1333833631000 MB:Message : Opening wallet "/users/jim/test/test1.wallet"... done. 22:31:37.110 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/users/jim/test/test2.wallet' MB:Message : Opening wallet "/users/jim/test/test2.wallet"... 22:31:37.115 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test2.wallet , walletFileSize 3082 ,walletFileLastModified 1333833671000 ,walletInfoFileSize 395 ,walletInfoFileLastModified 1333833671000 MB:Message : Opening wallet "/users/jim/test/test2.wallet"... done. 22:31:37.116 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/users/jim/test/test3.wallet' MB:Message : Opening wallet "/users/jim/test/test3.wallet"... 22:31:37.121 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test3.wallet , walletFileSize 3082 ,walletFileLastModified 1333833719000 ,walletInfoFileSize 87 ,walletInfoFileLastModified 1333833719000 MB:Message : Opening wallet "/users/jim/test/test3.wallet"... done. 22:31:37.127 [main] DEBUG o.m.v.c.MultiBitCommandLine - Downloading blockchain MB:Error : No view to display with id 1 MultiBitTool#processLine args = --action=HELP
22:31:37.128 [SwingWorker-pool-1-thread-7] DEBUG org.multibit.network.MultiBitService - Downloading blockchain MultiBitShell: print and manipulate the MultiBit object model
Usage (Implemented): HELP Show this help text. EXIT Exit this MultiBitShell session. CREATE --wallet --filename=<> Makes a new wallet in the file specified.
(Not Implemented Yet): CREATE --sendingAddress --address=<> --label=<> Makes a new sending address with the given address and label. --receivingAddress --label=<> Makes a new receiving address with the given label.
EDIT --preferences Edit the MultiBit preferences. --sendingAddress --address=<> --label=<> Edit the sending address matching the given address or label. --receivingAddress --address=<> --label=<> Edit the receiving address matching the given address or label.
LIST --wallets Lists all open wallets in a format suitable for picking. --sendingAddresses Lists all sending addresses in a format suitable for picking. --receivingAddresses Lists all receiving addresses in a format suitable for picking. --transactions Lists all transactions for the active wallet for picking.
PICK --number=<> or --value=<> Pick from the last list either by list number or match by value.
DELETE --wallet --filename=<> Delete the wallet with the file specified. --sendingAddress --address=<> --label=<> Delete the sending address with the given address or label. --receivingAddress --address --label=<> Delete the receiving address with the given address or label.
SEND --address=<> --amount=<> Send the specified amount of BTC to the address specified.
RESET --date=<> Remove all transactions on or after the date, or all if no date specified. REPLAY --date=<> Replay the blockchain from the date specified.
IMPORT_KEYS --filename=<> --password=<> Import private keys from the filename specified, using the password. EXPORT_KEYS --filename=<> --password=<> Export private keys from the filename specified, using the password.
WAIT_FOR --online or --replayComplete Wait for MultiBit to come online or for the blockchain replay to complete.
SHOW --activeWallet Show which wallet is the active wallet. --online Show whether MultiBit is onine or not. --helpAbout Show the help about MultiBit details. --ticker Show the most recent ticker details. --messages=<number> Show the most recent <number> of messages. --transaction Show the details of the last picked transaction.
MB:Message : Synchronised with network. MB:Message : Synchronised with network.. 100.0% complete. MB:Message : Synchronised with network. MB:Message : Synchronised with network.. 100.0% complete. MB:Message : MultiBit is now online
MB > CREATE --wallet --filename=/users/jim/test/test4.wallet MultiBitTool#processLine args = --action=CREATE --wallet --filename=/users/jim/test/test4.wallet
22:32:07.727 [Thread-2] DEBUG org.multibit.model.WalletInfo - Could not load walletinfo file '/users/jim/test/test4.info' 22:32:07.728 [Thread-2] DEBUG org.multibit.model.WalletInfo - Cause : /users/jim/test/test4.info (No such file or directory) 22:32:07.733 [Thread-2] DEBUG org.multibit.file.FileHandler - Result of check of whether files have changed for wallet filename /users/jim/test/test4.wallet was true. 22:32:07.741 [Thread-2] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test4.wallet , walletFileSize 3082 ,walletFileLastModified 1333834327000 ,walletInfoFileSize 87 ,walletInfoFileLastModified 1333834327000 22:32:07.745 [Thread-2] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test4.wallet , walletFileSize 3082 ,walletFileLastModified 1333834327000 ,walletInfoFileSize 87 ,walletInfoFileLastModified 1333834327000 22:32:07.746 [Thread-2] DEBUG org.multibit.file.FileHandler - When writing wallets, there were 7 22:32:07.749 [Thread-2] DEBUG o.m.v.s.action.CreateNewWalletAction - User preferences with new wallet written successfully MB > EXIT MultiBitTool#processLine args = --action=EXIT
MultiBitTool#processLine - exit called. host47:Java jim$
It will be a 'background task' whilst I work through other stuff. Note: Primarily for security considerations none of the code for the MultiBit command line will be put in the regular MultiBit installers. There is a separate jar file (multibit-shell-exe.jar) that people will have to download if they want to use this. It is for advanced users so it is better not to have it in the regular installers. P.S. The parser (the clever bit of the code that interprets all the commands and options) is a blatant copy of Mike Hearn's wallet-tool which does a similar task for the bitcoinj code. Thanks Mike !
|
|
|
|
freemoney458
Member
Offline
Activity: 62
Merit: 10
|
|
April 08, 2012, 10:37:15 AM |
|
Nice idea to put in a CLI for advanced users.
I guess this will make it possible to write testing scripts for automated testing. Or kind of a validation suite that users can execute on their system to be sure that everything works as intended. Are you planning in this direction, too?
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 08, 2012, 11:08:34 AM Last edit: April 08, 2012, 12:19:11 PM by jim618 |
|
Hi freemoney,
Functional testing/ test scripts Yes I am putting in the CLI now (well starting on it) mainly to make scripted / functional testing easier. There is quite a bit of internal work coming up with encrypted wallets etc so I wanted to improve my testing capability. You can only do so much with unit tests.
The code in the CLI will be exercising the same code as in the GUI (but obviously not the 'click here' stuff) so it will improve my test coverage generally too.
The test scripts could also be used by the end user as validation and diagnostic scripts too.
Medium term - market data In the medium term the exchange data we are just starting to hook into will also be available on the MultiBit object model (and then subsequently the CLI). This will give people shell access to:
+ all your wallet information and ability to spend + the market data from the exchanges you are hooked into + the state of the MultiBit runtime itself (i.e. are all the blocks downloaded ?).
That is *close* to being able to write whole scripted algorithms to, say, trade bitcoin across exchanges. (There is no looping or conditions in the CLI at the moment so that would have to be added. Or it could be hooked into a rules engine).
Secure shell usage - iOS will fall to bitcoin ! Edit: oh and a CLI means that you could run a secure shell (SSH) from one machine to another if you wanted. It would be slightly nerdy but you could have an SSH from your iPhone to a cloud VM somewhere if you wanted.
An iOS developer would then have a reasonable interface to write an iOS GUI against. (I am not really planning to do this - not enough time - just saying what is possible).
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 09, 2012, 11:13:39 AM |
|
You have probably already noticed, but I have started up a dedicated thread for discussion of the MultiBitShell command line interface.
As it is a bit nerdier and most MultiBit users will never feel the need to use it, please post any MultiBitShell comments/ feedback in that thread.
Thanks.
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 11, 2012, 01:13:58 PM Last edit: April 14, 2012, 07:07:50 AM by jim618 |
|
We have made progress on the Bitcoin currency ticker. This is a little box that gives you the latest exchange rates.
We have not quite got it all hooked up yet but here is what it looks like with (scratched out) randomly generated data:
Image out of date - see further down thread
The user can show and hide the ticker with the "View | Show/Hide currency ticker" menu option. When you initially show the ticker it shows a single rate (which will be midpoint between bid and ask as reported by the exchange). This is to keep it simple.
To configure the ticker you simply click it to open the preferences. At the moment the only option is to show the bid and ask, which gives you a screen like this:
Image out of date - see further down thread
You can see we have scope for the following enhancements over time: + Choose the currency to show. + Choose the exchange to use (We only have Mt.Gox at the moment. This comes from the XChange code - we are currently working on Intersango and a Russian exchange IMCEX). + Have a second currency+ exchange pair immediately below the first. This could be, say, the bid and ask for USD from Intersango or the current euro rate from WhateverExchange.
|
|
|
|
bitcoinspot.nl
|
|
April 11, 2012, 02:22:16 PM |
|
so would it be possible then, that i can fill in an amount in euro's and multibit will translate it to the corresponding amount in bitcoins?
|
- bitcoinspot.nl - Alles over bitcoin! -
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 11, 2012, 02:47:40 PM |
|
Hi bitcoinspot.nl,
At the moment the ticker is pretty much standalone. The other screens do not know about exchange data (yet).
Mainly because I want to work on the wallets/ encryption I am going to get the basic ticker working and leave it for that now.
As with all things, it gets more complicated. You send 5 euros to me, the exchange rate varies : I only receive 4,50 when I look. So you have to keep the exchange rate at the time of transaction for each transaction as evidence etc etc.
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 11, 2012, 09:19:01 PM Last edit: April 12, 2012, 04:40:00 PM by jim618 |
|
Mike Hearn noticed whilst testing MultiBit that I had not implemented a speed-up technique that he had implemented called FastCatchup: http://code.google.com/p/bitcoinj/wiki/FastCatchupThis is a technique that speeds up the initial sync of the blockchain that is included in the installer for new users. I have put this into the MultiBit code base just now. Results + Using a 3G modem + Using my 3 year old Mac + Using a blockchain that is 10 days old (sync of 1420 blocks). From double clicking the MultiBit icon to the 'Synchronised with network' message appearing: 27 secondsEdit: More results:+ Using coffee shop wifi + Using my 3 year old Mac + Using a blockchain that is 11 days old (sync of 1500 blocks). From double clicking the MultiBit icon to the 'Synchronised with network' message appearing: 18 secondsExcellent ! It will go into the next release (0.3.3).
|
|
|
|
Mike Hearn
Legendary
Offline
Activity: 1526
Merit: 1134
|
|
April 12, 2012, 08:48:05 AM |
|
Note that the speedup only happens for new wallets. After your initial sync as a new user the speed goes back to normal (still much faster than Bitcoin-Qt but not "thousands of blocks per second" which is achievable for first time users).
We'll speed up the active-user case some more later.
|
|
|
|
da2ce7
Legendary
Offline
Activity: 1222
Merit: 1016
Live and Let Live
|
|
April 12, 2012, 09:02:25 AM |
|
Of Course you are going to be implementing the Sipa HD Wallet's. For Random Private Key Generation... It may be beneficial in using the https://en.bitcoin.it/wiki/Mini_private_key_formatThis would make the keys smaller for easy transfer on paper. This may come in handy when you implement a 'print paper backup' feature.
|
One off NP-Hard.
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 12, 2012, 09:11:08 AM |
|
Hi da2ce7,
Thanks for the heads up on that. The mini key format is definitely preferable for QR codes.
Re: Sipa's deterministic wallets. This is very interesting development - I believe it is pencilled in for bitcoind v0.7. And yes it is the obvious one for Multibit to implement.
Jim
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 13, 2012, 03:49:21 PM Last edit: April 15, 2012, 09:29:55 AM by jim618 |
|
After some evening coding last night by Tim, Gary and I we now have the XChange data flowing into MultiBit and have the ticker hooked up: edit: you can now switch individual columns on and off Just showing one "Last price" with all the other columns switched off We will initially release with just MtGox as that is the most mature code. Still a bit of finishing off to do yet.
|
|
|
|
CrownCloud
|
|
April 16, 2012, 07:57:16 PM |
|
After some evening coding last night by Tim, Gary and I we now have the XChange data flowing into MultiBit and have the ticker hooked up: edit: you can now switch individual columns on and off Just showing one "Last price" with all the other columns switched off We will initially release with just MtGox as that is the most mature code. Still a bit of finishing off to do yet. Looks awesome !! Great Workk !! MultiBit is awesome !!!
|
CrownCloud - Internet Services Dedicated servers, OpenVZ and KVM based VPSes and in 4 locations. (We accept Bitcoin !) http://crowncloud.net/
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 16, 2012, 08:48:00 PM |
|
Thanks speedbus !
It is quite a handy little addition having the exchange rate in the corner.
The next release should be out in a day or two - just got to tidy things up.
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 17, 2012, 12:38:24 PM |
|
There is a new release of MultiBit at: http://multibit.orgVersion 0.3.3 Enhancements: + Added FastCatchup for fast new user blockchain synchronisation (less than 1 minute) + Added currency ticker with support for MtGox exchange + Address books are now sorted and current row moves-as-you-type + Welcome screen added : available in de, en, es, nl. + From the transactions details dialog, the user can open transaction details in blockchain.info or blockexplorer.com in their browser + Can now specify a date from which to reset the blockchain and transactions Release info Changes included - Apr 1st 12:00 to Apr 16th inclusiveScan of release checklist
|
|
|
|
Tittiez
|
|
April 17, 2012, 07:41:57 PM |
|
Can we have the ability to sign messages? I need this feature for P2PMining.com to change my Merged Mining address.
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 17, 2012, 08:06:25 PM |
|
Hi Tittiez,
I will have a look into it. Not sure if it is in the bitcoinj interface (the underlying library I am using for bitcoin related things)
Jim
|
|
|
|
davout
Legendary
Offline
Activity: 1372
Merit: 1008
1davout
|
|
April 18, 2012, 09:23:34 AM |
|
I suggest making the transaction fee a real user-settable setting.
|
|
|
|
jim618 (OP)
Legendary
Offline
Activity: 1708
Merit: 1066
|
|
April 18, 2012, 10:47:09 AM |
|
Hi davout, We covered the pros and cons of zero tx fees in the github issue you raised: https://github.com/jim618/multibit/issues/23The main issue with zero tx fees is that sufficient tx see delays that users who 'just want it to work' have a bad user experience. I want to avoid that.
|
|
|
|
|