Author

Topic: Yet another martingale bot for SatoshiDice (Java app) (Read 11087 times)

legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
NOTE: I don't think this is designed to be used by people with 10btc or less, I had 5btc and lost all of them
The less you have, the more likely you are to lose everything. However, if you lose everything, you lose less. There's no such thing as a free lunch.
legendary
Activity: 2142
Merit: 1010
Newbie
It was designed when min bet was 0.001 BTC. Now it's 0.01 BTC.
member
Activity: 86
Merit: 10
NOTE: I don't think this is designed to be used by people with 10btc or less, I had 5btc and lost all of them
member
Activity: 86
Merit: 10
I get this: am I doing something wrong?



Code:

C:\Program Files (x86)\Bitcoin>bitcoin-qt.exe -server -rpcport=9876 -rpcuser=asdfE -rpcpassword=sdaf-rpcallowip=127.0.0.1

C:\Program Files (x86)\Bitcoin>cd \

C:\>java -cp MartinBot.jar MartinBot http://127.0.0.1:9876 MYUSERNAME MYPASSWORD
 1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp 0.1 2.0
java.net.ConnectException: Connection refused: connect

C:\>"C:\Program Files (x86)\Bitcoin
'"C:\Program Files (x86)\Bitcoin' is not recognized as an internal or external c
ommand,
operable program or batch file.

C:\>cd "C:\Program Files (x86)\Bitcoin

C:\Program Files (x86)\Bitcoin>bitcoin-qt.exe -server -rpcport=9876 -rpcuser=MYU
SERNAME -rpcpassword=MYPASSWORD -rpcallowip=127.0.0.1

C:\Program Files (x86)\Bitcoin>cd \

C:\>java -cp MartinBot.jar MartinBot http://127.0.0.1:9876 MYUSERNAME MYPASSWORD
 1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp 0.003 3.3
----------
{"method":"sendtoaddress","params":["1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp",0.003]}
{"id":null,"result":"9ce841babde110db1360056cb863d4f2f876a6158a010653e7aa2797a3e
f161d","error":null}
sr. member
Activity: 308
Merit: 250
what is the satoshi's client? Does that have RPC interface?
It can be downloaded from http://bitcoin.org/. It does have JSON-RPC interface.

didn't realize, the "error writing to server" only occurs when i use the static IP for my pc (***.***.*.14)

when i use 127.0.0.1 its still http error 500  (the standard no acces error)
Usually, I see this error if I try to spend more BTC than I have confirmed in a wallet. Satoshi's client gives very little info about errors, so it's hard to catch a bug.

You probarly haven't seen my previous martingale work Wink (developped my own strategy on a lower bet %) My balance is way over 300 btc at the moment, so a 0.01 bet should be possible Smiley.


EDIT:

can't find satoshi's client on bitcoin.org. Only bitcoin-qt *what i use now* multibit, armory, electrum (and bitcoin wallet for android)
legendary
Activity: 2142
Merit: 1010
Newbie
what is the satoshi's client? Does that have RPC interface?
It can be downloaded from http://bitcoin.org/. It does have JSON-RPC interface.

didn't realize, the "error writing to server" only occurs when i use the static IP for my pc (***.***.*.14)

when i use 127.0.0.1 its still http error 500  (the standard no acces error)
Usually, I see this error if I try to spend more BTC than I have confirmed in a wallet. Satoshi's client gives very little info about errors, so it's hard to catch a bug.
sr. member
Activity: 308
Merit: 250
i made a config file with

server=1
rpcport=9876
user=(not going to tell)
password=(not going to tell)
allowip=127.0.0.1
Try to use command line parameters, not config file. Something like
Code:
bitcoin-qt.exe -server -rpcport=9876 -rpcuser=(not going to tell) -rpcpassword=(not going to tell) -rpcallowip=127.0.0.1

or is it possible because my wallet is password protected?
Never tried with password protected wallet.

tryed with an blockchain.info wallet
MartinBot was designed to be used with Satoshi's client.

hello thanks for your help Smiley

what is the satoshi's client? Does that have RPC interface?

EDIT:

we are getting somewhere Smiley.  With a bat script with the commands you suggested

Error writing to server

Any fix for that?

EDIT2:

didn't realize, the "error writing to server" only occurs when i use the static IP for my pc (***.***.*.14)

when i use 127.0.0.1 its still http error 500  (the standard no acces error)
legendary
Activity: 2142
Merit: 1010
Newbie
i made a config file with

server=1
rpcport=9876
user=(not going to tell)
password=(not going to tell)
allowip=127.0.0.1
Try to use command line parameters, not config file. Something like
Code:
bitcoin-qt.exe -server -rpcport=9876 -rpcuser=(not going to tell) -rpcpassword=(not going to tell) -rpcallowip=127.0.0.1

or is it possible because my wallet is password protected?
Never tried with password protected wallet.

tryed with an blockchain.info wallet
MartinBot was designed to be used with Satoshi's client.
sr. member
Activity: 308
Merit: 250
Hi,

i tryed your bot. But i keep getting the error

connection refused: connect

i made a config file with

server=1
rpcport=9876
user=(not going to tell)
password=(not going to tell)
allowip=127.0.0.1

but it will not allow me to use the java bot.. Tryed to disable antivirus and firewall and still not working..


Although i can read the RPC part with another program.. (can get balance in php script)

EDIT:

or is it possible because my wallet is password protected?

EDIT2

tryed with an blockchain.info wallet

getting nullpointer exception (download the 2nd post .java file)
legendary
Activity: 2142
Merit: 1010
Newbie
you must be rich now!  Tongue

Aye!
Unfortunately, SatoshiDice has hard limit of 250 BTC per bet, so I can't become insanely rich...  Tongue
legendary
Activity: 2856
Merit: 1520
Bitcoin Legal Tender Countries: 2 of 206
you must be rich now!  Tongue
legendary
Activity: 2142
Merit: 1010
Newbie
Here is my preset for this bot. Works much better than mining. About 0.5 BTC per hour with minimal risk.  Wink
Quote
java -cp MartinBot.jar MartinBot http://127.0.0.1:9876 LOGIN PASSWORD 1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp 0.003 3.3

I decided to try ur tactics: more losses in a row, higher a reward at the end. As a result I won more than 100 BTC after a couple of hours. Thx for the idea.
legendary
Activity: 2142
Merit: 1010
Newbie
almost everything lost? Wink

Me? No. Won 50 BTC during last 2 days playing without bot, but got bored. I'm waiting for a gambling game with co-operative gameplay, it's in betatesting stage now.
legendary
Activity: 2856
Merit: 1520
Bitcoin Legal Tender Countries: 2 of 206
almost everything lost? Wink
legendary
Activity: 2142
Merit: 1010
Newbie
Quote
java.net.ProtocolException: Server redirected too many  times (20)

something i can tweak, or do i have to wait and drink a cup of tea?

Check that username, password and url are correct.
newbie
Activity: 50
Merit: 0
Quote
java.net.ProtocolException: Server redirected too many  times (20)

something i can tweak, or do i have to wait and drink a cup of tea?
legendary
Activity: 2142
Merit: 1010
Newbie
Is the bot supposed to run continuously? After a loss the bot doesn't do anything. It also only submits a second bet if there's a win. I have 5 BTC in my wallet so that might be to low?

It's supposed to run continuously. But sometimes, especially when a new block is found, Satoshi's client doesn't respond. Perhaps it's a bug in my bot, but there are only a few lines of code and most of times the bot sends hundreds bets before it stops, so I suspect that something wrong in the client. Also the bot is supposed to be launched with a fresh wallet with 1 account only.
sr. member
Activity: 317
Merit: 250
Is the bot supposed to run continuously? After a loss the bot doesn't do anything. It also only submits a second bet if there's a win. I have 5 BTC in my wallet so that might be to low?
legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
I use such a strategy:

In the morning I deposit 10 BTC and launch the bot.
In the evening I shut the bot down.


Sometimes I see 0 BTC on the balance, but in most cases there are like 20 BTC.
If you specifically configure it for double or nothing, you are much better off just placing a single bet. The Martingale strategy only works if you are trying to win an amount much smaller than the total amount you have to bet.
hero member
Activity: 639
Merit: 500
Here is my preset for this bot. Works much better than mining. About 0.5 BTC per hour with minimal risk.  Wink
Quote
java -cp MartinBot.jar MartinBot http://127.0.0.1:9876 LOGIN PASSWORD 1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp 0.003 3.3
Is that right? Was that 0.5 BTC per hour a typo?
Yep. Absolutely.
sr. member
Activity: 317
Merit: 250
Here is my preset for this bot. Works much better than mining. About 0.5 BTC per hour with minimal risk.  Wink
Quote
java -cp MartinBot.jar MartinBot http://127.0.0.1:9876 LOGIN PASSWORD 1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp 0.003 3.3
Is that right? Was that 0.5 BTC per hour a typo?


I plan to use these settings below as was suggested above:

java -cp MartinBot.jar MartinBot http://127.0.0.1:9876 LOGIN PASSWORD 1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp 0.003 3.3

Does this look good or would you all suggest better presets?


Thanks for the app. I was going to use the martingale R app posted in the "How to Last Longer Thread" but I like the automated functionality of your bot better.
legendary
Activity: 2142
Merit: 1010
Newbie
please don't play this all in any way. no chance at all. prevent loss from newbies.
Actually, if you configure it correctly, you are muck more likely to win than to lose. The problem is, if you do lose, you lose much, much more than you tried to win.

It's like a reverse lottery where 99.9% of the people get $1. But one out of 1,000 people get tortured to death. Of course, your "expected profit" is negative. However, you are more likely to win than to lose.


I use such a strategy:

In the morning I deposit 10 BTC and launch the bot.
In the evening I shut the bot down.


Sometimes I see 0 BTC on the balance, but in most cases there are like 20 BTC.
legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
please don't play this all in any way. no chance at all. prevent loss from newbies.
Actually, if you configure it correctly, you are muck more likely to win than to lose. The problem is, if you do lose, you lose much, much more than you tried to win.

It's like a reverse lottery where 99.9% of the people get $1. But one out of 1,000 people get tortured to death. Of course, your "expected profit" is negative. However, you are more likely to win than to lose.
legendary
Activity: 2142
Merit: 1010
Newbie
Yeah it worked without error after I made th .conf . Just the java is fighting me.

Unfortunatelly, I have to work on ur computer to find the issue. Check firewall settings, I use MartinBot.jar by myself without any problems.
hero member
Activity: 742
Merit: 500
Its as easy as 0, 1, 1, 2, 3
Yeah it worked without error after I made th .conf . Just the java is fighting me.
legendary
Activity: 2142
Merit: 1010
Newbie
Attempted to test it but kept getting

Code:
java.net.ConnectException: Connection refused: connect

Have u launched bitcoin-qt.exe this way:

Code:
bitcoin-qt.exe -server -rpcport=9876 -rpcuser=MYUSERNAME -rpcpassword=MYPASSWORD -rpcallowip=127.0.0.1

?
hero member
Activity: 742
Merit: 500
Its as easy as 0, 1, 1, 2, 3
Attempted to test it but kept getting

Code:
java.net.ConnectException: Connection refused: connect
hero member
Activity: 639
Merit: 500
Here is my preset for this bot. Works much better than mining. About 0.5 BTC per hour with minimal risk.  Wink
Quote
java -cp MartinBot.jar MartinBot http://127.0.0.1:9876 LOGIN PASSWORD 1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp 0.003 3.3
member
Activity: 112
Merit: 10
great, i'll have to throw away some money later
vip
Activity: 1316
Merit: 1043
👻
In addition, you will probably lose everything if you went on.

But thanks for making the bot - gambling it NOT A WAY TO GET BITCOINS, it's for entertainment.
legendary
Activity: 2142
Merit: 1010
Newbie
The chance is above 0, the key point is to leave the game at the right moment. Just to prove it I played SatoshiDice with Martingale tactics while watching Red Bull Stratos. I used 10 spare bitcoins and got 20 bitcoins back - https://blockchain.info/address/1CDoCox8dX9SRzxwRRxLRTsFJ2b4XThYvX.
legendary
Activity: 2856
Merit: 1520
Bitcoin Legal Tender Countries: 2 of 206
please don't play this all in any way. no chance at all. prevent loss from newbies.
legendary
Activity: 2142
Merit: 1010
Newbie
it lost the 'less than 32000' game 14 times in a row!

WOW!
newbie
Activity: 42
Merit: 0
Nice work.  I ran a slightly modified version of this just now, and eventually ran out of coins when it lost the 'less than 32000' game 14 times in a row! (on btcdice.com)  Only lost a small amount of BTC but it was fun.
newbie
Activity: 28
Merit: 0
nice job, maybe build some random delays into the bot,
could help to win more
legendary
Activity: 2142
Merit: 1010
Newbie
I decided to add a compiled version of the bot for those who r unfamiliar with Java: http://www.4shared.com/file/UeCqpEXa/MartinBot.html

How to use
1. Download and install Java Runtime Environment 7 (JRE): http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. Launch bitcoin-qt.exe in server mode:
Code:
bitcoin-qt.exe -server -rpcport=9876 -rpcuser=MYUSERNAME -rpcpassword=MYPASSWORD -rpcallowip=127.0.0.1
3. Launch the bot:
Code:
java -cp MartinBot.jar MartinBot http://127.0.0.1:9876 MYUSERNAME MYPASSWORD 1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp 0.1 2.0

Last 2 parameters are starting bet (0.1) and quotient (2.0) for next bets in case of loss.

To stop the bot press [CTRL]+[C].
legendary
Activity: 2142
Merit: 1010
Newbie
It's a Java application. Requires http://code.google.com/p/json-simple/ to build and parse JSON.

Code:
// (c) 2012 Come-from-Beyond

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Authenticator;
import java.net.HttpURLConnection;
import java.net.PasswordAuthentication;
import java.net.URL;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;

public final class SDMB
{
public static void main(String[] args)
{
try
{
Authenticator.setDefault(new Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication ("username", "password".toCharArray());
}
});

while (true)
{
double bet=((double)(balance(1)/135))/100000000;
if (bet<0.01)
{
Thread.sleep(1000);
continue;
}
for (int i=0; i<7; i++)
{
final long balance1=balance(0);

final JSONObject request=new JSONObject();
request.put("method", "sendtoaddress");
final JSONArray params;
(params=new JSONArray()).add("1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp");
params.add(bet);
request.put("params", params);
sendRequest(request);

final long balance2=balance(0);

long balance3;
do
{
Thread.sleep(1000);
} while ((balance3=balance(0))<=balance2);

if (balance3>=balance1) break;

bet=bet+bet;
}
}
}
catch (final Exception e)
{
System.out.println(e.toString());
}
}

public static JSONObject sendRequest(final JSONObject request) throws Exception
{
final HttpURLConnection connection;
(connection=(HttpURLConnection)(new URL("http://localhost:9876")).openConnection()).setRequestMethod("POST");
connection.setDoOutput(true);
connection.connect();
final OutputStream outputStream;
(outputStream=connection.getOutputStream()).write(request.toJSONString().getBytes("UTF-8"));
outputStream.close();

final InputStream inputStream=connection.getInputStream();
final byte[] response=new byte[65536];
int ptr=0;
int numberOfBytes;
do
{
if ((numberOfBytes=inputStream.read(response, ptr, 65536-ptr))>=0) ptr+=numberOfBytes;
} while (numberOfBytes>=0);
inputStream.close();

connection.disconnect();

return (JSONObject)JSONValue.parse(new String(response, 0, ptr, "UTF-8"));
}

public static long balance(final int numberOfConfirmations) throws Exception
{
final JSONObject request=new JSONObject();
request.put("method", "listaccounts");
final JSONArray params;
(params=new JSONArray()).add(numberOfConfirmations);
request.put("params", params);
return (long)(((Double)((JSONObject)sendRequest(request).get("result")).get("")).doubleValue()*100000000);
}
}

It starts with 1/128 of current confirmed balance as an initial bet and then double amount if lose. I divide by 135, not 128, to have some BTC for tx fees:
Quote
double bet=((double)(balance(1)/135))/100000000;

Quote
if (bet<0.01)
...is used to avoid too low bets.

I tested it on 2000 bets using "lessthen 32000". Went from 0 BTC to 14 BTC and back to 0 BTC. At the beginning I used my own bitcoins which were removed from the capital when I got 10 BTC from SatoshiDice. After my bitcoin-qt.exe had reached 1500 thx it started to lag much. After 2000 thx I became bored and made a couple of big bets manually until I lost all won money. Nothing surprising, but at least miners earned 1 BTC as fees.

NB: In the long run SatoshiDice wins so don't miss a right moment to stop.  Wink
Jump to: