Bitcoin Forum
May 04, 2024, 02:00:15 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Multibit: a way to reduce transaction fee  (Read 7042 times)
andrey2345 (OP)
Newbie
*
Offline Offline

Activity: 46
Merit: 0


View Profile
April 30, 2014, 07:08:01 PM
 #1

Intro (go to Cure section if you are looking for a quick fix)

As many of you might know already, Multibit wallet has a built-in minimum transaction fee, which cannot be adjusted
(at least in recent versions). Wallet developers justify it by stating that inexperienced users might choose to
go with too low transaction fee and end up waiting too long for confirmation which might spoil the whole crypto experience
for them. And it makes sense! However, not all users are inexperienced and not everybody wants transactions to go as fast
as possible. For example, I like to keep my coins in several accounts and sometimes I need to send them to myself (like
hot wallet to cold wallet) and I don't care too much about speed and I even willing to resend my transaction if it gets stuck.
Anyway, I think somebody might also be interested in this stuff, so here we go!

Basically there are two ways around:
1. Clone the source from the repository, adjust SEND_MINIMUM_FEE in org.multibit.model.bitcoin.BitcoinModel and build
2. Download Multibit client and adjust the value right in the executable file

Despite the fact that I have experience in software development, I wasn't able to build Multibit quickly and gave up after
an hour. If anyone is still willing to try the first option, please tell me here. In the end I went with the second one
and it turned out to be much easier.

Cure

You will need Java installed on your computer. If you are using Multibit then you have it installed already

1. Download Multibit wallet from official website https://multibit.org/
2. Download reJ - rej_v0.7_bin.zip file from http://rejava.sourceforge.net/ and unzip it
3. Install Multibit somewhere (e.g. /home/user/Multibit)
4. Go to terminal, change dir to where you unzipped reJ, and run it (java -jar rej.jar) or just run it from your file manager       
5. reJ main window will appear. Click "Open" and find your Multibit executable jar file (e.g. /home/user/Multibit/multibit-exe.jar)
6.The contents of the multibit-exe.jar will appear (.jar files are just plain zip archives), double-click on the line "org/multibit/model/bitcoin"
7. Double-click on the BitcoinModel.class - the contents of the file will appear, but you can't change it directly
8. So click "View" in the menu bar and make sure the "Constant Pool" is checked
9. Switch to "Constant Pool" tab (if not there already) and look for a string which has value: "10000" In my case it was sixth from the top.
10. This is actually the value of the transaction fee expressed in satoshis. So if you want your transaction fee to be zero, just change this
value to 0 or anything else you like.
11. Click save. Start Multibit executable you just adjusted. The fee should now be what you have set in step 10.  Cheesy

If you need to change the fee from time to time you might want to make several copies of your multibit-exe.jar with different transaction
fees in them. Make sure you give them some sensible names so it is easy to remember what fee each has inside  Wink

Good luck!
       
1714788015
Hero Member
*
Offline Offline

Posts: 1714788015

View Profile Personal Message (Offline)

Ignore
1714788015
Reply with quote  #2

1714788015
Report to moderator
"In a nutshell, the network works like a distributed timestamp server, stamping the first transaction to spend a coin. It takes advantage of the nature of information being easy to spread but hard to stifle." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714788015
Hero Member
*
Offline Offline

Posts: 1714788015

View Profile Personal Message (Offline)

Ignore
1714788015
Reply with quote  #2

1714788015
Report to moderator
1714788015
Hero Member
*
Offline Offline

Posts: 1714788015

View Profile Personal Message (Offline)

Ignore
1714788015
Reply with quote  #2

1714788015
Report to moderator
AussieHash
Hero Member
*****
Offline Offline

Activity: 692
Merit: 500



View Profile
August 06, 2014, 07:57:16 AM
 #2

Thank you for this very helpful walkthrough.  It works well.

I set the SEND_MINIMUM_FEE to 0 in reJ and although multibit still requires a 0.0001 btc transaction fee, this is at least 5-10x less than the standard fee.  My transaction had 1 confirmation within 2 minutes.
Velkro
Legendary
*
Offline Offline

Activity: 2296
Merit: 1014



View Profile
August 06, 2014, 08:56:01 AM
 #3

interesting guide, should be usefull and fees in multibit should depend on price and not be fixed
bitsmichel
Sr. Member
****
Offline Offline

Activity: 518
Merit: 250



View Profile
August 06, 2014, 11:58:00 AM
 #4

Quote
10. This is actually the value of the transaction fee expressed in satoshis. So if you want your transaction fee to be zero, just change this
value to 0 or anything else you like.

Will transactions still be confirmed if you set it to say 0.00005 BTC ?

andrey2345 (OP)
Newbie
*
Offline Offline

Activity: 46
Merit: 0


View Profile
August 12, 2014, 02:59:44 PM
 #5

Well it depends on miners. If there are miners (pools actually) who are willing to include 0 fee transactions into the blocks they mine than it will be confirmed. From my experience I can say that there are such pools at the moment. Don't know what will be in the future. But be aware that transactions with 0 fee might take even few days to get confirmed! So if you are not in hurry it is a viable option. But if you need to send some coins quickly, I would advise against zero fee transactions. Remember the higher the fee the higher the chance to get into next block. 

The worst case scenario (if nobody is willing to process the 0 fee transaction) you will have to jump through some hoops to get your coins back in your wallet. But they won't be lost forever for sure.

andrey2345 (OP)
Newbie
*
Offline Offline

Activity: 46
Merit: 0


View Profile
August 12, 2014, 03:05:31 PM
 #6

Thank you for this very helpful walkthrough.  It works well.

I set the SEND_MINIMUM_FEE to 0 in reJ and although multibit still requires a 0.0001 btc transaction fee, this is at least 5-10x less than the standard fee.  My transaction had 1 confirmation within 2 minutes.

Yeah, you are right. I've noticed the same thing later. There is another place you need to change things to get it down to 0 for sure. I don't remember right now but if someone really needs this, I might try to remember.
jkister
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
August 31, 2014, 11:08:19 AM
 #7

   
5. reJ main window will appear. Click "Open" and find your Multibit executable jar file (e.g. /home/user/Multibit/multibit-exe.jar)

Anyone know how to do this on Windows7 ?  I'd like to reduce the min fee to 0 and - just in case - reduce the max fee to .01. 

Using Multibit 0.5.18, there is no multibit-exe.jar in c:\program files (x86)\multibit-0.5.18\ nor %appdata%\multibit

alternatively, any tips on how to build from source for windows7 would also be great.  the clues in readme.md aren't enough for me.
andrey2345 (OP)
Newbie
*
Offline Offline

Activity: 46
Merit: 0


View Profile
August 31, 2014, 06:36:10 PM
 #8

This is all Java , so everything should work on Windows just the same. Just make a full disc search for all *.jar files and you'll find multibit.
jkister
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
September 01, 2014, 01:15:30 AM
 #9

This is all Java , so everything should work on Windows just the same. Just make a full disc search for all *.jar files and you'll find multibit.

no multibit*.jar exists on the machine -

I have lots of %appdata%\local\temp\tempNN.jar - when I load Temp14.jar, Multibit opens.  But extracting it doesn't show the folders/files i'm looking for (folders include ch/com/i18n/images/javax/lib/...)

The only other .jar file related to multibit is c:\program files (x86)\Multibit-0.5.18\uninstaller\uninstaller.jar

no more wild goose chase for now.
AussieHash
Hero Member
*****
Offline Offline

Activity: 692
Merit: 500



View Profile
September 01, 2014, 01:28:19 PM
Last edit: September 03, 2014, 01:46:52 PM by AussieHash
 #10

Thank you for this very helpful walkthrough.  It works well.

I set the SEND_MINIMUM_FEE to 0 in reJ and although multibit still requires a 0.0001 btc transaction fee, this is at least 5-10x less than the standard fee.  My transaction had 1 confirmation within 2 minutes.

Yeah, you are right. I've noticed the same thing later. There is another place you need to change things to get it down to 0 for sure. I don't remember right now but if someone really needs this, I might try to remember.

I've made lots of changes to Multibit, there seems to be an "estimated fee" calculation that I cannot bypass yet.  I am able to set a 0-fee transaction, but have to set the send amount to be 0.0001 less than the full wallet amount.

Either way, with just your 1 patch cure, I was able to reduce the transaction fee to sweep my mining address from 0.0016 down to 0.0001 btc

Edit : just sent 2 x 0 fee transactions, 1405 (bytes) and 15270 (bytes) - which unmodified multibit would have required 0.0002 btc and 0.0016 btc transaction fees.
Both were confirmed in the 2nd earliest possible block, with 0 transaction fee. (there were approx 1300 unconfirmed transactions on the network at the time)
andrey2345 (OP)
Newbie
*
Offline Offline

Activity: 46
Merit: 0


View Profile
September 02, 2014, 02:34:19 PM
 #11

no multibit*.jar exists on the machine -

How do you start MultiBit then?
jkister
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
September 02, 2014, 04:58:00 PM
 #12

How do you start MultiBit then?

a shortcut on my startmenu points to c:\program files (x86)\multibit-0.5.18\multibit.exe

either the shortcut or the multibit.exe binary launches it.
R2D221
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500



View Profile
September 03, 2014, 02:45:41 AM
 #13

The Windows build has the Java program inside the .EXE. It may be possible to extract it, but I think it's easier to install it in Linux and then to copy it to Windows.

An economy based on endless growth is unsustainable.
Muhammed Zakir
Hero Member
*****
Offline Offline

Activity: 560
Merit: 506


I prefer Zakir over Muhammed when mentioning me!


View Profile WWW
September 10, 2014, 03:26:14 PM
 #14

Thanks for the guide! It really helps. How much time would it take to get atleast 1 confirmation for 0 fee transaction?

  ~~MZ~~

andrey2345 (OP)
Newbie
*
Offline Offline

Activity: 46
Merit: 0


View Profile
September 10, 2014, 04:24:45 PM
 #15

From 10 minutes to never. There is no definitive answer to this question. All depends on miners. Fee is usually proportional to the chance to have your transaction in the next block. The smaller the fee the lower the chance.
Prompyboo
Sr. Member
****
Offline Offline

Activity: 807
Merit: 251

World's First Crowd Owned Cryptocurrency Exchange


View Profile
October 13, 2014, 02:31:57 PM
 #16

thank you for the guide

ekkis
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
January 11, 2015, 08:17:24 AM
 #17

6.The contents of the multibit-exe.jar will appear (.jar files are just plain zip archives), double-click on the line "org/multibit/model/bitcoin"
7. Double-click on the BitcoinModel.class - the contents of the file will appear, but you can't change it directly
I'm running OSX 10.9.5 with Multibit 0.5.18; when I open the /Applications/Multibit.app file in reJ I get a listing of folders: Contents, Contents/MacOS, Contents/Resources, Contents/Resources/Java, Contents/_CodeSignature

under Contents/Resources/Java I find multibit-exe.jar but double-clicking on it generates the error below:

Exception was thrown: Error parsing class file /Applications/Multibit.app: Invalid Magic: 50 4b 03 04

any thoughts?
ekkis
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
January 11, 2015, 08:27:06 AM
 #18

when I open the /Applications/Multibit.app file in reJ I get a listing of folders
what I ended up having to do was right-click on the application and select "Show Package Contents"... copied the multibit-exe.jar to somewhere that reJ can access, edited it there and copied it back.  reJ can't traverse the .app folder - it opens it instead
Marcoser123321
Full Member
***
Offline Offline

Activity: 126
Merit: 100


View Profile
January 16, 2015, 01:34:09 AM
 #19

Thanks for this. This is going to help me out tons.

I don't mind the logic behind having a default fee, but the execution should be optional. The fact that it isn't is rather annoying.

Tolullopsy
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
December 17, 2017, 08:50:34 AM
 #20

Can this still be used with the crazy bitcoin fee this days
Pages: [1] 2 »  All
  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!