Bitcoin ZeroMQ und Scala-Anwendung

Ich bin versucht, eine Verbindung zu Bitcoin ist ZeroMQ Warteschlange, ohne Erfolg und wissen gar nicht, wo mein problem ist. Hier ist, was ich getan habe bisher auf meinem Ubuntu 14.04:

  1. Installiert Bitcoin via sudo apt-get install bitcoin-qt
  2. installiert ZeroMQ via wget http://download.zeromq.org/zeromq-4.1.2.tar.gz && cd libzmq/ && ./autogen.sh && ./configure && make -j 4 && make check && make install
  3. In meinem Scala-Anwendung, die ich verwenden jeromq: libraryDependencies += "org.zeromq" % "jeromq" % "0.3.5"
  4. In Bitcoin ist bitcoin.conf habe ich folgende Zeile hinzufügen: zmqpubhashtx=tcp://127.0.0.1:28332 (ich bin nur daran interessiert, eingehende tx-id ' s)

Nachdem Sie das tun, dass ich starten Bitcoin, dann starte ich mein Scala-app mit dem folgenden code:

import org.zeromq.ZMQ
val Kontext = ZMQ.Kontext(1)
val socket = Kontext.socket(ZMQ.SUB) // Da der server-Seite ist die KNEIPE
socket.connect("tcp://127.0.0.1:28332")

while (true) {
 logger-info-Buchse.recv.Länge.toString
}

Und ich erhalte keine Nachrichten. Sache ist, ich weiß gar nicht, was das problem ist oder wie es zu testen. Funktioniert apt-get - version der Bitcoin hat sogar ZeroMQ unterstützt? Auf jeromq github wird es angegeben, dass es Basierend auf libzmq 3.2.5 während Bitcoin erfordert ZeroMQ-API version 4.x oder neuer, könnte das ein Grund sein? Oder vielleicht ist es etwas ganz anderes?

+540
Emma evans 16.04.2010, 05:16:12
18 Antworten

Wenn Bitcoin erkennt, dass es Blöcke sind in Ihrer block-Datenbank, die noch nicht verarbeitet wurden, verarbeitet er Sie alle beim Start, als ein recovery-Mechanismus. Es kann bedeuten, dass irgendwie Blöcke heruntergeladen wurden, aber der Knoten ist abgestürzt, bevor Sie verarbeitet wurden. Also im Grunde, Sie tun alle Validierung für die neuen Blöcke, die seit der letzten Ausführung in einem gehen.

Ich nehme an, Sie sind auf die Synchronisierung der Blöcke/* Daten, aber nicht die chainstate/*? Wenn Sie synchronisieren die letzteren zu Bitcoin hätte das verarbeitete Ergebnis zu.

Wenn die CPU-Auslastung ist zu hoch für dich, set -par=1 auf der Kommandozeile (oder par=1 in bitcoin.conf), das die Begrenzung der Validierung in einem einzigen thread/Kern (was bedeutet, es wird länger dauern, als gut).

Beweis: der 'Letzte block der Datei' log-Zeile erwähnt, in Höhen von bis zu 312279, aber die erste beste Tipp (=bis zu, wo die chainstate berechnet) hat die Höhe 308577.

+949
Borota1808 03 февр. '09 в 4:24

Dieser code ruft dieser code, der ruft crypto.getRandomValues, die ein vertrauenswürdiges kryptografisch sicheren Zufallszahlen-generator. Es ist sicher genug, um mit zu konkurrieren bitaddress.org solange man den browser wurde nicht gehackt.

+943
Aerials 03.04.2013, 04:12:35

Nein, im strengen Sinne. Die erste bitcoin-Transaktion älter als die erste Geldbörse von mehreren Monaten, und es gibt keinen Grund, dass könnte nicht ein p2p-Geld für btc Transaktion. Die erste Transaktion war mit Hal Finney, der im Januar 2009 (die 10 BTC-test), und der erste Geldbeutel war, glaube ich, mit v0.3 des bitcoin, irgendwann später im Jahr 2009.

+817
ali choudhry 17.09.2014, 16:24:26

Sie können klicken Sie auf 'Reinvestieren', und wenn Sie sehen die Liste, für die Sie wollen, zu reinvestieren mit (SHA-256/ Scrypt) es sollte eine option an der Spitze, der sagt nicht reinvestieren. Es sollte aktualisiert werden innerhalb von 24 Stunden!

+740
FearlessHyena 09.04.2016, 11:11:04

Mining-pools verwenden ein system, das ist basierend auf Aktien. Aktien sind Blöcke mit Nachweis der arbeiten für einen anderen Schwierigkeitsgrad, als die Netzwerk-Schwierigkeiten. Mining-pools wird die Schwierigkeit, für eine gegebene miner zu sein ist etwas, das angemessen ist für Sie zu erreichen. Also, wenn das miner Minen, es ist auf der Suche nach einem block-hash ist, der erfüllt den pool Schwierigkeit. Wenn dies geschieht, sendet er den block. Das eingereichte block, obwohl wahrscheinlich nicht gültig für das Bitcoin-Netzwerk, erfüllt die pool-Schwierigkeiten und ist bekannt als eine Aktie.

Also mining-pools Anzahl der Aktien und geben das Gewicht jeder Aktie basiert auf der Schwierigkeit, dass es abgebaut wurde, an. Auf diese Weise wird der mining-pool bestimmen können, wie viel Arbeit jeder Bergmann hat im Durchschnitt und bezahlen Sie entsprechend, sobald ein block gefunden.

Blöcke gefunden werden, wenn eine Freigabe erfüllt sowohl die pool-Schwierigkeiten und die Netzwerk-Schwierigkeiten.

+705
poltosic 20.10.2015, 09:11:36

Ich habe gesehen, in mehr als einer Blockchain API-Anbieter specs, zu dem die Transaktion ein-und Ausgänge sind in folgenden format:

Adressen: ARRAY
Die Adresse (oder Adressen in dem Fall von multi-sig), zu dem der Wert übertragen wurde.

Ich bin verwirrt über das array. Wenn ich versuche diese APIs mit einer Transaktion, bei der eine der Ausgänge ist ein multi-sig-Adresse, sehe ich noch ein einziges multi-sig-Adresse in der Ausgabe.

In welchen Fällen würde ich sehen, mehrere Adressen in einem einzigen Ausgang oder Eingang?

Diese gleichen in diesen api-Provider:

https://chain.com/docs#object-bitcoin-transaction

http://dev.blockcypher.com/#transactions

https://toshi.io/docs/#get-transaction

+676
Duarte Alfonso Martin 28.01.2013, 08:57:54

Die Transaktion wurde ausgestrahlt und Knoten gesehen haben, so wie für den moment, du wirst einfach warten müssen.

Wenn es gibt eine Anzahl von Blöcken schnell gefunden; was passiert... es wird weniger Transaktionen transmittted aufgrund der kurzen Zeitspanne / Blöcke gefunden, und der Knoten, der den block abgebaut wird, annehmen und bestätigen-Fonds geschickt mit niedrigen TX-Gebühren.

Aber der Grund, warum es stecken geblieben ist, ist Ihr Honorar ist zu niedrig.

Wenn es nicht bestätigt, nach einem weiteren Tag oder zwei, es wird wahrscheinlich wieder abgelehnt und ignoriert, damit wieder in die ursprüngliche Adresse.

Die BTC ist nicht verloren, es ist nur die block-Größe ist nur so groß, und es gibt so viele Transaktionen stattfinden, dass, wenn Sie nicht "Gebot" eine ausreichend hohe Gebühr, die Sie don ' T machen den Schnitt-Liste.

Die Knoten sind alle programmiert, die jetzt zu akzeptieren Transaktionen basierend auf "höchste Gebühr zunächst nach unten, bis max Blockgröße erreicht ist.

Es gibt keine Arbeit rund um.

+646
Fayyaz Qadri 31.05.2017, 17:36:49

Ich möchte eine wiederkehrende Zahlung, wird vollstreckt, indem der blockchain und die scripting-engine.

Wenn ich die folgenden festen Quell-Adresse, finanziert mit 100 BTC

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvm

Ich möchte die zahlen die folgende Adresse 10 BTC zehn mal, etwa einmal alle N Blöcke oder einmal im Monat.

 1BTCorgHwCg6u2YSAWKgS17qUad6kHmtqw (Die Bitcoin-Stiftung)

Was sind einige Ansätze, die ich nehmen sollte, um zu erreichen, wiederkehrende Zahlungen wie diese?

+636
RUSPOWER 30.07.2011, 15:43:32

Wie bereits im BIP 0016, voting findet Ende Januar 2012. Stimmen Sie jetzt sehen (januari 24) sind, die von pools, die bereits aktualisiert Ihre software zu Stimmen, entweder für oder gegen. Es gibt einige pools, die gesagt haben, Sie werden aktualisieren, aber dies noch nicht getan haben.

+573
Prakash K 31.12.2013, 12:29:34
Dieser tag sollte genutzt werden für Fragen unter Bezugnahme auf mining-pools. Ein Bergbau pool ist ein Weg des Teilens, die notwendigen arbeiten zu finden, ein block. Bergleute belohnt werden, die im Verhältnis zu der Menge an Rechenleistung, die Sie zu dem problem beitragen, verschiedene Möglichkeiten der Berechnung gibt.
+491
Paumanok 23.06.2010, 17:11:15
  1. Erzeugen Sie eine neue Brieftasche. Nicht wiederverwenden Ihre alten Samen.
  2. Stellen Sie sicher, halten eine Sicherungskopie Ihrer alten Geldbörse & Samen. Der Samen ist genug, um sicherzustellen, können Sie diese wiederherstellen, Geld geschickt, dort in die Zukunft, aber die Brieftasche hat Ihre historischen Transaktion Geschichte mit Metadaten wie Notizen etc.
  3. Stellen Sie sicher, halten eine Sicherungskopie Ihrer neuen Brieftasche & Samen.
  4. Übertragen Sie alle Ihre Münzen vom alten Geldbörse die neue Geldbörse. Per überweisung ich meine, die senden in der Regel.
  5. Verwenden Sie Ihre neue Geldbörse von nun an, aber einmal in eine Weile, können Sie Ihre alte Brieftasche, in dem Fall, daß jemand geschickt hat Mittel es für welchen Gründen auch immer.
+461
haiqa 25.04.2013, 00:43:12
Dash ist eine blockchain-basierte kryptogeld verwendet eine verkettete hashing-Algorithmus genannt X11. Es war früher bekannt als Darkcoin.
+434
vladislavka28 08.03.2010, 12:06:11

Die wichtigsten Faktoren machen den Bergbau attraktiv sind :

  • Den Wert der Münze
  • Die mining-Schwierigkeit
  • Der Preis von Strom
  • Der Preis für die benötigte hardware
  • Der Bergbau-Gebühren

Je höher die Münze Wert, desto höher die miner belohnt. Die weniger schwierig es ist, wird wahrscheinlich dazu führen, dass mehr Münzen. Einige Länder haben fast freie Elektrizität, die Bergbau macht viel günstiger. Es gibt auch die anfänglichen Investitionen, die die erforderliche hardware für den Bergbau. Bergbau-Gebühren auch dazu beitragen, Bergbau Rentabilität.

Wenn der Bergbau eine Münze wird attraktiver mehr Bergleute kommen wird, dazu führen würde, dass mehr CPU-power, das wird korrigiert durch einen höheren Schwierigkeitsgrad. Wenn plötzlich die Hälfte der mining-power war zu verschwinden, würden wir sehen eine Schwierigkeitsgrad-Einstellung.

+418
Rickard 20.12.2016, 12:23:51

Da BitCoin (und AltCoins), sind teilbar durch bis zu 8 Nachkommastellen, macht das technisch bedeuten, dass 1xBTC (oder 1xAltCoin) ist gleich 1 Milliarden einzelne Einheiten der Währung?

+315
Reuben Katz 12.02.2019, 01:50:35

Sie nicht haben, um manuell überprüfen, Bitcoins, die Sie erhalten - die nach der Transaktion überprüft wird automatisch von Ihrem Bitcoin-client. Wenn Sie sehen, ein grünes Häkchen Links, um die Transaktion, die Sie erhalten haben (bei Transaktionen anzeigen), dann bedeutet es, dass der rest des Bitcoin-Netzwerk bestätigt hat, die Zahlung so gut und Sie können sicher betrachten Sie die Münzen verkaufen.

Die "Nachricht Signieren" - Funktion ist eine erweiterte Funktionalität der Bitcoin-client können Sie beliebige Nachrichten signieren um zu beweisen, dass jemand, die Sie sind (waren) die Kontrolle über die Mittel von einigen Bitcoin-Adresse. Für ein Beispiel zur Verwendung finden Sie unter dieser Antwort. Sie normalerweise nicht benötigen diese Funktion für den Tag-zu-Tag Verwendung von Bitcoin.

+271
tombjohn 09.07.2016, 10:49:02

Versuchen Goochain s Watch-Only-Wallet-Dienste für BIP32-Adressen erstellt, über Ledger, Trezor, oder Myzel. Auf der Grundlage der xpub, Ihre tool gibt nur Adressen, die verwendet wurden, auf-chain zuvor.

+248
Funny Snap 13.06.2019, 03:50:14

Heruntergeladen habe ich das ganze blockchain, aber ich war neugierig über das Arbeitsumfeld nach der Aktivierung txindex=1 und rufen Sie die -reindex-Befehl.

Jetzt habe ich beschlossen, nicht zu Neuindizierung der blockchain (nicht entwickeln wollen, nichts extrem und so lange warten), habe ich deaktiviert txindex=0 und bitcoind ist der Download wieder alle in der blockchain!

Gibt es eine Tastenkombination um es zu vermeiden?

*Ich denke, dass das debug.log-Datei wächst doppelte der ursprünglichen Größe also the debug.log file is getting bigger

+162
ibisum 26.04.2015, 22:50:05

Während ich weiß nicht, wie andere PoS-blockchains zu betreiben, kann ich Ihnen einige Einblicke über die PoSv2/3-version basiert auf Peercoin ist die Implementierung von proof of stake; ein Beispiel wäre Novacoin.

Die gesamte Netzwerk-Gewicht ~berechnet, indem diese Funktion:

Doppel-GetPoSKernelPS()
{
 int nPoSInterval = 72;
 Doppel-dStakeKernelsTriedAvg = 0;
 int nStakesHandled = 0, nStakesTime = 0;

 CBlockIndex* pindex = pindexBest;;
 CBlockIndex* pindexPrevStake = NULL;

 while (pindex && nStakesHandled < nPoSInterval)
{
 wenn (pindex->IsProofOfStake())
{
 dStakeKernelsTriedAvg += GetDifficulty(pindex) * 4294967296.0;
 nStakesTime += pindexPrevStake ? (pindexPrevStake->nuhrzeit - pindex->nuhrzeit) : 0;
 pindexPrevStake = pindex;
nStakesHandled++;
}

 pindex = pindex->pprev;
}

 if (!nStakesHandled)
 return 0;

 zurück dStakeKernelsTriedAvg / nStakesTime;
}

Wie das Gewicht estimation-Algorithmus funktioniert, ist ziemlich interessant: es geht rückwärts durch die blockchain, die von der letzten bekannten besten blockieren, bis Sie Sie findet 72 Blöcke wurden hergestellt, wobei ein Nachweis der Beteiligung (grundsätzlich alle die vergangenen 72 Blöcke).

Mit diesen 72 PoS Blöcke, berechnet es die Summe der Zeit, die vergangen ist, zwischen jedem aufeinanderfolgenden block-paar (zu einem Gesamtwert addiert -- nStakesTime) und die Summe der "Schwierigkeit", dass war zufrieden während die Produktion von die Blöcke (dStakeKernelsTriedAvg).

Die Letzte Netzwerk-Gewicht Schätzung ist gegeben durch die Aufteilung der "Menge von Arbeit" von der "Höhe der Zeit".

Dieser Algorithmus nicht versucht, zu berechnen, die genaue Menge der Münzen, die sind "auf dem Spiel" zu jeder Zeit, denn wie Sie bemerkt haben, dass wäre nicht möglich; aber die Schätzungen, die es gibt, sind ziemlich genau.

+151
47 20.11.2017, 16:12:50

Fragen mit Tag anzeigen