At this moment the faucet at scrypt.cc open there I drink now. If it goes wrong had bad luck.
It's dripping into my beer glass all day long If it goes wrong I still have hashnest dripping :p It's like scrypt.cc claims to be one of the biggest breweries in the world. Give them a glass of beer and they will use it to buy brewing equipment and you can get a slow trickle of free beer for ever more. But it reality they just take the glass you give them and add it to the tank. They aren't brewing any beer, they're just trickling your own beer back to you. You can tell when people are brewing. It stinks. And scrypt.cc smells more like horse shit than like hops. Some people started early and have already got back more than they put in. They say "this isn't a scam - look, I'm still drinking!" But where is this "free beer" coming from? It comes from the suckers who bought in recently. They're never getting RoB (return on beer). To make it worse, the owner of the fake brewery is also drinking from the tank even though he didn't put any beer into it.
|
|
|
So when i use 1 clam as a start, its more near what i want, then i could bet 1 clam one time with a low chance. Chance to lose is huge. Though i could bet 0.1 clams 10 times or 0.01 clams 100 times. In these runs the chances are 10 time and 100 times lower. It doesnt matter that the chance to win is low, the profit of 1000 clams is never changed until the luck was exceptional or the clam is eaten away.
Is there a difference in these approaches?
OK, so let me check that I have it right: You have 1 CLAM and want to get to 1000 CLAMs. You can either do: a) 1 * 1 CLAM bet at 1,000x or b) 10 * 0.1 CLAM bet at 10,000x c) 100 * 0.01 CLAM bet at 100,000x If (a) wins, you end up with 1000 CLAMs. That happens with probability 0.00099 If any of (b) win, you end up with at least 1000 CLAMs. Maybe 2 or more win. You win at least once with probability 0.000989559. If any of (c) win, you also end up with at least 1000 CLAMs. You win at least once with probability 0.000989515 So the probability of losing the whole CLAM goes up a little as you make more, smaller bets. But that is balanced by an increased chance of winning more than once. Your expectation is the same in all 3 cases. You're risking 1 CLAM and so expect to lose 0.01 CLAMs (1%). Here's the math for a, b, and c respectively: >>> 1 - (1 - 0.99/1000) ** 1 0.00099 >>> 1 - (1 - 0.99/10000) ** 10 0.000989559 >>> 1 - (1 - 0.99/100000) ** 100 0.000989515
|
|
|
The Qt client shows the orphans under transactions. I run a headless client for staking, and then a QT client for monitoring. The QT shows the orphans, even though they are generated by the headless guy. They have 2 different copies of the same wallet.
What if the QT isn't running when the orphan block is staked and orphaned? Does it still show the orphan? I think it needs to 'see it happening' in real time for it to show up. Maybe if you copy the wallet where it happened to the machine where you run QT, then QT will show the orphan. But I'm not sure.
|
|
|
Banks do the same thing, they wait until an account has a lot of money in it and then freeze it.
Then they take what you've stolen and give the rest back to you? Or what's your point?
|
|
|
I'm no expert in C, so maybe you guys who are can enlightenme a bit. This is the code after the change, right? return strprintf( "HTTP/1.1 %d %s\r\n" "Date: %s\r\n" "Connection: %s\r\n" "Content-Length: %"PRIszu"\r\n" "Content-Type: application/json\r\n" "Server: novacoin-json-rpc/%s\r\n" "\r\n"
First of all, I would have thought that strprintf would take a pointer to a char array (a C string) as its first parameter, to fall inline with fprintf (prints to a file handle) and sprintf (prints to a stream). I would have thought it would have been strprintf(char * str, char * fmt, ...); But it looks like the first arg here is a format (it has the formatting stuff in there %d, %s, etc). Also, since the inner " surrounding PRIszu aren't escaped, that should mean that the string terminates and beings again, but what kind of symbol is PRIszu? And isn't it in a weird place between two parts of a string continuation literal? Thanks for any comments, sorry my knowledge is so rudimentary here. I thought I knew something about C syntax but I'm totally surprised that this compiles at all. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) I think your post here ages you. Since ANSI first published the C specification, writing two strings next to each other concatenates them, and so this is legal: #define W "world" printf("Hello, "W"!\n"); I think it only looks weird to someone who learned K&R C, pre-ANSI C. PRIszu is conditionally #defined to %lu or some such, depending on which compiler is being used. I think the issue here is that it is #defined to the wrong formatting string - like "%lu" is being interpreted as "%l" + "u". strprintf is also #defined, in tinyformat.h, and returns a new string object: #define strprintf tfm::format Are you thinking of the standard library stdio.h function sprintf()?
|
|
|
In investments there are no secrets, you will tell everyone to to make the business have more cash flow and will be followed with success so your own investment would be more safe than keep it your little secret.
There are only a certain number of LTC mined each day. The more people who get involved, the less LTC each of them is able to mine. It's a case of deminishing returns and so it makes little sense to have "reflinks" for real mining operations. When you see people being rewarded for recruiting new people to "invest" in a "mining" operation, it's likely a Ponzi, not a real mining operation. To put it simply: suppose you have 50% of the LTC hash rate. You earn 50% of the LTC that are mined. Now suppose you recruit a bunch more people and you double your hash rate as a result. Do you now have 100% of the hash rate? No, you don't. You have only 66% of it. The original 50% is now only 33% of the total, and the new recruits are also only 33%. By recruiting more people your own profit has dropped. Calling others stupid, if you have made over 10k us$ in 6 month with an investment of 6,000 us$ as a hobby besides your main job you can call me so.
Thanks. But can I take a rain check?
|
|
|
Hi Folks - Technical question here for the developers.... Some background, PeerBet.org (one of the oldest dice sites around) has been looking to bring Clam to their list of viable Alt-Coins used on the site per many user requests. Technically it runs Windows Server (please don't ask why, we acquired it a year ago) and .NET But we've been having issues integrating with the Clam Wallet (both 32 and 64 bit versions). Request:POST http://ianscott-pc:8341/ HTTP/1.1 Content-Type: application/json Authorization: Basic dXB1bjp1cHB3 Host: ianscott-pc:8341 Content-Length: 70 Expect: 100-continue Connection: Keep-Alive {"jsonrpc":"1.0","id":1,"method":"getnewaddress","params":["PeerBet"]} Response:HTTP/1.1 200 OK Date: Wed, 15 Jul 2015 19:22:41 +0000 Connection: keep-alive Content-Length: 68uContent-Type: application/json Server: Clam-json-rpc/v1.4.10 {"result":"xGYKDfEtA215AWec3j1uZH5VJE4v1fXR3j","error":null,"id":1} The issue is that 68u - HTTP says that has to be a number, so our process is failing all around. Can you guys take a look and advise? This rings a bell with me for some reason. I think I've seen issues with Windows adding a 'u' to numbers before somewhere, but I really don't remember where. This is the commit which added the 'u': commit 84a4a7763f386934da90e2bd1e355b70023fa9ca Author: alexhz < balthazar@yandex.ru> Date: Mon Apr 15 18:39:58 2013 +0000 update to 0.4 preview The relevant code change is this: return strprintf( "HTTP/1.1 %d %s\r\n" "Date: %s\r\n" - "Connection: close\r\n" - "Content-Length: %d\r\n" + "Connection: %s\r\n" + "Content-Length: %"PRIszu"\r\n" "Content-Type: application/json\r\n" "Server: novacoin-json-rpc/%s\r\n" "\r\n" I'm guessing the Windows compiler isn't interpreting the %"PRIszu" in the same way as other compilers. http://stackoverflow.com/questions/29154364/how-to-use-symbols-in-a-string may be relevant. https://www.reddit.com/r/blackcoin/comments/2vgzum/rpc_for_blackcoind_in_windows_7/coj3z77 is about the same problem in blackcoin. bitcoin/src/rpcprotocol.cpp simply has: "Content-Length: %u\r\n" so maybe that's the best fix. I opened a github issue about this: https://github.com/nochowderforyou/clams/issues/202
|
|
|
It didn't take too long to get difficulty back to normal: ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FZFpSmiA.png&t=663&c=5WkQCGp_suxuGg) ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FLEzQ06l.png&t=663&c=wFssx2dbLjkr8Q)
|
|
|
Hey mates ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) I'm a first time Clamhead here and I've got a little question to ask some professionals. For the staking of my CLAMS is it better to put them all in 1 CLAM chunks opposed to putting them all in one big chunk or several big chunks? I just would like to know the most optimal way to stake them if someone would be ever so kind as to give me their honest opinion ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Cheers Hi. I answered this question yesterday. tl;dr: chunks of 5 or 10 is small enough. Do you guys recommend combined the blocks after each stake my balance is 633 right now. They are staking, should i combine them or leave them as is?
what do you suggest for having better luck when it comes to staking?
The only reason to split your outputs up into smaller pieces is to reduce the effect of the 8 hour delay after staking. Suppose you're happy with the 8 hour delay being 1% of the time your coins are staking, so you only lose 1% to the delay. That means you would want the expected staking time for your outputs to be 800 hours each. The total network staking weight is currently around 700k, and the total network stakes 60 blocks per hour: So we can calculate the size an output needs to be to have an expected time to stake of 800 hours. Then it will spend just 1% of its time maturing: >>> weight = 700e3 >>> loss = 0.01 >>> delay = 8 >>> weight * loss / delay / 60 14.58333 There it is. You need to split your balance into pieces of size 14.6 CLAMs if you're happy to accept a 1% loss due to maturation delays. >>> loss = 0.05 >>> weight * loss / delay / 60 72.91666 If you're happy to lose 5% to maturation delays, you can get away with staking with bigger outputs (size 73 CLAMs each). And so on. To check my math I looked at the JD staking wallet. It has 562819 CLAMs split into 32351 outputs very roughly the same size. The average output size is 17.397 CLAMs. Currently, of the 562819 CLAM balance, 554969 is mature and 7850 is waiting to mature. So that's 1.39% of the balance that is currently waiting. >>> loss = 0.0139 >>> weight * loss / delay / 60 20.270833 According to my calculations I would expect a 1.39% loss like that with outputs of size 20, so I'm doing a little worse than predicted. That probably means my guess for the total network staking weight was a bit wrong. If I change my guess to 600k it fits much better: >>> weight = 600e3 >>> weight * loss / delay / 60 17.375 But can that be right? JD is staking 590k on its own. Checking the rich list shows that other than JD there aren't many big addresses, and other than bitdice's 7k most of the other big addresses aren't staking (presumably being in poloniex's wallet, which we know doesn't stake). It's look like maybe JD is much closer to 100% of the network staking weight than I previously thought, and the JD staking wallet's biggest competitor is the JD hot wallet...
|
|
|
Thats really interesting. I really would have thought that betting one time has the bigger chance because the more you bet the more you should go near the statistical chance of losing and the house advantage gets more attention. So i didnt await your results. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Betting once has a much higher variance, but a lower expectation. Note that both strategies have negative expectation and so as a player you want high variance. If the variance was zero, you would always lose what you expect to lose. It's only variance that lets players profit from a -EV game. [...] So what do you think, which one has the highest chance to win the 1000 clams at the end? Does your previous calculation apply so that small bets have a small advantage? I mean in theory one then could play thousands of bets with a chance of 0.0001% each, isnt it?
OK, so you're asking whether it's safer to make a single bet of 1000 at 49.5% to profit by 1000, or to make 1000 bets of 1, each aiming to make 1000 profit? Or is each bet aiming to make 2000 profit? (1000 to keep as profit, and 1000 to cover the 1000 stakes)? Note that if you bet 1 CLAM 1000 times, each one aiming to make a profit of 1000, and only 1 on them wins, your net profit is only 1 CLAM, since one bet profited by 1000 but the other 999 all lose 1 CLAM each. If that's the case, then the 1000 bets is more likely to be successful, because you're aiming to profit by 1 overall, whereas the single large bet is aiming to profit by 1000.
|
|
|
I'm seeing a strange problem. I always have my offsite = max. Once in a while, the percentage of my investment/site can change if I do [/offsite 0, then /offsite max]. For example, a few minutes ago I had like 0.17xx, then after doing these commands, now it is 0.18xx. Looks like a bug to me.
When you type "/offsite max", it sets your offsite amount to 99 times the value of your current onsite amount. And leaves it there. Your onsite amount will grow and shrink 100 times faster now and your offsite amount stays the same. If the site has a run of bad luck, your onsite amount will decrease and so your offsite amount (which remains fixed) will be more than 99 times your onsite amount. There's no way of requesting such a state - it only happens if the site loses. When you set it to 0 and then back to 'max', you're setting it to 99 times your *new* onsite amount, which is different than it was before.
|
|
|
Most (if not all) of the other clients I use list orphans, so I don't understand why CLAM wouldn't. A block which is subsequently orphaned starts as a valid transaction, right? So the client would actually have to delete the transaction from the wallet, rather than just changing its status from immature to orphan. Another possibility is that 'listtransactions' simply ignores orphans, but ListTransactions in rpcwallet.cpp does refer to entry.push_back(Pair("category", "orphan")).
Does the QT client show orphans? If so, why is the behaviour different with the headless client?
I saw your post last night and decided to experiment with the two versions of the client to see what happened. I'm sure I've seen orphaned blocks in the QT client but never in the headless one. I loaded up a wallet from a headless client into the QT client, and saw that it didn't show the orphans. I figure the orphans only show if they happen *while the QT client is running*. The QT wallet is really laggy for me. It spends almost all its time updating the confirmation count in the thousands of rows of the transaction table and almost no time listening to me. So I typed "clamd stop" to stop it. Unfortunately I was logged in to the Just-Dice staking wallet at the time, so it stopped JD's staking and not the QT client. 8 hours later I realised my mistake. I guess anyone solo-staking had a great night! http://www.presstab.pw/phpexplorer/CLAM/ has charts of network difficulty: ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FAf56ODD.png&t=663&c=ymzIR5YtMKfw7w) ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2F9qMdeYV.png&t=663&c=sLeIvJW8DcFidA) The Qt client shows the orphans under transactions. I run a headless client for staking, and then a QT client for monitoring. The QT shows the orphans, even though they are generated by the headless guy. They have 2 different copies of the same wallet.
Just stating the facts. I have no idea why it seems to work. I always thought the wallet just had your addresses and Keys. The rest is figured out from the block chain and stored in the database files. For some reason an orphan on one machine is showing up in the transaction history of another client.
They both use the same copy of wallet.dat, but I guess the QT client has some kind of additional storage. I never really understood the QT client. We should really get to the bottom of this. I often switch between wallets by shutting down the client and moving wallet.dat files around. If the QT has its own separate storage, do I need to be moving that too? Or does it have a section of wallet.dat that only it knows about?
|
|
|
I've probably mentioned this before, but I've never seen an orphan.
Over 3 headless clients (of varying versions) I have minted more than 500 blocks over the past year, but not one of them shows an entry for an orphan.
I don't know whether it's just pure luck that all my generated blocks went through, or if there have been orphans, and for some reason they have not been recorded as such. The former seems unlikely.
I don't know if the headless client keeps track of the blocks it staked that were later orphaned. Here's what I see in the logfile when a block I staked is orphaned: 2015-07-16 06:28:35 ProcessBlock: ORPHAN BLOCK 0, prev=475ca4bf5b6f820bcd2c69012d067d21007ea574fe687f963b7bf6477b2990ac 2015-07-16 06:28:35 REORGANIZE 2015-07-16 06:28:35 REORGANIZE: Disconnect 1 blocks; 8f2c239cbde31f114576b54be4ba896148219c091256de60c30e4b05ef929935..ab753ae5180c6 359747f3dc19f72b8e8ede6fd2b99684895cd4aac962cd3db5c 2015-07-16 06:28:35 REORGANIZE: Connect 2 blocks; 8f2c239cbde31f114576b54be4ba896148219c091256de60c30e4b05ef929935..420da8e336730 453ef59c8a59288a75acb71afb848cc8e5d14913611a48eee6b 2015-07-16 06:28:35 out 17.3701 - in 16.37 = reward 1.0001 2015-07-16 06:28:35 stake -1.0001 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 103672.9224494, address = 103557.9099494 2015-07-16 06:28:35 stake 1.0001 for xEK27EFqu1BdKQFxrN5UVVyNdaYgcoP83G; not mine 2015-07-16 06:28:35 stake 1.00 for xEGBfPzYdKvBfnfWTD67fXnyXmghqNn4oT; not mine 2015-07-16 06:28:35 REORGANIZE: done 2015-07-16 06:28:35 SetBestChain: new best=420da8e336730453ef59c8a59288a75acb71afb848cc8e5d14913611a48eee6b height=556464 trust=54453135560456574575 blocktrust=255583568738615 date=07/16/15 06:28:32 2015-07-16 06:28:35 ProcessBlock: ACCEPTED That "stake -1 for [me]" is me losing 1 CLAM of staking reward, and someone else getting it instead. But the block doesn't show up in 'listtransactions' at all that I can see. I don't think those lines are even logged if you aren't tracking amounts staked (which is turned on when you run 'getstakedbyaddress' the first time).
|
|
|
Dabs got back to me. He's still running his child-feeding thing: Hi. No, that is my clamcoin-qt address.
xGyiXkSUzGLmaCYr9FtnEALGzx1RdvKTXc
Still accepting. For all alt-coins, I simply run them through an exchange and convert them to bitcoins, then convert them to Philippine Pesos. Sometimes I just skip a step and use the alt-coins, and take out the equivalent bitcoins or fiat and add them to the donated pile.
so I sent him the 75 CLAMs.
|
|
|
Hi. No, that is my clamcoin-qt address.
xGyiXkSUzGLmaCYr9FtnEALGzx1RdvKTXc
Still accepting. For all alt-coins, I simply run them through an exchange and convert them to bitcoins, then convert them to Philippine Pesos. Sometimes I just skip a step and use the alt-coins, and take out the equivalent bitcoins or fiat and add them to the donated pile.
OK, cool. I just sent 75 CLAMs, 50 donated by a guy I caught scamming on Just-Dice, and 25 from Just-Dice.
|
|
|
//Dooglus' wizardry math
I'd love to give this a real-world try! I'm lost, though, on what the multiplier we bet on is (1%?) and how much to increase (is that 2%?) on each loss. I'm betting at 1%, and setting the stake such that if we win, we get a balance of 2k. When we win a 1% bet, the payout is 99x, so the profit is 98x, so if our balance is B, we need to calculate the stake S such that the profit, 98S is makes our balance go to 2000, ie. profit is 2000-B. 98S = 2000-B S = (2000-B)/98 So when balance is 1000, stake is (2000-1000)/98 = 10.204081633 When balance is 989.79591836, stake is (2000 - 989.79591836) / 98 = 10.30820491 and so on. I listed all the stake sizes in my previous post.
|
|
|
I tried that, but it seems to only want to generate the addresses of the first HD wallet I ever created. I've since deleted that one. On the Mycelium tab, 'BIP32 Derivation Path' seems hardcoded to m/44'/0'/0'/0 I figure I need to change one of those 0's to a bigger number to get the addresses for the wallet I'm currently using. I didn't realise I could use the BIP44 tab to edit those numbers individually, so got lost making a fork of the page where you can edit the derivation path on the mycelium tab. But all I needed to go was use the BIP44 tab and change the 'account' from 0 to 1 to see my receiving addresses. I found that if I used m/44'/0'/1' as the derivation path then the displayed "BIP32 Extended Key" and "BIP32 Extended Key (addresses only)" in the mycelium tab of the bip39 web page match the keys I see in mycelium when I export my wallet. But the addresses it generates with that derivation path aren't right. In order to get the correct address list I have to use m/44'/0'/1'/0 as the derivation path (ie. with the /0 on the end). My wallet contains 49 private keys according to the accounts tab of mycelium, but only addresses 0 through 17 have been used. I guess the other 31 must be change addresses. I tried m/44'/0'/1'/1 as a derivation path and saw a list of my change addresses. 0 through 29 have been used. So that's 30 change addresses and 18 receiving addresses that have been used, and I guess one extra receiving address has been displayed but not used, making the displayed total of 49. I sent some coins to the first receiving address in the list, hit the 2-arrows-in-a-circle icon, and the deposit showed up. So it does look back through at least 17 old receiving addresses.
|
|
|
When randomizing it doesnt ask for the 2FA-Code. Did you do this intentionally as a simple block so that one has to disable and enable randomize 2FA when one wants to use it?
I implemented the ability to 2FA-lock your seeds a long time ago when someone asked for it because they were worried they would accidentally hit the keyboard shortcut for 'randomize' and lose their seed. I copied the functionality from the 2FA-lock on gambling - if the lock is on you can't gamble. If you want to gamble, remove the 2FA-lock. I think the people who are worried about accidentally changing their seed will be changing it rarely enough that editing their 2FA settings to do so isn't a big deal. I have a probably stupid question. When you want to go for a certain amount to win, lets say 1000 clams, is it then a difference when you do one big bet with a high percent chance instead many small bets with the minimum chance? Is there a difference in propability to win the 1k clam? Might be too late today for me only. ![Roll Eyes](https://bitcointalk.org/Smileys/default/rolleyes.gif) Your question could use some tightening up. Are you looking for a certain net profit when you say "certain amount to win"? So if I start with 1000 CLAMs and want to get it to 2000 CLAMs, say. If I bet all in at 49.5% I have a 49.5% chance of profiting by 1000 CLAMs. That case is clear. But what if I make a bunch of bets at 1% chance, aiming to reach 2000 CLAMs. Is that what you're saying? My first bet would be around 10.204 CLAMs at 1% to make a profit of 1000 CLAMs. But if it lost, my 2nd bet would need to be a little bigger, since now I need to recover the 10.204 CLAMs I just lost, as well as win an extra 1000 CLAMs. So the 2nd bet would need to be around 10.308 CLAMs, then 10.413 CLAMs, and so on. The amount rises exponentially. I believe you have a better expectation doing the 1% bets than the all-in 49.5% bet. Because your expected total stake is less than in the 49.5% case, and so your expected loss is correspondingly less. It turns out you can afford to bet 68 times at 1% and get to 2000 CLAMs if any of them win. If none of them win, you have 5.56408786 left over, and give up trying. Each of the 68 tries has a 0.99 probability of failure. You lose all 68 bets with a probability of 0.99^68 = 0.504885888 You win, and reach your goal with probability 0.495114111 So amazingly, your probability of success is greater than with the single all-in bet (which is 0.495) AND even when you fail you have 5.5 CLAMs left over! In the single-bet case, your expected profit is -1% of 1000, or -10 CLAMs. That's hopefully clear. We can calculate it by summing the product of probabilities and profits: >>> 0.495 * 1000 + 0.505 * -1000 -10.0 In the 68 bets at 1% case, your expected profit is [p(loss) * profit_on_loss + p(win) * profit_on_win]: >>> (0.99 ** 68) * (5.56408786 - 1000) + (1 - 0.99 ** 68) * 1000 -6.96254812965384 So it is considerably better. You expect to lose only 6.96 CLAM instead of 10.00 CLAM. Here are the 68 bets we can afford to make: bet 1: balance is 1000.00000000 so we stake 10.20408163 bet 2: balance is 989.79591837 so we stake 10.30820491 bet 3: balance is 979.48771345 so we stake 10.41339068 bet 4: balance is 969.07432277 so we stake 10.51964977 bet 5: balance is 958.55467301 so we stake 10.62699313 bet 6: balance is 947.92767987 so we stake 10.73543184 bet 7: balance is 937.19224804 so we stake 10.84497706 bet 8: balance is 926.34727097 so we stake 10.95564009 bet 9: balance is 915.39163088 so we stake 11.06743234 bet 10: balance is 904.32419854 so we stake 11.18036532 bet 11: balance is 893.14383322 so we stake 11.29445068 bet 12: balance is 881.84938254 so we stake 11.40970018 bet 13: balance is 870.43968236 so we stake 11.52612569 bet 14: balance is 858.91355667 so we stake 11.64373922 bet 15: balance is 847.26981746 so we stake 11.76255288 bet 16: balance is 835.50726457 so we stake 11.88257893 bet 17: balance is 823.62468564 so we stake 12.00382974 bet 18: balance is 811.62085590 so we stake 12.12631780 bet 19: balance is 799.49453810 so we stake 12.25005573 bet 20: balance is 787.24448237 so we stake 12.37505630 bet 21: balance is 774.86942607 so we stake 12.50133239 bet 22: balance is 762.36809368 so we stake 12.62889700 bet 23: balance is 749.73919668 so we stake 12.75776330 bet 24: balance is 736.98143338 so we stake 12.88794456 bet 25: balance is 724.09348882 so we stake 13.01945420 bet 26: balance is 711.07403463 so we stake 13.15230577 bet 27: balance is 697.92172886 so we stake 13.28651297 bet 28: balance is 684.63521589 so we stake 13.42208963 bet 29: balance is 671.21312625 so we stake 13.55904973 bet 30: balance is 657.65407652 so we stake 13.69740738 bet 31: balance is 643.95666914 so we stake 13.83717685 bet 32: balance is 630.11949229 so we stake 13.97837253 bet 33: balance is 616.14111976 so we stake 14.12100898 bet 34: balance is 602.02011078 so we stake 14.26510091 bet 35: balance is 587.75500987 so we stake 14.41066316 bet 36: balance is 573.34434671 so we stake 14.55771075 bet 37: balance is 558.78663596 so we stake 14.70625882 bet 38: balance is 544.08037714 so we stake 14.85632268 bet 39: balance is 529.22405446 so we stake 15.00791781 bet 40: balance is 514.21613665 so we stake 15.16105983 bet 41: balance is 499.05507682 so we stake 15.31576452 bet 42: balance is 483.73931230 so we stake 15.47204783 bet 43: balance is 468.26726446 so we stake 15.62992587 bet 44: balance is 452.63733859 so we stake 15.78941491 bet 45: balance is 436.84792368 so we stake 15.95053139 bet 46: balance is 420.89739229 so we stake 16.11329192 bet 47: balance is 404.78410037 so we stake 16.27771326 bet 48: balance is 388.50638711 so we stake 16.44381238 bet 49: balance is 372.06257473 so we stake 16.61160638 bet 50: balance is 355.45096835 so we stake 16.78111257 bet 51: balance is 338.66985579 so we stake 16.95234841 bet 52: balance is 321.71750738 so we stake 17.12533156 bet 53: balance is 304.59217582 so we stake 17.30007984 bet 54: balance is 287.29209598 so we stake 17.47661127 bet 55: balance is 269.81548471 so we stake 17.65494403 bet 56: balance is 252.16054068 so we stake 17.83509652 bet 57: balance is 234.32544416 so we stake 18.01708730 bet 58: balance is 216.30835685 so we stake 18.20093513 bet 59: balance is 198.10742172 so we stake 18.38665896 bet 60: balance is 179.72076276 so we stake 18.57427793 bet 61: balance is 161.14648483 so we stake 18.76381138 bet 62: balance is 142.38267345 so we stake 18.95527884 bet 63: balance is 123.42739460 so we stake 19.14870006 bet 64: balance is 104.27869455 so we stake 19.34409495 bet 65: balance is 84.93459959 so we stake 19.54148368 bet 66: balance is 65.39311592 so we stake 19.74088657 bet 67: balance is 45.65222934 so we stake 19.94232419 bet 68: balance is 25.70990515 so we stake 20.14581729 end: balance is 5.56408786 so we need to stake 20.35138686 but can't afford it I also wrote a simulation to sanity check the math: #!/usr/bin/env python
import random
start = 1000.0 target = 2000.0 net_profit = 0 runs = 0
while True: balance = start
# loop until we win or bust while True: stake = (target - balance) / 98.0
# we can't afford to keep going if stake > balance: break
# did we win? if random.random() < 0.01: balance += stake * 98 break else: balance -= stake
net_profit += balance - start runs += 1 if runs % 10000 == 0: print "net profit per run after %5d runs is %7.4f" % (runs, net_profit/runs) I left it running for a while for the numbers to settle down: net profit per run after 10000 runs is -26.1373 net profit per run after 20000 runs is -18.9573 net profit per run after 30000 runs is -12.1097 ... net profit per run after 9540000 runs is -6.4101 net profit per run after 9550000 runs is -6.4095 net profit per run after 9560000 runs is -6.3974 ... net profit per run after 14950000 runs is -6.9483 net profit per run after 14960000 runs is -6.9492 net profit per run after 14970000 runs is -6.9458 net profit per run after 14980000 runs is -6.9538 net profit per run after 14990000 runs is -6.9554 ... net profit per run after 16870000 runs is -7.0234 net profit per run after 16880000 runs is -7.0251 net profit per run after 16890000 runs is -7.0170 net profit per run after 16900000 runs is -7.0237 ... net profit per run after 419990000 runs is -7.0406 [edit1] net profit per run after 420000000 runs is -7.0405 net profit per run after 420010000 runs is -7.0403 ... net profit per run after 562490000 runs is -6.9838 [edit2] net profit per run after 562500000 runs is -6.9839 net profit per run after 562510000 runs is -6.9839 ... net profit per run after 595230000 runs is -6.9915 net profit per run after 595240000 runs is -6.9917 net profit per run after 595250000 runs is -6.9916 ... net profit per run after 1464310000 runs is -6.9539 net profit per run after 1464320000 runs is -6.9538 net profit per run after 1464330000 runs is -6.9538 ... net profit per run after 2615260000 runs is -6.9559 net profit per run after 2615270000 runs is -6.9559 net profit per run after 2615280000 runs is -6.9559 ... net profit per run after 3048560000 runs is -6.9694 net profit per run after 3048570000 runs is -6.9695 net profit per run after 3048580000 runs is -6.9695 That's pretty close to the -6.96 the math predicted. Edit1: I left it running, but it doesn't appear to be converging on 6.96. So: a) the math is wrong or b) the simulation is wrong or c) I didn't wait long enough yet Edit2: Probably it's (c).
|
|
|
that looks like 4 orphans out of 36 stakes, or 11% so far
I'm guessing I end up averaging about 4-6% orphans. And that hasn't really changed since JD started. Well, if you were getting 5% orphans before JD and 11% after, maybe JD has doubled your orphan rate. Even before JD the staking will have been dominated by a few large wallets I guess. I'm thinking there wouldn't have been any with >50% of the stake weight, but there still will have been some big ones. I was going to look at Nov, but the 11th was he hard fork, and I ended up on the wrong chain for a little while. 24 orphans in 3 hours... not good for the statistics.
Shortly after the hard fork everyone was on their own version of the chain. It was so easy to stake for the first hour after the fork that everyone was staking every few minutes. So when extrapolating the results how does he perform compared to just-dice wallet?
The CLAM client seems to truncate its logfile sometimes, so I don't have much history. Here's what I do have: $ grep 'stake -[0-9.]* for' ~/.clam/debug.log 2015-07-14 00:03:53 stake -1.0001 for xXMNNbSFrsWvsUqVQaEBCRaLfi47g9tFhX; not mine 2015-07-14 00:06:37 stake -1.0002 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 100988.613508, address = 100873.601008 2015-07-14 00:06:37 stake -1.00 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 100987.613508, address = 100872.601008 2015-07-14 03:27:57 stake -1.0002 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 101160.617008, address = 101045.604508 2015-07-14 09:19:54 stake -1.0001 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 101445.639508, address = 101330.627008 2015-07-14 18:02:37 stake -1.0001 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 101873.7675494, address = 101758.7550494 2015-07-14 18:40:19 stake -1.00 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 101904.7695494, address = 101789.7570494 2015-07-14 21:17:11 stake -1.0006 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 102037.7909494, address = 101922.7784494 2015-07-15 03:14:21 stake -1.00 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 102323.9023494, address = 102208.8898494 2015-07-15 05:44:13 stake -1.0001 for xJDCLAMZtRD72TC31E8SJ4a6ycFtnQyuDH; not mine 2015-07-15 09:02:04 stake -1.0002 for xJDCLAMZtRD72TC31E8SJ4a6ycFtnQyuDH; not mine 2015-07-15 09:38:27 stake -1.00 for xJDCLAMZsZg1YqGytiP9CRzYYdsrJXX9Kh; global = 102643.9272494, address = 102528.9147494 Those are the orphans the staking wallet saw in the last day and a half. Note that JD stakes two wallets - a 'staking wallet' (...CLAMZsZg...) with the majority of the coins in it, and a hot wallet (...CLAMZtRD...) with 20k to 30k in it. To further confuse matter I think the first few lines above were while a DDoS attack was ongoing and I ran the staking wallet on two machines at the same time so it was orphaning its own blocks. Could he lower the chance of getting orphaned when he makes sure that he sends his block to just-dice first? Can the clam client be sat up that way? I would try to contact the biggest wallets first to lower the time i get >50%. Though in fact, at the moment, one would need to ONLY propagate to just-dice. Not healthy for sure.
CLAM blocks are mostly tiny and so quick to broadcast. I don't know if there's much to be gained by sending your blocks to JD first, but maybe it would help. Do you guys recommend combined the blocks after each stake my balance is 633 right now. They are staking, should i combine them or leave them as is?
what do you suggest for having better luck when it comes to staking?
The only reason to split your outputs up into smaller pieces is to reduce the effect of the 8 hour delay after staking. Suppose you're happy with the 8 hour delay being 1% of the time your coins are staking, so you only lose 1% to the delay. That means you would want the expected staking time for your outputs to be 800 hours each. The total network staking weight is currently around 700k, and the total network stakes 60 blocks per hour: So we can calculate the size an output needs to be to have an expected time to stake of 800 hours. Then it will spend just 1% of its time maturing: >>> weight = 700e3 >>> loss = 0.01 >>> delay = 8 >>> weight * loss / delay / 60 14.58333 There it is. You need to split your balance into pieces of size 14.6 CLAMs if you're happy to accept a 1% loss due to maturation delays. >>> loss = 0.05 >>> weight * loss / delay / 60 72.91666 If you're happy to lose 5% to maturation delays, you can get away with staking with bigger outputs (size 73 CLAMs each). And so on. To check my math I looked at the JD staking wallet. It has 562819 CLAMs split into 32351 outputs very roughly the same size. The average output size is 17.397 CLAMs. Currently, of the 562819 CLAM balance, 554969 is mature and 7850 is waiting to mature. So that's 1.39% of the balance that is currently waiting. >>> loss = 0.0139 >>> weight * loss / delay / 60 20.270833 According to my calculations I would expect a 1.39% loss like that with outputs of size 20, so I'm doing a little worse than predicted. That probably means my guess for the total network staking weight was a bit wrong. If I change my guess to 600k it fits much better: >>> weight = 600e3 >>> weight * loss / delay / 60 17.375 But can that be right? JD is staking 590k on its own. Checking the rich list shows that other than JD there aren't many big addresses, and other than bitdice's 7k most of the other big addresses aren't staking (presumably being in poloniex's wallet, which we know doesn't stake). It's look like maybe JD is much closer to 100% of the network staking weight than I previously thought, and the JD staking wallet's biggest competitor is the JD hot wallet...
|
|
|
So there's 50 CLAM from KD and 25 from me waiting for Dabs' "feed some children" charity. I posted to confirm he's still doing it: Hi Dabs.
Are you still doing this?
Is xGyiXkSUzGLmaCYr9FtnEALGzx1RdvKTXc still the right CLAM address?
If not, I'll send the 75 CLAM to Marty's crypto for kids charity, as listed on http://clamclient.com/bazaar/. I'll post an update here when I hear back from Dabs. I heard nothing from him yet. I'll try PMing him: ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FYyPos0y.png&t=663&c=brQXhtULTlvbGw)
|
|
|
|