Pages:
Author

Topic: Amazon und schon wieder Mining (Read 272 times)

legendary
Activity: 1484
Merit: 1489
I forgot more than you will ever know.
April 25, 2020, 10:00:38 AM
#21
Du kannst die Ware auch an eine Packstation liefern lassen. Da weiß ich aber nicht, welche persönlichen Daten Amazon benötigt.


Kannst du alles mit falschen daten machen. Wird halt nur interessant wenn etwas mit der Lieferung falsch geht, oder mit Garantie bei manchen Marken die da ziemlich nervig sind.
Ich werde es aber auf jeden Fall so machen, sollte ich regelmässig mit BTC/Gutscheinen bestellen Smiley



Was ich an der Sache Gutscheine so interessant finde, ist das ich das ausschliesslich hier im DE-Bereich beobachte. In Frankreich gibt es gar keine reseller. Und wenn dann nur auf Nominalwert ohne Rabatt.
legendary
Activity: 1624
Merit: 2481
April 24, 2020, 03:43:51 PM
#20
Also kommt man deiner Meinung nach vom target zur Difficulty?

Bei der Berechnung des nötigen PoW kommt die Difficulty, soweit ich weiß, garnicht vor.
Das ist einfach nur ein Wert zur Veranschaulichung.



Ja, ich hatte das einfach von dir übernommen, deshalb hat sich hier ein Fehler eingeschlichen, mein Fehler.
Es gehört natürlich umgedreht, also:

new_difficulty = old_difficulty * (target_timespan / timespan)

Das wäre aber nicht das, was im source code steht:

Code:
    bnNew.SetCompact(pindexLast->nBits);
    bnNew *= nActualTimespan;
    bnNew /= params.nPowTargetTimespan;

1) Setzte bnNew auf old_target
2) old_target * timespan
3) (old_target * timespan) / target_timespan

Daraus ergibt sich:
bnNew = old_target * timespan / target_timespan

bnNew ist hier zweifelslos das Target.
legendary
Activity: 2534
Merit: 2144
https://t1p.de/6ghrf
April 24, 2020, 08:59:12 AM
#19
Wie kann ich denn bei Amazon "anonym" bezahlen?
Wenn ich die Ware bestelle muss ich doch meinen Namen angeben...
Anonym bezahlen ist etwas anderes als anonym bestellen  Wink
So gibt es keine Verbindung zu deinem Bankkonto. Die Bank weiß auch nicht, was du bezahlt hast.

Du kannst die Ware auch an eine Packstation liefern lassen. Da weiß ich aber nicht, welche persönlichen Daten Amazon benötigt.
legendary
Activity: 1232
Merit: 1247
April 24, 2020, 08:57:53 AM
#18
Das würde keinen Sinn machen.
Wenn das die Formel zur Difficulty sein sollte, bedeutet das, dass wenn die letzten 2016 Blöcke doppelt so lange gebraucht haben, wie eigentlich gewünscht (timespan = 2*target_timespan), die difficulty verdoppelt wird:
new_difficulty = old_difficulty * 2.

Das passt so aber nicht, die difficulty muss niedriger werden. Das Target muss größer werden.
Daher passt :
new_target = old_target * 2

Somit ergibt sich schlussfolgernd, dass da das Target, und nicht die Difficulty, berechnet wird.
Also kommt man deiner Meinung nach vom target zur Difficulty?
Das wäre mir jetzt aber neu.

Ja, ich hatte das einfach von dir übernommen, deshalb hat sich hier ein Fehler eingeschlichen, mein Fehler.
Es gehört natürlich umgedreht, also:

new_difficulty = old_difficulty * (target_timespan / timespan)

target_timespan ist das Ziel, also die zwei Wochen in Sekunden.
und timespan die Zeit der vergangenen 2016 Blöcke in Sekunden.
legendary
Activity: 1624
Merit: 2481
April 24, 2020, 08:37:31 AM
#17
Daraus ergibt sich die Formel:
Code:
new_target = old_target * (timespan / target_timespan)
Das ist der Algo zur Diff- Anpassung.
Daraus ergibt sich die Difficulty, nicht das target.
Und aus der Difficulty wird dann das target berechnet.

Dann ergibt sich daraus halt
Code:
new_difficulty = old_difficulty * (timespan / target_timespan)

und dann kommt man über:
Code:
new_target = max_target / new_difficulty
wieder auf das target.


Das würde keinen Sinn machen.
Wenn das die Formel zur Difficulty sein sollte, bedeutet das, dass wenn die letzten 2016 Blöcke doppelt so lange gebraucht haben, wie eigentlich gewünscht (timespan = 2*target_timespan), die difficulty verdoppelt wird:
new_difficulty = old_difficulty * 2.

Das passt so aber nicht, die difficulty muss niedriger werden. Das Target muss größer werden.
Daher passt :
new_target = old_target * 2

Somit ergibt sich schlussfolgernd, dass da das Target, und nicht die Difficulty, berechnet wird.


legendary
Activity: 1232
Merit: 1247
April 24, 2020, 08:17:47 AM
#16
Eigentlich wird die difficulty dazu garnicht benutzt.
Der Sinn der Difficulty ist es auf den target value zu kommen.
Sonst könnte man das target ja auch direkt nennen.

Daraus ergibt sich die Formel:
Code:
new_target = old_target * (timespan / target_timespan)
Das ist der Algo zur Diff- Anpassung.
Daraus ergibt sich die Difficulty, nicht das target.
Und aus der Difficulty wird dann das target berechnet.

Dann ergibt sich daraus halt
Code:
new_difficulty = old_difficulty * (timespan / target_timespan)

und dann kommt man über:
Code:
new_target = max_target / new_difficulty
wieder auf das target.
legendary
Activity: 1624
Merit: 2481
April 24, 2020, 07:33:49 AM
#15
Aber das target wird doch über die neu errechnete Difficulty bestimmt.

Eigentlich wird die difficulty dazu garnicht benutzt.
Die Funktion (https://github.com/bitcoin/bitcoin/blob/0.20/src/pow.cpp#L49) sieht so aus:

Code:
unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nFirstBlockTime, const Consensus::Params& params)
{
    if (params.fPowNoRetargeting)
        return pindexLast->nBits;

    // Limit adjustment step
    int64_t nActualTimespan = pindexLast->GetBlockTime() - nFirstBlockTime;
    if (nActualTimespan < params.nPowTargetTimespan/4)
        nActualTimespan = params.nPowTargetTimespan/4;
    if (nActualTimespan > params.nPowTargetTimespan*4)
        nActualTimespan = params.nPowTargetTimespan*4;

    // Retarget
    const arith_uint256 bnPowLimit = UintToArith256(params.powLimit);
    arith_uint256 bnNew;
    bnNew.SetCompact(pindexLast->nBits);
    bnNew *= nActualTimespan;
    bnNew /= params.nPowTargetTimespan;

    if (bnNew > bnPowLimit)
        bnNew = bnPowLimit;

    return bnNew.GetCompact();
}

Daraus ergibt sich die Formel:
Code:
new_target = old_target * (timespan / target_timespan)
legendary
Activity: 1232
Merit: 1247
April 24, 2020, 07:17:42 AM
#14
Die Änderung des target_value erfolgt über die gerade berechnete difficulty.
Quote
new_target = old_target / new_difficulty

Das neue Target wird wie folgt berechnet:
Code:
new_target = old_target * (time taken for the last 2016 blocks in seconds / 1209600 seconds)
Es wird jedoch nicht mit der difficulty multipliziert oder dividiert.
Aber das target wird doch über die neu errechnete Difficulty bestimmt.

Angenommen, die Hashrate blieb über 2 Wochen konstant und die Zeit zwischen den Blöcken lag bei exakt 10 Minuten => Es wird also nichts geändert.
Nach deiner Formel new_target = old_target / new_difficulty, müsste damit das neue target = das alte target ist, die neue difficulty 1 sein.
Und das kann nicht stimmen. Die Difficulty müsste sich einfach nicht ändern, was bedeutet sie müsste bei 14715214060656 bleiben.

X / 14715214060656  != X
Punkt für dich  Smiley
Dann eben new_target = max_target / new_difficulty

und max_target wäre dann das hard- coded target aus dem Genesis- Block 0x00ffff0000000000000000000000000000000000000000000000000000
legendary
Activity: 1624
Merit: 2481
April 24, 2020, 06:44:02 AM
#13
Die Änderung des target_value erfolgt über die gerade berechnete difficulty.
Quote
new_target = old_target / new_difficulty

Das neue Target wird wie folgt berechnet:
Code:
new_target = old_target * (time taken for the last 2016 blocks in seconds / 1209600 seconds)


Es wird jedoch nicht mit der difficulty multipliziert oder dividiert.
Das lässt sich auch ganz einfach ohne groß zu rechnen zeigen:

Angenommen, die Hashrate blieb über 2 Wochen konstant und die Zeit zwischen den Blöcken lag bei exakt 10 Minuten => Es wird also nichts geändert.
Nach deiner Formel new_target = old_target / new_difficulty, müsste damit das neue target = das alte target ist, die neue difficulty 1 sein.
Und das kann nicht stimmen. Die Difficulty müsste sich einfach nicht ändern, was bedeutet sie müsste bei 14715214060656 bleiben.

X / 14715214060656  != X

legendary
Activity: 1232
Merit: 1247
April 24, 2020, 06:14:15 AM
#12
Die ganze Zeit krieg ich erklärt der Hash muss höher sein als die Diff und nun das. Bin echt verwirrt.
Alle 2016 Blöcke wird die Difficulty angepasst.
Das wird deshalb gemacht, damit die Blockzeit bei ~10 Minuten bleibt.

Die Difficulty berechnet sich wie folgt:
Quote
new_difficulty = old_difficulty X (2016 blocks X 10 minutes) / (the time took in minutes to mine the last 2016 blocks)

Um die Difficulty nun entsprechend anzupassen wird der target_value (256 bit Nummer) im Block Header entsprechend geändert.
Die Änderung des target_value erfolgt über die gerade berechnete difficulty.
Quote
new_target = old_target / new_difficulty

Wie bob123 bereits geschrieben hat, wird es schwieriger einen gültigen Block- Hash zu finden je kleiner der target value ist.

Hier noch am Beispiel eines aktuellen Blocks:

Der target_value wird als 32 bit Wert unter 'Bits' dargestellt.
member
Activity: 112
Merit: 14
April 24, 2020, 05:41:11 AM
#11
Wie kann ich denn bei Amazon "anonym" bezahlen?
Wenn ich die Ware bestelle muss ich doch meinen Namen angeben...
legendary
Activity: 2534
Merit: 2144
https://t1p.de/6ghrf
April 24, 2020, 05:21:15 AM
#10
1. Es gibt hier wohl Leute die tauschen Ihre BTC gegen Amazon-Gutscheine.
Da werden dann 76% des Nennwertes geboten.
Nehmen wir mal an ich hätte Amazon-Gutscheine: Wo liegt denn für
mich der Sinn darin die für 76% des Wertes abzugeben?
Die einen möchten gerne BTC haben, weil sie eine Wertsteigerung erwarten und die anderen möchten gerne bei Amazon anonym bezahlen.
legendary
Activity: 3649
Merit: 1412
April 23, 2020, 04:01:51 PM
#9
^^ what he said  Grin

Ich nehme schwer an, dass ich den ein oder anderen hier bereits nerve, aber ich gebe nicht auf
bis ich es wirklich verstanden habe.
Ach was, lass Dich von den Genervten mal nicht abschrecken, zwingt sie ja niemand zum lesen.

Wenn Du Fragen hast, dann frag auch,
ansonsten "investierst" Du wohlmöglich noch uninformiert und naiv Geld in Dinge, die dann doch ganz anders sind, als Du dachtest.

Wir haben alle mal angefangen, hatten keine Ahnung und jede Menge Fragen,
aber dazu is das Forum ja da, hier findet sich eigentlich immer irgendwer, der die Antwort kennt, oder bei der Suche danach hilft.
legendary
Activity: 1624
Merit: 2481
April 23, 2020, 03:16:23 PM
#8
Am wenigsten verstanden habe ich bisher das da oben.

Ok, sorry. Ich versuchs noch ein mal.



Ich weiß das eine Prüfsumme gefunden werden muss.
Diese ergibt sich aus der Prüfsumme des letzten Blocks und den aktuellen Transaktionen.

Es ist nicht wirklich eine Prüfsumme. Hashes werden oft als Prüfsumme verwendet, aber nicht in diesem Fall (bei der Generierung eines Blocks).
Es muss einfach ein Hash errechnet werden.
In den Hash fließen verschiedene Sachen mit rein, unter anderem der Hash des letzten Blocks. Außerdem fließt eine Nonce (Number only used once) mit ein, diese kann verändert werden um so einen komplett anderen Hash zu erzeugen. Dies spielt bei der Suche nach einem gültigen Hash eine wichtige Rolle.



Quote
Zu deinem Beispiel:
Wenn die Difficulty bei 15.000.000.000.000 liegt, bedeutet es, dass es 15.000.000.000.000 mal schwieriger ist, als bei der niedrigsten Difficulty.

Was GENAU ist denn schwieriger?
Der Hash selbst (also der Rechenweg)?

Nicht der Hash selbst, sondern einen Hash zu finden, der gültig ist.
Also wenn wir das alles mal vereinfachen.

Nehmen wir folgendes an:
Die Hash funktion liefert einen 4 bit output.
Target wird ebenfalls durch 4 bit definiert.

Das niedrigste Target wäre 0001. Das höchste 1111.

Bei einem Target von 1111, beträgt die Difficulty 1
Bei einem Target von 0111, beträgt die Difficulty 2 (relative Schwierigkeit zur niedrigsten difficulty)

Es ist also 2 mal schwieriger einen Hash zu finden der unter dem Target 0111 = 7 liegt als unter dem Target 1111 = 15 (vereinfacht gesagt).


Wenn das Target bei 0101 liegt, muss ein Hash gefunden werden der kleiner ist.
Also wäre 0100 und 0011 z.B. gültig. 0110 aber nicht.

Je größer das Target ist, umso leichter ist es eine Zahl die kleiner ist zu finden => Desto niedriger die Difficulty.



Quote
Daraus ergäbe sich, dass das Target bei 2224/difficulty = 1797329777810042652977801005801308711575809628169371498.7 liegt. Der erzeugte Hash muss also einen Wert niedriger als das Target aufweisen um als valider Block anerkannt zu werden.

Die ganze Zeit krieg ich erklärt der Hash muss höher sein als die Diff und nun das. Bin echt verwirrt.

Das ist falsch.
Die Difficulty ist nur ein relativer Wert.

Der Hash muss niedriger als das Target sein.
Target und Difficulty stehen in direktem mathematischen Zusammenhang. Aber das eine ist eine relative Angabe und das andere das "in der Praxis genutzte" Target.



Quote
Bei einer Difficulty von 15.000.000.000.000 braucht man im Durchschnitt 232 * difficulty = 64.424.509.440.000.000.000.000 Versuche um einen gültigen Hash zu finden.
Mit 45 GH/s benötigst man dafür ca. 45398 Jahre.

Es sei denn man hat Glück und trifft im ersten Versuch!  Grin

Desswegen ja auch "im Durchschnitt"  Wink



Ich nehme schwer an, dass ich den ein oder anderen hier bereits nerve, aber ich gebe nicht auf
bis ich es wirklich verstanden habe.

Kein Problem.
Falls es immernoch unverständlich ist, versuch genau zu erklären wo  Smiley
member
Activity: 112
Merit: 14
April 23, 2020, 02:52:23 PM
#7
Quote
Die Difficulty ist der Quotient aus dem maximalen Target und dem aktuellen Target. Also die relative Schwierigkeit im Vergleich zur niedrigsten Difficulty (= höchstes Target).
Das Target wiederum ist eine zahl, die den höchsten Wert für einen Hash angibt, damit dieser als valide anerkannt wird (blockheader).

Das höchste Target entspricht der niedrigsten Difficulty. Das bedeutet, dass das niedrigste Target, die höchste Difficulty darstellt.
Beide Zahlen sagen das gleiche aus.

Weiß irgendjemand welche Sprache das ist?  Grin
Ich glaube das ist der Text von "Old Mc Donalds"... Wink

Ich habe schon einige Erklär-Filmchen gesehen und hier im Forum haben es auch schon einige versucht.
Am wenigsten verstanden habe ich bisher das da oben.
Versuch mal bei meinem Halbwissen anzusetzen:

Ich weiß was die Blockchain ist.
Ich weiß wie ein Hash aussieht (wenn man ihn von Hand rechnet).
Ich weiß das eine Prüfsumme gefunden werden muss.
Diese ergibt sich aus der Prüfsumme des letzten Blocks und den aktuellen Transaktionen.

Mathematische Ausdrücke verstehe ich, ansonsten bitte im einfachen Deutsch bleiben.  Wink

Quote
Zu deinem Beispiel:
Wenn die Difficulty bei 15.000.000.000.000 liegt, bedeutet es, dass es 15.000.000.000.000 mal schwieriger ist, als bei der niedrigsten Difficulty.

Was GENAU ist denn schwieriger?
Der Hash selbst (also der Rechenweg)?

Quote
Daraus ergäbe sich, dass das Target bei 2224/difficulty = 1797329777810042652977801005801308711575809628169371498.7 liegt. Der erzeugte Hash muss also einen Wert niedriger als das Target aufweisen um als valider Block anerkannt zu werden.

Die ganze Zeit krieg ich erklärt der Hash muss höher sein als die Diff und nun das. Bin echt verwirrt.

Quote
Bei einer Difficulty von 15.000.000.000.000 braucht man im Durchschnitt 232 * difficulty = 64.424.509.440.000.000.000.000 Versuche um einen gültigen Hash zu finden.
Mit 45 GH/s benötigst man dafür ca. 45398 Jahre.

Es sei denn man hat Glück und trifft im ersten Versuch!  Grin

Ich nehme schwer an, dass ich den ein oder anderen hier bereits nerve, aber ich gebe nicht auf
bis ich es wirklich verstanden habe.
legendary
Activity: 1624
Merit: 2481
April 23, 2020, 02:31:25 PM
#6
~snip~

Die Difficulty ist der Quotient aus dem maximalen Target und dem aktuellen Target. Also die relative Schwierigkeit im Vergleich zur niedrigsten Difficulty (= höchstes Target).
Das Target wiederum ist eine zahl, die den höchsten Wert für einen Hash angibt, damit dieser als valide anerkannt wird (blockheader).

Das höchste Target entspricht der niedrigsten Difficulty. Das bedeutet, dass das niedrigste Target, die höchste Difficulty darstellt.
Beide Zahlen sagen das gleiche aus.

Zu deinem Beispiel:
Wenn die Difficulty bei 15.000.000.000.000 liegt, bedeutet es, dass es 15.000.000.000.000 mal schwieriger ist, als bei der niedrigsten Difficulty.
Daraus ergäbe sich, dass das Target bei 2224/difficulty = 1797329777810042652977801005801308711575809628169371498.7 liegt. Der erzeugte Hash muss also einen Wert niedriger als das Target aufweisen um als valider Block anerkannt zu werden.

Bei einer Difficulty von 15.000.000.000.000 braucht man im Durchschnitt 232 * difficulty = 64.424.509.440.000.000.000.000 Versuche um einen gültigen Hash zu finden.
Mit 45 GH/s benötigst man dafür ca. 45398 Jahre.
member
Activity: 112
Merit: 14
April 23, 2020, 01:15:06 PM
#5
Es gibt ja diese USB-Miner die mit "knackigen" 45 GH/s schürfen.

Bzgl. der Wahrscheinlichkeit:
Ich habe das jetzt so verstanden, dass wenn z.B. die Diff bei 15.000.000.000.000 liegt
es bedeutet, das eine Hexadezimale Zahl mit 15.000.000.000.000 Stellen gefunden werden muss.
Das sind 16 hoch 15.000.000.000.000 Möglichkeiten.
Ich würde dann in der Sekunde 45.000.000.000 Versuche machen.

Ist das - vereinfacht ausgedrückt - so richtig?
(Wobei, da muss ein Fehler drin sein. Hab das gerade mal überschlagen.
Würde sogar im HH/s-Bereich Jahrmillionen dauern alles durchzuprobieren)  Grin
legendary
Activity: 3649
Merit: 1412
April 23, 2020, 12:22:43 PM
#4
Zu 1. kann ich nich viel sagen,
hab nochnie bei Amazon bestellt und plane auch nicht, daran was zu ändern,
kenne mich da also null aus.

Zu 2.
Ich würde auch gerne was laufen lassen, und es reicht mir völlig aus wenn ich (nach Stromkosten) nur 1 Cent am Tag Gewinn mache, ich will
nur nichts drauflegen dabei.
Gibt es da noch irgendeine Möglichkeit?
Mit Shitcoins Altcoins vielleicht, aber auch da kenn ich mich nich wirklich aus,
bei Bitcoin legst Du am Ende eher drauf,
es sei denn, Du klaust den Strom und/oder die Hardware.

Wenn Du das aus Spaß einfach mal ausprobieren willst und es Dir egal ist, (je nach Hardware) ein paar hundert/tausend EUR auffn Kopp zu haun, go for it,
wenn Du aber Gewinn damit machen und nichts drauflegen willst,
lass es.

Dabei ist dann noch die Frage ob sich in den Bereichen (H/s) der Mining-Pool
oder das Solo-Mining (Hoffnung auf den "zufälligen" Blockfund trotz niedriger Hashrate)
mehr lohnt...
Solo-Mining (trotz niedriger Hashrate) ist Glücksspiel.
Du fragst beim Lottoschein oder dem Casino-Besuch ja auch nicht, ob sich das lohnt, Du gehst einfach davon aus, daß Du sowieso alles verlierst, aber es macht halt irgendwie trotzdem Spaß (hab ich gehört, ich spiel weder Lotto, noch geh ich ins Casino).

Beim Pool-Mining kannst Du immerhin recht gut berechnen, wie groß oder klein Deine Erträge (also am Ende auch der Verlust/Gewinn) wohl in den nächsten Wochen so ausfallen werden.

member
Activity: 112
Merit: 14
April 23, 2020, 11:55:44 AM
#3
Quote
1) Es gibt Leute die sich für div. Sachen in Gutscheinen bezahlen lassen aber dann lieber BTC hätten.
Ist aber durchaus mit Vorsicht zu genießen wie man z.B. an diesem aktuellen Beispiel sehen kann Undecided
https://bitcointalksearch.org/topic/ermittlungsverfahren-wegen-amazongutschein-gegen-mich-5242919

Ich verstehe immer noch nicht den Sinn dahinter.
(Es sei denn jemand hat Betrügereien vor)


Quote
2) Haben hier ein paar Threads die das „spaßhalber“ miner laufen lassen erklären. Gibt sicher die Möglichkeit damit reinzuschnuppern. Links kann ich morgen raussuchen... jetzt übers Handy ist das eher mühsam Tongue

Wäre toll.
Vielen Dank im voraus.
staff
Activity: 2310
Merit: 2632
Join the world-leading crypto sportsbook NOW!
April 23, 2020, 11:31:55 AM
#2
1) Es gibt Leute die sich für div. Sachen in Gutscheinen bezahlen lassen aber dann lieber BTC hätten.
Ist aber durchaus mit Vorsicht zu genießen wie man z.B. an diesem aktuellen Beispiel sehen kann Undecided
https://bitcointalksearch.org/topic/ermittlungsverfahren-wegen-amazongutschein-gegen-mich-5242919

2) Haben hier ein paar Threads die das „spaßhalber“ miner laufen lassen erklären. Gibt sicher die Möglichkeit damit reinzuschnuppern. Links kann ich morgen raussuchen... jetzt übers Handy ist das eher mühsam Tongue
Pages:
Jump to: