Show Posts
|
Pages: [1] 2 »
|
Hi I'm talking about the server side of the stratum mining. The bug is in the reference code itself (at least I would say it is the reference because it was the first one). https://github.com/slush0/stratum-miningDenis
|
|
|
Hi
The Stratum Mining Software has a serious bug. It allows a Miner to send the same share several times without the duplicate check detecting it. With clever programming this can be more than 1000 shares that it should be in the worst case. Normally it is possible to get eight times the shares.
The problem is, that the duplicate check works with strings (nonce, extranonce...) and does check them case sensitive. So the exploiter simply sends his values in all variations with small and big letters (because it is in hex)
example:
03:51:47.760512 IP 87.203.91.128.28348 > xxx.xxx.11.163.3333: Flags [P.], seq 535:1070, ack 216, win 64185, length 535 .m.g..h..P...kn.. {"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbf", "5d82727c"]} {"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbf", "5d82727C"]} {"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbf", "5D82727c"]} {"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbf", "5D82727C"]} {"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbF", "5d82727c"]}
03:51:47.859746 IP xxx.xxx.11.163.3333 > 87.203.91.128.28348: Flags [.], ack 1070, win 65535, length 0 .n..h..m.i.P........ 03:51:47.951332 IP xxx.xxx.11.163.3333 > 87.203.91.128.28348: Flags [P.], seq 216:431, ack 1070, win 65535, length 215 .n..h..m.i.P....3..{"error": null, "id": 913, "result": true} {"error": null, "id": 913, "result": true} {"error": null, "id": 913, "result": true} {"error": null, "id": 913, "result": true} {"error": null, "id": 913, "result": true}
The diff for the fix looks like this:
file: stratum-mining/lib/template_registry.py
# Check for duplicated submit - if not job.register_submit(extranonce1_bin, extranonce2, ntime, nonce): + if not job.register_submit(extranonce1_bin, extranonce2.lower(), ntime.lower(), nonce.lower()): log.info("Duplicate from %s, (%s %s %s %s)" % \
The fix may be not complete though.
I understand that the pool owners and especially slush (his pool seems to have this fixed) do not share their hard work. But to not release this bugfix is not what the bitcoin community stands for.
If anyone appreciates this public disclosure you can show it here: 19c4bA6qHLjnWgYQmS9VuqwHuNT6jR5Atz
Denis, owner of the small but old pool btcmp.com
PS: the user which attacked my pool had the name "uphellper". Shame on You!
|
|
|
Hi
Also diff1 ist unabhängig von der aktuellen Geschwindigkeit des Bitcoin Netzes. Wenn ihr 4GH/s habt solltet ihr jede Sekunde ein Share finden. Wenn ihr nur 400MH/s habt dann halt alle 10 Sekunden usw.
Das ist aber alles nur statistisch, garantieren kann man das nicht. Das kann auch mal länger dauern oder aber auch schneller gehen. Im Durchschnitt ist es aber so wie oben beschrieben.
Denis
|
|
|
News Update: Wir haben jetzt auch Stratum und SSL support. Stratum wurde auch schon erfolgreich mit zwei Avalons getestet. Das Stratum unterstützt auch schon die VarDiff Methode. Einfach weiterhin bei z.B. cgminer http://rr.btcmp.com:8332 einstellen. Ein http-header sorgt für die Weiterleitung zum Stratum Port. Denis PS: Funktioniert bisher mit cgminer, bfgminer und poclbm reibungslos.
|
|
|
ok, alles klar
Was ich bei dir übrigens vermisse:
- die stales in %, dann müsste man selbst nicht rechnen ;-) - reset button /since reset spalte damit man Änderungen an seinen minern besser testen kann
das haben wir jetzt mal eingebaut. Die neueste Version ist nun im Appstore zu haben. Denis
|
|
|
Was ist eigentlich aus dem taz artikel geworden?
Ich kann da nix zu finden.
Denis
|
|
|
Da war letztens jemand im #btcmp channel der auch an einer Andriod app bastelte.
Aber das ist alles third-party, da kann ich nichts zu sagen ob und wann da was erscheinen wird.
Denis
PS: Für Windows hat da auch jemand ein Tool gemacht, aber da weiss ich auch nix weiter zu.
|
|
|
Na Infos bekommste auch im #btcmp channel oder per email an info@btcmp.comDenis
|
|
|
Hi
ich werde heute auch mal vorbeischauen. Wird aber eher so um 20:00 Uhr sein.
Dann kann man mich zu btcmp.com löchern.
Denis
|
|
|
Hi
wie ich erst jetzt entdeckt habe, ist unsere Änderung für den API-Support jetzt auch in GUIMiner aufgenommen worden.
Damit kann man den Kontostand sehen und auch eine Auszahlung auslösen.
Denis
|
|
|
Hi
Der Pool rennt jetzt auch mit PPS. Ausserdem hab ich den kompletten November und Dezember damit verbracht den Pushpool zu höchsten Leistungen zu tunen.
Denis
|
|
|
Hi
Es versucht ja eine Frau die restlichen BTC bei btcmp.com von opschinken zu bekommen.
Ist das überhaupt rechtens? Waren sie verheiratet (Trauschein?) und ist er wirklich tot (Sterbeurkunde)?
Das riecht alles sehr doll. Wenn ich die Frau währe, dann hätte ich anderes zu tun als ein paar mickrigen Dollar hinterherzurennen.
Denis
|
|
|
Hi
The stats are more or less fake right now to trick the poolhoppers.
Blocks will appear on the blacklist with a 60 confirmations delay.
Denis
|
|
|
Hi
Schaut euch mal das Tool AMDOverdriveCtrl an. Damit kann man bis auf 150MHz runtertakten.
Denis
|
|
|
Hi also bisher gabs noch niemanden der sich über fehlendes payout beschwert hat. Ok, einer hatte sich beschwert. Aber der hatte keine bitcoin-adresse eingetragen Ok, und dann gibt's noch einen der bis heute keine Auszahlung bekommen hat. Aber der hat versucht unseren payoutdaemon zu bescheissen, dieser fand das aber nicht witzig und hat das nicht überwiesen. Alles andere wurde immer sauber überwiesen. Wir überweisen sogar mit der Standardfee von 0.0005 damit die auch wirklich zeitnah bei euch ankommen. Und das sogar zu unseren kosten, da wird euch nichtmal was abgezogen (dafür behalten wir die Fee des generierten Blockes ein). denis
|
|
|
Ach ja,
und falls mal das payout nicht geht, dann macht euch keine sorgen. Wenn ihr den Button drückt wird euer payout in eine DB eingetragen. ein daemon checkt das jede minute und macht die payouts. Falls der mal nicht läuft wird das einfach später nachgeholt. Da geht nix verloren.
denis
|
|
|
Hi So, CCCamp2011 ist vorüber, da kann ich mich ja mal wieder melden. Mir ist eines aufgefallen in letzter Zeit. Die Leute die sich beschweren sind meistens die Poolhopper selbst. Was meint ihr wohl wieso die Stats 'verfälscht' angezeigt werden? Sorry, aber ihr nutzt die nicht-poolhopper aus, das ist cheaten auf kosten anderer. Da könnt ihr argumentieren wie ihr wollt. Auch der Grund wieso der Pool schwer erreichbar war ist durch einen Poolhopper verursacht worden. Der hatte einen proxy benutzt der fehlerhaft war und die Connections nicht ordentlich geschlossen hat. Da blieb dann nix mehr für andere übrig und alle mussten warten bis mal wieder eine Connection in den timeout läuft damit sie wieder frei ist. Hab den Pool jetzt so geändert, dass das kein Problem mehr sein sollte. Also um es nochmal klar zu sagen, die 15GH/s selbst waren nicht das problem, sondern die connections die er nicht geschlossen hat. Das war mehr oder weniger ein miniDoS. zu Leuten die angst haben, dass der pool einfach so verschwinden könnte: Ich habe den Pool beworben in Chaosradio 182 und ausserdem mehrmals in dem MobileMacs Podcast. Ich glaube, dass ich dadurch bekannt genug bin um nicht einfach so verschwinden zu können. denis PS: und ja, wir sind nicht perfekt und der pool kann auch mal down sein. nutzt einfach poclbm mit einem Backuppool und dann ist alles prima. oder falls ihr bei einem anderen pool seid nehmt einfach meinen als backuppool!
|
|
|
|