Roal Geschrieben 13. Dezember 2019 Teilen Geschrieben 13. Dezember 2019 Guten Abend, ich programmiere selber schon länger in verschiedenen Programmiersprachen und wollte nun selber einen eigenen Programmieren. Das ganze sehr einfach gehalten, sodass kein Pool support bei ist (eventuell brauche ich aber doch einen, da ich nicht die bitcoin chain geladen habe, oder ich weiche auf einen altcoin aus). Das ganze würde als test für mich dienen und mich würde es interessieren, ob ich an die Geschwindigkeit von bekannten minern komme. Wenn ich es richtig verstehe muss ich doch nur die JSON Daten anfordern, konvertieren und diese hashen. Dementsprechend immer die nounce erhöhen und schauen, ob ich genug Nullen am Anfang von dem sha256 string habe. Sonst das ganze wieder. Weiter unten sind zwei links, bei denen ich mich ein bisschen erkundigt habe. Dort ist sogar ein stratum support mit bei, aber alles in python und ich weiß nicht, ob dies die beste Lösung ist, da die meisten miner in C/C++ laufen. Dies sollte auch schneller sein als python. Vielleicht ist ja ein Dev oder Leute, die sich mit dem mining/programmieren auskenne da die mir helfen können. Danke schonmal. http://www.righto.com/2014/02/bitcoin-mining-hard-way-algorithms.html https://github.com/philipperemy/my-first-bitcoin-miner Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 13. Dezember 2019 Teilen Geschrieben 13. Dezember 2019 (bearbeitet) vor 40 Minuten schrieb Roal: Vielleicht ist ja ein Dev oder Leute, die sich mit dem mining/programmieren auskenne da die mir helfen können. Wo bei denn? Du hast keine Frage gestellt. Mach es doch einfach so, wie du geschrieben hast, das schaut ja erst mal gut aus. Beim programmieren kann ich dir nur in Java helfen. Die Syntax beim BTC Mining ist gut dokumentiert und nicht all zu komplex. Bearbeitet 13. Dezember 2019 von MixMax Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 vor 9 Minuten schrieb Adriana Monk: Nimm Stackoverflow, da findest Du bessere Experten. Da löse ich meine Probleme auch immer. Ach, die kennen sich wohl besser mit dem BTC-Mining aus? Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 Programmieren in verschiedenen Sprachen kann er ja schon. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 Und ich für Java, war nen Fehler Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PeWi Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 1 hour ago, MixMax said: Und ich für Java, war nen Fehler Ich bin einfach neugierig: Warum? Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 vor 46 Minuten schrieb PeWi: Ich bin einfach neugierig: Warum? Die Akzeptanz und Verbreitung ist nicht mer so doll. Viele API's und Treiber haben gar keine Java Schnittstelle mehr. Zu dem hat Java üble Einschränkungen um die sich keiner mehr kümmert. Z.B. gibt es keine 64bit Integer und damit nur sehr kurze und eingeschränkte 32bit Arrays. 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PeWi Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 29 minutes ago, MixMax said: Die Akzeptanz und Verbreitung ist nicht mer so doll. Viele API's und Treiber haben gar keine Java Schnittstelle mehr. Vor knapp 20 Jahren hatte ich beruflich ein paar Jahre mit Java zu tun, ich war auch nicht ganz glücklich damit. Vor allem hatte ich das Gefühl, dass Java und sein Umfeld in rasendem Tempo komplizierter und komplexer wurden. Bei den EJBs hat mich dann endgültig die Begeisterung verlassen, und ich war nicht unglücklich, dass sich unsere Wege trennten. Dass Akzeptanz und Verbreitung von Java sinken, hätte ich nicht gedacht. Kann man mal sehen, auch "große Namen" sind nicht gefeit ... 34 minutes ago, MixMax said: Zu dem hat Java üble Einschränkungen um die sich keiner mehr kümmert. Z.B. gibt es keine 64bit Integer und damit nur sehr kurze und eingeschränkte 32bit Arrays. Oops, das ist heutzutage natürlich übel. Spielst du mit dem Gedanken, auf eine andere Sprache zu wechseln? Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 (bearbeitet) vor 7 Minuten schrieb PeWi: Spielst du mit dem Gedanken, auf eine andere Sprache zu wechseln? Oh ja, und ich hab schon damit begonnen. Je nach dem wie tief ma da drinn steckt, ist das ne Menge Arbei. Es gibt unglaublich viele Bibliotheken mit nen Haufen Methoden die man alle gelernt hat, ist echt nen Trauerspiel 😞 Bearbeitet 14. Dezember 2019 von MixMax 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 Gerade eben schrieb Adriana Monk: Und wenn Du Python nimmst, weisst Du, dass da hinten und vorne nichts zusammenpasst. Ich werde meine C Kentnisse ausbauen und mich danach an C++ ganz gescheidig ranpirschen. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 Aber erst mal will ich mein BTClib3001 nocht zu ende bauen 😎 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PeWi Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 1 hour ago, Adriana Monk said: Und wenn Du Python nimmst, weisst Du, dass da hinten und vorne nichts zusammenpasst. Das Problem hatte ich nie. Kann es sein, dass deine Erfahrungen mit unzusammenpassendem Python noch aus der Umbruchzeit von Python2 nach Python 3 stammen? Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Roal Geschrieben 14. Dezember 2019 Autor Teilen Geschrieben 14. Dezember 2019 Hier geht ja gut was ab Also das von mir war eine indirekte Frage, wenn daran was falsch ist gerne korrigieren. Und ja ich muss zustimmen, dass meiner Meinung nach Java nix mehr Wert ist und nun aussterben wird. Nur leider will das mein Professor nicht verstehen und Unterrichtet das 😕 Von Matlab bin ich auch nicht überzeugt.. Arrays die bei 1 starten, alles ist eine Matrix, komische Syntax. Ist nicht so meins, muss ich aber wegen meinem Studium auch durch. Python ist sehr interessant, da es alles kann und das sehr performant. Ich bleibe aber bei meinen C Sprachen sowie Javascript + die ganzen Frameworks, da es immer gefragt ist. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PeWi Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 1 hour ago, MixMax said: Ich werde meine C Kentnisse ausbauen und mich danach an C++ ganz gescheidig ranpirschen. Heutzutage noch mit C? 😉 Ich habe viele Jahre in C programmiert und hätte auch bei der Entwicklung meines ersten Bots zum vertrauten C greifen wollen. Was mich davon abgebracht hat, war, dass ich auf die Schnelle keine einfache Lib finden konnte, mit der ich unaufwändig HTTPS-Abfragen hätte machen können. Bei "heutigen" Sprachen gehört das dagegen zur Grundausstattung, weswegen ich dann letztlich bei Python gelandet bin. Was mich inzwischen an Python nervt, ist zum einen die schwache Geschwindigkeit bei eigener Arithmetik und die aufwändige Weitergabe von Programmen (ganz extrem, wenn man den Source nicht offenbaren will). Deswegen liebäugle ich seit Monaten mit Go als Mittelding zwischen C und Python, aber voller Performance und einfachster Weitergabe (ein Exe - fertig). Nachteil ist, dass es bei Go weniger Libs für Gebiete außerhalb der Standardumgebung gibt als für Python (z.B. Statistik). Rust scheint auch interessant zu sein. Vor allem das Prinzip des Besitzens von Variablen, wodurch bereits der Compiler nahezu alle Speicherfehler entdecken können soll - das hat mir bei C schon öfter schmerzlich gefehlt ... 😂 Nochmal zu C und C++ - ich habe schon öfter gelesen, dass eine C-Vorprägung hinderlich für gutes, modernes C++ sein soll. (Mangels eigener C++-Erfahrungen kann ich das nicht beurteilen.) Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PeWi Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 3 minutes ago, Roal said: Python ist sehr interessant, da es alles kann und das sehr performant. Dem ersten Teil stimme ich gerne zu. Bei zweiten nur, wenn du die Aufgaben an Libs o.ä. delegieren kannst - wenn du die selber in Python ausprogrammieren musst, ist die Geschwindigkeit oft nicht so toll bis mau verglichen mit echten Compilersprachen. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 14. Dezember 2019 Teilen Geschrieben 14. Dezember 2019 (bearbeitet) vor 32 Minuten schrieb Roal: Von Matlab bin ich auch nicht überzeugt.. Arrays die bei 1 starten, Um Himmels willen, was ist das denn für den Blödsinn 😂 vor 28 Minuten schrieb PeWi: Heutzutage noch mit C? 😉 Ich habe viele Jahre in C programmiert und hätte auch bei der Entwicklung meines ersten Bots zum vertrauten C greifen wollen. Was mich davon abgebracht hat, war, dass ich auf die Schnelle keine einfache Lib finden konnte, mit der ich unaufwändig HTTPS-Abfragen hätte machen können. Bei "heutigen" Sprachen gehört das dagegen zur Grundausstattung, weswegen ich dann letztlich bei Python gelandet bin. Oh ja, du glaubst nicht wie viele Projekte noch in C sind und wenn man da mal reinschauen will, oder was anpassen will, ist das schon nützlich wenn man bissle C lesen kann. C ist auch für ganz grundlegende Hardware nahe Berechnungen nützlich. Z.B. wenn man ne extrem schnelle Hashfunktion schreiben möchte, SHA256 zB. (Hm wer wollte so was hier haben? ) Also immer wenn es um Performance geht, würde ich mich für C entscheiden. Viele Treiber sind auch noch in C und wenn man die einbinden will, kann man da einfacher mit C ran. Und natürlich ist mir klar, wo C endet, komplexe Objektorientierte Projekte würde ich damit auch nicht beginnen. vor 28 Minuten schrieb PeWi: Nochmal zu C und C++ - ich habe schon öfter gelesen, dass eine C-Vorprägung hinderlich für gutes, modernes C++ sein soll. (Mangels eigener C++-Erfahrungen kann ich das nicht beurteilen.) Kann ich auch nicht beurteilen, glaub ich auch nicht und geht mir am A.... vorbei. Bearbeitet 14. Dezember 2019 von MixMax 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Roal Geschrieben 14. Dezember 2019 Autor Teilen Geschrieben 14. Dezember 2019 vor 31 Minuten schrieb PeWi: Heutzutage noch mit C? 😉 Wenn man einen Atmega vor sich liegen hat, wirst du C benutzen. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Roal Geschrieben 14. Dezember 2019 Autor Teilen Geschrieben 14. Dezember 2019 vor einer Stunde schrieb Adriana Monk: Das muss jeder selber entscheiden. Im Bereich Trading ist Matlab das Tool der Wahl, besonders wenn man viel Research macht. Die Sprache ist dazu gemacht, Matrix schnell zu verwalten. Auch sind die Toolboxen unschlagbar. Für mich ist es halt im ersten moment eine komische Syntax und viel zu viel, als Student haben wir alles, was es dafür gibt Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PeWi Geschrieben 15. Dezember 2019 Teilen Geschrieben 15. Dezember 2019 (bearbeitet) 11 hours ago, MixMax said: Oh ja, du glaubst nicht wie viele Projekte noch in C sind Im wissenschaftlichen Umfeld sollen noch diverse Fortran-Programme herumgeistern, so wie viele wesentliche Teile bei Banken immer noch in Cobol sind. Insofern glaube ich das mit C sofort. 11 hours ago, Roal said: Wenn man einen Atmega vor sich liegen hat, wirst du C benutzen. Natürlich. Mich - als Laien - wundert sowieso, dass man so kleine Dinger wie einen Arduino heutzutage mit Python programmiert/programmieren kann. Bearbeitet 15. Dezember 2019 von PeWi Tippfehler Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 15. Dezember 2019 Teilen Geschrieben 15. Dezember 2019 Selbst Teile von Bitcoin-Core sind in C programmiert. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PeWi Geschrieben 15. Dezember 2019 Teilen Geschrieben 15. Dezember 2019 30 minutes ago, MixMax said: Selbst Teile von Bitcoin-Core sind in C programmiert. C gefällt mir nach wie vor. Ich mag es nur nicht mehr für Aufgaben verwenden, bei denen ich nach diversen Libs suchen müssten, deren "Tätigkeitsfeld" bei moderneren Sprachen bereits in der Standard-Runtime mitgeliefert wird. 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 15. Dezember 2019 Teilen Geschrieben 15. Dezember 2019 vor 4 Minuten schrieb PeWi: C gefällt mir nach wie vor. Ich mag es nur nicht mehr für Aufgaben verwenden, bei denen ich nach diversen Libs suchen müssten, deren "Tätigkeitsfeld" bei moderneren Sprachen bereits in der Standard-Runtime mitgeliefert wird. Ganz genau so sehe ich es auch. 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 15. Dezember 2019 Teilen Geschrieben 15. Dezember 2019 vor 8 Minuten schrieb Adriana Monk: Ich kenne Leute, die alle drei Monate 10M Euro auf den Tisch legen, nur um eine Microsekunde schneller zu sein. Jetzt hör doch mal bitte auf, mit dem Blödsinn immer. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 15. Dezember 2019 Teilen Geschrieben 15. Dezember 2019 (bearbeitet) Es bezog sich eher auf "ich kenne" und die 10M Euro. Das mit den High Frequency Trading ist mir bekannt. Wie viel Geld, da für wirklich ausgegeben wird, weis niemand. Mich stört eigenlich nur diese ständige Angeberrei ab und an. Bearbeitet 15. Dezember 2019 von MixMax Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MixMax Geschrieben 15. Dezember 2019 Teilen Geschrieben 15. Dezember 2019 (bearbeitet) @Roal Um mal was zum Thema beizutragen. Hier ist nen Block Nr: 125552 Raw Block: 0100000081cd02ab7e569e8bcd9317e2fe99f2de44d49ab2b8851ba4a308000000000000e320b6c2fffc8d750423db8b1eb942ae710e951ed797f7affc8892b0f1fc122bc7f5d74df2b9441a42a146950401000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0804f2b9441a022a01ffffffff014034152a01000000434104d879d5ef8b70cf0a33925101b64429ad7eb370da8ad0b05c9cd60922c363a1eada85bcc2843b7378e226735048786c790b30b28438d22acfade24ef047b5f865ac000000000100000001ad6279669bcc8e3003267d97c9e364a9835ea7a5b53871d057783ef96f468d73000000008c4930460221009805aa00cb6f80ca984584d4ca40f637fc948e3dbe159ea5c4eb6941bf4eb763022100e1cc0852d3f6eb87839edca1f90169088ed3502d8cde2f495840acac69eefc9801410486477e6a23cb25c9a99f0c467c6fc86197e718ebfd41d1aef7cc3cbd75197c1f1aaba985b22b366a0729ccb8aa38277809d6d218cf4077ac9f29a953b5435222ffffffff0280f0fa02000000001976a9146f31097e564b9d54ebad662d5c4b5621c18ff52388ac007ddaac000000001976a9147228033b48b380900501c39c61da4ab453ca88e888ac0000000001000000035a19f341c42071f9cec7df37c4853c95d6aecc95e3bf19e3181d30d99552b8c9000000008a473044022025bca5dc0fe42aca5f07c9b3fe1b3f72113ffbc3522f8d3ebb2457f5bdf8f9b2022030ff687c00a63e810b21e447d3a57b2749ebea553cab763eb9b99e1b9839653b014104469f7eb54b90d90106b1a5412b41a23516028e81ad35e0418a4460707ae39a4bf0101b632260fb08979aba0ceea576b5400c7cf30b539b055ec4c0b96ab00984ffffffff5b72d3f4b6b72b3511bddd9994f28a91cc03212f200f71b91df13e711d58c1da000000008c493046022100fbef2589b7c52a3be0fd8dd3624445da9c8930f0e51f6a33d76dc0ca0304473d0221009ec433ca6a9f16184db46468ff39cafaa9643021e0c66a1de1e6f9a612092790014104b27f4de096ac6431eec4b807a0d3db3e9f9be48faab692d5559624acb1faf4334dd440ebf32a81506b7c49d8cf40e4b3f5c6b6e99fcb6d3e8a298174bd2b348dffffffff292e94738851718433a3168e43cab1c6a811e9a0f35b06b6cec60fea9abe0f43010000008a4730440220582813f2c2d7cbb84521f81d6c2a1147e5296e90bee05f583b3df108fdac72010220232b43a2e596cef59f82c8bfff1a310d85e7beb3e607076ff8966d6d374dc12b014104a8514ca51137c6d8a4befa476a7521197b886fceafa9f5c2830bea6df62792a6dd46f2b26812b250f13fad473e5cab6dcceaa2d53cf2c82e8e03d95a0e70836bffffffff0240420f00000000001976a914429e6bd3c9a9ca4be00a4b2b02fd4f5895c1405988ac4083e81c000000001976a914e55756cb5395a4b39369d0f1f0a640c12fd867b288ac000000000100000002c8a8356402b9271ae73116b3a613d0a489aa3441a72d4b53a98eb7837584e17a010000008a4730440220771ae3ed7f2507f5682d6f63f59fa17187f1c4bdb33aa96373e73d42795d23b702206545376155d36db49560cf9c959d009f8e8ea668d93f47a4c8e9b27dc6b330230141048a976a8aa3f805749bf62df59168e49c163abafde1d2b596d685985807a221cbddf5fb72687678c41e35de46db82b49a48a2b9accea3648407c9ce2430724829ffffffffa4f0111c9248f7360b6e3fed4856563eb0aa82b10303c14befae96ed4818c7fe010000008c49304602210087fc57bd3ce0a03f0f7a3300a84dde8d5eba23dfdc64b8f2c17950c5213158d102210098141fbd22da33629cfc25b84d49b397144e1ec6287e0edd53dbb426aa6a72ed014104dee3ef362ae99b46422c8028f900a138c872776b2fcffed3f9cd02ee4b068a6df516a50249ae6d8f420f9ce19cdfc4663961296a71cd62b04a2c8a14ff89b1d0ffffffff01c0e1e400000000001976a914e43f7c61b3ef143b0fe4461c7d26f67377fd207588ac00000000 Der Blockhash ist: 00000000000000001e8d6829a8a21adc5d38d0a473b144b6765798e61f98bd1d Und so geht es : >>> hashlib importieren >>> header_hex = ("01000000" + "81cd02ab7e569e8bcd9317e2fe99f2de44d49ab2b8851ba4a3080000000000" + "e320b6c2fffc8d750423db8b1eb942ae710e951ed797f7affc8892b0f1fc122b" + "c7f5d74d" + "f2b9441a" + "42a14695") >>> header_bin = header_hex.decode ('hex') >>> hash = hashlib.sha256 (hashlib.sha256 (header_bin) .digest ()). digest () >>> hash.encode ('hex_codec') "1dbd981fe6985776b644b173a4d0385ddc1aa2a829688d1e00000000000000" >>> Hash [:: - 1] .encode ('hex_codec') "00000000000000001e8d6829a8a21adc5d38d0a473b144b6765798e61f98bd1d" Ist hier genau beschrieben für diese Beispiel: https://translate.google.com/translate?hl=de&sl=en&u=https://en.bitcoin.it/wiki/Block_hashing_algorithm&prev=search In Java sind das übrigens nur die paar Zeilen hier: public byte[] getBlockHash() { byte[] h = new byte[80]; System.arraycopy(blk, 0, h, 0, 80); h = Calc.getHashSHA256(Calc.getHashSHA256(h)); Convert.swapBytes(h); return h; } Und die Kurzversion ist: Hash einfach 2 mal die ersten 80Bytes mit SHA256 und mach danach nen ByteSwap. Fertig. Bearbeitet 15. Dezember 2019 von MixMax 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden