Author

Topic: Pool-Hopping lohnt sich (Read 3646 times)

newbie
Activity: 56
Merit: 0
July 16, 2011, 04:57:28 PM
#12
Hier der Code für eine Einzelrunde. Der Counter zählt die 1000 Miners ab (Ich wollte vorhin von 100 auf 1000 Miners erhöhen), macht die 1:10.000 Chance (Oh, ich ahtte vorhin 1:100.000 geschrieben, das war falsch, da fehlt ne 0 im Quelltext für) und wenn der Hash richtig ist (Zufallszahl=1) dann werden die Coins verteilt. Die Funktion wird einige Millionen mal aufgerufen und das Ergebnis ist dann eine gleichmäßig verteilung.

Code:
for p := 1 to 1000 do
  begin
  b := random(10000)+1;

  // Hash loggen
  inc(pools[miners[p].pool_id].hashes);
  inc(pools[miners[p].pool_id].round_hashes[p]);


  if b = 1 then // Chance 1:10000
    begin
    // Hash gefunden...
    hash_sum := pools[miners[p].pool_id].hashes;
    inc(pools[miners[p].pool_id].btc , 50);

    for o := 1 to 1000 do
      begin

      if pools[miners[p].pool_id].round_hashes[o] > 0 then
        begin
        // User O hat mit gesucht
        miners[o].btc := miners[o].btc + 50/hash_sum * pools[miners[p].pool_id].round_hashes[o];
        pools[miners[p].pool_id].round_hashes[o] := 0;
        end;
      end;
    pools[miners[p].pool_id].hashes := 0;

    end;
  end;


Zusätzlich werden die Miners noch regelmäßig auf die Pools verteilt mit
Code:
miners[ random(1000)+1 ].pool_id := random(10)+1;

Und zu guter letzt wird der letze Miner auf den Pool mit den wenigsten Hashes gesetzt. In meinem Beispiel die letzen zwei, ich wollt sehen, wie sich das ganze verhält wenn mehr als 1 Miner wechselt.

Code:
for p := 1 to 10 do
  begin
  if pools[p].hashes < hashes then
    begin
    hashes := pools[p].hashes;
    mh := p;
    end;
  end;
if mh > -1 then
  begin
  for o := 1000 downto 999 do
    begin
    miners[o].pool_id := mh;
    end;
  end;
end;
newbie
Activity: 56
Merit: 0
July 16, 2011, 04:48:50 PM
#11
@adaman: Eine echte "Rechnung" ist mir zu aufwendig. Denn es gibt dabei verschiedend große Pools, verschiedend starke Miner, Miner die nicht 24h Online sind, usw, usw, usw.... Daher ist meine Rechnung ganz zufällig gewesen. 10 Pools, 100 Miner, 1:100.000 Wahrscheinlichkeit, daß ein Miner den echten Hash findet.
hero member
Activity: 672
Merit: 500
July 16, 2011, 02:15:50 PM
#10
ALSO ICH FAND HIPHOPPER SCHON IMMER BLÖD xD
member
Activity: 84
Merit: 10
July 16, 2011, 12:57:36 PM
#9

...

Warum ist das so:
- Ein Block wird per Zufall gefunden. Er kann also schon nach einem Hash oder aber auch erst nach Millionen von Hashes gefunden werden. Wenn man in "Bitcoins pro Tag" rechnet, hat der schnelle Block mehr Coins eingesplielt als der Millionen-Block, da beide 50 Coins ergeben aber einer z.B. eine Sekunde brauche und der andere z.B. eine Woche. Natürlich weiß man nicht im Voraus, wann der Pool für den man Minet den Block errechnet, aber es ist logisch, daß irgend ein Pool irgenwann mal einen Block sehr schnell errechnen wird und dann die Auszahlung auf die Zeit gesehen sehr hoch ist. Wechselt man also immer zu dem Pool, der gerade eine neue Runde anfängt, bekommt man immer sehr viel Geld, wenn ein Pool ein Block schnell errechnet hat. Dafür bekommt man weniger Geld, wenn es länger dauert, und man eh weniger bekommt.


Ergebnis in Zahlen:
Hat man 10 Pools, 100 Miner und 1 Poolhopper, dann macht dieser Poolhopper das 2,5-Fache an Gewinn in Bezug auf alle anderen Miner.


Mir ist deine "Rechnung" beim besten Willen nicht schlüssig. Eventuell ändert sich das wenn du deine These mal mit richtigen Formeln und Rechenbeispielen unterlegst. Anderenfalls ist das nur eine Behauptung und kein Beweis. Einen Faktor von 2,5 halte ich selbst bei wohlwollender Schätzung für absolut utopisch,

Quote

...

Problem:
Wenn alle hoppen, dann "sterben" die Runden aus, weil alle großen Miner abhauen wenn es zu lange dauert und keiner macht weiter.


Ebenfalls für mich nicht nachvollziehbar. Habe ich im einfachsten Falle zwei Pools und alle hoppen ständig hin und her werden trotz allem Blöcke gefunden. Dem Hashing-Algorithmus ist es völlig egal in welchem Pool ich mich gerade befinde. Das ähnelt einer Lotterie. Ich muss nicht erst so und soviele Hashes abliefern um einen Block in einem neuen Pool zu finden. Mit meinen knapp 850 MH/s errechne ich nach durchschnittlich 91,5 Tagen, bei aktueller Difficulty, einen Block. Springe ich also stündlich zwischen beiden Pools hin und her errechnen meine Worker nach den 91,5 Tagen eventuell einen Block. Der wird dann dem Pool gutgeschrieben in dem ich mich gerade befinde. Das gillt für alle Hopper. Die Runden sterben nicht aus. Blöcke werden mit oder ohne Hopper immer von irgendjemand gefunden.

Wenn ich meinen Ertrag von Slush , Deepbit und nun btc.x8s.de vergleiche komme ich immer ungefähr auf den selben durschnittlichen Wert den ich hier ermitteln kann.

http://www.alloscomp.com/bitcoin/calculator.php

Der Ertrag hängt immer nur von deiner Hashrate ab. Bist du in einem kleinen Pool dauern die Runden länger. Dafür ist dein Ertrag pro Runde entsprechend größer da er unter weniger Minern aufgeteilt wird. Das selbe gilt auch für einen Hopper da das "Glück" über alle Pools statistisch gleich verteilt ist. Springt ein Hopper immer zu einem neuen Pool wenn dieser gerade eine neue Runde beginnt kann er im voraus nicht wissen ob die Runde kurz oder lang ist. Er ist damit vom selben Zufall abhängig wie alle anderen. Da er sich den Pool mit dem meisten "Glück" auch nicht raussuchen kann. Statistisch betrachtet rechnet der Hopper damit, über einen längeren Zeitraum betrachtet, verhältnimäßig gesehen an genau sovielen langen und kurzen Blöcken wie alle anderen.
member
Activity: 98
Merit: 10
July 16, 2011, 12:33:31 PM
#8
Raulo kommt auf einen maximalen Vorteil von 28%

Das bezieht sich glaube ich auf den Vorteil, wenn man bei genau einem proportionalen Pool mitmacht und sobald dieser über 43% difficulty shares erreicht hat, auf Solo wechselt. Oder so ähnlich.

Wenn man hingegen viele Pools zur Auswahl hat, kann der Gewinn auch ansteigen, nehme ich an.
newbie
Activity: 56
Merit: 0
July 16, 2011, 11:51:47 AM
#7
Der Vorteil ist Abhängig von der Anzahl der Pools und der Anzahl der Miner. Und mein Verhältnis (10 Pools, 100 Miners) ist doch recht schlecht gewählt.

Außerdem geht mein Programm davon aus, daß der Miner sofort weiß, wann ein Pool einen Hash gefunden hat. In Echt wird der Miner das ggf. nur mit Zeitverzögerung erfahren.

Des Weiteren habe ich den Vorteil Non-Hopper zu Hopper angegeben. Der Vorteil zwischen Nicht-Hoppen und Hoppen ist auch kleiner.

Zu guter letzt, sinkt der Vorteil auch noch, je mehr Leute mit machen.

Prozentzahlen lassen sich also nur dann vergleichen, wenn man gleich rechnet. Zu beachten ist auch, daß "Faktor 2,5"  das gleiche sind wie +150% Gewinn, also nicht +250% Gewinn.
member
Activity: 76
Merit: 10
July 16, 2011, 11:09:08 AM
#6

Pool-Hopping:
- Ein Miner wechselt immer zu dem Pool, welcher die wenigsten Hashes in der aktuellen Runde hat.
- Dieser Miner hat am Ende die 2,5-Fachen Bitcoins auf dem Konto


Raulo kommt auf einen maximalen Vorteil von 28%
member
Activity: 98
Merit: 10
July 16, 2011, 06:36:48 AM
#5
Gut, dass du das mal ausprobiert hast. Vielleicht glauben es jetzt noch ein paar Leute mehr. Smiley
sr. member
Activity: 742
Merit: 250
July 16, 2011, 06:32:54 AM
#4
jo, 2).
newbie
Activity: 56
Merit: 0
July 16, 2011, 04:43:38 AM
#3

Was? NoPaste? Ist das Dein Ernst? Das ich nicht lache....

1) Zeige mir doch mal, wo ich angeblich abgeschrieben habe.
2) Möchtest Du Quelltext der Scripte?
sr. member
Activity: 742
Merit: 250
July 15, 2011, 07:30:58 PM
#2
newbie
Activity: 56
Merit: 0
July 15, 2011, 03:04:56 PM
#1
Auch wenn andere Pool-Hopping abneigen möchte ich mal mein Rechenergebnis posten. Das Ergebnis ist ausgerechnet und nicht Live mit Pools ausprobiert.


Grundsätze:
- Eine Software rechnen das Mining als "Test" durch
- Es gibt 10 Pools
- Es gibt 100 (gleich starke) Miner
- Pro "Rechen-Schritt" hat jeder Miner eine Chance von 1/10000 einen Block zu knacken
- Pro "Rechen-Schritt" wechselt ein Miner den Pool per Zufall.


Ergebnis:
- Jeder Pool erminet gleich viele Bitcoins
- Jeder Miner erminet gleich viele Bitcoins


Pool-Hopping:
- Ein Miner wechselt immer zu dem Pool, welcher die wenigsten Hashes in der aktuellen Runde hat.
- Dieser Miner hat am Ende die 2,5-Fachen Bitcoins auf dem Konto


Warum ist das so:
- Ein Block wird per Zufall gefunden. Er kann also schon nach einem Hash oder aber auch erst nach Millionen von Hashes gefunden werden. Wenn man in "Bitcoins pro Tag" rechnet, hat der schnelle Block mehr Coins eingesplielt als der Millionen-Block, da beide 50 Coins ergeben aber einer z.B. eine Sekunde brauche und der andere z.B. eine Woche. Natürlich weiß man nicht im Voraus, wann der Pool für den man Minet den Block errechnet, aber es ist logisch, daß irgend ein Pool irgenwann mal einen Block sehr schnell errechnen wird und dann die Auszahlung auf die Zeit gesehen sehr hoch ist. Wechselt man also immer zu dem Pool, der gerade eine neue Runde anfängt, bekommt man immer sehr viel Geld, wenn ein Pool ein Block schnell errechnet hat. Dafür bekommt man weniger Geld, wenn es länger dauert, und man eh weniger bekommt.


Ergebnis in Zahlen:
Hat man 10 Pools, 100 Miner und 1 Poolhopper, dann macht dieser Poolhopper das 2,5-Fache an Gewinn in Bezug auf alle anderen Miner.


Fazit:
Hopping lohnt sich immer für den Hopper. Nur es lohnt sich nicht für die, die nicht Hoppen.


Problem:
Wenn alle hoppen, dann "sterben" die Runden aus, weil alle großen Miner abhauen wenn es zu lange dauert und keiner macht weiter.


End-Fazit:
Hopping ist egoistisch und zerstzört alles, wenn alle es machen würden. Da aber nie alle Hoppen werden, machen einige mehr andere weniger Gewinn. Die User werden zu Pools gehen, wie etwas gegen Pool-Hopping gemacht haben.




Jump to: