In einer Getwork-Anfrage sendet bitcoind ein Ziel, das dem Bitwert des aktuellen Blocks entspricht. Senden die großen Pools dasselbe Ziel, wie man es von Bitcoin erwarten würde, Schwierigkeitsgrad „1“ oder vielleicht etwas anderes?
Ich habe gerade einen Miner gestartet, der sich mit dem Slush-Pool verbindet . Die getwork
von meinem Miner gesendete wurde mit folgendem beantwortet:
{"id": "1",
"result": {"hash1": "00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000",
"data": "00000001c5993e03c08cea1b78a2190865f68698c069a8033d60e5e70000082a00000000e0884a966424aac62b4997dc0bae1c60fab2ba12887fa842f07c9cacaf24b4534f3b53931a0c290b00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000",
"midstate": "390b85042008bac15b6ce310d791c8612610a0c5ee441b252ee6abee70bf742a",
"target": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000"
},
"error": null
}
Das Ziel, das es mir gegeben hat, ist 64 Hexadezimalstellen lang. Das sind ungefähr 2^256 und damit größer als das maximale Ziel von 2^(256-32)-1. Dann wurde mir klar, dass das Ziel „Little-Endian“ ist, was bedeutet, dass es Byte für Byte rückwärts ist. Umkehren ergibt:
00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
das ist genau 2^(256-32)-1, das maximale Ziel.
Slush's Pool fordert mich also zumindest auf, Blöcke der Schwierigkeit 1 zu lösen.
Ich weiß , dass P2Pool den Schwierigkeitsgrad höher einstellt, sodass etwa alle 10 Sekunden Aktien in der P2Pool-Sharechain gefunden werden. Um dies zu erreichen, ist es derzeit schwierig 609.82
, Arbeit zu vergeben, aber es ändert sich alle paar Sekunden, basierend auf der jüngsten Rate, mit der P2Pool-Aktien gefunden werden.
Edit: Ich habe gerade nachgesehen und es stellt sich heraus, dass ich falsch liege. Hier ist eine getwork
von der P2Pool-Instanz, die ich ausführe:
{"error": null,
"jsonrpc": "2.0",
"id": 0,
"result": {"hash1": "00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000",
"target": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000",
"submitold": true,
"identifier": "15578",
"data": "000000011e90271e3071e27e4b16142162e54a68776176deeef5fe6e000001a800000000534e460eb3798f9d4149c56dddf486610512007201745fefd7661cedbde821fa4f3b5c461a0c290b00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000",
"midstate": "acb6f89399060ab343bbd17e3a6cccb89c2211af189bec8da15284a1d5e87b29"
}
}
Beachten Sie, dass das Ziel dasselbe ist wie bei Slush's Pool. Es stellt eine Schwierigkeit von 1 dar. Der Miner denkt also, dass er nach Aktien der Schwierigkeit 1 sucht, aber P2Pool lehnt jede Aktie ab, die der Miner einreicht und die eine Schwierigkeit von weniger als 609.82
hat, oder was auch immer die Schwierigkeit des Pools zu diesem Zeitpunkt ist.
Die meisten Pools definieren ihren Zielwert (Mindestwert, der erforderlich ist, um einen „Anteil“ zu verdienen) wie folgt:
T = 2 ** (256 - 32) - 1
= 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Das Bitcoin-Protokoll definiert eine Schwierigkeit von 1 als Ziel für:
D = 0xffff * 2**208
= 0x00000000ffff0000000000000000000000000000000000000000000000000000
Sie sind nahezu gleich:
T/D = 1.0000152590218967
Das genaue Ziel, das zum Verdienen von Anteilen verwendet wird, könnte auf eine größere Zahl festgelegt werden, aber das würde die Anzahl der an den Server gesendeten Getwork-Anfragen erhöhen, da Anteile leichter zu finden wären. Beachten Sie, dass Sie, wenn Sie die Größe des Ziels verringern, die Wahrscheinlichkeit verringern würden, JEGLICHE gültige Freigaben für einen bestimmten Block-Header zu finden (es sei denn, Sie erlauben, sowohl den Zeitstempel als auch die Nonce zu ändern). So wie es aussieht, ist die erwartete Anzahl von Anteilen, die pro Getwork-Anfrage gefunden werden, ungefähr 1 (wenn das Ziel 32 führende Null-Bits hat).
Pieter Wuille
Chris Moore
Pieter Wuille
Chris Moore
Pieter Wuille