Was heißt ERROR code=-28, message=Aktivieren am besten die Kette?

Ich bin mit insight-api-get-block-chain-Informationen. Wenn ich versuche zu starten, Einsicht, erhalte ich die Fehlermeldung "error code=-28, message=Aktivieren der besten Kette..." . Ich sah diesen Fehler erste mal,bitte helft mir, wie reslove diese.

Volle stack-trace des Fehlers:

v0.2.12

Verbindung info: Einblick-server lauscht auf port 3000 im development-Modus

Fehler: ERROR code=-28, message=Aktivieren der besten Kette...

Ich bin nicht in der Lage zu verstehen, Fehler. ich bin mit insight-api für das.

Vielen Dank im Voraus

+13
Bryan Head 22.08.2013, 08:18:57
22 Antworten

Es ist viel einfacher, formal zu überprüfen, das Verhalten Raum des Bitcoin-Skript vs. Solidität.

Zum Beispiel, die DAO-Projekt litt von Reentranz Schwachstellen, da konnte man nicht Vorhersagen, das Verhalten von anonymen smart-Verträge, wenn Sie genannt wurden gesendet/Fonds (fallback-Funktion, jetzt veraltet).

Es gibt formale Verifikation Bemühungen für Solidität, aber das erhöht die design-Schwierigkeitsgrad enorm, und man muss sich Fragen ob es sich lohnt die turing-Vollständigkeit.

+968
amulhol 03 февр. '09 в 4:24

Ich bin ganz neu in der Bitcoin-Welt. Über 1 BTC gesendet wurde, meine Electrum wallet zu meinem Coinomi wallet, mit 0,5 mBTC pro kB Kommission, und es blieb unbestätigt für etwa 50-60 Stunden. Dann wird die Transaktion abgelehnt wurde.

Doch die Menge lässt sich noch heute als "unbestätigt" in meiner Brieftasche. Zwei Fragen: 1. Was kann ich tun, um die "unbestätigten" Betrag. 2. Was habe ich falsch gemacht und warum es abgelehnt wurde, nachdem alle? Bitte helfen

+953
chobo2 09.06.2017, 23:33:12

Ich habe vorher das getan.

Gehen Sie zu Ihrem blockchain-Ordner. Löschen Sie alle blockchain-Dateien (schw***.dat-und rev -***.dat), mit Ausnahme der beiden jüngsten für jede Datei gesetzt (blk-und rev). Ich habe es so gemacht ohne Probleme in der Vergangenheit.

**** * ACHTUNG**** Ihre Ergebnisse können variieren! **** * ACHTUNG****

Das einzige Risiko ist, dass müssen Sie möglicherweise einen re-download der gesamten blockchain wieder. Immer ein backup Ihrer Brieftasche.dat-Datei zu!

Die "letzten" Dateien, auf die ich mich beziehe, sind diejenigen mit der höchsten Zahl. Mir gehen derzeit bis zu "rev00973.dat". Wenn ich versuche manuell zu beschneiden meine Dateien, die ich löschen würde "blk00000.dat" durch "blk00971.dat" und "rev00000.dat" durch "rev00971.dat".

HINWEIS: spätestens 8/27/2017 diese Methode nicht mehr funktioniert. Ich werde aktualisieren, wenn ich in der Lage bin zu finden, die eine praktisch ähnliche Methode, die funktioniert.

+951
Melanie Smits 06.06.2016, 00:13:31

Sorry, mein Englisch ist schlecht, ich werde versuchen zu erklären. Fühlen Sie sich frei zu kommentieren und Fragen.

Zunächst die Terminologie. Es gibt keine "pay-to-pub-key hash msig txs". Es gibt

  • bare multisig-Ausgänge
  • p2sh Ausgänge

In nackten multisig - Ausgabe habe ich eine Liste erstellen, auf [N] pubkeys und wählen Sie [M]. Die Ausgabe von script Aussehen wird [push M] [push key1] [push key2]... [push keyN] [push-N] [checkmultisig]

Jede person kann überprüfen Sie dieses set. Wenn er [M] - Tasten wird er in der Lage zu erlösen dieser Ausgabe. Wenn er weniger als [M] - Tasten wird er in der Lage sein, um teilweise Unterschreiben einlösen Transaktion und übergeben es an eine andere person (diese Weitergabe Schritt nicht getan werden kann, innerhalb von bitcoin-Netz, da Knoten nicht relais teilweise signierten Transaktionen). Wenn die Transaktion Gewinne mindestens [M] Signaturen abgebaut werden können. Haben Sie einen Blick auf https://gist.github.com/gavinandresen/3966071

p2sh bietet mehr Funktionalität. Ich kann schreiben, meine eigenen erlösen Skript und die Berechnung der Prüfsumme. Einlösen p2sh Ausgabe, die Sie wissen sollten das Skript selbst (die blockchain enthält nur den hash davon) und Sie sollten scriptSig für Sie. In der Regel p2sh Ausgänge verwendet für multisig-Transaktionen, aber es gibt Ausnahmen. https://bitcointalk.org/index.php?topic=293382.0

Update: Noch ein nützlicher link: Was sind multi-Signatur Transaktionen?

+935
rafee 25.09.2019, 07:25:47


nach der Lektüre bitcoin wiki "Richtiger Umgang mit Geld" ich dachte, es sollte keine Probleme Präzision.

Jedoch senden/verschieben zum Beispiel 16999999.99999999 sendet/bewegt 17000000. Ich habe herausgefunden, wo das problem liegt:
- PHP-Shops-float-Wert mit ausreichender Genauigkeit. Ich kann printf es mit 8 richtigen Ziffern nach dem Punkt.
- json-rpc-php-Bibliothek kopiert, schweben in "params" - array, und immer wieder Präzision.
- Leider, string erzeugt, indem die Funktionen json_encode() in json-rpc-Bibliothek enthält "Runden" Wert, so gibt es ein problem.


So kann ich Kraft für json_encode() für die Ausgabe 8 stellen (oder mehr)? Oder muss ich schreiben, dass meine eigenen, das ist nicht sehr kompliziert, aber wird eher langsamer als standard-Funktion.

Bitte beachten Sie diese Themen über Probleme mit floats in PHP und Python auf bitcointalk, so ist es nicht meine Schuld. Eines der Ergebnisse ist diese Frage genjix Zweig des bitcoin, die schickt Mengen als Zeichenketten.

Die besten Wünsche

+917
GZepeda 06.01.2012, 00:56:08

dies ist Coinify Vertreter schreiben. Es tut uns Leid zu hören, dass Sie Probleme mit unserem Verkauf-service-und möchten sicher stellen, dass alles in Ordnung ist. Leider, basierend auf diesem post, wir nicht identifizieren können, Ihrem konkreten Fall. Könnten Sie bitte senden Sie ein ticket an [email protected] bei der Ermittlung von Informationen aus der E-Mail-Adresse mit Ihrem Konto verknüpft? Wenn Sie eingereicht haben, ein ticket bereits, entnehmen Sie bitte die ticket-id in Ihrem E-Mail. Im moment erleben wir eine längere Reaktionszeit (https://support.coinify.com/Knowledgebase/Article/View/197/0/why-are-bitcoin-transactions-taking-longer-than-usual- ) aber wir möchten Euch versichern, dass jeder Auftrag und Anforderung von Unterstützung wird gesorgt sein. Vielen Dank für Ihr Verständnis.

Beste Grüße, Coinify team

+890
Nick Sawyer 24.07.2018, 21:06:02

Ich bin neu in der Bitcoin-Entwicklung und ich bin derzeit mit Schwierigkeiten zu versuchen, um RPC-Aufrufe zu einem Bitcoin-Core-daemon läuft in einem SSH-server. Ich nehme an, dass das problem mit der Firewall oder geschlossenen ports, aber ich habe auch nicht viel Ahnung von Netzwerk Einstellungen.

Ich bin mit nbobtc/bitcoind-php-Paket , um die RPC-Aufrufe mit HTTP-Anforderungen, und es läuft in einem Docker-container. Ich bin sicher, dass dies funktioniert und ist nicht das problem.

Also hier ist was passiert: wenn ich mit bitcoind in ein normal-user in meinen SSH-server, und mit nbobtc-Paket, um die RPC-Aufrufe, wird die Verbindung immer erhalten, weigerte sich im Anschluss 18332 (das ist conffirmed wenn ich versuche die telnet-port bei SSH die ip-Adresse):

Fehler beim herstellen einer Verbindung zu 192.168.xx.xxx port 18332: Connection refused

Allerdings, wenn ich bitcoind in super-user (root), die RPC-Aufrufe funktioniert es einfach perfekt. Aber da ich nicht ausführen möchten bitcoind in der root-Benutzer, würde ich mag, um herauszufinden, was blockiert mich aus, die RPC-Aufrufe an eine normale Benutzer - oder wenn, ist es auch möglich.

Ich habe versucht, ports zu öffnen, mit "sudo ufw ermöglichen 18332" und auch mit IPTABLES (eigentlich doch ich bin mir nicht sicher, welches von den SSH - es war nicht ich, der es konfiguriert). Ich bin mir nicht sicher, ob Sie gearbeitet haben, als mit nc-und telnet-Befehle-Verbindung wird immer noch abgelehnt.

Hier ist, was mein bitcoin.conf aussieht (ich will testnet hier):

server=1
debug=Netto
txindex=1
testnet=1
rpcuser=userb
rpcpassword=test
test.rpcport=18332

# Hab ich schon versucht, so dass die IP diese 3 Möglichkeiten:
# rpcallowip=192.168.xx.xx # Mein Rechner die IP-Adresse
# rpcallowip=172.19.x.x/xx # Docker ' s NBOBTC container IP
# rpcallowip=0.0.0.0/0 # Erlaubt alle IP

datadir=/home/bitcoin-dev/.bitcoin
debuglogfile=/home/bitcoin-dev/.bitcoin/debug.melden

PS: ich bin mit Bitcoin-Core "subversion": "Satoshi:0.17.1"

Hier ist, was wird angezeigt im debug.log direkt nach mir laufen Bitcoind:

2019-05-06T14:43:10Z Bitcoin-Core version v0.17.1 (release build)
2019-05-06T14:43:10Z InitParameterInteraction: parameter der Interaktion: -whitelistforcerelay=1 -> Einstellung -whitelistrelay=1
2019-05-06T14:43:10Z Vorausgesetzt, die Vorfahren der block 0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75 gültige Unterschriften.
2019-05-06T14:43:10Z Einstellung nMinimumChainWork=00000000000000000000000000000000000000000000007dbe94253893cbd463
2019-05-06T14:43:10Z Mit der 'sse4(1way),sse41(4fach)' SHA256 implementation
2019-05-06T14:43:10Z Standard-Daten-Verzeichnis /root/.ein.bitcoin
2019-05-06T14:43:10Z Mit Daten-Verzeichnis /home/bitcoin-dev/.bitcoin/testnet3
2019-05-06T14:43:10Z config file /home/bitcoin-dev/.bitcoin/bitcoin.conf
2019-05-06T14:43:10Z Mit maximal 125 automatische verbindungen (1024 file descriptors available)
2019-05-06T14:43:10Z Mit 16 MiB aus 32/2 angefordert für den Signatur-cache speichern kann, 524288 Elemente
2019-05-06T14:43:10Z Mit 16 MiB aus 32/2 beantragt für die Ausführung von Skript-cache speichern kann, 524288 Elemente
2019-05-06T14:43:10Z Mit 4 threads für die Skript-überprüfung
2019-05-06T14:43:10Z scheduler thread starten
2019-05-06T14:43:10Z Bindung RPC auf Adresse 0.0.0.0 port 18332 gescheitert.
2019-05-06T14:43:10Z HTTP: erstellen von work queue-Tiefe 16
2019-05-06T14:43:10Z Config-Optionen rpcuser und rpcpassword wird bald veraltet. Lokal-Instanzen zu entfernen rpcuser, um die cookie-auth, oder kann ersetzt werden mit rpcauth. Bitte finden Sie unter freigeben/rpcauth für rpcauth auth generation.
2019-05-06T14:43:10Z HTTP: ab 4 worker-threads
2019-05-06T14:43:10Z Mit wallet Verzeichnis /home/bitcoin-dev/.bitcoin/testnet3/Geldbörsen
2019-05-06T14:43:10Z init-Nachricht: Überprüfen wallet(s)...
2019-05-06T14:43:10Z Mit BerkeleyDB version der Berkeley DB-4.8.30: (9. April 2010)
2019-05-06T14:43:10Z Mit wallet Brieftasche.dat
2019-05-06T14:43:10Z BerkeleyEnvironment::Open: LogDir=/home/bitcoin-dev/.bitcoin/testnet3/Portemonnaies/Datenbank ErrorFile=/home/bitcoin-dev/.bitcoin/testnet3/Portemonnaies/db.melden
2019-05-06T14:43:10Z net: Einstellung versuchen, eine andere ausgehende peer=false
2019-05-06T14:43:10Z Cache-Konfiguration:
2019-05-06T14:43:10Z * Mit 2.0 MiB für block-index-Datenbank
2019-05-06T14:43:10Z * Mit Insgesamt 56,0 MiB-index-Datenbank für die Transaktion
2019-05-06T14:43:10Z * Mit 8.0 MiB für Kette-state-Datenbank
2019-05-06T14:43:10Z * Mit 384.0 MiB für in-memory-UTXO-set (plus bis zu 286.1 MB, ungenutzte mempool Raum)
2019-05-06T14:43:10Z init message: Loading block-index...
2019-05-06T14:43:10Z Eröffnung LevelDB in /home/bitcoin-dev/.bitcoin/testnet3/blocks/index
2019-05-06T14:43:10Z Geöffnet LevelDB erfolgreich
2019-05-06T14:43:10Z Mit der Verschleierung der Schlüssel für die /home/bitcoin-dev/.bitcoin/testnet3/blocks/index: 0000000000000000
2019-05-06T14:43:19Z LoadBlockIndexDB: letzter block Datei = 161
2019-05-06T14:43:19Z LoadBlockIndexDB: letzter block Datei-Informationen: CBlockFileInfo(Blöcke=755, Größe=30875345, heights=1513309...1514061, Zeit=2019-04-29...2019-05-03)
2019-05-06T14:43:19Z Überprüfung der blk-Dateien sind vorhanden...
2019-05-06T14:43:20Z Eröffnung LevelDB in /home/bitcoin-dev/.bitcoin/testnet3/chainstate
2019-05-06T14:43:20Z Geöffnet LevelDB erfolgreich
2019-05-06T14:43:20Z Mit der Verschleierung der Schlüssel für die /home/bitcoin-dev/.bitcoin/testnet3/chainstate: 2686d59caeb1917c
2019-05-06T14:43:20Z Geladen beste Kette: hashBestChain=00000000b3b6a5db140b6058b7abe5cb00d8af61afd2a237ae3468cd36e387fa height=927391 date=2016-09-08T15:04:00Z Fortschritt=0.311180
2019-05-06T14:43:20Z init-Nachricht: Zurückspulen Blöcke...
2019-05-06T14:43:29Z init-Nachricht: Überprüfen Blöcke...
2019-05-06T14:43:29Z Überprüfen der letzten 6 Blöcke auf der Ebene 3
2019-05-06T14:43:29Z [0%]...[16%]...[33%]...[50%]...[66%]...[83%]...[99%]...[FERTIG].
2019-05-06T14:43:29Z Keine Münze Datenbank Inkonsistenzen in den letzten 6 Blöcke (500 Transaktionen)
2019-05-06T14:43:29Z block index 19450ms
2019-05-06T14:43:29Z Eröffnung LevelDB in /home/bitcoin-dev/.bitcoin/testnet3/Indizes/txindex
2019-05-06T14:43:30Z Geöffnet LevelDB erfolgreich
2019-05-06T14:43:30Z Mit der Verschleierung der Schlüssel für die /home/bitcoin-dev/.bitcoin/testnet3/Indizes/txindex: 0000000000000000
2019-05-06T14:43:30Z init-Nachricht: die Belastung der Brieftasche...
2019-05-06T14:43:30Z txindex thread starten
2019-05-06T14:43:30Z [Standard wallet] nFileVersion = 170100
2019-05-06T14:43:30Z [Standard-wallet -] - Tasten: 2005 plaintext, 0 verschlüsselt, 2005 w/ Metadaten, 2005 total. Unbekannt wallet-records: 1
2019-05-06T14:43:30Z Synchronisieren txindex mit block-Kette von der Höhe 694205
2019-05-06T14:43:30Z [Standard wallet] Wallet abgeschlossen laden in 123ms
2019-05-06T14:43:30Z [Standard wallet] setKeyPool.size() = 2000
2019-05-06T14:43:30Z [Standard wallet] mapWallet.size() = 7
2019-05-06T14:43:30Z [Standard wallet] mapAddressBook.size() = 4
2019-05-06T14:43:30Z mapBlockIndex.size() = 1515581
2019-05-06T14:43:30Z nBestHeight = 927391
2019-05-06T14:43:30Z torcontrol thread starten
2019-05-06T14:43:30Z Gebunden [::]:18333
2019-05-06T14:43:30Z Gebunden 0.0.0.0:18333
2019-05-06T14:43:30Z init-Nachricht: Laden P2P-Adressen...
2019-05-06T14:43:30Z Geladen 10420-Adressen von peers.dat 36 MS
2019-05-06T14:43:30Z init-Nachricht: Laden Bannliste...
2019-05-06T14:43:30Z Geladen 0 gebannt Knoten ips/Subnetze aus der Bannliste.dat 29ms
2019-05-06T14:43:30Z init-Meldung: Starting network threads...
2019-05-06T14:43:30Z net thread starten
2019-05-06T14:43:30Z dnsseed thread starten
2019-05-06T14:43:30Z addcon thread starten
2019-05-06T14:43:30Z msghand thread starten
2019-05-06T14:43:30Z init-Nachricht: Done loading
2019-05-06T14:43:30Z opencon thread starten
+877
diminishedprime 16.06.2014, 01:41:45

Wie kann ich umwandeln eine bitcoin öffentlichen Schlüssel an eine bitcoin-Adresse?

Hinweis: ich bin mit PHP.

Gibt es eine bitcoin-API oder PHP-API zu tun, dass die Konvertierung ?

+819
Marky85 09.05.2012, 19:03:02

sagen wir, es sind 2 Transaktionen

tx1
adresse1 - > 'Adresse2'

tx2
'Adresse2' - > address3

unsere mempool nicht den tx1 noch nicht, aber ich versuche zu erstellen, tx2 und die broadcast-it.

was wird passieren ?

wird der tx2 enthalten im mempool ? und an die anderen Knoten ?

oder

tx2 wird abgelehnt. und werden nicht enthalten im mempool und werden nicht an andere Knoten ?

was ist eigentlich flow ?

was sind solche tx genannt werden ?

Was passiert, wenn Texas ausgestrahlt wird, dessen Beitrag noch nicht eingegangen mempool ?oder nicht in der alten Blöcke, d.h. fehlende/unbekannte.

+728
snuggles 19.01.2019, 20:27:28

Kurze Antwort: Nein. Wenn beide Knoten verloren Ihre channel-Staat, dann die balance des Kanals verloren

static-channel-sicherungen (SCB), kurz speichern keine Informationen über den Zustand des Kanals, anstatt Sie speichern Informationen über den Kanal selbst. Der Zweck der SCB ist für die gefallenen Knoten zum wiederherstellen der Kanäle, die Sie hatten aber nicht den Zustand der Kanäle.

Diese Verantwortung würde fallen auf die anderen Teilnehmer im channel.

Allerdings, wenn beide Teilnehmer verloren haben, Ihre channel state, aber immer noch up-to-date SCBs dann sind die Fonds völlig verloren. Obwohl es mehrere SCBs hier, tun Sie nichts, sich zu erholen channel state.

Es gibt mehr Nuancen hier. SCBs sind nicht goldene Kugeln, wenn es um die Wiederherstellung der Fonds verlor in einem channel, und zwar im einzelnen nichts tun, sich zu erholen oder sicherzustellen, dass diese Fonds wiederhergestellt und der Benutzer nicht verletzt wird.

Sind die Fonds völlig verloren?

Aber wenn die Frage stützt sich ausschließlich auf, wenn alle Mittel in den Kanal verloren gingen über den äther, dann ist die Antwort ja, die Mittel sind erstattungsfähig.

SCBs sind irrelevant - der Kanal wird geerdet durch die Finanzierung tx. Wenn Sie noch Ihren master Saatgut, erzeugen können Sie die entsprechende Adresse für die Finanzierung tx. Wenn Sie unsicher sind, was die Finanzierung tx ist, können Sie immer Scannen der blockchain für Adressen.

+672
blacktemplar 30.03.2015, 02:38:02

Ich versuche zu laufen plätscherte, aber es ist, die besagt, dass ich bin fehlt [node_db] von plätscherte.cfg. In dieser Datei kann ich sehen

# Beachten Sie, dass HyperLevelDB ist nicht verfügbar auf Windows-Plattformen
#
[node_db]
type=HyperLevelDB
Pfad=db/hyperldb

Was soll ich für [node_db] auf Windows?

+672
Martyn 25.01.2012, 15:56:30

Hier ist der Artikel.

"Die Bitcoin-blockchain protokolliert jedes Ereignis der ganzen Bitcoin Geschichte—neue Münzen und Belege von überweisungen—zurück zu 2009, als das Netzwerk gestartet", sagte Valkenburgh. "Jeder computer im Netzwerk muss auch ausgeführt werden, kompatible software, so dass die Knoten sehen können und Validierung von Transaktionen. Also, wenn Sie Ihre software nicht kompatibel ist oder wenn Sie nicht erfüllen, oder die Gültigkeit der Konsens-Regeln gebacken in der Bitcoin-code-Basis, dann ist der Netzwerk ignorieren würde Ihrer Transaktion. Das ist alles, es ist ein Bitcoin: die Fähigkeit, broadcast-eine gültige Transaktion und übertragen das Gleichgewicht."

Was bedeutet der kühne Satz zu bedeuten?

ein. Wenn Sie ein Bitcoin, es heißt, Sie haben das erwähnt-Fähigkeit;

b. Nur wenn Sie über die genannten Fähigkeiten können Sie selbst eine Bitcoin.

Es bedeutet a oder b oder keiner von Ihnen?

+595
Laurent Russier 18.02.2014, 21:32:42

Ich bin skeptisch an das Buch basiert auf den Anfang der rezension auf Amazon:

In der halben Stunde zog es mich zu Lesen, Caughey e-book

Ich habe gelesen und studiert Bitcoin seit Monaten und ich denke, ich habe noch eine Menge zu lernen. Es ist für mich schwer vorstellbar, dass könnte viel von der Lektüre, ein Buch für 30 Minuten.

+547
ariscris 17.03.2015, 05:24:24

Sie können sich nicht über mehrere Adressen zu Move-Befehlen, auch bewegen werden entfernt, in einer späteren version des Bitcoin-Core.

Bitte verwenden sendtoaddress statt

+530
Volgomax 25.09.2019, 15:48:38

Die meisten, wenn nicht alle Regierungen, haben eine form der Umsatzsteuer. Was passiert mit bitcoin Wert, wenn Regierungen verbieten bitcoins zur Eindämmung der hinterziehung von Steuern

+501
Fieda Syikin 18.02.2016, 23:16:21

Als der 0.14.0, wenn Sie erhalten eine verack, müssen Sie auch senden Sie eine verack Nachricht zurück.

Also in der Erwägung, dass, bevor Sie dies tun könnte:

Client: version
Knoten: version
Knoten: verack
......

Sie müssen nun, um dies zu tun:

Client: version
Knoten: version
Knoten: verack
AUFTRAGGEBER: verack <- dies zu tun!
......

Links

+452
oxanaiva 19.02.2010, 16:49:25

Erste, was Sie definieren als public key und private key sind eigentlich eine bitcoin-Adresse und einem privaten Schlüssel verschlüsselt im Wallet Import Format (WIF).

Um zu überprüfen, dass die WIF und die bitcoin-Adressen sind aus dem gleichen Schlüsselpaar, die wir brauchen, um zu decodieren, den privaten Schlüssel aus seiner WIF - format (überprüfung, dass die Codierung ok ist), ableiten der öffentliche Schlüssel aus dem privaten Schlüssel, und erzeugen Sie die bitcoin-Adresse mit dem öffentlichen Schlüssel. Wenn die generierten bitcoin-Adresse entspricht, mit der angegeben wurde, dann ist die Voraussetzung der einen und der WIF sind geschaffen aus dem gleichen Schlüsselpaar.

Um zu Dekodieren, die WIF Folgen wir die Schritte von der bitcoin-wiki.

Mal sehen, wie wir dies tun können in python:

von binascii import hexlify, unhexlify
von ecdsa-import SigningKey, SECP256k1
von hashlib import-sha256
von bitcoin_tools.wallet importieren generate_btc_addr, WIF, TESTNET_WIF


def wif_to_sk(wif, network='main'):
 wenn Netzwerk nicht in ['main', 'test']:
 # Fügen Sie weitere Netzwerke, wenn nötig.
 raise Exception ("Schlechtes Netz")
sonst:
 wenn Netzwerk 'main':
 version = WIF
sonst:
 version = TESTNET_WIF

 decoded_wif = b58decode(wif)

 c = decoded_wif[-4:]
 v = decoded_wif[:1]

 # Die byte enthält die Versionsnummer, behaupten, dass ist richtig.
 assert v == chr(version)

 # Die letzten vier bytes des WIF sind die ersten vier bytes der Prüfsumme überprüfen, dass es hält
 checksum = sha256(sha256(decoded_wif[:-4]).digest()).digest()
 behaupten Prüfsumme[:4] == c

 # Wenn der private key im WIF entspricht einer komprimierten public-key, außerdem müssen Sie drop auf das Letzte byte, das wird
 # 01. Wir können überprüfen, indem Sie die Länge der aktuellen Tonart. 32 bytes wil bedeuten, unkomprimiert, während 33 und
 # einer der führenden 01 bedeutet komprimiert.
 sk = hexlify(decoded_wif[1:-4])

 compressed = False

 # Beachten Sie, dass seit wir haben hexlified die sk der Baugrößen verdoppelt werden.
 if len(sk) ist 66 und sk[-2:] == '01':
 sk = unhexlify(sk[:-2])
 komprimiert = True
sonst:
 sk = unhexlify(sk)

 Rückkehr sk, komprimiert

# Ihre zur Verfügung gestellten Daten
wif = 'KwfNqMip1ZdgG2o6wYQUBXv8BqkMQ8VWwescvu5tlpzp31m5eheq'
btc_addr = '13YcHBzsBX8SxHoBftb69cXJkdXLfAVQos'
network = 'main'

sk, komprimiert = wif_to_sk(wif, network=Netzwerk)

# Ableitung der öffentliche Schlüssel aus dem privaten Schlüssel
pk = SigningKey.from_string(sk, Kurve=SECP256k1).get_verifying_key()

# Nimmt an, dass die berechnete bitcoin-Adresse und die zur Verfügung gestellten Spiele.
behaupten generate_btc_addr(pk, v=Netzwerk, compressed=komprimiert) == btc_addr

Zum decodieren der WIF - format gibt es ein paar Dinge, die Sie vielleicht kennen. Zuerst die version, die mit dem Netzwerk (normalerweise entweder mainnet oder testnet) und dann, wenn die privaten Schlüssel entspricht, um einen komprimierten oder unkomprimierten öffentlichen Schlüssel. Die version des Netzes bestimmen, an dem das erste byte der WIF - format, während, ob der dazugehörige öffentliche Schlüssel ist komprimiert oder nicht komprimiert wird, bestimmt das Letzte byte vor der Prüfsumme.

Haftungsausschluss: Die bereitgestellten code verwendet eine Funktion generate_btc_addr, aus einer python-Bibliothek, die ich entwickelt haben, berechnet, dass eine bitcoin-Adresse aus einem bestimmten öffentlichen Schlüssel. Diese Funktion rufen Sie ein paar andere einfache Funktionen ableiten, die bitcoin-Adresse, aber auch alle, die auf der Antwort wird es noch mehr das, was es ist. Sie können die Bibliothek von GitHub, oder Holen Sie sich die Funktionen von der spezifischen Datei.

+444
WDKM 28.05.2010, 01:29:04

Ich bin versucht zu schreiben, ein PHP-plugin, mit dem sprechen zu bitcoind zu generieren, die eine zufällige Adresse zu senden, eine bitcoin-Transaktion.

Ich bin echt verwirrt: wie soll ich denn das setup bitcoind, damit wir Abfragen können, es zum generieren einer zufälligen Adresse?

Danke!

+232
feeling sheepish 08.07.2013, 17:15:48

Sollten Sie verwendet haben, ein weiterer blockexplorer statt blockchain.info. Die Transaktion habe nicht bestätigt, aufgrund der niedrigen Gebühren. Ich schlage vor, Sie versuchen, es zu senden, zu ViaBTC Transaktion accelerator und sehen, wie alles geht von dort aus.

+152
junkab 08.11.2018, 14:55:53

http://blockexplorer.com/block/000000000000051b42fd09195c75da7a084df7593f47ad18139cdc9cd83a112e

Die letzten drei tx einen Eingang mit script_sig "1". Das ist ungültiges Recht?

Laut Protokoll Regeln https://en.bitcoin.it/wiki/Protocol_rules#.22block.22_messages es scheint, dass der block (auch wenn abgebaut) sollte abgelehnt worden von den Kollegen.

16.1.4: "Überprüfen Sie Krypto-Signaturen für jeden Eingang; ablehnen, wenn alle schlecht sind"

Was bin ich? Danke!

+143
Seb 26.10.2019, 21:04:04

wenn Sie einen Blick auf das format der channel_update Nachricht, die Sie erkennen, dass es kein Feld node_id in der Nachricht. c.f.:

Typ: 258 (channel_update)
Daten:
[64:Signatur]
[32:chain_hash]
[8:short_channel_id]
[4:timestamp]
[1:message_flags]
[1:channel_flags]
[2:cltv_expiry_delta]
[8:htlc_minimum_msat]
[4:fee_base_msat]
[4:fee_proportional_millionths]
[8:htlc_maximum_msat] (option_channel_htlc_max)

Also so, wie ich Lesen Sie die rfc ist, dass die peer entscheiden kann, auf die blacklist setzen die node_id Ihrer peer (wer propagiert, die geschmiedet / unrechtmäßige channel_update Botschaft) auf diese Weise würde man nicht erstellen Sie eine DoS-Attacke, um einige zufällige node_id (das Opfer), aber selbst das ist genau, wie ich es sollte funktionieren.

+116
strelok2013 10.02.2015, 16:20:48

Wir wissen, dass die frühen Blöcke alle verwendeten pay-to-pubkey (p2pk) und irgendwann werden wir meist eingeschaltet, um pay-to-pubkey-hash (p2pkh). Was ist die Geschichte dahinter? Wer die änderungen vorgenommen hat und Wann p2pkh standard geworden?

Auch, hat das etwas zu tun mit der Bewegung in Richtung auf die komprimierten Schlüssel?

+33
Mohammed Sami 11.10.2018, 04:56:08

Fragen mit Tag anzeigen