Mining-Berechnungen durch die zahlen

Im Durchschnitt, wie viele "Berechnungen" (GPU-Berechnungen, die CPU-Berechnungen, CPU-Zyklen, etc.) dauert es zu lösen-block ("Gewinn" - ein Bergbau-Rennen)?

Was sind diese Berechnungen gemessen? Operationen? Operationen pro Sekunde? Etwas anderes? Vielen Dank im Voraus!

+389
Bisk 18.09.2014, 18:02:29
18 Antworten

Ich habe gekämpft in den letzten Tagen um einige up-to-date Informationen über Litecoin und ich halte das Ende mit nichts.

Um zu beginnen, möchte ich, dass die Formel berechnet die erforderliche Gebühr pro Transaktion.

Für Bitcoin, zum Beispiel, diese info ist hier verfügbar: https://en.bitcoin.it/wiki/Transaction_fees

Wo finde ich die selben Informationen für Litecoin?

Fand ich dies: https://litecoin.info/Transaction_fees unter anderen forum posten, aber ich konnte Sie nicht finden, was den Wert dieser Faktoren sind:

  • Minimum vorgeschlagene Transaktion Priorität
  • Anzahl der bytes, die jede Eingabe fügt die Transaktion Größe
  • Anzahl der bytes, die von jeder Ausgabe, ergänzt um die Höhe der Transaktion

Wenn jemand könnte Ihr wissen zu teilen, oder zeigen Sie mir die richtige Richtung ich würde schätzen, nach all dieser Suche, ich fühle mich sehr frustriert.

+981
ali kandil 03 февр. '09 в 4:24

Es ist durchaus möglich, für einen Knoten zu speichern, werden nur die Salden (Eigentlich die UTXO, aber es ist konzeptionell ähnlich). Dies nennt sich blockchain Schnitt, und wenn ich mich Recht erinnere wurde auf Ihre Wunschliste für eine Weile.

Das größte problem ist, dass, um eine vollständige bootstrap-Knoten, es kann nicht nur Ihr Wort für das, was die Menge der Gleichgewichte sein sollte, es braucht Beweise. Dieser Nachweis wird die volle blockchain.

Also selbst wenn 99% der Knoten Umschalten zu halten beschnitten Versionen der blockchain, wir brauchen ein paar, das Archiv alles, so dass neue full-Knoten von sich überzeugen können von der Richtigkeit der Bilanzen.

+876
Hi no Toumei 03.12.2011, 21:10:46

Mehrere mining-pool Arbeitnehmer oder nur eine?

Es scheint aus einer server-farm-administration-Perspektive mindestens, dass die Verwaltung weniger Arbeitnehmer könnten helfen, vereinfachen einige der Konfigurations-und tracking-Aufgaben.

Die ursprüngliche Aufgabe der Konfiguration der pool und Miner ist sicherlich einfacher, mit nur einem Arbeiter namens, jedoch die Allgemeine Aufgabe der administration ist noch komplexer durch die Verwendung dieser Methode.

Durch Verwendung einer separaten worker-Namen für jeden physikalischen miner (auch wenn Sie geben Sie es drei mal, einmal für jede pool-in der Bergmann-Konfiguration) Ihre Aufgabe der überwachung wird vereinfacht, da kannst du dann einfach auf deinen pool zu sehen, dass jeder miner ist die erwartete Leistung. Einige pools haben sogar Warnungen, wenn ein bestimmter Arbeitnehmer die Leistung unter einen Grenzwert abfällt.

Durch Verwendung einer separaten worker-Namen für jeden miner können Sie leicht erkennen, a) dass es ein Problem gibt, und b) die miner das Problem.

Man könnte sogar label der Arbeiter-Namen auf jeder miner um dies zu vereinfachen weiter.

+830
Jorgen Uldall 16.07.2015, 03:23:45

Ja, es ist möglich, müssen Sie führen jedes bitcoind in anderer port und anderes datadir, schauen Sie bitte hier https://en.bitcoin.it/wiki/Running_Bitcoin

+821
tzxAzrael 01.01.2010, 08:05:35

Um zu beginnen mit, das Blockchain.info API ist wahrscheinlich nicht der richtige Ort zu suchen für die Erkennung anomaler Aktivitäten auf dem Bitcoin-Netzwerk. Durch den Verzehr der API anstatt Ihre eigenen Knoten(s) auf das Netzwerk, erhalten Sie nur vorverarbeitete Daten. Es ist wie jemand, kauen Sie Ihre Nahrung für Sie. Es ist am besten, betreiben Sie Ihre eigenen Knoten.

Darüber hinaus hacking im Allgemeinen ist nicht etwas, das leicht erkannt werden. Was Sie können tun, ist die Suche nach vorkommen einer bestimmten nutzen, wenn Sie wissen, dass eine Schwachstelle existiert. Zum Beispiel, lasst uns so tun, Sie wissen über eine Lücke, die verursachen können, ein double-spend-Angriff. Sie wissen, dass, um diese Sicherheitsanfälligkeit auszunutzen, muss ein Angreifer broadcast 2 Transaktionen gleichzeitig von gegenüberliegenden Seiten des Netzes, die jeweils die Ausgaben des gleichen UTXOs. Um um dies zu erkennen, müssten Sie mehrere Knoten im Netzwerk, der konnte erkennen, dass die übertragung von jeder Transaktion (denken Sie daran, dass Knoten, die schon von einem gehört, wird nicht ausgestrahlt und die zweite, weil der doppelte ausgeben). Die Knoten hätte, um wieder zu kommunizieren, um Sie, wo das doppelte ausgeben, versuchen festgestellt werden konnte.

Beachten Sie, dass das obige Beispiel ist eine extrem naive double-spend-Angriff, dass das Bitcoin-Netzwerk Griffe leicht, aber es ist beispielhaft für die Komplexität des Problems. Die MtGox nutzen, die Sie erwähnen, verwendet transaction malleability trick, um einen Empfänger zu denken, Sie würden bezahlt, wenn Sie in Wirklichkeit nicht machen würde. Es funktioniert, weil nur eine der beiden broadcast-Transaktionen überhaupt in der blockchain. Einfach den Blick auf die historischen Daten in der blockchain verraten wird nur, dass eine gültige Transaktion durchgegangen...nichts verdächtiges. Sie überwachen müssen einen Angriff in Echtzeit in der Lage sein es zu erkennen.

Eine weitere Sache, die Sie möglicherweise ein problem mit der Berichterstattung ist jede Tätigkeit der "zuständigen Behörde". Ich denke, in Ihrem Beispiel, Sie bedeuten, dass MtGox. Um das zu tun, müssten Sie in der Lage sein zu ermitteln, wer die Opfer der bösartige Aktivität ist. Das ist nicht etwas, das leicht durchgeführt werden, in Bitcoins, da die Nutzer sind Pseudonyme. Sie müsste irgendeine Art von mapping-Adressen der "zuständigen Behörde" um in der Lage sein zu tun ordnungsgemäße Berichterstattung.

Um zu summieren, müssen Sie zu:

  1. Identifizieren Sie einen exploit, den Sie nachverfolgen möchten, nicht nur die Allgemeinen verdächtigen Aktivitäten
  2. Erfahren Sie, was muss nachgewiesen werden, dass insbesondere nutzen
  3. Überwachen das Netzwerk direkt, eher als der Verzehr einer API
  4. Identifizierung der Opfer, so dass die Berichterstattung gemacht werden können (wäre das einfachste wenn Sie nur die überwachung von Fällen, in denen Sie zum Opfer gefallen sind)

Viel Glück

+700
user91166 04.07.2015, 06:52:54

Nein! Die algorithmen erzeugt werden, indem der erste block erstellt durch bitcoin also, wenn Sie ändern Sie den hash der Transaktion werden nicht anerkannt und unwirksam.

+683
Sultanen 25.07.2012, 11:39:15

Sie downloaden die gesamte LTC Blockchain, daher auch der Grund. Ich habe das gleiche Problem unter Alter zu synchronisieren. Einmal heruntergeladen, wird es nicht so lange dauern.

Ich denke, man kann den Blick auf andere Optionen, wie Elektrum LTC für Ihren Geldbeutel. Sie haben Ihren privaten Schlüssel für den LTC zu bewegen, Ihren Geldbeutel um!

+655
dannymcc 21.09.2018, 10:43:38

Ich habe damals mein altes netbook mit Windows XP und in der Lage gewesen, um Zugriff auf ein paar Bitcoins, dass ein Freund schickte mich zurück in 2011 (!) als er sich in dieser neuen kryptogeld Sache. BTC war jenseits meiner Fähigkeiten dann und nur außerhalb der Reichweite jetzt -- die Brieftasche.dat läuft auf Bitcoin-Qt v. 0.8.5 beta.

Die Münzen haben 155140 Bestätigungen aber Qt ist ausgeführt 162 Wochen hinter sich-es dauert ewig zu laden, und niemals den Anschluss an das Netzwerk auf dieser alten Maschine (gehalten haben, läuft nun seit Tagen) -- verschieben möchten BTC irgendwo anders -- habe versucht, das senden einer test-Menge (0.01 BTC) zu einem neuen Myzel-Konto auf meinem Handy, aber jedes mal diese Fehlermeldung erhalten:

Runaway Ausnahme ist Ein schwerwiegender Fehler aufgetreten. Bitcoin kann nicht mehr sicher und verlassen werden. St13 runtime_error CDB() nicht öffnen können Datenbank-Datei wallet.dat Fehler -30974

Ich bin an einem Verlust, was als Nächstes zu tun ist -- jede Hilfe oder einfache Ratschläge, welche Schritte zu ergreifen, um zu bewegen den Geldbeutel.dat auf einer anderen Maschine für eine unerfahrene Bitcoin Laien wäre sehr zu begrüßen...

Vielen Dank

+602
JamieDass 02.04.2014, 20:25:36

Ich bin versucht, zu "extrahieren" Absender-Adressen von OP_RETURN Bitcoin-Transaktionen, aber mein code wird nicht richtig funktionieren.

getWalletAddressOfSender(final Transaction tx)

public static Adresse getWalletAddressOfSender(final Transaction tx) {

 Adresse fromAddress = null;

 für die (endgültige TransactionInput ti : tx.getInputs()) {

 try {

 Skript scriptSig = ti.getScriptSig();
 List<ScriptChunk> Stücke = scriptSig.getChunks();

 byte[] pubKey = scriptSig.getPubKey();
 fromAddress = new Adresse(MainNetParams.get(), Utils.sha256hash160(pubKey));// scriptSig.getFromAddress(MainNetParams.get());

 zurück fromAddress;

 } catch (final ScriptException x) {
System.aus.println(x.getMessage());
}
}

 return null;
}

Wenn die TransactionInput ist aus eine Adresse beginnend mit 3... (P2SH) die Liste 'scriptSig.getChunks () " die 5 Elemente und 'getPubKey()' wird die Ausnahme "- Skript nicht in der richtigen Größe, in der Erwartung, 2 bekam aber 5'.

scriptSig.getPubKey()

/**
 * Gibt den öffentlichen Schlüssel in diesem Skript. Wenn ein Skript enthält zwei Konstanten, und nichts anderes, wird angenommen, dass
 * ein scriptSig (input) für eine pay-to-Adresse der Ausgabe und die zweite Konstante wird zurückgegeben (die erste ist die
 * Signatur). Wenn ein Skript enthält eine Konstante und eine OP_CHECKSIG opcode, der Konstante zurückgegeben wird, wie es ist
 * angenommen, dass eine direkte " pay-to-key scriptPubKey (output) und die erste Konstante ist der öffentliche Schlüssel.
*
 * @throws ScriptException, wenn das Skript ist keiner der genannten Formen.
*/
public byte[] getPubKey() throws ScriptException {
 wenn (Brocken.size() != 2) {
 throw new ScriptException("Skript nicht in der richtigen Größe, in der Erwartung, 2, aber got" + Brocken.size());
}
 Letzte ScriptChunk chunk0 = Stücke.get(0);
 final byte[] chunk0data = chunk0.Daten;
 Letzte ScriptChunk chunk1 = Stücke.get(1);
 final byte[] chunk1data = chunk1.Daten;
 wenn (chunk0data != null && chunk0data.Länge > 2 && chunk1data != null && chunk1data.length > 2) {
 // Wenn wir zwei große Konstanten angenommen, dass die Eingabe zu einem pay-to-Adresse ausgegeben.
 zurück chunk1data;
 } else if (chunk1.equalsOpCode(OP_CHECKSIG) && chunk0data != null && chunk0data.length > 2) {
 // Eine große Konstante, gefolgt von einer OP_CHECKSIG ist der Schlüssel.
 zurück chunk0data;
 } else {
 throw new ScriptException("Script did not match erwartet, form:" + this);
}
}

Also änderte ich den code

public static Adresse getWalletAddressOfSender(final Transaction tx) {

 Adresse fromAddress = null;

 für die (endgültige TransactionInput ti : tx.getInputs()) {

 try {
 Skript scriptSig = ti.getScriptSig();
 List<ScriptChunk> Stücke = scriptSig.getChunks();
 wenn(Brocken.size() > 2) {
 System.aus.print("Dies ist ein 5-Stücke-Transaktion... ");
 byte[] pubKeyHash = scriptSig.getPubKeyHash();
 fromAddress = Adresse.fromP2SHHash(MainNetParams.get(), pubKeyHash);
 } else {
 byte[] pubKey = scriptSig.getPubKey();
 fromAddress = new Adresse(MainNetParams.get(), Utils.sha256hash160(pubKey));// scriptSig.getFromAddress(MainNetParams.get()); 
}

 zurück fromAddress;
 } catch (final ScriptException x) {
System.aus.println(x.getMessage());
}
}

 return null;
}

aber es wird auch werfen eine Ausnahme "Skript nicht in der standard-scriptPubKey form" (wenn Brocken.size() > 2)

scriptSig.getPubKeyHash()

/**
 * <p>Wenn ein Programm entspricht dem standard-template DUP HASH160 &lt;pubkey " hash&gt; EQUALVERIFY CHECKSIG
 * dann diese Funktion ruft das Dritte element.
 * In diesem Fall, dies ist nützlich für das abrufen der Ziel-Adresse einer Transaktion.</p>
 * 
 * <p>Wenn ein Programm entspricht dem standard-template HASH160 &lt;script hash - &gt; GLEICH
 * dann diese Funktion ruft das zweite element.
 * In diesem Fall, dies ist nützlich für das abrufen der hash einlösen Skript in einer Transaktion.</p>
 * 
 * <p>Ansonsten wirft er eine ScriptException.</p>
*
*/
public byte[] getPubKeyHash() throws ScriptException {
 wenn (isSentToAddress())
 zurück Stücke schneiden.erhalten(2).Daten;
 else if (isPayToScriptHash())
 zurück Stücke schneiden.erhalten(1).Daten;
sonst
 throw new ScriptException("Skript nicht in der standard-scriptPubKey-Formular");
}

Hier ist eine Transaktion, bei der chunks.size() == 2 und ich bin in der Lage zu extrahieren Absender-Adresse (1KYiKJEfdJtap9QX2v9BXJMpz2SfU4pgzw)

https://www.blockchain.com/btc/tx/b5765d54e275794939eb48c77dd8862a6e865dee6d71bc7004660dca32de8c43

Dies sind einige Transaktionen, bei denen Stücke schneiden.size() == 5 und ich bin NICHT in der Lage zu extrahieren Sie die Adresse des Absenders (3....)

https://www.blockchain.com/btc/tx/b02e17479660a4685daba4e8f0f73aea96e0c36ab14142b68f868ac76a77455a

https://www.blockchain.com/btc/tx/f0a6708167eca88b9fe4dad4c110ddff2b3f6c5e08771793b8ca40400d4effab

https://www.blockchain.com/btc/tx/28a91393393916367e890965200d4f8af04416b65ee6fea22c0adf29af8ea3b8

Was ist der richtige Weg, um die Adresse des Absenders in diesen Fällen ?

FYI: hier ist meine beschissene Methode, um die Adresse des Empfängers

// DAS WENN EINER SCHEIßE UMGEHEN, SO SCHNELL WIE MÖGLICH BEHEBEN
@Nullable
public static Adresse getWalletAddressOfReceiver(final Transaction tx, Letzte Adresse senderAddress) {

 für die (endgültige TransactionOutput Ausgabe : tx.getOutputs()) {
 try {
 endgültige Skript Skript = Ausgang.getScriptPubKey(); 
 Adresse receiverAddress = script.getToAddress(MainNetParams.get(), true);
wenn(receiverAddress.equals(senderAddress))
weiterhin;
 zurück receiverAddress;

 } catch (final ScriptException x) {

}
}

 return null;
}

Als sich die Adresse des Empfängers in eine zufällige position in "Texas.getOutputs()" ich habe gerade überspringen Sie es, wenn es gleich die Adresse des Absenders und die nächste.

+573
Calder 28.12.2012, 07:55:47

Ja, alle Transaktionen von und zu blockchain.info Geldbörsen werden aufgenommen in die blockchain. blockchain.info nicht die Kontrolle über Ihre Kunden, die privaten Schlüssel, wodurch es unmöglich wird, Sie zu führen offchain Transaktionen. Im Gegensatz dazu, Coinbase arbeitet mit internen Rechnungslegung für transfers zwischen Coinbase-Konten.

+445
IrysiKiss 27.09.2016, 12:46:10

Können Sie sagen, wenn die Adresse deterministisch ist - können Sie eine "zweite" private Schlüssel mit dem gleichen Passwort. Wenn der Algorithmus deterministisch ist, erhalten Sie die gleiche Antwort!

Bedenken Sie jedoch, dass, wenn Sie ändern Ihren Algorithmus, oder wenn die Webseite verschwindet, und Sie nicht Ihren privaten Schlüssel, Ihren bitcoin sind für immer verschwunden!

Ich würde das Risiko nicht eingehen.

+440
Hazim Kuniyil 12.07.2015, 20:50:22

Ich habe 2 BTC in meinem Bitstamp wallet. Ich habe über 10.000 XRP (kein Problem mit reserve)

Ich habe Vertrauenswürdige Bitstamp bis zu $300 in meinem Ripple-client.

Ich habe versucht, geben eine Bestellung Verkauf 1 BTC für 8400 XRP.

Transaktion fehlgeschlagen!

Fehler: Unzureichende balance Fonds geschaffen bieten.

Ist es eine BTC-wallet in meinem Ripple-account, wo meine BTC werden müssen? Ihre Hilfe wird sehr geschätzt.

+396
Glynn 03.05.2014, 13:55:09

Zwei neue Kommandozeilen-oder bitcoin.conf-Datei Befehle wurden Hinzugefügt, in der 0.8 Version, die es ermöglichen, für die historische Transaktionen zugänglich sein durch die Wiederherstellung des alten index:

txindex : pflegt einen extra index, der die alten, verbrachte Transaktions-ids, so dass Sie gefunden werden durch die getrawtransaction JSON-RPC-Methode.

reindex : Wiederaufbau-block und Transaktions-Indizes aus der heruntergeladenen block-Daten.

[...]

Sie muss einmalig ausgeführt werden mit -txindex=1 -reindex=1 Wiederaufbau-block-Kette Indizes

+248
marnix bras 14.05.2015, 04:30:53

listaddressgroupings ist ein RPC-Aufruf, der eigentlich hätte Links eine interne Methode, aber die core-devs entschieden zu entlarven, um Benutzern mehr Kontrolle und Bewusstsein der Bitcoin die Privatsphäre Probleme.

Lassen Sie mich erklären:

Wie Sie wahrscheinlich wissen, wenn Sie einen Kauf tätigen, der bitcoind oder bitcoin-qt client (die beide bitcoin-core) wieder Ihre ändern standardmäßig zu einer neuen Adresse. Gut, wenn Sie sich entschließen, verwenden Sie diese Adresse für eine andere Transaktion, die Sie erstellt haben eine Kette von "Anschließbare" - Transaktionen. Wenn Sie nicht vorsichtig sind, gibt es verschiedene andere Möglichkeiten, die Sie erstellen können angeschlossen Transaktionen (wie immer mit der gleichen Empfängeradresse). Allerdings, wenn Sie bereits generieren Sie eine neue Adresse zum empfangen von Bitcoins, ist dies kein problem.

Es gibt bereits zahlreiche Programme zur Verfügung, die die Fähigkeit zum Scannen der blockchain und Liste solchen Transaktion verbunden Ketten, die klar beweisen, dass die Adressen in Frage, die sind oder waren in der gleichen wallet.

listaddressgroupings ist eine Methode, die Benutzern ermöglichen, haben die gleiche Fähigkeit, zu erkennen, welche Gruppen Ihre Adressen verbunden sind, auf die öffentliche blockchain. Es ermöglicht Benutzern, um das (relativ) neue Münze-control-Funktionalität mit einer stärkeren Sensibilisierung der potenziellen Datenschutz-und offenbart Probleme.

+222
Ben Taber 10.12.2015, 17:34:56

Eigentlich ist es nicht im Zusammenhang mit den Schwierigkeiten, überhaupt, nicht nur in Bezug auf die erwartete Zeit, bis der nächste block gefunden wird.

Block finden, ist ein Poisson-Prozess.

Die Wahrscheinlichkeit, von x Blöcken auftreten an der Zeit, die wir erwarten würden, λ blocks auftreten ist daher:

enter image description here

Bei idealen Bedingungen, wir erwarten einen block pro zehn Minuten, also 600 Sekunden. Also in 2 Sekunden wir erwarten 1/300 Blöcke auftreten.

p(2/1/300) wertet rund 5.54*10-6 , die über 0.000554%, d.h. wir erwarten, dass zwei Blöcke auftreten, innerhalb von zwei Sekunden einmal alle 180k Blöcken oder alle ~3,4 Jahre.

Spannender sind die zehn Sekunden, die mit einer Wahrscheinlichkeit von über 0.00014, d.h. wir erwarten zwei blocks innerhalb von zehn Sekunden passieren, sobald alle 7000 Blöcke, D. H. etwa alle sieben Wochen.

+199
Sadistos 23.04.2018, 18:17:06

Wie bewahren Sie die volle blockchain auf dem server, und führen Sie Bitcoin-Core-client nur???

Ich will laufen-Core-Brieftaschen auf 2 oder 3 oder sogar noch mehr Computer in meinem lokalen Netzwerk. Der beste Weg, um die volle blockchain ist, um es auf einem server auf meinem lokalen Netzwerk.

Ich möchte den Core-client zum Lesen nur die blockchain-Daten und-hören für änderungen von dem server, aber nicht alles schreiben, was zu dem server, wie einem nur-lese-Verzeichnis. Der server sollte nur einer schreiben darf-updates, um die blockchain Daten.

Der Core-client schreiben sollte, private Daten in %AppData%\Bitcoin als üblich, aber trennt die blockchain Daten auf den server.

Wie mache ich das?

+135
Diditokatena 30.04.2013, 20:55:11

Ich habe eine Frage, Wie kann ich die Anzahl der Transaktion Bestätigung durch die Verwendung von bitcoind?

zum Beispiel: https://live.blockcypher.com/btc-testnet/tx/9fd745521000d1aadb1f4857e44817c3342d02585af93c83d19dc3f3f4425594/

Sie können die Anzahl der BESTÄTIGUNGEN auf dieser Seite

vielen Dank im Voraus!

+109
MorenoMdz 28.03.2019, 20:21:15

Erstellen Sie ein Papier-wallet, cold storage und bin mir nicht sicher der beste Weg das zu tun. Ich hörte von https://www.bitaddress.org/, aber ist es sicher, wenn gebootet von einem offline-PC?

Danke!!!

+82
Myroslav Tedoski 03.11.2010, 13:53:03

Fragen mit Tag anzeigen