Bitcoin Forum
December 09, 2016, 07:56:38 AM *
News: Latest stable version of Bitcoin Core: 0.13.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 [3] 4 5 6 7 8 »  All
  Print  
Author Topic: Double geometric method: Hopping-proof, low-variance reward system  (Read 68508 times)
-ck
Moderator
Legendary
*
Offline Offline

Activity: 2002


Ruu \o/


View Profile WWW
January 13, 2012, 06:53:22 AM
 #41

Thanks very much for taking the time to explain. I misunderstood completely where the capacitor was. Sent you a little something for your troubles and work on developing this pay scheme.

Primary developer/maintainer for cgminer and ckpool/ckproxy.
Pooled mine at kano.is, solo mine at solo.ckpool.org
-ck
1481270198
Hero Member
*
Offline Offline

Posts: 1481270198

View Profile Personal Message (Offline)

Ignore
1481270198
Reply with quote  #2

1481270198
Report to moderator
1481270198
Hero Member
*
Offline Offline

Posts: 1481270198

View Profile Personal Message (Offline)

Ignore
1481270198
Reply with quote  #2

1481270198
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
Meni Rosenfeld
Donator
Legendary
*
Offline Offline

Activity: 1890



View Profile WWW
January 13, 2012, 07:55:10 AM
 #42

Thanks very much for taking the time to explain. I misunderstood completely where the capacitor was. Sent you a little something for your troubles and work on developing this pay scheme.
Thanks, much appreciated!

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
sirky
Sr. Member
****
Offline Offline

Activity: 407



View Profile
January 13, 2012, 10:35:52 PM
 #43

Yep Hopping doesn't have to mean your gain is someone else's loss.

How is that true? When you hop, the bitcoin pie does not end up getting bigger. But your piece does grow (hence why you hop), meaning that at least one person's piece has to shrink.
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 1960


Poor impulse control.


View Profile WWW
January 18, 2012, 01:36:51 AM
 #44

Yep Hopping doesn't have to mean your gain is someone else's loss.
Maybe many think those two ideas are directly connected - but obviously in this case - they aren't.
What I guess DGM does is allow you to capitalise on the fact that when a pool is lucky, that luck extends beyond the time when it occurs
Thus you can get part of that luck after the fact.

Pool hopping at a proportional pool does mean that other lose. There's only 50btc per round, and if you are getting more than expected of that 50btc, then someone else is getting less.

The first two charts here should give you an indication of just how much fulltime miners lose at a proportional pool if there are pool hoppers.

If by 'pool hopper' you mean someone without a share payment maximisation strategy -  who bounces from pool to pool or round to round without regard to how many shares have been submitted for the round or what kind of scoring system is being used - then I think that 'intermittent miners' is a better name since 'pool hopper' has come to mean someone who has a maximisation strategy based on using pools with broken payout systems.

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
Graet
VIP
Legendary
*
Offline Offline

Activity: 980



View Profile WWW
February 18, 2012, 05:30:16 AM
 #45

DGM is working very well for us, miners are happy and well paid, pool has grown considerably.

Thanks again Meni

Graeme

| Ozcoin Pooled Mining Pty Ltd https://ozcoin.net Double Geometric Reward System https://lc.ozcoin.net for Litecoin mining DGM| https://crowncloud.net VPS and Dedicated Servers for the BTC community
Meni Rosenfeld
Donator
Legendary
*
Offline Offline

Activity: 1890



View Profile WWW
February 18, 2012, 04:23:18 PM
 #46

DGM is working very well for us, miners are happy and well paid, pool has grown considerably.

Thanks again Meni

Graeme
You're welcome, I'm glad you're enjoying it.

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
kano
Legendary
*
Online Online

Activity: 1932


Linux since 1997 RedHat 4


View Profile
February 21, 2012, 05:02:12 PM
 #47

OK here's some obviously flawed logic of my own but I'm curious where the flaws actually are:

In a 0% fee standard proportional pool, each person is paid the same amount per share when the block is found - I'll call it just "Prop"

In a 0% fee PPS pool each person is paid the same amount per share (during a 2 week difficulty) no matter how many blocks are found - I'll call it just "PPS"

In a 0% fee DGM pool each person is paid, well, you work it out Smiley - I'll call it just "DGM" - but it is apparently the same as PPS in the long run

If I were to mine Prop for 129 minutes and then mine PPS for 171 minutes with X GH/s where Prop has an average 300 minutes per block for 2 weeks, then I would receive an amount that is higher than mining PPS constantly (or Prop constantly)
Of course it wouldn't be 171 minutes PPS every block, but it would average out to that.
This is called hopping (I've got that right?)

i.e. although I would get paid the same per share that I mined as anyone else who mined on Prop, that is considered "unfair" because although it is quite logical that each share should be worth the same since you spent the same amount of effort on it as everyone else with the same hardware setup, I still get more than expected for my X MH/s due to the mathematics involved.
"fair" seems to be that if you leave early your shares are worth less per share than someone who stays, since this stops you from getting more than your expected payout for your mining X GH/s

So yeah the first part seems odd that you should get paid less per share than everyone else - to make it "fair" so that you don't actually get more than the expected amount for your X GH/s

Logic fails, maths wins.

Now, no matter how you word it, when someone is mining PPS they get the same amount.
When someone is mining Prop they get different amounts that adds up to more than the PPS rate ... otherwise there would be no point hopping.

If on the other hand, they did the 129 minutes on DGM and 171 minutes on PPS they would still get the same amount from PPS.
However, DGM resolving: "hopping getting extra", means they MUST get less than mining Prop thus they must get less per share than mining Prop, thus they must get less per share than everyone else mining DGM.

How does DGM ensure people who hop will get less per share than the people who don't hop?
Why doesn't that happen to anyone who doesn't mine 24/7 but say instead mines 2/3 of each day? Or does it and that process of mining only 18 hours a day means they would get more on Prop than they should, if not for DGM?

Yeah that's actually some questions also ... if anyone feels like explaining that so that others who use DGM and didn't do university level statistics can understand, that would be good Smiley
(and also point out the flaws in what I said)

Pool: https://kano.is BTC: 1KanoiBupPiZfkwqB7rfLXAzPnoTshAVmb
CKPool and CGMiner developer, IRC FreeNode #ckpool and #cgminer kanoi
Help keep Bitcoin secure by mining on pools with Stratum, the best protocol to mine Bitcoins with ASIC hardware
Inaba
Legendary
*
Offline Offline

Activity: 1260



View Profile WWW
February 21, 2012, 05:15:08 PM
 #48

I'll let Meni do the real 'splainin but DGM pays fairly based on contribution, not like PPS really.  It's more like a 100% fair prop with no hoppers.  DGM pays more on short rounds and less on long rounds (except on EMC, where I have a bit of a kicker for longer rounds that comes out of my own pocket, so the pool pays more than 50 BTC on long rounds, slightly less than 50 BTC on short rounds.  I think after a final tally, I've paid a few BTC out of my pocket recently due to the longer rounds) when compared to PPS (on a per share basis).

Hoppers don't get paid less than non hoppers, they just don't get paid more... bit of a subtle difference, but it's really the essence of a fair pool reward system.  DGM does not "punish" hoppers, which seems to be a common misconception.  It just pays hoppers for the work they put in compared to everyone else.  

If you're searching these lines for a point, you've probably missed it.  There was never anything there in the first place.
kano
Legendary
*
Online Online

Activity: 1932


Linux since 1997 RedHat 4


View Profile
February 21, 2012, 05:33:10 PM
 #49

...
Hoppers don't get paid less than non hoppers, they just don't get paid more... bit of a subtle difference, but it's really the essence of a fair pool reward system.  DGM does not "punish" hoppers, which seems to be a common misconception.  It just pays hoppers for the work they put in compared to everyone else.  
Hmm unless I'm wrong in what I wrote ... to repeat: hoppers do get paid less per share than non-hoppers.
The problem is that if they get paid the same per share (when nothing intervenes with their hopping) then they get more than expected.

That's where the maths wins logic loses bit applies.

Pool: https://kano.is BTC: 1KanoiBupPiZfkwqB7rfLXAzPnoTshAVmb
CKPool and CGMiner developer, IRC FreeNode #ckpool and #cgminer kanoi
Help keep Bitcoin secure by mining on pools with Stratum, the best protocol to mine Bitcoins with ASIC hardware
Inaba
Legendary
*
Offline Offline

Activity: 1260



View Profile WWW
February 21, 2012, 05:38:09 PM
 #50

Well, I suppose that depends on how you define it.  Later shares are worth more than earlier shares (in a PPS sense), so in that sense, then yes they get paid less, but then their contribution to the block is also less.

If you're searching these lines for a point, you've probably missed it.  There was never anything there in the first place.
Meni Rosenfeld
Donator
Legendary
*
Offline Offline

Activity: 1890



View Profile WWW
February 21, 2012, 06:23:16 PM
 #51

@kano: Your error is that you do not properly consider the effect of round length on how much shares are worth.

In a proportional pool, shares in a short round are worth more than in a long round. If you look at the intra-round level then yes, hoppers get per share the same as anyone else in the round. But the trick is that hoppers get more of their shares in short rounds than normal miners, thus profit more per share.

So to be fair in a proportional system you need not only for all shares in a round to be rewarded equally, you also need each share to have the same chance to go into a short round as other shares. And this simply doesn't hold true for hoppers, so it's unfair.

To give an analogy: At a soup kitchen people are randomly assigned to a line where potatoes are handed out or a line where meat (which is superior) is handed out. Suppose someone sneaks into the meat line although he was assigned to the potato line. He gets the same food as everyone else in the line - but it's unfair because he cheated his way into the better line. (Though this example will only make sense to people who understand that true randomness is fair).

In DGM the concept of rounds isn't rigidly defined. If a hopper tries to hop a DGM pool as if it was proportional then yes, in every "round" he'd get per share on average less than normal miners. But this is only because the artificial division to rounds is flawed. What matters is the reward per share on the global level. If you must, you can say that hoppers get more of their shares in the shorter, more lucrative rounds, but in those rounds get less per share than other shares in the round. The two effects cancel each other to result in average payout per share equal to (1-f)pB, no matter the mining pattern.


And I disagree vehemently with your sentiment that "maths wins logic loses". If a mathematical result seems illogical the art did not fail you, it is you who failed the art.

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
kano
Legendary
*
Online Online

Activity: 1932


Linux since 1997 RedHat 4


View Profile
February 21, 2012, 07:00:58 PM
 #52

I'm not trying to give you a new definition of the word fair - I'll use your one for this:

And you didn't actually point out what was wrong with what I said, you instead gave a different reason why you call anti-hopping fair.

I guess that means what I said is actually correct?

OK I'll put it this way:

If I use the same times I gave and mine 129 minutes Prop and then 171 minutes PPS on a Prop that takes 300 minutes to get a block
(on average for all those 3 numbers) and lets say I get 10 shares a minute and did this for 100 blocks.
(all easy numbers)
Then on average I will mine 12,900,000 Prop shares and 17,100,000 PPS shares.

For block 1 mined on Prop each of my shares will be paid the same as everyone else's shares.
For block 2 mined on Prop each of my shares will be paid the same as everyone else's shares (but this number may be different to block 1)
all the way up to block 100.

For block 1 mined on PPS each of my shares will be paid the same as everyone else's shares on PPS.
For block 2 mined on PPS each of my shares will be paid the same as everyone else's shares on PPS.
all the way up to block 100.

Logically that makes sense (and that's the reason Prop pools existed in the first place)

Mathematically it is unfair since over those 100 blocks I will get more BTC than if I only mined Prop or PPS.
The extra BTC is of course gained from Prop

Maths wins logic fails.

On average, I will get the same amount of BTC from the PPS pool if I mine Prop as the hop pool or I mine DGM instead.

If I mine DGM instead I will get less BTC since I will lose my unfair hop advantage.

The ONLY way that is possible is if my average amount paid per non-PPS share drops.

If it drops, then I am being paid less per non-PPS share than the people who are mining 24/7

Again that last statement logically seems unfair, but it isn't. Again Logic fails and maths wins.

Edit: corrected some mixed up wording at the end

Pool: https://kano.is BTC: 1KanoiBupPiZfkwqB7rfLXAzPnoTshAVmb
CKPool and CGMiner developer, IRC FreeNode #ckpool and #cgminer kanoi
Help keep Bitcoin secure by mining on pools with Stratum, the best protocol to mine Bitcoins with ASIC hardware
Meni Rosenfeld
Donator
Legendary
*
Offline Offline

Activity: 1890



View Profile WWW
February 21, 2012, 07:08:29 PM
 #53

Again that last statement logically seems unfair, but it isn't.
"Seems" is the key word, to a flawed logic it might appear unfair, correct logic will show it's fair.

I already answered your questions. You basically repeated what you said - I'll spare us both repeating what I said.

But you might want to read up on Simpson's paradox.

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 1960


Poor impulse control.


View Profile WWW
February 21, 2012, 08:46:55 PM
 #54

Kano, have a read of this, this, and then this  and I'll be happy to answer any questions you have on the 'How to hop' thread.

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
Red Emerald
Hero Member
*****
Offline Offline

Activity: 742



View Profile WWW
February 21, 2012, 09:37:17 PM
 #55

This looks cool.

kano
Legendary
*
Online Online

Activity: 1932


Linux since 1997 RedHat 4


View Profile
February 22, 2012, 02:21:26 AM
 #56

...
So to be fair in a proportional system you need not only for all shares in a round to be rewarded equally, you also need each share to have the same chance to go into a short round as other shares. And this simply doesn't hold true for hoppers, so it's unfair.
...
Yes I do realise that this is your definition of fair, and it is actually what you are referring to.
I also realise that it is logically correct when you consider the maths ...

But it is the point that most people won't see that without the maths and why I say Logic loses Maths wins.

Though I guess that's also follows why you say:
Quote
... it is you who failed the art.

I'd also call using the word "Fair" as failing the art since that word is purely subjective.

Again, the reason why Prop pools exist in the first place is missing that which you seem to suggest is Logically obvious ...

Your "unfair" mining is in different words:
Hoppers hedging their bets by aiming for higher value shares.

They are being "unfair" coz they don't hang around for the bad, they just aim for the good.

Please note that next time you buy any stock-exchange shares at a lower price and sell them at a higher price ... that you are effectively doing the same thing ... being "unfair" Smiley
(and make sure you don't ever buy BTC, and later sell it at a price higher than you bought it ...)

The only non-subjective problem with hoppers (and the reason why people have no reason to complain about anti-hopping techniques) is that if everyone who used the Prop pool hopped (and of course you cannot guarantee to aim for good without doing it from the start), the pool would die on the the first block that reached 43% of the difficulty in shares and that would be the end of it and none would get paid anything.

You could almost apply the same stock exchange analogy here also, you must trade shares and lose money in the companies you are involved in during the good and bad times ... wait? what? That's not called "fair" Cheesy
Damn unfair stock exchanges ...

At the moment on P2Pool people might be gaining better than expected by using cgminer to reduce their reject rate ...
Should people be using this "unfair" word there also - and should the pool be penalising people using cgminer's to make it "fair"?

Pool: https://kano.is BTC: 1KanoiBupPiZfkwqB7rfLXAzPnoTshAVmb
CKPool and CGMiner developer, IRC FreeNode #ckpool and #cgminer kanoi
Help keep Bitcoin secure by mining on pools with Stratum, the best protocol to mine Bitcoins with ASIC hardware
Meni Rosenfeld
Donator
Legendary
*
Offline Offline

Activity: 1890



View Profile WWW
February 22, 2012, 09:28:53 AM
 #57

Quote
... it is you who failed the art.
I'd also call using the word "Fair" as failing the art since that word is purely subjective.
I agree that dwelling too much on fair/unfair is a red herring. But I'd say people have enough of their perceived meaning of "fair" in common that it does carry some information content, and useful in the conversation.

Again, the reason why Prop pools exist in the first place is missing that which you seem to suggest is Logically obvious ...

Your "unfair" mining is in different words:
Hoppers hedging their bets by aiming for higher value shares.

They are being "unfair" coz they don't hang around for the bad, they just aim for the good.

Please note that next time you buy any stock-exchange shares at a lower price and sell them at a higher price ... that you are effectively doing the same thing ... being "unfair" Smiley
(and make sure you don't ever buy BTC, and later sell it at a price higher than you bought it ...)
Fairness is relative to the intended purpose of the mechanism in question and what people can reasonably expect from it. Stock exchanges are known to be a mechanism for people who have beliefs about future price changes of stocks to profit from these beliefs (or lose if the beliefs are wrong). There is thus no unfairness in doing just that.

But pooled mining is a mechanism to allow miners to join forces to reduce individual variance. Miners expect their average reward to be equal to solo mining (minus fees). Given that, a strategy that increases your own average reward at the expense of others is unfair.

At the moment on P2Pool people might be gaining better than expected by using cgminer to reduce their reject rate ...
Should people be using this "unfair" word there also - and should the pool be penalising people using cgminer's to make it "fair"?
This argument doesn't hold any water and you're not the first to suggest it.
1. Using cgminer increases your expected payment per share you find, but it does not reduce other miners' expected payment per share they find. It also causes no ill-effects if done by everyone.
2. A pool is a give-and-take relationship. You give shares which could end up a valid block and thus benefit the pool. In return you get payment for these shares. When hopping you contribute the same to the pool but receive more in return (at the expense of others). Using cgminer or any other similar technique increases the total quantity of shares you submit and benefit the pool, but you get the same payment for each.
3. Mining exists to secure the Bitcoin network. Using cgminer increases the total amount of valid proof-of-work you submit to the network, and warrants a corresponding increase in your reward. Hopping does not increase your contribution to network security.

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
kano
Legendary
*
Online Online

Activity: 1932


Linux since 1997 RedHat 4


View Profile
February 22, 2012, 10:24:31 AM
 #58

...
At the moment on P2Pool people might be gaining better than expected by using cgminer to reduce their reject rate ...
Should people be using this "unfair" word there also - and should the pool be penalising people using cgminer's to make it "fair"?
This argument doesn't hold any water and you're not the first to suggest it.
1. Using cgminer increases your expected payment per share you find, but it does not reduce other miners' expected payment per share they find. It also causes no ill-effects if done by everyone.
2. A pool is a give-and-take relationship. You give shares which could end up a valid block and thus benefit the pool. In return you get payment for these shares. When hopping you contribute the same to the pool but receive more in return (at the expense of others). Using cgminer or any other similar technique increases the total quantity of shares you submit and benefit the pool, but you get the same payment for each.
3. Mining exists to secure the Bitcoin network. Using cgminer increases the total amount of valid proof-of-work you submit to the network, and warrants a corresponding increase in your reward. Hopping does not increase your contribution to network security.
If 2 people are hashing at the same rate, one with 9% rejected (as per forrestv says is expected) and the other with cgminer on 0% then of course one has an advantage.
One will have, on average, a higher ratio of shares per block than the other.
Thus they will get paid more per block than the other due to having more shares accepted.
Are you suggesting this extra payment appears out of thin air?

Where does this extra come from? The others of course who will get a reduced payment because of having mined fewer shares than the other.
That's all pretty simple maths there ...
(P2Pool is PPLNS)

"It also causes no ill-effects if done by everyone." Yep - but that's got nothing to do with the discussion ... since people accept that 9% is OK ... or are you suggesting that forrestv has caused the problem by saying everyone should expect 9%?

Also: "but you get the same payment for each" - well you've already argued that that statement is not relevant on it's own - so I'm not sure why you are using it yourself ... Cheesy

3) Yep but cgminer increases it at the disadvantage of others also.
You can't get more per block out of thin air - sorry Tongue

Pool: https://kano.is BTC: 1KanoiBupPiZfkwqB7rfLXAzPnoTshAVmb
CKPool and CGMiner developer, IRC FreeNode #ckpool and #cgminer kanoi
Help keep Bitcoin secure by mining on pools with Stratum, the best protocol to mine Bitcoins with ASIC hardware
Meni Rosenfeld
Donator
Legendary
*
Offline Offline

Activity: 1890



View Profile WWW
February 22, 2012, 11:14:01 AM
 #59

If 2 people are hashing at the same rate, one with 9% rejected (as per forrestv says is expected) and the other with cgminer on 0% then of course one has an advantage.
One will have, on average, a higher ratio of shares per block than the other.
Thus they will get paid more per block than the other due to having more shares accepted.
Are you suggesting this extra payment appears out of thin air?

Where does this extra come from? The others of course who will get a reduced payment because of having mined fewer shares than the other.
The extra comes from being able to find more valid blocks for the pool. Let's say each share has 1/100 chance of being a block. Miners A and B have the same hashrate and find 1 share per second. B uses cgminer, A doesn't.

Miner A: Each share has 91% to be unrejected, and hence 0.91% chance to be a valid block which increases the pool's total rewards. Miner A's payment for this share is on average 0.91% of block reward.
Miner B: Each share has 100% to be unrejected, and hence 1% chance to be a valid block which increases the pool's total rewards. Miner B's payment for this share is on average 1% of block reward.

It's just like if a miner adds or removes mining hardware. He changes his contribution to the pool, and accordingly his reward.

All this assumes there isn't something very strange with the whole p2pool/cgminer issue I'm missing.

You can't get more per block out of thin air - sorry Tongue
You can get more blocks if you avoid wasting your hashes on something that will be invalid.

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
sirky
Sr. Member
****
Offline Offline

Activity: 407



View Profile
February 22, 2012, 12:10:37 PM
 #60

Yep Hopping doesn't have to mean your gain is someone else's loss.

How is that true? When you hop, the bitcoin pie does not end up getting bigger. But your piece does grow (hence why you hop), meaning that at least one person's piece has to shrink.

Unlike this quote from me a few months ago, when you physically add mining capability (or lower your rejects - they are the exact same conceptually), the bitcoin hashing pie really does grow. People still get what they deserve based on what proportion of the network they are. When you hop, you grow your reward per share submitted, which MUST mean other people's rewards per share shrink, right?
Pages: « 1 2 [3] 4 5 6 7 8 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!