Show Posts
|
Pages: [1] 2 »
|
pooler, i would really appreciate seeing a larger pile of stats about block solver people. specifically, the 'last blocks found' would be super nice if i were able to at least get a list of the blocks i have solved (or a particular user has solved) just for fun.
|
|
|
Look at the price of those shares going up! This is great news!  Up to 0.09 now. I've almost doubled my money and I have no intention of selling anytime soon. It's all good. i picked up some more also. Figure if at ~~ 3gh it is 0.07/share, it ought to be nearly 0.2/share with nearly 3x the hash...
|
|
|
UPDATE: Since this post I have been contacted and given the benefit of doubt by admins - the 4 shares have returned pending investigation. As I learn more I will continue to update.
I really like cryptostocks and have used them for awhile. I still do and I am sure there is some simple explanation and correction. Unfortauntely, after a week of sending emails to their customerservice address, I'm kind of stuck.
The situation is simple. I had 4 shares of cryptsy and I had a contract (#218) to sell calls. As the price of cryptsy went down, I decided to cancel the contract. The contract shows as cancelled, not sold, and they were most certainly not exercised. However, after this, I no longer have any cryptsy at all. That is, the four shares the contract was written on had been cancelled, but the shares were removed from my account (no I was not paid for them, either).
I've never had issues there buying/selling/dividending, but the options are definitely hokey. Plus, the lack of customer support/engagement is a major flag. [is this why PETA moved to havelock?]
Any advice on how or who i should try reaching out to next to resolve the issue? Thanks.
|
|
|
Why's LKY disabled?
Their developer messaged me the other day letting me know we were forked. I disabled it while I was redownloading the blockchain and I guess I forgot to re-enable it. Pleasssse leave it disabled. To me Luckycoin is like a persistent weed that needs to be pulled. I just auto sell it at Cryptsy only been here with one rig for a day but this technique is working very well so far. set the autopayouts to cryptsy addresses and set cryptsy to autosell desposits. makes this pool quite good.
|
|
|
Seeing nearly 2x improvement. Amazing, great work. > ./primecoind getmininginfo { "blocks" : 83381, "chainspermin" : 58, "currentblocksize" : 1000, "currentblocktx" : 0, "difficulty" : 9.26739043, "errors" : "", "generate" : true, "genproclimit" : -1, "roundsievepercentage" : 30, "primespersec" : 33445, "pooledtx" : 0, "sievepercentage" : 10, "sievesize" : 100000, "testnet" : false }
|
|
|
Have you found any blocks with these changes? My very poor understanding of the algorithm suggests that changing the has factor will not work...
No - I only was testing based on some of Koooooj's comments to see if there was a possible tradeoff. The primecoin paper says: In one case, varying nonce and finding a block header hash that is divisible by a small primorial number – the product of all primes smaller than a given prime p – can help only slightly. It allows the prime miner to work on somewhat smaller primes, like maybe a few digits shorter, for prime numbers of typically 100 digits, only a very small advantage.
which suggested further that this is only used to help make finding candidates faster. -------- Related, I finally was able to coerce primecoind to compile on FreeBSD. Here are some stats for an HP DL 585 w/64 cores -- which is actually almost the same for 5-chains as the cc2.8xlarge: 2013-07-19 07:21:20 primemeter 52706242 prime/h 409095802 test/h 2700 5-chains/h 2013-07-19 07:22:20 primemeter 55256799 prime/h 430313188 test/h 2820 5-chains/h 2013-07-19 07:23:20 primemeter 57252732 prime/h 451175301 test/h 3180 5-chains/h 2013-07-19 07:24:20 primemeter 60431918 prime/h 472296745 test/h 2280 5-chains/h 2013-07-19 07:25:20 primemeter 49530089 prime/h 384528982 test/h 2460 5-chains/h 2013-07-19 07:26:20 primemeter 51512423 prime/h 400527689 test/h 1980 5-chains/h If you're interested in compiling for FreeBSD, you also will need to install the usual libraries and also change init.cpp: // nMaxConnections = std::max(std::min(nMaxConnections, FD_SETSIZE - nBind - MIN_CORE_FILEDESCRIPTORS), 0); nMaxConnections = std::max(std::min(nMaxConnections, static_cast<int>(FD_SETSIZE - nBind - MIN_CORE_FILEDESCRIPTORS)), 0);
I had to specify the install paths for a lot of things and remove the explicit -ldl in the makefile as well.. go figure. Did you test with other number aswell? Yes, I did 10, 11, 12, 13, 14, 15, 16, 17. It starts to get bad around 13 on the big aws instance. I could be wrong, but I'm not convinced this change will make any significant difference. The primorial of 7 is the same as that of 9, since 8 and 9 aren't primes. No this is not what primorial means. primorial(1) = 2 primorial(2) = 2 * 3 primorial(3) = 2 * 3 * 5 and so forth. primorial(7) = 2 * 3 * 5 * 7 * 11 * 13 * 17 = 510510 primorial(9) = 2 * 3 * 5 * 7 * 11 * 13 * 17 * 19 * 23 = 223092870 Notice the list of divisors this produces when using p#9 * some random price > bc print 223092870 * 498497689 111211280127377430 http://www.wolframalpha.com/input/?i=factor+%28111211280127377430%29Honestly I can't say I really understand what the code is doing here, but based on some the comments from Kooooooj and running through gprof, Weave is sucking up all the time -- so I was trying to push some of the work out of there and into the caller function. I am 100% speculating also that the increases in difficulty may make the primorial a little more important. But anyway, mostly just hacking. oh well, off to bed.
|
|
|
Some more stats for people to have fun with:
aws cc2.8xlarge, primecoin-0.1.1-hp5 native
2013-07-19 06:03:07 primemeter 79132085 prime/h 688566896 test/h 2040 5-chains/h 2013-07-19 06:04:07 primemeter 79653622 prime/h 698384521 test/h 2700 5-chains/h 2013-07-19 06:05:07 primemeter 79337338 prime/h 695558447 test/h 2040 5-chains/h 2013-07-19 06:06:07 primemeter 79792250 prime/h 695628406 test/h 1560 5-chains/h 2013-07-19 06:07:07 primemeter 80470419 prime/h 705139328 test/h 2280 5-chains/h 2013-07-19 06:08:07 primemeter 80764354 prime/h 704518758 test/h 1980 5-chains/h 2013-07-19 06:09:07 primemeter 76383887 prime/h 667428216 test/h 1500 5-chains/h
avg 5-chains/h ~~ 2000
------
aws cc2.8xlarge, primecoin-0.1.1-hp5 two changes:
1) prime.cpp const unsigned int nPrimes = (uint64)nTotalPrimes * 8 / 100; // down from 10
2) main.cpp static const unsigned int nPrimorialHashFactor = 9; // up from 7
2013-07-19 06:12:12 primemeter 52307908 prime/h 395403610 test/h 2640 5-chains/h 2013-07-19 06:13:12 primemeter 56580497 prime/h 440204443 test/h 2820 5-chains/h 2013-07-19 06:14:12 primemeter 56291842 prime/h 438057079 test/h 3000 5-chains/h 2013-07-19 06:15:12 primemeter 56267549 prime/h 437380981 test/h 2100 5-chains/h 2013-07-19 06:16:12 primemeter 56236005 prime/h 432883711 test/h 2580 5-chains/h 2013-07-19 06:17:12 primemeter 54281275 prime/h 412524505 test/h 2580 5-chains/h 2013-07-19 06:18:12 primemeter 54689509 prime/h 419307812 test/h 2220 5-chains/h
avg 5-chains/h ~~ 2500
|
|
|
My optimization centers around the Primorial and the loop that occurs in main.cpp on line 4622.
Flat profile:
Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls ms/call ms/call name 79.89 45.84 45.84 5698 8.04 8.04 CSieveOfEratosthenes::Weave() 10.28 51.74 5.90 5694 1.04 1.04 CSieveOfEratosthenes::CSieveOfEratosthenes(unsigned int, unsigned int, __gmp_expr<__m pz_struct [1], __mpz_struct [1]>&, __gmp_expr<__mpz_struct [1], __mpz_struct [1]>&, CBlockIndex*) 9.03 56.92 5.18 62611 0.08 0.91 MineProbablePrimeChain(CBlock&, __gmp_expr<__mpz_struct [1], __mpz_struct [1]>&, bool &, unsigned int&, unsigned int&, unsigned int&, unsigned int&, unsigned int&, __gmp_expr<__mpz_struct [1], __mpz_struct [1]>&) 0.16 57.01 0.09 7019519 0.00 0.00 FermatProbablePrimalityTest(__gmp_expr<__mpz_struct [1], __mpz_struct [1]> const&, un signed int&)
Without a doubt, the Weave function is the slowest of them all. I haven't yet dissected it (and won't really claim to understand what it's trying to do yet), but since this ultimately is buried way below the void static BitcoinMiner(CWallet *pwallet) function, I'm guessing that anythign that would result in fewer calls to MineProbablePrimeChain would be a net very good thing. OTOH, further optimizing Weave still looks like a good bet.
|
|
|
m3.2xlarge --
~/primecoin-0.1.1-hp4/src$ ./primecoind getmininginfo { "blocks" : 63588, "currentblocksize" : 1000, "currentblocktx" : 0, "errors" : "", "generate" : true, "genproclimit" : -1, "primespersec" : 3899, "pooledtx" : 0, "testnet" : false }
definitely not worth it.
|
|
|
Agreed that XPM mining is a good addition to BTC/LTC mining! Except for the peopel who bought the cruddiest processors they could find when building their rigs...
Even though only ADD/SUB/MUL are in CUMP, one might be able to use a binomial method (guess/check/converge) to implement DIV without much difficulty though I don't know how well the operation would perform.
There are quite a few factoring algos/sieves on github using cuda, though my cursory glance was showing non-arbitrary precision routines. I thought floating point arithmetic has no place in integer factorization?!
|
|
|
Here is a few year old example where an implementation of ECM was developed and compared against the standard CPU and the result was roughly 2x faster. I know we're not talking about ECM here but again it's suggestive of what one might expect. http://eecm.cr.yp.to/gpuecm-20090127.pdfmodular arithmetic is very easy to implement with the four basic arithmetic functions, so I'm not sure what the holdup is around that?
|
|
|
It should be outputting as it goes. If not, you're getting the output buffered. Adding ob_flush() right after the "sleep (6)" in the while loop might help. Aside: I had some recent exchanges with the operator of the site, and it seemed they were pretty okay with the idea of these bots. Obviously the cards are stacked against users of the bot and in their favor so it's in their interest, but in case there were concerns about this. --- Here is another serious hack job of this bot which uses a very different strategy than martingale. Instead, this bot tries to make very small wins by being tuned to the 5x and/or 10x circle jackpots. Essentially it ramps up the bet to make up for losses IF the jackpot is hit, and then a little bit. The idea is to be able to stretch the runs out much further and minimize the case of catastrophe. Sorry this code is so ugly. Clearly I'm hacking around. BTW, to use this bot "as is", aside from putting your secret in, you must also have unlocked the 5x wheel. You should expect that this bot may run up to at least 120-150 iterations before hitting the jackpot. Losing 20+ times in a row will cause you some grief on the amounts it will want to bet, so as always, starting very small is a good idea. I've also added a parameter to enable a bet as a percentage of your balance. <?php
// Forum discussion at http://goo.gl/b4XsJ // // how to use: // // adjust parameters and bailout points appropriately below. You can change the "circle" you want to use // or // sign up at: https://satoshicircle.com/?aid=843 // // donations greatly appreciated! // BTC: 1LJ5qXEqveTvdFZFkvDk9MhpyDRCicLPT8 // LTC: LcdnGybqvgfTKSV4yCscbZoDTTQiicuVw9 // //
date_default_timezone_set ('America/Los_Angeles');
$AcctInfo = array ();
// $AcctInfo ['CookieFile'] = '/tmp/sc-cookies-' . posix_getpid(); // first visit https://satoshicircle.com/?aid=843 // then you need to grab the secret out of your url and plaster it in here.
$secret = "YOUR-SECRET-HERE";
$jackpotwin = 3;
$startbetbalancepctg = 0.02; // set to -1 to use fixed bet // $startbet = 0.0005; // use a fixed start bet $minbet = $startbet;
$bailpctglessbalance = 0.7; // if our balance drops to this percentage below the highest balance we have seen, then stop.
// YOU MUST HAVE UNLOCKED THE 5X CIRCLE FOR THIS BOT. $idgame = 2; // 1 is the "3x" circle. 9/17 // 2 is the "5x" circle. 7/17 // 3 is the "10x" circle. 5/17 // 4 is the "2x" circle. 8/17 NOT TESTED PROBABLY BAD DONT USE.
$idbet = ""; $clientseed = rand (); // stick whatever you like here; change it or random or whatever. $iter = 1; $consecerr = 0; // exit after this many consecutive errors. $ttlbets = 0;
$minbalance = 0.0; $maxbalance = 20.0;
$postdata = sprintf ("function=getBalance&secret=%s", $secret); GetURL ($r, $AcctInfo, "https://satoshicircle.com/control.php", "", $postdata, 0); if (strncasecmp ($r ['response'], '{"balance"', 10) == 0) { $json = json_decode ($r ['response'], true); $curbalance = $json ['balance']; }
$startbalance = $curbalance; $highestbalance = $curbalance; if ($startbetbalancepctg > 0) $startbet = $curbalance * $startbetbalancepctg / 100; $bet = $startbet; $iter = 0;
if ($idgame == 1) $jackpotval = 3; else if ($idgame == 2) $jackpotval = 5; else if ($idgame == 3) $jackpotval = 10; else if ($idgame == 4) $jackpotval = 2;
$wintarget = $startbet * $jackpotval; $runstartbalance = $startbalance;
while (($curbalance - $bet > 0) && ($curbalance > $minbalance) && ($curbalance < $maxbalance) && ($curbalance - $bet > $highestbalance * $bailpctglessbalance)) {
$postdata = sprintf ("function=getSpin&bet=%.8f&secret=%s&clientSeed=%s&idbet=%s&idgame=%s", $bet, $secret, $clientseed, $idbet, $idgame); GetURL ($r, $AcctInfo, "https://satoshicircle.com/control.php", "", $postdata, 0);
$winloss = ''; if (strncasecmp ($r ['response'], '{"spin":', 8) == 0) { $json = json_decode ($r ['response'], true); if ($json ['result'] >= 1) $winloss = "WIN"; else $winloss = "LOSE"; $curbalance = $json ['balance']; if ($curbalance > $highestbalance) $highestbalance = $curbalance; }
$delta = $curbalance - $startbalance; if ($startbalance != 0) $deltapctg = $delta / $startbalance * 100; else $deltapctg = 0;
$deltabalance = $curbalance - $runstartbalance; $deltastartbalance = $curbalance - $startbalance;
// printf ("%s\t%s\t%s\t", date ('Y-m-d H:i:s'), ++$ttlbets, $iter); printf ("%s\t%s\t", ++$ttlbets, $iter); printf ("wt=%.8f\t", $wintarget); printf ("%.8f (D=%.8f SD=%.8f) \t%s\t%s\t", $bet, $deltabalance, $deltastartbalance, $json ['result'], $winloss); // printf ("%.8f (E=%.8f, D=%.8f/SD=%.8f) \t%s\t%s\t", $bet, $sumbets, $deltabalance, $deltastartbalance, $json ['result'], $winloss); // printf ("%.8f\t%.4f%%\t", $delta, $deltapctg); printf ("%.8f [%.8f] %.8f\t", $highestbalance * $bailpctglessbalance, $curbalance, $highestbalance); printf ("%.4f%%\n", $deltapctg);
$recalibrate = 0;
// if ($startbetbalancepctg > 0) $startbet = $curbalance * $startbetbalancepctg / 100;
if ($json ['result'] >= $jackpotwin) { printf ("Jackpot! Resetting iter...\n\n"); if ($startbetbalancepctg > 0) $startbet = $curbalance * $startbetbalancepctg / 100; $iter = 1; $wintarget = $startbet * $jackpotval; $bet = $startbet; $runstartbalance = $curbalance; } else { if ($deltabalance >= 0) $bet = $startbet; else { $bet = $wintarget + (-1 * $deltabalance); $bet /= $jackpotval; }
$iter++; }
if ($bet < $startbet) $bet = $startbet;
if (strcasecmp ($winloss, 'win') == 0) { $consecerr = 0; } else if (strcasecmp ($winloss, 'lose') == 0) { $consecerr = 0; } else { $consecerr++; $sleeptime = 5 << $consecerr; printf ("consecerr=%d sleeping: [%d]\n", $consecerr, $sleeptime); sleep ($sleeptime); if ($consecerr > 5) exit(); }
sleep (6); }
printf ("%s\tEXIT! startbalance=%.8f endingbalance=%.8f highestbalance=%.8f attemptedbet=%.8f bailpoint=%.8f\n", date ('Y-m-d'), $startbalance, $curbalance, $highestbalance, $bet, $highestbalance * $bailpctglessbalance); printf ("Net return: %.4f%%\n", $deltapctg);
function GetURL (&$Response, &$AcctInfo, $url, $ref = NULL, $postdata = NULL, $header = 1) { $Response = array ();
$ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); // curl_setopt ($ch, CURLOPT_USERAGENT, $AcctInfo ['UserAgent']); // curl_setopt ($ch, CURLOPT_PROXY, $AcctInfo ['ProxyIPPort']); // curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, 1); // curl_setopt ($ch, CURLOPT_COOKIEFILE, $AcctInfo ['CookieFile']); // curl_setopt ($ch, CURLOPT_COOKIEJAR, $AcctInfo ['CookieFile']); curl_setopt ($ch, CURLOPT_REFERER, $ref); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($ch, CURLOPT_HEADER, $header); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_VERBOSE, false); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
curl_setopt ($ch, CURLOPT_HTTPHEADER, array ( 'Accept: */*', 'Accept-Language: en-us,en;q=0.5') ); if ($postdata != NULL) curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
$Response ['response'] = curl_exec ($ch); $Response ['info'] = curl_getinfo ($ch); $Response ['error'] = curl_error ($ch);
// var_dump ($Response);
curl_close ($ch); }
?>
Example output: > php sc-5x-jackpotter4-acct3.php 1 0 wt=0.00016439 0.00003288 (D=-0.00003288 SD=-0.00003288) 0 LOSE 0.11506972 [0.16435243] 0.16438531 -0.0200% 2 1 wt=0.00016439 0.00003945 (D=-0.00007233 SD=-0.00007233) 0 LOSE 0.11506972 [0.16431298] 0.16438531 -0.0440% 3 2 wt=0.00016439 0.00004734 (D=-0.00002499 SD=-0.00002499) 2 WIN 0.11506972 [0.16436032] 0.16438531 -0.0152% 4 3 wt=0.00016439 0.00003788 (D=-0.00006287 SD=-0.00006287) 0 LOSE 0.11506972 [0.16432244] 0.16438531 -0.0382% 5 4 wt=0.00016439 0.00004545 (D=-0.00002424 SD=-0.00002424) 1.85 WIN 0.11506972 [0.16436107] 0.16438531 -0.0147% 6 5 wt=0.00016439 0.00003773 (D=-0.00006197 SD=-0.00006197) 0 LOSE 0.11506972 [0.16432334] 0.16438531 -0.0377% 7 6 wt=0.00016439 0.00004527 (D=-0.00010724 SD=-0.00010724) 0 LOSE 0.11506972 [0.16427807] 0.16438531 -0.0652% 8 7 wt=0.00016439 0.00005433 (D=-0.00006106 SD=-0.00006106) 1.85 WIN 0.11506972 [0.16432425] 0.16438531 -0.0371% 9 8 wt=0.00016439 0.00004509 (D=-0.00002273 SD=-0.00002273) 1.85 WIN 0.11506972 [0.16436258] 0.16438531 -0.0138% 10 9 wt=0.00016439 0.00003742 (D=-0.00006015 SD=-0.00006015) 0 LOSE 0.11506972 [0.16432516] 0.16438531 -0.0366% 11 10 wt=0.00016439 0.00004491 (D=-0.00010506 SD=-0.00010506) 0 LOSE 0.11506972 [0.16428025] 0.16438531 -0.0639% 12 11 wt=0.00016439 0.00005389 (D=-0.00005117 SD=-0.00005117) 2 WIN 0.11506972 [0.16433414] 0.16438531 -0.0311% 13 12 wt=0.00016439 0.00004311 (D=0.00012127 SD=0.00012127) 5 WIN 0.11515461 [0.16450658] 0.16450658 0.0738% Jackpot! Resetting iter...
14 1 wt=0.00016451 0.00003290 (D=-0.00003290 SD=0.00008837) 0 LOSE 0.11515461 [0.16447368] 0.16450658 0.0538% 15 2 wt=0.00016451 0.00003948 (D=-0.00007238 SD=0.00004889) 0 LOSE 0.11515461 [0.16443420] 0.16450658 0.0297% 16 3 wt=0.00016451 0.00004738 (D=-0.00011976 SD=0.00000151) 0 LOSE 0.11515461 [0.16438682] 0.16450658 0.0009% 17 4 wt=0.00016451 0.00005685 (D=-0.00017661 SD=-0.00005534) 0 LOSE 0.11515461 [0.16432997] 0.16450658 -0.0337% 18 5 wt=0.00016451 0.00006822 (D=-0.00024483 SD=-0.00012356) 0 LOSE 0.11515461 [0.16426175] 0.16450658 -0.0752% 19 6 wt=0.00016451 0.00008187 (D=-0.00032670 SD=-0.00020543) 0 LOSE 0.11515461 [0.16417988] 0.16450658 -0.1250% 20 7 wt=0.00016451 0.00009824 (D=-0.00022846 SD=-0.00010719) 2 WIN 0.11515461 [0.16427812] 0.16450658 -0.0652% 21 8 wt=0.00016451 0.00007859 (D=-0.00014987 SD=-0.00002860) 2 WIN 0.11515461 [0.16435671] 0.16450658 -0.0174% 22 9 wt=0.00016451 0.00006288 (D=-0.00021275 SD=-0.00009148) 0 LOSE 0.11515461 [0.16429383] 0.16450658 -0.0556% 23 10 wt=0.00016451 0.00007545 (D=-0.00028820 SD=-0.00016693) 0 LOSE 0.11515461 [0.16421838] 0.16450658 -0.1015% 24 11 wt=0.00016451 0.00009054 (D=-0.00021124 SD=-0.00008997) 1.85 WIN 0.11515461 [0.16429534] 0.16450658 -0.0547% 25 12 wt=0.00016451 0.00007515 (D=-0.00013609 SD=-0.00001482) 2 WIN 0.11515461 [0.16437049] 0.16450658 -0.0090% 26 13 wt=0.00016451 0.00006012 (D=-0.00019621 SD=-0.00007494) 0 LOSE 0.11515461 [0.16431037] 0.16450658 -0.0456% 27 14 wt=0.00016451 0.00007214 (D=-0.00026835 SD=-0.00014708) 0 LOSE 0.11515461 [0.16423823] 0.16450658 -0.0895% 28 15 wt=0.00016451 0.00008657 (D=0.00007793 SD=0.00019920) 5 WIN 0.11520916 [0.16458451] 0.16458451 0.1212% Jackpot! Resetting iter...
|
|
|
Are you trying to promote the idea that gambling is profitable in the long term?  "With my system, you too can be a /<rAd El33+ interweb bitcoin kajillionairre!" LOL. No! If you play to infinity, you will lose. However, you can have a lot of fun in the interim and if you're lucky even win some extra BTC. I was trying to be pretty clear about the strategy that the bot uses and the issues that it has (i.e. why you will lose in the long term). BTW, it was pointed out to me that new users of that site will not have access to the 'default' wheel I have the bot set to use. You have to use like the 3x wheel until you get enough points. If the bot says "connection error" when you try to use it, then you need to change the game it is playing. The easiest way to do this is to change the '$idgame = 2;' above to '$idgame = 1;' in the code above.
|
|
|
the satoshicircle site is pretty fun to and doesn't spam the blockchain like a lot of the dice games. after playing by hand for awhile i decided to implement a simple martingale style strategy as a php script. as with most things bitcoin, this is pretty simple and very basic and therefore is now released into public domain. oh and obviously, i'm not responsible for anything you lose/break/etc so use at your own risk. i'd recommend starting small and working your way up. you can easily get 15 "losses" in a row, so give yourself much more room than you would think you need! enjoy! <?php
// // very simple bot to play a martingale strategy against satoshicircle.com // // how to use: // // adjust martingale parameters and bailout points appropriately below. You can change the "circle" you want to use // or // sign up at: https://satoshicircle.com/?aid=843 // // of course you're welcome to do whatever you feel like with this. // you should read http://en.wikipedia.org/wiki/Martingale_(betting_system) // // donations greatly appreciated! // BTC: 1LJ5qXEqveTvdFZFkvDk9MhpyDRCicLPT8 // LTC: LcdnGybqvgfTKSV4yCscbZoDTTQiicuVw9 //
date_default_timezone_set ('America/Los_Angeles');
$AcctInfo = array ();
// $AcctInfo ['CookieFile'] = '/tmp/sc-cookies-' . posix_getpid(); // first visit https://satoshicircle.com/?aid=843 // then you need to grab the secret out of your url and plaster it in here.
$secret = 'YOUR-SECRET-GOES-HERE';
// after first bet, we only give a small increment trying // to win back the original bet and only a small amount. $usebetrecovery = 1; $betrecoverymux = 1.25;
$eatnegativereturn = 1; // if a bet is a fractional win (between 0 and 1, like 0.25 or 0.70), reset bet series)
$bmux = 2.25; // if you lose, multiply the previous bet by this much. $backwalkmux = 0.7; // when reducing bets, reduce by this amount
$startbet = 0.000004; $minbet = $startbet; $bailiter = 12;
$bailpctglessbalance = 0.70; //$bailpctglessbalance = 0; // if our balance drops to this percentage below the highest balance we have seen, then stop.
$idgame = 4; // 1 is the 3x circle. 9/17 // 2 is the "5x" circle. 7/17 // 3 is the "10x" circle. 5/17 // 4 is the "2x" circle. 8/17
$idbet = ""; $clientseed = rand (); // stick whatever you like here; change it or random or whatever. $iter = 1; $consecerr = 0; // exit after this many consecutive errors. $ttlbets = 0;
$minbalance = 0.0; $maxbalance = 1.0;
$postdata = sprintf ("function=getBalance&secret=%s", $secret); GetURL ($r, $AcctInfo, "https://satoshicircle.com/control.php", "", $postdata, 0); if (strncasecmp ($r ['response'], '{"balance"', 10) == 0) { $json = json_decode ($r ['response'], true); $curbalance = $json ['balance']; }
$startbalance = $curbalance; $highestbalance = $curbalance; $bet = $startbet;
while (($curbalance - $bet > 0) && ($curbalance > $minbalance) && ($curbalance < $maxbalance) && ($curbalance - $bet > $highestbalance * $bailpctglessbalance)) {
sleep (6);
$postdata = sprintf ("function=getSpin&bet=%.8f&secret=%s&clientSeed=%s&idbet=%s&idgame=%s", $bet, $secret, $clientseed, $idbet, $idgame); GetURL ($r, $AcctInfo, "https://satoshicircle.com/control.php", "", $postdata, 0);
$winloss = ''; if (strncasecmp ($r ['response'], '{"spin":', 8) == 0) { $json = json_decode ($r ['response'], true); if ($json ['result'] >= 1) $winloss = "WIN"; else $winloss = "LOSE"; $curbalance = $json ['balance']; if ($curbalance > $highestbalance) $highestbalance = $curbalance; }
if ($startbalance < 0) $startbalance = $json ['balance']; $delta = $json ['balance'] - $startbalance;
if ($startbalance != 0) $deltapctg = $delta / $startbalance * 100; else $deltapctg = 0;
printf ("%s\t%s\t%s\t", date ('Y-m-d H:i:s'), ++$ttlbets, $iter); printf ("%.8f\t%s\t%s\t", $bet, $json ['result'], $winloss); // printf ("%.8f\t%.4f%%\t", $delta, $deltapctg); printf ("%.8f [%.8f] %.8f\t", $highestbalance * $bailpctglessbalance, $curbalance, $highestbalance); printf ("%.4f%%\n", $deltapctg);
if (strcasecmp ($winloss, 'win') == 0) { printf ("\n"); $bet = $startbet; $iter = 1; $consecerr = 0; } else if (strcasecmp ($winloss, 'lose') == 0) { if (($usebetrecovery) && ($iter == 1)) { $bet *= $betrecoverymux; } else { if (($json ['result'] > 0) && ($json ['result'] < 1)) { if ($eatnegativereturn) { printf ("eating negative return bet\n"); $bet = $startbet; $iter = 0; } else $bet *= $json ['result']; } else { $bet *= $bmux; } } $iter++; $consecerr = 0; } else { $consecerr++; $sleeptime = 5 << $consecerr; printf ("consecerr=%d sleeping: [%d]\n", $consecerr, $sleeptime); sleep ($sleeptime); if ($consecerr > 5) exit(); }
if ($iter > $bailiter) { printf ("iter: [%d] > %d -- eating and walking backwards.\n", $iter, $bailiter); $bet /= $bmux; $bet *= $backwalkmux; if ($bet < $minbetmux) { printf ("iter: [%d] -- walked backward and now at minbet. eating loss and restarting.\n", $iter); $iter = 1; $bet = $startbet; } } }
printf ("%s\tEXIT! curbalance=%.8f highestbalance=%.8f bet=%.8f bailpoint=%.8f\n", date ('Y-m-d'), $curbalance, $highestbalance, $bet, $highestbalance * $bailpctglessbalance);
function GetURL (&$Response, &$AcctInfo, $url, $ref = NULL, $postdata = NULL, $header = 1) { $Response = array ();
$ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); // curl_setopt ($ch, CURLOPT_USERAGENT, $AcctInfo ['UserAgent']); // curl_setopt ($ch, CURLOPT_PROXY, $AcctInfo ['ProxyIPPort']); // curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, 1); // curl_setopt ($ch, CURLOPT_COOKIEFILE, $AcctInfo ['CookieFile']); // curl_setopt ($ch, CURLOPT_COOKIEJAR, $AcctInfo ['CookieFile']); curl_setopt ($ch, CURLOPT_REFERER, $ref); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($ch, CURLOPT_HEADER, $header); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_VERBOSE, false); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
curl_setopt ($ch, CURLOPT_HTTPHEADER, array ( 'Accept: */*', 'Accept-Language: en-us,en;q=0.5') ); if ($postdata != NULL) curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
$Response ['response'] = curl_exec ($ch); $Response ['info'] = curl_getinfo ($ch); $Response ['error'] = curl_error ($ch);
// var_dump ($Response);
curl_close ($ch); }
?>
EDIT ::: Jun 18, 2003 ::: I've reworked a bit of this so that by default it is using the 50/50 circle. Also there are a few new parameters to edit. usebetrecovery -- if this is '1' then it will attempt a very small increase (betrecoverymux) on the second bet as an attempt to recoup only the first bet and win only a slight amount. this is an easy way of extending the martingale stretch by one additional run. backwalkmux -- in the event the stretch goes past bailiter, instead of restarting the entire run from scratch, the bets are instead reduced by this amount until the bet amount is less than the original starting bet. again this helps with some recovery with a "run gone wrong" bailpctglessbalance -- this numbers adjusts upwards as the 'maximum balance' increases and stops the bot in the event that the losses become this percentage of the largest balance seen. For example, if you start with 0.10 BTC, and have this set as 0.70, the bot will stop if a bet were to place the balance at or below 0.07. (0.1 * 0.7). This number will scale upwards as your balance increases, so if you went up to 0.15 BTC, this would become 0.105 (0.15 *.07) and is recalculated with each spin. the output file format: 1) time/date 2) total bets since bot started 3) number of iterations in the current stretch 4) bet used 5) result of bet 6) whether it's considered a win or loss ('WIN/LOSE') 7) bailpoint balance [ current balance ] highest balance seen 8 ) percentage gain/loss since bot started --- HOW TO USE: Simple copy/paste/save the code from above and save as "scbot.php". Edit the configuration parameters, esepecially the 'YOUR-SECRET-GOES-HERE' area. Get a secret key by visiting https://satoshicircle.com/?aid=843 and copying the secret out of the url you see in your browser. Of course, you can modify any of the other parameters as you like as well and begin running the bot. To stop it, either break out or let it exit out once an exit condition is met (i.e. minimum balance or maximum balance) Example log: 2013-06-18 23:17:26 1 1 0.00300000 2 WIN 0.07771138 [0.11101626] 0.11101626 2.7774%
2013-06-18 23:17:32 2 1 0.00300000 0 LOSE 0.07771138 [0.10801626] 0.11101626 0.0000% 2013-06-18 23:17:39 3 2 0.00375000 2 WIN 0.07823638 [0.11176626] 0.11176626 3.4717%
2013-06-18 23:17:46 4 1 0.00300000 2 WIN 0.08033638 [0.11476626] 0.11476626 6.2491%
2013-06-18 23:17:52 5 1 0.00300000 2 WIN 0.08243638 [0.11776626] 0.11776626 9.0264%
2013-06-18 23:17:59 6 1 0.00300000 .7 LOSE 0.08243638 [0.11686626] 0.11776626 8.1932% 2013-06-18 23:18:05 7 2 0.00375000 2 WIN 0.08443138 [0.12061626] 0.12061626 11.6649%
2013-06-18 23:18:12 8 1 0.00300000 0 LOSE 0.08443138 [0.11761626] 0.12061626 8.8876% 2013-06-18 23:18:19 9 2 0.00375000 2 WIN 0.08495638 [0.12136626] 0.12136626 12.3593%
2013-06-18 23:18:25 10 1 0.00300000 2 WIN 0.08705638 [0.12436626] 0.12436626 15.1366%
2013-06-18 23:18:32 11 1 0.00300000 .7 LOSE 0.08705638 [0.12346626] 0.12436626 14.3034% 2013-06-18 23:18:39 12 2 0.00375000 2 WIN 0.08905138 [0.12721626] 0.12721626 17.7751%
2013-06-18 23:18:45 13 1 0.00300000 2 WIN 0.09115138 [0.13021626] 0.13021626 20.5525%
2013-06-18 23:18:52 14 1 0.00300000 0 LOSE 0.09115138 [0.12721626] 0.13021626 17.7751% 2013-06-18 23:18:59 15 2 0.00375000 0 LOSE 0.09115138 [0.12346626] 0.13021626 14.3034% 2013-06-18 23:19:05 16 3 0.00843750 2 WIN 0.09233263 [0.13190376] 0.13190376 22.1147%
2013-06-18 23:19:12 17 1 0.00300000 2 WIN 0.09443263 [0.13490376] 0.13490376 24.8921%
2013-06-18 23:19:18 18 1 0.00300000 2 WIN 0.09653263 [0.13790376] 0.13790376 27.6694%
2013-06-18 23:19:25 19 1 0.00300000 2 WIN 0.09863263 [0.14090376] 0.14090376 30.4468%
2013-06-18 23:19:32 20 1 0.00300000 2 WIN 0.10073263 [0.14390376] 0.14390376 33.2242%
2013-06-18 23:19:38 21 1 0.00300000 2 WIN 0.10283263 [0.14690376] 0.14690376 36.0015%
2013-06-18 23:19:45 22 1 0.00300000 2 WIN 0.10493263 [0.14990376] 0.14990376 38.7789%
2013-06-18 23:19:52 23 1 0.00300000 0 LOSE 0.10493263 [0.14690376] 0.14990376 36.0015% 2013-06-18 23:19:58 24 2 0.00375000 .7 LOSE 0.10493263 [0.14577876] 0.14990376 34.9600% eating negative return bet 2013-06-18 23:20:05 25 1 0.00300000 0 LOSE 0.10493263 [0.14277876] 0.14990376 32.1827% 2013-06-18 23:20:12 26 2 0.00375000 2 WIN 0.10493263 [0.14652876] 0.14990376 35.6544%
2013-06-18 23:20:18 27 1 0.00300000 0 LOSE 0.10493263 [0.14352876] 0.14990376 32.8770% 2013-06-18 23:20:25 28 2 0.00375000 2 WIN 0.10493263 [0.14727876] 0.14990376 36.3487%
2013-06-18 23:20:31 29 1 0.00300000 2 WIN 0.10519513 [0.15027876] 0.15027876 39.1261%
2013-06-18 23:20:38 30 1 0.00300000 2 WIN 0.10729513 [0.15327876] 0.15327876 41.9034%
2013-06-18 23:20:45 31 1 0.00300000 2 WIN 0.10939513 [0.15627876] 0.15627876 44.6808%
2013-06-18 23:20:51 32 1 0.00300000 0 LOSE 0.10939513 [0.15327876] 0.15627876 41.9034% 2013-06-18 23:20:58 33 2 0.00375000 0 LOSE 0.10939513 [0.14952876] 0.15627876 38.4317% 2013-06-18 23:21:05 34 3 0.00843750 2 WIN 0.11057638 [0.15796626] 0.15796626 46.2430%
2013-06-18 23:21:11 35 1 0.00300000 0 LOSE 0.11057638 [0.15496626] 0.15796626 43.4657% 2013-06-18 23:21:18 36 2 0.00375000 0 LOSE 0.11057638 [0.15121626] 0.15796626 39.9940% 2013-06-18 23:21:24 37 3 0.00843750 2 WIN 0.11175763 [0.15965376] 0.15965376 47.8053%
2013-06-18 23:21:31 38 1 0.00300000 0 LOSE 0.11175763 [0.15665376] 0.15965376 45.0279% 2013-06-18 23:21:38 39 2 0.00375000 0 LOSE 0.11175763 [0.15290376] 0.15965376 41.5562% 2013-06-18 23:21:44 40 3 0.00843750 .7 LOSE 0.11175763 [0.15037251] 0.15965376 39.2128% eating negative return bet 2013-06-18 23:21:51 41 1 0.00300000 2 WIN 0.11175763 [0.15337251] 0.15965376 41.9902%
2013-06-18 23:21:58 42 1 0.00300000 2 WIN 0.11175763 [0.15637251] 0.15965376 44.7676%
2013-06-18 23:22:04 43 1 0.00300000 2 WIN 0.11175763 [0.15937251] 0.15965376 47.5449%
2013-06-18 23:22:11 44 1 0.00300000 0 LOSE 0.11175763 [0.15637251] 0.15965376 44.7676% 2013-06-18 23:22:19 45 2 0.00375000 2 WIN 0.11208576 [0.16012251] 0.16012251 48.2393%
2013-06-18 23:22:25 46 1 0.00300000 0 LOSE 0.11208576 [0.15712251] 0.16012251 45.4619% 2013-06-18 23:22:32 47 2 0.00375000 0 LOSE 0.11208576 [0.15337251] 0.16012251 41.9902% 2013-06-18 23:22:39 48 3 0.00843750 0 LOSE 0.11208576 [0.14493501] 0.16012251 34.1789% 2013-06-18 23:22:45 49 4 0.01898438 0 LOSE 0.11208576 [0.12595063] 0.16012251 16.6034% iter: [5] > 4 -- eating and walking backwards. 2013-06-18 23:22:52 50 5 0.01328906 2 WIN 0.11208576 [0.13923969] 0.16012251 28.9062%
2013-06-18 23:22:59 51 1 0.00300000 2 WIN 0.11208576 [0.14223969] 0.16012251 31.6836%
2013-06-18 23:23:05 52 1 0.00300000 0 LOSE 0.11208576 [0.13923969] 0.16012251 28.9062% 2013-06-18 23:23:12 53 2 0.00375000 0 LOSE 0.11208576 [0.13548969] 0.16012251 25.4345% 2013-06-18 23:23:18 54 3 0.00843750 0 LOSE 0.11208576 [0.12705219] 0.16012251 17.6232% 2013-06-18 EXIT! curbalance=0.12705219 highestbalance=0.16012251 bet=0.01898438 bailpoint=0.11208576
|
|
|
An alternative version of these type of funds could be to deal with capex on mining hardware and/or r&d on new technologies for mining/semiconductors. In this way, rather than the fund being a trading vehicle for bitcoin only, it would be able to identify companies which have some influence in the way bitcoins are generated. For example, AMD would be an obvious candidate, but other companies working in similar promising areas would be available. This could help to legitimatize the fund since it would have traditional instruments which would 'benefit in the rise of bitcoin'.
|
|
|
You can overclock it using aticonfig and easily gpu mine with m0mchil, diablominer, or others. You will probably need to use the "-f" option on many of these with a high-ish value to prevent slowing down graphics for your own use. For example, if you are running X and moving things around this will be slower but the -f option on many of these will enable you to tell the gpu miner to step aside and give more priority to your applications. See http://forum.bitcoin.org/?topic=1721.0;all for some samples You will need to install pyopencl and the ati catalyst drivers as well.
|
|
|
Most of what I've read suggests either disabling xfire or simply removing the xfire connection cable. If you can't see some of the cards and are running windows, you may also need to buy or create a DVI:VGA "dummy plug" (although I udnerstand some new catalyst developments may remove this requirement)
|
|
|
|