blockchain checksig scheitern

ich bin versucht, um zu überprüfen, eine checksig aus einer Transaktion, in der live-blockchain. es nicht auf meinem debian jessie pc mit openssl 1.0.1 k, andernfalls auf meinem ubuntu 12.04 virtuelle Maschine mit openssl 1.0.1 und Validierung ordnungsgemäß auf meinem debian-wheezy-pc mit openssl 1.0.1 e. beide sind mit dem gleichen code. die Transaktion ist die erste Instanz einer SIGHASH_NONE in der live-blockchain. ich berechne die "Nachricht" (tx) - hash-Funktion so:

hex: 2c7ecdcb2381e657228284398f2f66b2d7d9cf6aa1bd8e39a7300d0b3c8cfa5a
gleiche Sache in base58: 3zh5uvKWoRjFgKMSLRVqEWXB6YVLsuDKo97ycscjz2wb

die Signatur ist:

hex: 30440220bb4fbc495aa23babb2c2be4e3fb4a5dffefe20c8eff5940f135649c3ea96444a022004afcda966c807bb97622d3eefea828f623af306ef2b756782ee6f8a22a959a2
gleiche Sache in base58: 381yXZvFc5V2dx81gRNNpj7ResKUgWA92mktefemm9gm2kw37b3dgkv5v2bsfq94psuh1e4jhq9schcp6t7mfg41a7rbzcnd
beachten Sie, dass diese Signatur nicht haben, den 02 hashcode angehängt

und der pubkey ist:

hex: 04f1939ae6b01e849bf05d0ed51fd5b92b79a0e313e3f389c726f11fa3e144d9227b07e8a87c0ee36372e967e090d11b777707aa73efacabffffa285c00b3622d6
gleiche Sache in base58: SJa4B8CrqDs6St5KaXMm4KCCksaT7RDccardyksd6mbu1wzswokeq3jwgtfzrz7by6jyd5qmuvhgqspyc6wtijqq
konvertiert bitcoin-Adresse: 145YPBBWRj4aquewvx59SAWNrSZFT5rvxr

könnte mir jemand sagen, ob diese Parameter übergeben Sie den ecdsa-Prüfung oder nicht? auch wenn jemand weiß, der ein online-validator, dass wäre hilfreich.


ich bin versucht zu überprüfen, ob dies mit der jsonrpc-client, aber es funktioniert nicht auf jedem Rechner habe ich:

#!/usr/bin/env python2.7 

von bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
rpcuser = 1
rpcpassword = 1
rpc_connection = AuthServiceProxy("http://%s:%[email protected]:8332" % (rpcuser, rpcpassword))
message = "3zh5uvKWoRjFgKMSLRVqEWXB6YVLsuDKo97ycscjz2wb" 
sig = "381yXZvFc5V2dx81gRNNpj7ResKUgWA92mktefemm9gm2kw37b3dgkv5v2bsfq94psuh1e4jhq9schcp6t7mfg41a7rbzcnd"
addr = "145YPBBWRj4aquewvx59SAWNrSZFT5rvxr" 
res = rpc_connection.verifymessage(addr, sig, Nachricht) 
print res

Ausgabe:

False

vielleicht bin ich die Codierung der Nachricht oder die Signatur falsch für den rpc-client? ich habe versucht, die übergabe Binär codierte Daten, um es, aber es war nicht so:

Datei "/usr/local/lib/python2.7/dist-packages/bitcoinrpc/authproxy.py", line 125, in __call__
 json.dumps(args, default=EncodeDecimal)))
 Datei "/usr/lib/python2.7/json/__init__.py", line 238, in dumps
**kw).encode(obj)
 Datei "/usr/lib/python2.7/json/encoder.py", line 200, in encode
 chunks = selbst.iterencode(o, _one_shot=True)
 Datei "/usr/lib/python2.7/json/encoder.py", line 263, in iterencode
 zurück _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec kann nicht decodieren byte 0xcd in position 2: invalid continuation byte

die überprüfung mit pybitcointools funktioniert auf allen Maschinen:

von bitcoin-import *
import binascii

msg = "2c7ecdcb2381e657228284398f2f66b2d7d9cf6aa1bd8e39a7300d0b3c8cfa5a"
# stellen Sie sicher, dass der 02 hashcode auf das Ende der Signatur hier!!
sig = "30440220bb4fbc495aa23babb2c2be4e3fb4a5dffefe20c8eff5940f135649c3ea96444a022004afcda966c807bb97622d3eefea828f623af306ef2b756782ee6f8a22a959a202"
pub = "04f1939ae6b01e849bf05d0ed51fd5b92b79a0e313e3f389c726f11fa3e144d9227b07e8a87c0ee36372e967e090d11b777707aa73efacabffffa285c00b3622d6"
msg = binascii.unhexlify(msg)
drucken ecdsa_raw_verify(msg, der_decode_sig(sig), pub)

Ausgabe:

True
+883
Manak 15.09.2010, 14:25:40
16 Antworten

Ripple-Transaktionen sind irreversibel. Es gibt keine Rückbuchungen.

+936
lorie 03 февр. '09 в 4:24

http://faucet.xeno-genesis.com/

arbeiten wie der 2014-04-06, mit über 2000+ testnet Münzen.

+920
Malokai 22.05.2010, 09:19:51

Ich bin Sie ein dashboard erstellen, und ich möchte hinzufügen Markttiefe als Indikator von verschiedenen Börsenplätzen.

Ich habe verstanden, Markttiefe aus dem folgenden thread -

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

Das Problem ist, ich bin ein wenig verwirrt, als Sie die API ' s zur Verfügung gestellt von Mt.Gehex, bieten Sie eine API für die Tiefe, welche sich eng um die Lautstärke. Die anderen Börsen bieten API ' s für die Bids und Asks - aus, die als pro den link, den wir zeichnen können zwei Kurven und zeigen die Tiefe.

Also, was ist der richtige Weg zu gehen über den Bau dieses Grundstück für die verschiedenen Börsen? Gibt es einen Algorithmus, der zu verwendet. Gibt es eine Website, die bietet bereits die Markttiefe Info für andere Börsen.

Danke für den Hinweis mich in die richtige Richtung.

+778
Shaka 29.03.2010, 16:40:32

Ich habe versucht, die Wiederherstellung alle meine HD-Adresse durch den Import meiner xprv in neue wallet-Datei, aber es zeigt nur 20 Adressen. Wie kann ich es zeigen alle untergeordneten Adressen meiner xprv?

+771
pinkdroyd 22.01.2019, 17:45:13

Traditionelle Bitcoin Austausch halten Sie Ihre Kunden Fonds, die sowohl Bitcoins und counter-Währungen. Wenn also ein Handel tatsächlich gemacht, den Austausch gerade passt, Ihre eigene balance-Nummern. Vor dem kaufen von Bitcoins, die Sie hinterlegen müssen, eine andere Währung in Ihrem Konto auf dem exchange. Bevor Sie in der Lage zu verkaufen, Bitcoins, müssen Sie die Hinterlegung von Bitcoins in Ihrem Konto auf dem exchange.

+737
Bill Sacks 29.03.2017, 19:22:54

Es ist ein patch für den client zur Verfügung, damit Sie wählen gezielt die-Adressen zu verwenden, wenn die Ausgaben. - http://github.com/bitcoin/bitcoin/pull/415

+705
Benoit Meunier 14.04.2012, 18:04:12

In Bter erstellte ich eine verkaufen bieten mit DOGE/BTC scheint es, dass die Berechnung falsch ist. Sie haben nicht nach Abzug der Transaktionsgebühr. Ich habe 2 screenshots und jeder das gleiche wissen oder die gleiche Erfahrung freundlich klären.

Vor der Erstellung zu verkaufen, um

Verkaufen DOGE

before creating order

Nach der Erstellung zu verkaufen, um

after creating order

Meine Frage ist, Ist Transaktionsgebühr abgezogen, in dieser Transaktion?

+644
ManaBogu 25.09.2018, 20:12:17

Ich fand einige weitere Informationen auf Wiki:

Generationen haben einen einzigen Eingang, und dieser Eingang hat eine "coinbase" parameter anstelle eines scriptSig. Die Daten in "coinbase" kann alles sein; es ist nicht verwendet. Bitcoin setzt die aktuelle compact-format Ziel-und die beliebige Präzision "extraNonce" Zahl gibt, die erhöht jedes mal, wenn die Nonce Feld in die block-header-overflows. Ausgänge kann alles sein, aber Bitcoin erstellt ein, genau wie eine IP-Adresse-Transaktion. Die extranonce trägt zum vergrößern der Domäne für den Nachweis der Funktion. Bergleute können ganz einfach ändern nonce (4byte), Zeitstempel und extranonce (2 100bytes).

https://en.bitcoin.it/wiki/Transaction

In anderen Worten, der erste Bitcoin-client kopiert die "bits" - Feld (kompakt-format-Ziel) aus der block-header und verwendet es in einem push-Daten die operation für die coinbase input script. Aber ich bin mir immer noch nicht sicher, warum dies wurde als eine gute Idee zu sein.

Als Nächstes wird eine zweite pushdata Bedienung schob den "extranonce" - Feld. In diesem Feld um eins erhöht, wenn die nonce-Feld-übergelaufen. Die Implikationen für die Privatsphäre von diesem system werden hier besprochen:

https://bitslog.wordpress.com/2013/04/17/the-well-deserved-fortune-of-satoshi-nakamoto/

Ich glaube, ich kann jetzt meine Antworten:

  1. Nein.
  2. Bits gibt es, weil das ist genau das, was Bitcoin hat. 0x04 ist der extranonce Feld.
  3. Ja.
  4. Ja, zum Teil.
+591
ChadO 30.06.2012, 02:57:15

Ihre hardware ist nutzlos für den Bergbau. Würden Sie mehr Geld macht, als Sie könnte jemals wieder Bergbau auf einem Prüfstand, der nicht gebaut für den Bergbau.

+531
brenners1302 09.11.2011, 14:50:25

Es gibt keinen einfachen Algorithmus zur Abschätzung der Schwierigkeit. Dies erfordert, dass Sie zuerst bestimmen Sie die Kardinalität der Schnittmenge zwischen den regulären Sprache , ausgedrückt durch die Eingabe regulärer Ausdruck, und die Menge aller gültigen öffentlichen Schlüssel.

+523
Adam Dingle 20.08.2013, 14:15:03

Lassen Sie uns sagen, ein neuer Knoten versuchen, eine Verbindung zum Netzwerk herstellen. Da es keine Knoten in Ihre peers.dat es macht eine Anfrage an den DNS-Sämaschine und erhält eine Liste mit Adressen.

Nun, wie viele von diesen Adressen wird es versuchen, sich zu verbinden? Was ist die gleiche, die beim abrufen von Adressen von peers.dat? Ist es möglich, eine änderung dieser Zahl, indem Sie einige option?

+443
Kandee Cumbee 13.12.2014, 16:11:41

Ich bin interessiert in den Aufbau einer Bitcoinica Ersatz und fragte sich, wie haben Sie Ihre Preisinformationen.

War es vom Mt.Gehex und war es eine nachprüfbare, ich meine, könnten Sie schon auf einer Website gesehen und eine Geschichte der Preise und daher wissen, warum Sie Ihre position liquidiert worden ?

+348
user6338641 15.03.2011, 02:41:04

wow, Coole Frage, das ist nicht ganz einfach. Vor allem, da es verschiedene Segwit tx denkbar (native P2WPKH, P2SH-P2WPKH, Native P2WSH, P2SH-P2WSH oder eine mit Bech32-Adresse). Dann gibt es den Punkt der Anpassung aller Parameter Länge (für Signaturen und scripts). Ich werde versuchen Sie es mit einem standard-P2WPKH. Also zuerst würde ich Dekodieren Sie Ihre vorausgesetzt, tx, bekomme ich diese:

VERSION
01000000

TX_IN COUNT [var_int]: hex=03, decimal=3
 TX_IN[0] OutPoint hash 9D62373BF1838B4E4F497836DB0D8EDEFFBCAD64B1474904BCDA8DC37937C0B0
 TX_IN[0] OutPoint index hex=01000000, Umgekehrt=00000001, dezimal=1
 TX_IN[0] Script Länge hex=6B, dezimal=107
 TX_IN[0] Script Sig 
483045022100F3C0F555CD39198CAF77F6756256801FC57BCABE4892601B9DEF52259698F40A0220230262841BFF151
EB617F7D4CDDA6BF06D6FA791230C152E47F68BCDD0E6F64A01210204B3506D8903CA601C97A4ABAB6548E91004C535A5
A45E21299A494B146859CA 
 TX_IN[0] Sequence (uint32_t) FFFFFFFF

 TX_IN[1] OutPoint hash B3CA9199969BD474BA0A609A1C01C3B6C2EB97885FC1DCAD2CD1704BE5EA0E06
 TX_IN[1] OutPoint index hex=00000000, Umgekehrt=00000000, dezimal=0
 TX_IN[1] Skript, Länge hex=6B, dezimal=107
 TX_IN[1] Skript Sig
 4830450221009DBEB64DDD4646E1118503C87FEAA95C531B5178C6E543BE782F6ECB05E8FBE602203945570F8DC56C145617F0283FA4032E0B7895A9CF2A81C7B65665B8AC608CB00121026602A5DC59C30F485B2C457AC8E2F617E27B10A1D2AE76F3231F9B01DFF08964 
 TX_IN[1] Sequenz FFFFFFFF

 TX_IN[2] OutPoint hash 3E90870CB2B89307514498D010EE1A1F724EE578859B8F118902DB08A45B717F
 TX_IN[2] OutPoint index hex=01000000, Umgekehrt=00000001, dezimal=1
 TX_IN[2] Script Länge hex=6B, dezimal=107
 TX_IN[2] Skript Sig 
 48304502210095E300886EC4DF78E39D6D0CF5E5E531DED8F42F00E5730C371D8951867DAD5B02203C55F9403F6C2AAC444213161A93A86661E7367D4007BE74FFB3981387CC1C790121023F0AADFEB71A4964C5087FEC8B052C8236051DAE838D4747543330C6B266CE6E 
 TX_IN[2] Sequenz FFFFFFFF

TX_OUT ZÄHLEN, hex=02, dezimal=2
 TX_OUT[0] der Wert hex=D578110000000000, dec=1145045, bitcoin=0.01145045
 TX_OUT[0] PK_Script Länge hex=19 Dez=25
 TX_OUT[0] pk_script 76A914342AB422C9E3EF285EFE9882AE54269ED9713DD688AC
 TX_OUT[1] Wert hex=20A1070000000000, dec=500000, bitcoin=0.00500000
 TX_OUT[1] PK_Script Länge hex=19 Dez=25
 TX_OUT[1] pk_script 76A91488D924F51033B74A895863A5FB57FD545529DF7D88AC

 LOCK_TIME 00000000

Jetzt mache ich eine P2WPKH tx aus ihm heraus. Im Allgemeinen, die segwit Transaktion setzt sich auf diese Weise:

[nVersion][marker][flag][txins][txouts][Zeugnis][nLockTime]

VERSION
01000000

SEGWIT (BIP141): dies ist ein segwit tx, marker=00
 (BIP141): flag=01

TX_IN COUNT [var_int]: hex=03, decimal=3
 TX_IN[0] 9D62373BF1838B4E4F497836DB0D8EDEFFBCAD64B1474904BCDA8DC37937C0B0
 TX_IN[0] hex=01000000, Umgekehrt=00000001, dezimal=1
 TX_IN[0] Script Länge hex=00, dezimal=0
 TX_IN[0] Sequence (uint32_t) FFFFFFFF

 TX_IN[1] B3CA9199969BD474BA0A609A1C01C3B6C2EB97885FC1DCAD2CD1704BE5EA0E06
 TX_IN[1] hex=00000000, Umgekehrt=00000000, dezimal=0
 TX_IN[1] Skript, Länge hex=00, dezimal=0
 TX_IN[1] Sequence (uint32_t) FFFFFFFF

 TX_IN[2] 3E90870CB2B89307514498D010EE1A1F724EE578859B8F118902DB08A45B717F
 TX_IN[2] hex=01000000, Umgekehrt=00000001, dezimal=1
 TX_IN[2] Script Länge hex=00, dezimal=0
 TX_IN[2] Sequence (uint32_t) FFFFFFFF

TX_OUT ZÄHLEN, hex=02, dezimal=2
 TX_OUT[0] der Wert hex=D578110000000000, dec=1145045, bitcoin=0.01145045
 TX_OUT[0] PK_Script Länge hex=19 Dez=25
 TX_OUT[0] pk_script 76A914342AB422C9E3EF285EFE9882AE54269ED9713DD688AC
TX_OUT[1]
 TX_OUT[1] Wert hex=20A1070000000000, dec=500000, bitcoin=0.00500000
 TX_OUT[1] PK_Script Länge hex=19 Dez=25
 TX_OUT[1] pk_script 76A91488D924F51033B74A895863A5FB57FD545529DF7D88AC

ZEUGE TXIN[0] stack-Elemente: hex=02, dezimal=2
 ZEUGE[0] Daten Länge (var_int), hex=48, dezimal=72, - Daten(uchar[]): 
3045022100F3C0F555CD39198CAF77F6756256801FC57BCABE4892601B9DEF52259698F4
0A0220230262841BFF151EB617F7D4CDDA6BF06D6FA791230C152E47F68BCDD0E6F64A01
 ZEUGE[1] Datenlänge (var_int), hex=21, dezimal=33, - Daten(uchar[]):
0204B3506D8903CA601C97A4ABAB6548E91004C535A5A45E21299A494B146859CA

ZEUGE TXIN[1] stack-Elemente: hex=02, dezimal=2
 ZEUGE[0] Daten Länge (var_int), hex=48, dezimal=72, - Daten(uchar[]):
30450221009DBEB64DDD4646E1118503C87FEAA95C531B5178C6E543BE782F6ECB05E8FB
E602203945570F8DC56C145617F0283FA4032E0B7895A9CF2A81C7B65665B8AC608CB001
 ZEUGE[1] Datenlänge (var_int), hex=21, dezimal=33, - Daten(uchar[]):
026602A5DC59C30F485B2C457AC8E2F617E27B10A1D2AE76F3231F9B01DFF08964

ZEUGE TXIN[2] stack-Elemente: hex=02, dezimal=2
 ZEUGE[0] Daten Länge (var_int), hex=48, dezimal=72, - Daten(uchar[]):
304502210095E300886EC4DF78E39D6D0CF5E5E531DED8F42F00E5730C371D8951867DAD
5B02203C55F9403F6C2AAC444213161A93A86661E7367D4007BE74FFB3981387CC1C7901
 ZEUGE[1] Datenlänge (var_int), hex=21, dezimal=33, - Daten(uchar[]):
023F0AADFEB71A4964C5087FEC8B052C8236051DAE838D4747543330C6B266CE6E

LOCK_TIME
00000000

Also gehe ich davon aus das segwit Muster kann klar erkannt werden, sehen, dass die Signatur-Länge ist gegeben als "0" ist, und am Ende erscheint pro Eingang die Zeugnis-Daten. Mehr dazu finden Sie in der entsprechenden BIPs, und natürlich auch in der wiki.

und die serialisierten hex wäre diese:

01000000000103b0c03779c38ddabc044947b164adbcffde8e0ddb3678494f4e8b83f13b37629d0100000000ffffffff060eeae54b70d12caddcc15f8897ebc2b6c3011c9a600aba74d49b969991cab30000000000ffffffff7f715ba408db0289118f9b8578e54e721f1aee10d09844510793b8b20c87903e0100000000ffffffff02d5781100000000001976a914342ab422c9e3ef285efe9882ae54269ed9713dd688ac20a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac02483045022100f3c0f555cd39198caf77f6756256801fc57bcabe4892601b9def52259698f40a0220230262841bff151eb617f7d4cdda6bf06d6fa791230c152e47f68bcdd0e6f64a01210204b3506d8903ca601c97a4abab6548e91004c535a5a45e21299a494b146859ca024830450221009dbeb64ddd4646e1118503c87feaa95c531b5178c6e543be782f6ecb05e8fbe602203945570f8dc56c145617f0283fa4032e0b7895a9cf2a81c7b65665b8ac608cb00121026602a5dc59c30f485b2c457ac8e2f617e27b10a1d2ae76f3231f9b01dff089640248304502210095e300886ec4df78e39d6d0cf5e5e531ded8f42f00e5730c371d8951867dad5b02203c55f9403f6c2aac444213161a93a86661e7367d4007be74ffb3981387cc1c790121023f0aadfeb71a4964c5087fec8b052c8236051dae838d4747543330c6b266ce6e00000000

+309
Awais Fayyaz 10.04.2011, 06:04:03
  1. Verwenden Sie besser off-line-Maschine für die generation secure bitcoin Adresse. (siehe vanitygen)
  2. Danach senden Sie Ihr Geld vom on-line-Maschine an diese Adresse.
  3. Bitcoin jetzt sicher sind.
  4. Niemand kennt Ihren privaten Schlüssel.
+147
iliyas3514 02.08.2012, 17:06:44

cgminer konfiguriert werden können, um mehrere pools.

Gibt es eine Möglichkeit, um als ersten Eintrag meiner privaten Brieftasche, und als zweiten Eintrag ein öffentliches mining-pool?

Dabei gibt seltsame Ausgabe:

[2014-01-29 12:40:16] Probing für ein alive-pool
[2014-01-29 12:40:16] Netzwerk-diff eingestellt 2.46 K
[2014-01-29 12:40:16] - Block ändern für http://xxx.yyy.zzz.aaa:9332 Nachweis über stratum+tcp://freedom.wemineltc.com:3333 stratum

In meinem Fall, pool1 ist meine private wallet (xxx.yyy.zzz.aaa), pool2 ist freedom.wemineltc.com. Ich Frage mich, warum pool2 zeigt sich bei allen. Entfernen pool2 von cgminer.conf macht mein cgminer funktioniert auf pool1 / meine private Geldbörse.

+126
Yusya 04.04.2011, 13:10:33

Lesen Sie dieses Thema: https://github.com/bitcoin/bitcoin/issues/2079

Als gavinandresen kommentierte Dezember 06, 2012

Ja, das ist ein 'WONTFIX'.

Ein sendall Konto-Befehl, nahm Sie das Konto genau null wäre eine gute Lösung, obwohl Sie immer noch in edge Fälle wie "was ist, wenn das Konto enthält 0.000001 BTC" (Gebühr sendall könnte größer sein, als, dass).

+13
John B Fair 10.09.2012, 05:29:47

Fragen mit Tag anzeigen