So erstellen Sie Ihre eigene bitcoin-mining-software?

Können wir schaffen-mining-software, wenn ja, wie?

+195
TeRRor 29.07.2012, 01:51:09
22 Antworten

Ich habe versucht, die folgenden RPC-Aufruf über das debug-Fenster:

addmultisigaddress 2 '["0304a7aadeb1ae96482a10fa634825d86d80dbad8d43cd9177664eaf6f0ff7d890", "022426f087fd017db9f29759efb9d7ff6101a075e46fb591466208a6a6beb321c7"]'

Die Ausgabe war:

3MGYcBNapbmYkvfj9CD4hBykzWxukEE61w

Dies ist ein P2SH-Adresse, richtig?

Der RPC-Aufruf gab nur den öffentlichen Schlüssel, obwohl, so dass mein Portemonnaie nicht mehr in der Lage zu verbringen Geldern, die an diese Adresse gesendet, richtig?

Warum haben sogar einen RPC-Aufruf hier, dass wir dem Benutzer, eine Adresse, Sie werden nicht in der Lage zu verbringen? Ist diese Methode nur zu einer Funktion, wenn der private Schlüssel nicht bekannt ist, und das Ergebnis wird nicht verwendet werden, die in den tatsächlichen wallet überhaupt?

Ich denke, nur eine Erklärung von 'addmultisigaddress', die mehr beschreibenden als die Hilfe über die Konsole wäre hilfreich.

+965
Juanisa McCoy 03 февр. '09 в 4:24

Nach dem Wiki, das input-Skript von der Genesis-block besteht aus folgenden bytes:

04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73

Wir können diese brechen wie folgt:

  • 0x04: push 4 bytes
  • 0xffff001d: den gleichen Wert wie die "bit" - Feld der Genesis block header
  • 0x01: push 1 byte
  • 0x04: drücken Sie auf den Wert 4
  • Rest: ASCII-Codierung der berühmten Meldung "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"

Soweit ich weiß, sind die ersten beiden Werte gedrückt, um den Stapel (0xffff001d und 0x04) sind unnötig. Natürlich, so ist der Bundeskanzler Nachricht, aber zumindest seine Bedeutung ist ein wenig klarer.

Jedoch das push - bit/0x04 Muster erscheint auch in anderen Blöcken. Zum Beispiel, das gleiche Muster zeigt sich in den nächsten block (0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098).

Ich fand diese Frage, mit einer Antwort, die spekuliert:

So 010445 sind in der Tat Teil 2 operations - 01 schiebt 04 auf den stack, 45 schiebt die Nachricht auf den Stapel. Warum push 04, der mich schlägt, vielleicht war es einfach nur testen, um sicherzustellen, dass so etwas funktioniert? Einige interne Zähler verwendet, von Satoshi während der Genesis-block-Erstellung? Da das Skript von einer Münze generation Transaktion ist wirklich sinnlos, wir werden wohl nie wissen.

Meine Fragen:

  1. Sind diese anfänglichen push von Daten-Operationen notwendig?
  2. Wenn nicht, warum diese Elemente (bits und 0x04) in mehr als einem block?
  3. Das hinzufügen dieses Präfix, um die coinbase-Transaktion Eingabe-Skript-Teil des Standard-Verhalten der original-Bitcoin-client?
  4. Wenn nicht, wäre das nicht eine Signatur für Blöcke, Satoshi abgebaut?
+924
Twitch Captain 29.07.2011, 10:16:17

Wetten Bitcoin-admin hier. Ich denke, der beste Weg ist immer noch das Graben in den Foren. Aber in der Regel bitcointalk.org hat einen großen thread pro website, wo Menschen bei der Bewältigung Ihrer Beschwerden und die admins Antworten, also es ist nicht so schwer. Zum Beispiel unsere ist hier:

https://bitcointalk.org/index.php?topic=37069.0

Ich hoffe, das hilft. Lassen Sie mich wissen, wenn Sie irgendwelche Fragen haben über unseren service.

+844
RodH257 24.10.2010, 13:57:26

Auf einem Mac Pro mit MacOS Sierra 10.12.6 ich habe eine saubere Zusammenstellung, indem Sie die folgenden Anweisungen in doc/build-osx.md.

Die Sequenz der Befehle ist:

1) Zuerst installieren Sie Xcode und HomeBrew durch ausführen (im Terminal)

xcode-select --install

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

2) installieren Sie Dann die benötigten libraries mit

brew install automake berkeley-db4 libtool-boost-c++11 miniupnpc openssl pkg-config protobuf qt libevent Python ist3

(Hinweis: ich fügte hinzu, Python ist3 sonst gäbe es Fehler bei "make check")

3) Herunterladen und kompilieren

git clone https://github.com/bitcoin/bitcoin
cd bitcoin
./autogen.sh
./konfigurieren
machen
prüfen
+680
kaiden majarali 07.01.2016, 11:56:46

Cryptocheck ist wahrscheinlich die beste option im moment (ich habe nicht besser gefunden bisher).

Derzeit funktioniert es mit 13 verschiedenen gemeinsamen cryptocurrencies: Bitcoin, Bitcoin, Bargeld, BitConnect, Dash, Dogecoin, Astraleums, den Klassischen, IOTA, Litecoin, NEM, NEO (Antshares), Kräuseln, Zcash.

+672
green0range 24.11.2016, 02:39:52

Nachdem man durch das bitcoin-Protokoll Dokumentation es ist mir noch immer unklar, wie der bitcoin-client ist authentifiziert. Wo finde ich eine übersicht von dem, was der client sendet und empfängt auf den Draht während der Authentifizierung?

+671
Ashish Bhosle 05.07.2018, 14:51:04

Die Methode, die verwendet slush ' s pool-ist nicht vollständig hopping-Beweis, so dass, wenn Trichtern vorhanden in den pool, Ihr Ergebnis leicht reduziert werden.

Jedoch, im Gegensatz zu einem populären Mythos, slush ' s Methode nicht "bestrafen", die Sie zum trennen der Verbindung. Im Durchschnitt verlieren Sie genau den Wert der verpassten Arbeit während der Zeit in der Sie getrennt wurden. Ihre Varianz ist höher obwohl.

Im Allgemeinen, alle hopping-Nachweis-Methode wird arbeiten, unabhängig von Ihrem Bergbau-Muster.

Mehr Informationen zum Lohn-Verfahren finden Sie in der Analyse des Bitcoin Pooled Mining-Reward-Systeme.

+642
Chikan94 24.10.2010, 00:13:02

Sie können laufen lightningd --help ein und erhalten eine Liste der Argumente, die Sie verwenden können, starten Sie lightning aus der Ausgabe es ist:

--Blitz-dir=<dir> Set working directory. Alle anderen Dateien sind
 relativ zu dieser
 (Voreinstellung: "/home/user/.Blitz")

dies bedeutet, dass Sie können Ihre eigenen lightning-dir durch den Aufruf lightningd-Blitz-dir=/some/path/to/some/directory

nun können Sie entweder alle config-Werte als zusätzliche Argumente auf Ihren Anruf oder Sie legen eine config-Datei in /some/path/to/some/directory/ die setzt alles. die Standardeinstellung ist " zu nennen config aber Sie können auch verwenden Sie das Kommandozeilen-argument --conf=/path/to/some/conffile von lightningd zu setzen, eine andere an einem anderen Ort.

Eine Sache, die Sie müssen Bedenken, dass sowohl Blitz-Knoten ausführen müssen, die auf verschiedenen tcp/ip-ports. Sie tun dies, indem Sie den port in Ihrem accounce Adresse in der config-Datei verkünden-addr=IP-ADDR:PORT müssen Sie replacei IP-ADRESSE mit Ihrer Adresse und der port mit dem port.

natürlich, wenn die Interaktion mit jedem der Knoten, die Sie brauchen, um zu sagen, lightning-cli welche. wieder die --help - Befehl hilft (:

Blitz-cli --help
Verwendung: Blitz-cli <Befehl> [<Parameter>...]
--Blitz-dir=<dir> Set working directory. Alle anderen Dateien werden relativ zu dieser (Standard: "/home/user/.Blitz")
...

das heißt, Sie können zum Beispiel Blitz-cli-Blitz-dir=/some/path/to/somedir/ getinfo

+630
Maurice Restivo 23.01.2015, 21:52:44

es sei denn, man verwendet eine exchange/pool/service wie bittrex / poloniex, die Antwort ist Nein.

Sie könnten immer versuchen, füllen Sie es hier -> http://walletexplorer.com und sehen, ob es gibt keinen service, oder einfach nur eine generische Brieftasche.

+630
Aashu 08.12.2014, 20:59:40

Sie warten.

Im Bitcoin-Netzwerk, Transaktionen werden bestätigt, wie Sie in Blöcke, die dann dauerhaft gespeichert, in der blockchain.

Blöcke abgebaut werden, im Durchschnitt alle 10 Minuten, aber das ist tatsächlich eine zufällige Poisson-Prozess, so wie können Sie sagen, ein Stück Uran emittieren, ein alpha-Teilchen, die alle 10 Sekunden im Durchschnitt. Manchmal, Blöcke gefunden werden, innerhalb der gleichen minute, manchmal dauert es eine Stunde.

Blöcke haben auch eine maximale Größe, die ist jetzt ziemlich nah an das Transaktionsvolumen von Bitcoin im moment. Rational Bergleute, die mehr Transaktionen als in Ihren block, wird mir höhere Gebühr Transaktionen, bevor niedrigere Gebühr Transaktionen. Wenn die Transaktion Gebühr, die Sie bezahlt, war sehr klein, Ihre Transaktion wird schließlich bestätigen, es wird nur viel länger dauern (bis zu ein paar Stunden).

+618
Whirlwind 20.03.2014, 11:11:05

Ich weiß, dass es erhöht die Wahrscheinlichkeit mit zunehmendem Alter. Aber viele Bergleute nicht touch-Transaktionen, es sei den es gibt eine Gebühr an, ODER alle kostenpflichtigen Geschäfte wurden, zufrieden. Richtig?

Soweit ich sagen kann, das system des Gebens ältere Münzen Priorität ist nicht mehr in Gebrauch.

Wenn wir davon ausgehen, dass die Bergleute immer die 1MB mit der höchsten Gebühr, die aus Ihren mempool (was wahrscheinlich gilt, außer für Ihre eigenen Transaktionen und accelerator-Aktivität), die einzige interessante Frage ist:

Welche Gebühr muss ich hinzufügen, um eine Transaktion, damit Sie es unter die top-1MB für die nächsten X-Blöcke, wenn ich es will um zu bestätigen, in X/6 Stunden.

Insbesondere die Anzahl der Transaktionen in der mempool ist kein Anzeichen in Bezug auf diese Frage. Eher interessant sind:

  • niedrigste "Natürliche" Gebühr-rate in der Vergangenheit blockiert
  • honorartarife in der top-X MB) der mempool
  • erwartet Zustrom von konkurrierenden Transaktionen

So, was WAHRSCHEINLICH ist, ZEIT mit den folgenden mempool Größen wäre ein $3 Wert / .001 Transaktion bestätigt werden mit einer 3-satoshi-Gebühr?

Da ist auch unterhalb der minimum Gebühr von 1.000 satoshi pro kB ist, wird es nie bestätigen.

Update: ich war falsch in dem letzten Satz. Am vergangenen Wochenende Transaktionen mit null-Gebühr bestätigt wurden. Also, lassen Sie mich richtig 'nie' zu 'once in a blue moon".

+531
Curlystraw 08.08.2015, 22:50:13

Dies ist die PR, die aus OP_RETURN Ausgänge standard:

https://github.com/bitcoin/bitcoin/pull/2738

Der commit:

https://github.com/jgarzik/bitcoin/commit/a79342479f577013f2fd2573fb32585d6f4981b3

Der aktuelle code:

https://github.com/bitcoin/bitcoin/blob/v0.11.0/src/script/standard.cpp#L56-L58

 wenn (GetBoolArg("-datacarrier", true))
 mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN << OP_SMALLDATA));
 mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN));
+527
Just another hero 04.06.2015, 03:23:17

Bergbau ist nicht unbedingt anders zwischen wenn Sie fertig sind mit 2% der mining power als mit 52% -- sind Sie einfach nur ausführen-hashes und die Lösung blockiert.

Nun, wenn Sie mehr als 50%, werden die verfügbaren Optionen, die Sie ändern. Sie haben die Fähigkeit, eine Transaktion zu lassen, dass die Transaktion erhalten Sie eine Bestätigungs-vielleicht sogar, und dann, um die Blockaden, die es machen, als ob das ursprüngliche Transaktion nie passiert, und verbringen Sie die Münzen, ein zweites mal, um sicher die Mittel.

Sie können wirklich nicht doppelt ausgeben, versehentlich. Also das wäre eine Aktion durchgeführt, mit der Absicht zu betrügen. Fast überall Betrug ist illegal.

Nun, ob ein Bitcoin doppelt auszugeben, wäre etwas, dass eine jury zu verurteilen, wer weiß.

+487
Evans Thompson 09.04.2012, 07:40:52

Es scheint nicht eine gute Idee, nur unterscheiden zwischen der "Anzahl der Zeichen". Einige Adressen sind alphanumerische (Bitcoin), andere sind nur hexadezimale (Astraleums), andere sind nur numerische (LISK)...


Was ich herausgefunden habe:

NXT hat 24 Zeichen (Beispiel: NXT-MT4P-AHG4-A4NA-CCMM2), nur 20 ohne statische Bindestriche, nur 17 ohne statische "NXT" in der Anfang.

Lisk hat 21 Zeichen (Beispiel: 16118128613908223361L), nur 20 ohne statische 'L' am Ende.

+412
savioms 26.06.2011, 16:04:11

macOS Mojave-änderungen, wie der header-Serialisierung in der Anfang des ausführbaren Dateien. Vielleicht könnten Sie uns sagen, wie Sie installiert die Abhängigkeiten (mit brauen?) und die version des Compilers?

+370
Truth Troll 22.11.2013, 12:25:56

Sie können die getblocktemplate RPC-Befehl und Blick auf den target - Bereich.

+354
Joel Burget 03.04.2019, 23:04:58

Ab Januar 2016 Blockchain.info änderungen an den wallet-API-service, der nun erfordert, dass Sie laufen eine lokale nodeJS service, behandeln die Anrufe. Dies erfordert, dass Sie root-Zugang zu Ihrem webserver, so dass Sie brauchen, um eine VPS statt der grundlegenden gemeinsamen web-host.

Auch empfehle ich nicht die hand-Codierung der JSON-selbst bei der Verwendung von sendmany. Stattdessen erstellen Sie ein array und verwenden Sie dann die Funktionen json_encode Funktion.

$array = array(
 "1someAddress" => 20000,
 "1someAddress2" => 150000,
 "1someAddress3" => 314159
); 
$Adressen = die Funktionen json_encode($array);

Du bist nicht die einzige, die sich schwer mit der neuen version der API. Wenn Sie noch etwas Hilfe brauchen, schauen Sie sich diese Ressourcen.

https://www.youtube.com/watch?v=X8jsaf4sEgs
http://btcthreads.com/how-to-setup-blockchain-wallet-service/

Ich begann eine PHP-Bibliothek für die Kommunikation mit den nodeJS-service, (man muss immer noch arbeiten, einige Funktionen fehlen) https://github.com/coinables/blockchain-wallet-APIv2-PHP-Library

+287
Busted 21.10.2019, 21:03:35

Vorstellen, wenn ein paar Kumpels, die zusammen kontrollieren mehr als 50% des Netzwerk-hash-Strom entschieden, um die höheren Kosten Transaktion Gebühren nur für Adressen, die mit wirklich großen Summen.

Zum Beispiel diese Adresse hier hat 69,471.08443061 BTC:

http://blockchain.info/address/1HQ3Go3ggs8pFnXuHVHRytPCq5fGG8Hbhx

Nun, die Bergleute konnte sich entscheiden, lehnen jede Transaktion aus, dass bestimmte Adresse (egal wie klein der Betrag), es sei denn, es beinhaltete eine 25% Bearbeitungsgebühr an. Man könnte es Erpressung.

Frage:

  1. Ist es "illegal" (siehe unten) nach den Regeln des Bitcoin?
  2. Wie würde der rest des Netzes erkennen, wie ein problem (denn es bezieht sich nur auf eine bestimmte Adresse)?
  3. Wie würde ein solches problem gelöst werden?

Von "illegal" meine ich nicht, dass das Netzwerk ablehnen würde, ein solches Verhalten, denn das wäre es nicht, aber es würde abgelehnt werden von den meisten Teilnehmern in die Bitcoin-Wirtschaft basiert auf einem impliziten Verständnis von dem, was ist fair und was nicht.

[UPDATE]

OK, sagen wir, der Bergbau-Kartell veröffentlicht Ihre neue Politik auf Ihre website und das Wort geht um.

Auch, als Ansporn an den rest der Teilnehmer in der Wirtschaft, ist es bekannt, dass ein Teil der höheren Transaktionsgebühren werden verteilt werden an alle. Erreicht wird dies durch die Einrichtung einer einzigen Adresse (a la SatoshiDice), wo Sie senden jede Menge und im Gegenzug erhalten Sie den gleichen Betrag plus den bonus. Sie können dies nur einmal pro Adresse, da das Programm überprüft, dass die Gelder nicht über die gleiche Adresse zweimal.

Sie können das als eine Vermögenssteuer oder eine "Robin Hood tax".

+226
RautSa 06.05.2012, 13:38:35

Schnorr ersetzen ECDSA, die Unterzeichnung Algorithmus, aber beide immer noch die gleiche elliptische Kurve und damit die gleiche öffentliche und private Schlüssel, etc.

Unabhängig davon, Kompatibilität mit ECDSA gehalten werden muss, auch wenn Schnorr verwendet wird, da sonst alle alten Knoten würde die schnorr-Signaturen ungültig sind Unterschriften, und alle alten Transaktionen werden als ungültig betrachtet, indem Sie neue Knoten erstellen eine harte Gabel. Es ist wahrscheinlich, dass eine neue OP-code eingeführt werden würde, für die schnorr-Signatur die Prüfung, vielleicht eingeführt, ein neuer Zeuge-version, um es als eine weiche Gabel. Falls es eingeführt wird, wird es eine neue Art der Adresse, zur Unterscheidung von den Adressen, die überprüft werden sollten, mit ECDSA. Also beide Arten von Adresse wäre kompatibel mit allen neuen Knoten in der gleichen Weise, dass neue bc1 native Zeuge-Adressen sind kompatibel mit dem neuen Knoten neben P2SH und legacy-Adressen

+215
mservais 23.06.2011, 11:54:39

Ich arbeite an einer bitcoin-Zahlung-system, generiert Rechnungen, denn die Rechnung ist an der Zeit empfindlich, wie wir zu Steuern, die Gebühren, die unsere Nutzer so viel zahlen, wie möglich.

Ist es möglich, erstellen Sie eine BIP70 Zahlung Anforderung legt fest, dass die Gebühr der Empfänger erwartet zu bezahlen (entweder pro Ausgang addiert werden, oder insgesamt für die Transaktion)? Wir können unsere eigene Validierung, diese Frage ist nur über die Erstellung der Zahlungsaufforderung (wenn die bip70-Spezifikation erlaubt für die Festlegung der Gebühren).

+198
Sitizy 16.11.2018, 08:12:34

Sie verabschiedeten bip39, wo die Samen Eselsbrücke ist durch ein key-derivation-Funktion , um daraus die Samen. Dies ist ein irreversibler Schritt.

+186
bhotel 14.02.2014, 23:19:55

Ich habe eine bitcoin-core full-Knoten mit einer wallet auf VPS.

Ich benutze mein eigenes script zu verbinden, um die RPC. Das script funktioniert auf einem anderen VPS.

Manchmal bitcoin VPS offline geht. Sobald die Wiederherstellung dauerte eine lange Zeit, weil die blockchain kaputt. Ich möchte, um diese situation zu vermeiden in der Zukunft. Gekauft habe ich mir einen anderen vserver und installiert zweite Knoten. Wenn Haupt-Knoten geht offiline, scriptwill prüfen und eine Verbindung zum zweiten Knoten.

Jetzt bin ich einen Weg zu finden, die für die Synchronisation von Brieftaschen zwischen den Knoten. Ich weiß, hot kopieren Brieftasche.dat-Datei ist nicht erlaubt. Ich habe versucht, cron für dumpwallet auf master und restorewallet auf slave. Aber restorewallet nahm sich viel Zeit. Und ich verlor einige neueste Adressen.

Was ist die richtige Art und Weise zu bauen, bitcoin-core-wallet-Replikation?

+85
user8150 21.03.2010, 23:20:06

Fragen mit Tag anzeigen