Wie Sie wissen, gibt es eine neue Transaktion?

Ich entwickle ein Programm, das überwacht Transaktionen. Die erste Frage ist, wie kann ich wissen, dass es eine neue Transaktion? Kann ich den Befehl listtransactions. Jedoch, es ist ein bisschen ein Problem, über das Kommando, welches ich in einem anderem thread gepostet. Kurz gesagt, ich kann keine Liste mit Transaktionen von allen Konten, indem Sie NICHT die account-parameter. Auch wenn es für mich funktioniert. Die API sagt: listtransactions [Konto] [count=10] [ab=0] Gibt an, bis zu [Anzahl] letzten Transaktionen überspringen der ersten [von] Transaktionen für das Konto [Konto]. Wenn [account] nicht vorgesehen ist, wird es wieder die jüngsten Transaktionen von allen Konten.

Ich lief diesen Befehl mit den Parametern: "", 1,3. Ich habe noch die ersten 3 Transaktionen.

Hat jemand eine bessere Idee über, wie man neue Geschäfte, die nicht überprüft wurden?

+106
dovydiena 17.03.2017, 22:59:13
18 Antworten

Ich arbeite an einem kleinen script zur Aufschlüsselung der Daten innerhalb coinbase Transaktionen. Dies ist weitgehend zu verbessern mein Verständnis von Erbe und SegWit Transaktionen (Gegeben coinbase Transaktionen haben weniger Daten, als beispielsweise eine multisig TX, ist es für mich einfacher durch die Arbeit).

Eine Sache, die ich bemerkt habe, über diese Transaktionen, sind Unterschiede in der Ausgabe scripts. Die Bitcoin-RPC-API funktioniert ziemlich gut bei der Dekodierung von Ihnen, aber ich würde gerne wissen, wie es zu tun, ohne ein externes tool. Ich bin mir bewusst, dass es verschiedene Arten wie P2PKH, P2SH, und P2PK. Was ich jedoch nicht wissen ist, wie unterscheiden Sie nur die raw-hexadezimal-Darstellung.

Zum Beispiel dieser Transaktion hat zwei Ausgangs-Skripts:

76A91494155788E7233D7BEA9AA29FEB2ED37BC878C40B88AC

und

6A24AA21A9ED7387872912D999B657F4146043675D84B9BBCF66AD5DEC8BCC14117E4FB6999E

Die RPC-API sagt mir, die erste hat den Typ pubkeyhash mit einem P2SH Wert von 3EstC3Hhe8zvNGP73oX9oDvo36sNCygjji

Die zweite Ausgabe von script scheint willkürlich zu sein, Daten, die nicht entschlüsselt werden können. (Ich habe auch viele gesehen, die coinbase-Transaktionen haben eine lesbare Ausgabe und eine oder mehrere Ausgabe, die nicht decodiert werden kann).

Ein weiteres Beispiel, Das genesis-block coinbase-Transaktion decodiert die RPC-API hat der Typ pubkey mit diesem script:

4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac

Frage: Wie kann ich diesen Ausgang Skript und bestimmen der Art der Transaktion und der Montage (OP-script-code) ohne externe APIs?

Danke!!!

+991
checketts 03 февр. '09 в 4:24

Ihre beste option ist für den online-shop zu bieten einzigartige bitcoin-Adressen für jeden Kunden.

Bob klickt, um die Artikel kaufen Ein und dann füllt ein schnelles Formular mit seinen Angaben zum Versand, nach Fertigstellung wird er aufgefordert, um 1 BTC für bitcoin-Adresse X. Alice zur gleichen Zeit klickt, um die Artikel kaufen B und füllt ein Formular aus, und Sie ist aufgefordert, senden Sie Ihre Zahlung an Adresse Y. Wenn Adresse X erhält Gelder, die shop-Besitzer wissen, dass Bob bezahlte, und Alice Tat es nicht.

+977
Holly Nic 05.11.2014, 13:53:01

Tun aktualisiert Blöcke von einer sync von einem Jahre-old wallet haben eine Wirkung auf seine aktuelle Verwendung?

+926
petershine 18.08.2015, 12:05:32

Dies wird verursacht durch verschiedene Merkmale der Transaktion (die details weiß ich nicht), die machen den Bitcoin-client halte es für eine niedrige Priorität und daher nur umfasst es in einem abgebauten block, wenn es hinreichend alt.

Beachten Sie auch, dass http://bitcoincharts.com/bitcoin/ hat eine Liste der bekannten schwebenden Transaktionen, brauchen Sie nicht zu warten, bis es angezeigt wird im Block Explorer.

+914
kaan22 04.08.2010, 07:49:49

Vorher unterzeichneten Transaktionen, die nicht so funktionieren, wie Sie wollen aufgrund wie die Restwelligkeit verwendet eine einfache Sequenznummer. Der einzige Nachteil bei kleineren Transaktionen über die Restwelligkeit ist die 0.000010 XRP Transaktionsgebühr und der 2-20 Sekunden (oder so) Verzögerung zwischen signierten Büchern.

Normalerweise wird ein Händler generiert, die Zahlung Informationen. E. g. "1 US-Dollar-Konto Ein, Ziel-tag 123 (alle 32-bit-Zahl), Rechnung ID 0x12345678 (256 bits der Daten)", oft wäre dies mit einem Ripple-URI (beachten Sie, dass die Seite nicht dokumentieren, wie oder wenn Sie eine Rechnungs-id kann angegeben werden, in eine Ripple-URI). Der Kunde wählt dann die URI und ergriffen werden, um die send-Seite in Ihren konfigurierten client (aktuell jetzt immer ripple.com/client) mit all diesen Informationen vorab ausgefüllt. Der Kaufmann hört dann auf Ihre Verbindung zu einem Ripple-server (entweder lokal oder remote) für Informationen über die Zahlungen auf Ihr Konto und verwendet die Ziel-tag-und/oder Rechnungsnummer zu aktualisieren, Zahlung status für einzelne Kunden oder Rechnungen. Normalerweise Händler sollte in der Lage, die Möglichkeiten einer Rechnung bezahlt werden, die über mehrere Transaktionen und überzahlungen oder ähnliches als gut.

Sie hätte der Kunde die Transaktion hash(es), wie Sie vorschlagen, aber das ist nicht normalerweise getan, und ist in der Regel mehr Arbeit für den Kunden ohne Grund.

+863
user 6218816 07.10.2015, 10:12:27

Ich mache einen full-service-wallet, die ich schon aus der UTXOs Auswahl-Algorithmus und das will ich jetzt drücken Sie die Transaktion hex-bytes. Es funktioniert, wenn ich push nur eine Transaktion mit nur 1 Eingang, aber wenn ich versuche, drücken Sie die hex vom tx, die ich mit 2 Eingänge vom gleichen Konto, bekomme ich diese:

OP_EQUALVERIFY: non-equal data

Hier ist mein decodiert hex:

{
"lock_time":0,
"Größe":339,
"inputs":[
{
"prev_out":{
"index":0,
"hash":"3a896625fce1f18ce4c3139863359631d5677cff4e4fd8dac25ca6327c0dadd8"
},
"script":"473044022070f3b03cca6a75038ffe150be347a97d0e07adc857cc93e245739db55e3a6d36022051eb72b21e35a5e7309e1864f00e1b107a5b5262d80b1128e9fb45fbe7971c7b012102bb05325000709d3a3d8063f9913777859b8fa30b83e4c4f981bb2d9781b7c91a"
},
{
"prev_out":{
"index":1,
"hash":"436094120d4412c32b97738f9051a32a237c037abe31cafbdc8a02d16f2a659c"
},
"script":"483045022100da7abc59e24d2afea9219ee24d1f3df4e1b9a2efa154d9704ed903210abfdb40022015a8237d38e18f558172872af1aa5c244b38c3ad8f594463c0dcad18dbfcf5f5012102bb05325000709d3a3d8063f9913777859b8fa30b83e4c4f981bb2d9781b7c91a"
}
],
"version":1,
"vin_sz":2,
"hash":"c5991f9f044f9d829fc01eeda76f36a514271270f9f891ea7b584f504ed404ea",
"vout_sz":1,
"out":[
{
 "script_string":"OP_DUP OP_HASH160 7ff85ee854794422531b7b5c3d380c5f50011a4e OP_EQUALVERIFY OP_CHECKSIG",
"Adresse":"1CfeMTtDP9HNjc8vsuuHGgUfABexvW5Qkf",
"value":350000,
"script":"76a9147ff85ee854794422531b7b5c3d380c5f50011a4e88ac"
}
]
}

Links für die Transaktionen verwendet wird:

Meine Adresse ist 1FebYgpxQ1exSNdJENkbmNPmSfsiP3kZit.

Und mein code mit dem BitcoinJS Bibliothek ist die folgende:

key = bitcoin.ECPair.fromWIF(privatekey);
var tx = new bitcoin.TransactionBuilder()
var sum_outputs = 0;

var input_utxos = defineInputs(utxos, Betrag);

for(var a = 0; a < input_utxos.length ; a++){
tx.addInput(input_utxos[ein].tx,a)
sum_outputs+=parseInt(input_utxos[ein].Betrag);
}

tx.addOutput(an, parseInt(Menge));
var change_amount = sum_outputs - parseInt(Betrag);
wenn(change_amount > 0) {
 tx.addOutput(aus, change_amount);
}

for(var a = 0; a < input_utxos.length; a++) {
 tx.Zeichen(a, key);
}

Ergebnis = tx.build().toHex();

console.log(result);

Also meine Fragen sind:

  1. Warum ist das arbeiten mit 1 Eingang von meiner Adresse und nicht 2 Eingänge?
  2. Wie kann ich mich richtig anmelden der zweiten Eingabe, die ich annehmen, ist die Ursache für den Fehler?
+854
Phillip Gessert 19.03.2010, 11:48:26

Je nachdem, was Ihre web-Anwendung funktioniert, möchten Sie vielleicht zu prüfen, halten Sie die privaten Schlüssel aus dem server vollständig. Für MultiBitMerchant wir gegangen sind, mit einer Architektur, die hält den privaten Schlüssel auf einer unabhängigen Maschine und nur uploads der Bitcoin-Adressen.

Sie können überprüfen, BTC empfangen und erzeugen-Zahlungsanordnungen nur mit dem Bitcoin-Adressen - es hängt alles davon ab, wenn du möchtest, dass bitcoin verbringt auf dem server. Wenn Sie einen deterministischen private-key-Struktur, die Sie sich anmelden können Sie Ihre Transaktionen in den browser und verwenden Sie den server bei der übertragung der Transaktion.

Dies scheint eine beliebte Vorgehensweise z.B. BCCAPI, blockchain.info.

Wenn der server weiß nie, die privaten Schlüssel, es macht es viel weniger attraktiv als Ziel.

+836
Hunter Pollock 17.08.2015, 21:05:56

Nach dem Zusammenbruch der Nicehash ich bin auf der Suche nach einer alternative, möchte ich mir Monero/XMR-Algorithmus NUR und bezahlt in BTC nur wie Nicehash verwendet, um zu tun.

In anderen Worten, das muss ich nicht jedem Dienst, der entscheiden wird, für mich ist die Münze zu mir, aber ich MUSS kontrollieren können, was die Münze/algo zu mir, und dass algo muss Monero, wie es ist sehr Energie-effizient für die Art von rigs, die ich habe.

Ich weiß, dass Minergate dies tut, aber ich bin sehr zurückhaltend, Sie zu benutzen wie ich habe starken Verdacht, dass Sie stehlen die meisten meiner Aktien für das, was ich sehen kann.

Tun Sie Jungs kennen und empfehlen könnte, für mich ist so ein service?

Danke so sehr für Ihre Hilfe!

+742
kebal 29.01.2010, 04:58:44

Sie nicht abonnieren Sie einen Kanal, den Sie öffnen einen Kanal. Wenn Sie öffnen einen Kanal mit 100k Satoshi kannst du bis zu 99k Satoshi (der rest ist gesperrt, da die Kanal-reserve). Einmal Sie haben senden Sie ein paar satoshis erhalten Sie Sie zurück und senden Ihnen. Also, solange Sie "verdienen" Ihr Geld zurück, können Sie senden so viel wie Sie wünschen.

Die untere Grenze für die Kanäle werden sollte 20k satoshis aber viele Leute empfehlen, um größere Kanäle. Ich schlage vor, mindestens 1 Million Satoshi pro Kanal. Im Allgemeinen ein kleiner Kanal ist nicht sehr nützlich.

+724
lomvika 23.01.2015, 17:57:23

1) Sie waren richtig in Bewegung Ihre Bitcoins von Ihrem online-wallet zur lokalen Lagerung - Sie Steuern möchten Sie selbst

2) Sie müssen Ihre Bitcoin-client (auf Ihrem computer), um in "sync" mit dem Netz - jetzt ist es synchronisiert bis zu 32 Wochen. Sie wollen, dass es synchronisiert bis heute. Es gibt keine Taste, um zu synchronisieren - es geschieht automatisch, wenn das Programm geöffnet ist. Hinweis: würde ich in der Regel tun Sie dies, bevor Sie irgendwelche Münzen, um sicherzustellen, dass Ihr computer-und Netzwerk-Einstellungen korrekt sind.

3) Für jetzt, lassen Sie Ihren computer sync über Nacht oder länger. Das bedeutet, lassen Sie Ihren computer auf, der mit dem Internet verbunden, und Ihre Bitcoin-client zu öffnen. Obwohl es vielleicht nicht so Aussehen, wie es immer überall, ist es wahrscheinlich.

4) Wenn Ihre Bitcoin-client bekommt nie irgendwo (nach zwei Tagen), es ist etwas falsch mit Ihrer Internetverbindung oder Ihrem computer. Sie können entweder bewegen Sie Ihren computer (laptop) zu einem anderen Anschluss, und versuchen Sie es, oder Fragen Sie einen Freund, der Sie Vertrauen, zu suchen Sie an Ihrem computer/Bitcoin wallet einrichten.

5) Vertrauen Sie nicht Menschen, die online (hier oder anderswo) zu beheben Ihrem computer, wie jeder mit Zugang zu Ihrem computer möglicherweise in der Lage, extrahieren Sie die Münzen.

Denken Sie daran: Ihre Münzen werden nun auf Ihrem computer zugeordnet ist Bitcoin Brieftasche, die Sie brauchen, um das Portemonnaie zu arbeiten oder riskieren den Verlust Ihrer Münzen. Das nächste mal, stellen Sie sicher, dass die Brieftasche zu arbeiten, bevor Sie es! Hoffe, das hilft.

+477
CEGRD 29.12.2011, 02:39:27

Die Gebühr ist von der Höhe der Transaktion, nicht auf die Menge an Geld, das Sie gesendet. Sie eine Transaktion funktioniert durch Ausgaben, die Sie vorher empfangen; das Bitcoin-client sucht, unverbraucht, eingehende Transaktionen und links diese bilden gemeinsam eine neue Transaktion verwendet das Geld von diesen alten Transaktionen.

Wenn diese Anzahl von Eingabe-Transaktionen ist besonders groß (zum Beispiel, wenn Sie ' ve bekam eine Menge sehr kleine Beträge), dies bedeutet, dass die Höhe der Transaktion wird größer, so dass die erforderliche Gebühr, die größer als gut, da es eine größere Belastung für das Netzwerk. Ich glaube, einige Bitcoin-clients haben eine Tendenz, zu versuchen und verwenden Sie kleine Transaktionen ersten, die weiter trägt zu größeren Transaktionen.

Wenn die Transaktion, die Sie versuchen zu machen, ist besonders klein, so kann die Jahresgebühr scheinen überproportional. Dies ist der Grund, warum Bitcoin ist oft nicht als groß zu sein für Mikrotransaktionen.

Laut Bitcoin-wiki, die Gebühr verwendet wird, in der Referenz-Implementierung (wie von 0.8.2) ist 0.0001 BTC pro tausend bytes.

Natürlich, die Besonderheiten der Berechnung der Gebühr ist abhängig von der client, und dies ist konfigurierbar in jede anständige client. Ich habe es Weg bekommen in der Vergangenheit mit einer Gebühr von 0.

+417
David Adams 18.03.2013, 05:57:14

Check-out Bitcoin-XT , das ist eine frühe version von Funktionen, die vorgeschlagen werden, für Bitcoin-Core. Es leitet Doppel verbringt, und benachrichtigt die Geldbörse Doppel-verbringen Sie versuchen, die es betreffen.

Sie können Haken Sie Ihren eigenen code sofort ausgeführt werden, wenn ein Doppel-verbringen Sie erkannt wird, mit der-respendnotify option.

+371
vaskort 01.12.2011, 08:38:21

Technisch wird ein block mit nur einer Transaktion in der wäre gültig. Aber Bergleute haben einen Anreiz, mehr hinzuzufügen, Transaktionen der block Sie sind derzeit mining-denn Sie erhalten für die Transaktion Gebühren an diejenigen Transaktionen.

+324
Zend Chandra 11.10.2012, 23:39:33

Vielleicht eine Unterscheidung zwischen Import und kehren einen Schlüssel berücksichtigt werden muss. Die oben genannten Warnungen befassen sich mit dem Import von Schlüsseln und bezieht sich nicht auf die geschwungene Tasten, die sich alle Münzen auf eine neue Adresse. Diese Methode ist inhärent sicher.

+298
Ramhound 22.08.2011, 03:10:16

(Durchschnitt hashing-Leistung von Netzwerk pro Sekunde zwischen dem letzten Schwierigkeitsgrad-Anpassung und die Schwierigkeit der Anpassung, der davor kam) * 600

oder (2^32 * Schwierigkeit)

+295
HE LEWIS 03.07.2011, 16:05:45

Ja, es gibt dezimale Werte. Zum Beispiel heute: 1 BTC = $ 87.64

So

0.1 BTC = $ 8.76 //// 0.01 BTC = $ 0.87 //// 0.001 BTC = $ 0.08 //// Und so weiter. Der minimale Wert wird als "Satoshi" und es ist: 0.00000001

+219
bosse01 10.02.2010, 14:05:26

Was bedeuten die roten und grünen Blöcke bedeuten in diesem Kurs-chart?

Price Chart Bitcoin/USD Bitstamp

Quelle: Tradingview

+204
Ameer Rosic 20.07.2019, 22:39:48

Die Sache, die trennt sich Bitcoin von anderen cryptocurrencies ist die Menge an Rechenleistung das Netzwerk hat. Es ist extrem schwierig, zu überholen " des Netzwerks, da würde es teuer werden.

Ich würde nicht sagen, dass es die 'beste' design-Aspekt, um es als etwas katastrophales ein Preis, der Absturz verursachen würde Bergleute zu ziehen. Es könnte Monate dauern, oder Wochen für die Schwierigkeit, um wieder auf Augenhöhe. Transaktionen wird super langsam, da es nur wenige Bergleute zu lösen, um die Blöcke.

So etwas wie SolidCoin behebt dieses problem, ich mag die zweimal täglich änderungen an der Schwierigkeit, die es bereitet das Netzwerk für etwas Bitcoin möglicherweise anfällig für.

+102
user5864 04.12.2014, 10:23:31

Fragen mit Tag anzeigen