Hilfe für das Verständnis Semaphore räumt in OpenNetworkConnection

Ich bin neu auf concurrent programming. Kann jeder Experte werfen etwas Licht auf die semaphore gewähren, benötigt man vor den Erwerb einer Netzwerk-Verbindung ?

bool OpenNetworkConnection(const CAddress& addrConnect, CSemaphoreGrant *grantOutbound, const char *pszDest, bool fOneShot)

Ich merke auch, dass, während wir geben onetry in der addnode - Befehl RPC-client, der Zuschuss ist als NULL.

+145
Trenton 24.05.2019, 06:51:11
24 Antworten

Dan Kaminsky ' s deanonymization funktioniert, indem eine Menge der Sonden, die im bitcoin-Netzwerk, die Daten darüber sammeln, wie die Transaktion zu propagieren und als zu versuchen zu lokalisieren, es ist Quelle.

Wenn das Paket reist in das Netzwerk (Internet), dann muss es Quell-und Ziel-IP-Adressen im header. Also, wenn Ihr bitcoin-client sendet die Transaktion hat es zu wickeln Sie es in IP-Paket mit Ihrer Quell-Adresse und Ziel-Adresse des angeschlossenen peer.

Für one-way-Kommunikation ist es theoretisch möglich, zufällige IP-source-Adresse in einer Sendung Transaktion, aber es wäre immer noch möglich, deanonymize durch das wissen Standort des nächsten peers.

Es wäre leicht zu vermeiden deanonymization durch die Verwendung jeder Art von IP-proxy -, siehe diese Frage.

P. S. Die Antwort hat einige Spekulationen, denn Dan Kaminsky hat nicht lassen Sie die software noch nicht.

+984
user239830 03 февр. '09 в 4:24

Ich sehe ein Potenzial veränderlich blockchain als wertvoll für eine Reihe von Gründen:

  • Wenn nur Vertrauenswürdige nodes' ändern dürfen die blockchain, und es ist bezeichnend, reputation und finanzielle Ressourcen auf dem Spiel steht, eine falsche Behauptung und
  • Die Veränderlichkeit ist begrenzt auf 'fraud protection'/reversier-Transaktionen, so dass, wenn jemand tatsächlich ein Opfer von Betrug (oder verlieren Sie Ihre Münzen...) der blockchain kann geändert werden, um die überführung dieser Mittel, sondern als dauerhaften Verlust wie bei bitcoin/unveränderlich blockchains.
+956
user43785 25.05.2018, 00:46:23

Der normale Ansatz ist, wie Sie vorschlagen, zu aktualisieren, die Durchschnittliche regelmäßig - das ist so ziemlich die definition von einem gleitenden Durchschnitt. Zum Beispiel die Bollinger Bands sind eine ähnliche Metrische und Verwendung eines gleitenden Durchschnitts, die fortlaufend aktualisiert wird. Einen echten gleitenden Durchschnitt würde aktualisiert werden, mit jedem trade, den Sie gemacht, aber es macht Sinn, es zu brechen in Perioden von 30 Sekunden oder einer minute.

+951
Steven Shi 26.04.2011, 10:48:55

Größer und besser der Ruf der möglicherweise Zeugen mehr Unternehmen und so weiter. Was kann möglicherweise verhindern, dass die Entstehung von einem kleinen Oligopol von transnationalen Ripple-gateways ?

+946
Emdad 19.08.2019, 15:25:20

Sie können nicht bauen ASIC-hardware selbst. Es kostet Hunderte von tausenden von Dollar, um die Entwicklung eines ASIC und, per definition, kann man nicht kaufen, Sie aus dem Regal. (Die "AS" steht für "Application Specific", das heißt, es muss für einen bestimmten Zweck konstruiert.)

+938
Hans Z 02.04.2013, 08:43:34

Es wurde noch nicht eine definitive Umfrage des venture-Capital-Industrie, sondern Steigern VC hat mehrere bitcoin-investments. Seine Gründer Adam Draper und Brayton Williams sind verantwortlich für die Organisation der Boost-Bitcoin-Fonds , die mehrere venture-capital-Firmen beteiligt sind. Es gibt auch derzeit 7 bitcoin-Unternehmen in Ihrer 2013-Klasse von startups.

+922
James Grimshaw 01.04.2010, 12:30:01

Hallo Liebe bitcoin-Nutzer,

Ich arbeite aktuell an der Entwicklung einer Anwendung, die die Vorteile der Elektron-Brieftasche, um zu empfangen, und die Auszahlung an die Nutzer meiner Dienstleistung.

Meine Anwendung verwendet die eingebaute json-rpc-server aus Elektron, um zu kommunizieren. Ich bin in der Lage zu akzeptieren und zu überwachen eingehende Zahlungen gut mit der request-Mechanismus, aber ich bin vor einige Schwierigkeiten in Bezug auf die Auszahlung.

Durch ausführen der 'Elektron -h" von der Kommandozeile sehe ich, dass ich mit sollte die "payto" - Befehl, um Zahlungen vorzunehmen. Ich muss eine Adresse angeben und ein Betrag mindestens und dann auch ein Kennwort, falls erforderlich.

Um zu sehen, welche Art von Antwort ich erwartet habe ich zunächst versucht, diese direkt aus der Kommandozeile mit 'Elektron payto [BTC_ADDRESS] [BETRAG]" und dann bin ich aufgefordert, mein Passwort.

Auch wenn ein Falsches Kennwort eingeben, bekomme ich verweigert (also, das ist nicht der Grund).

Ich betrete es und receieve die folgende Antwort:

{
"complete": true, 
"final": true, 
"hex": "01000000026a7bb00035a682b0c51b00f7e60673a7c9480d03f4653abdf96ee68d63503221000000006b483045022100d4f489641dd85084fe301cd186a4630e1301ae24e3e1c2e99a4ed06675bfd8e202203a9ad7c4c9e456f9d21b0e7c1e0210b65e5363f70a4d87cd27f39475cd0ab22d01210257682e6bebcd9c5a7735c3ea80c6454badbc3d2b0e9d86d875b455538b149fc0ffffffff0763798b137db5feb7ba5cef8de2c1234ccadd29effd0c2c97474f4af4c6218d000000006b483045022100c704edbdf075e29382303207c7f445a4f4d3779b70c7b4798f12a6d0c517b5df02205644c9f7f47910477e9e58971ccbcb80258959208c72b6ec95a21c59b23402420121022f55a3753a30d020a5e052592e1dc1b511968b4a91871debe6b9bc9bedc2f4bfffffffff0278500000000000001976a9148353defb1ecee68e5c21a99239e1ec041d675a8588ac50c30000000000001976a914700bcc46e4421238023727492f724d08c499673988ac00000000"
}

Ich hatte erwartet, vielleicht eine Transaktions-ID aber, wie die Dokumentation für die API fehlt (bzw. ich finde, es ist nicht mehr sehr wahrscheinlich ist) ich bin mir nicht sicher, was zu erwarten ist. Die Zahlung ist nicht ausgeführt, indem Sie diesen Befehl so, vielleicht bin ich etwas fehlt.

TL;DR: Wie sende ich Bitcoins mit Elektron von der Kommandozeile aus?

Dank

+890
user18688 22.02.2013, 21:28:11

Kennt jemand eine der besten Bitcoin-Mining-Software? Ich habe auf der Suche für mining-software für eine Weile, aber ich kann nicht scheinen, zu finden. Ich benutze Windows 8 falls das hilft.

+849
Sriram Manohar 21.05.2016, 23:47:13

Add -shrinkdebuglog den Optionen, die Sie verwenden, um zu beginnen, bitcoin, oder fügen Sie shrinkdebuglog=1 an Ihre bitcoin.conf.

Jedes startup, wenn das Protokoll größer ist als 1 MB ist, wird es verkleinert es auf 200 KB.

+800
Dram Buie 10.06.2010, 12:30:52

Das system ist geschützt durch ein Anreiz-Mechanismus. Satoshi sagte in der Zeitung:

Er sollte es finden mehr profitabel zu spielen, die Regeln, wie Regeln den gefallen, ihn mit mehr neuen Münzen als alle anderen kombinierte, als zu untergraben, das system und die Gültigkeit seiner eigenen fülle.

Dies bedeutet, dass wenn jemand Zugang zu einem supercomputer, mächtiger als das gesamte Netzwerk verbunden, es würde mehr Sinn machen für Sie zu verwenden computer, um mir in einer ehrlichen Art und Weise und verdienen mehr Lohn als jeder andere miner. Anstatt tatsächlich die macht zu tun, unehrliche Dinge, wie zu verdoppeln verbringen oder invalidate-Transaktionen, die vermindern würde das Netzwerk ist von der Gültigkeit und damit der Wert des Angreifers mining-Belohnung.

Auch, wenn solche Computer gebaut, viele Leute würden Sie wollen, der schließlich zur Neuverteilung der macht. In diesem Sinne, ASICs könnte als winziger Supercomputer.

+733
Cheryl Tauer 25.09.2019, 09:01:02

Block-Daten ist nicht notwendig zu prüfen, der Nachweis der Arbeit, oder um zu überprüfen, dass die letzten block-Header nicht verändert wurde. Dies ist, weil für einen block-pass Nachweis der Arbeit zu überprüfen, den hash von seinem Kopf muss kleiner sein als ein bestimmter Wert ist. So, der header (die nur 80 bytes in Bitcoin) hat genug Informationen, um zu prüfen proof of work. Auch, jeder header enthält den hash-header des vorherigen Blocks. Also, vorausgesetzt, die hash-Funktion ist collision-resistant, ist es unmöglich, zu ändern alle bisherigen Header ohne änderung des hash der letzten überschrift, und es ist unmöglich zu ändern, header, während der Nachweis von arbeiten durchgeführt, nachdem der entsprechende block. Der einzige Weg, um "fake" - eine mini-blockchain ist zu entkommen die ehrlichen Bergleute, die benötigt ein Angreifer, um vergleichbare Menge von hash-power.

+704
ionised 31.08.2014, 21:14:44

Es ist ein Ergebnis eine Eigenart, von der original-Bitcoin-client wurde vorgetragen, bis heute. Ursprünglich UTXO Datenbank gehalten gesamten Transaktionen; es war ähnlich wie/im Grunde die gleiche wie die Transaktion index, der jetzt existiert noch heute. Aber die original-Bitcoin-client hatte einen bug wo es nicht die Bewegungsdaten des genesis-block. Dies ist, weil die genesis-block nicht verarbeitet wurde wie jeder neue block, damit er die Daten, die es nie in die UTXO Datenbank. Denn es war nie Teil der UTXO Datenbank, es wirkt auf Konsens, so dass dieser Fehler nicht behoben werden kann, ohne eine harte Gabel.

Schneller Vorlauf bis heute und die Entstehung block noch nicht verarbeitet, wie die anderen Blöcke in der Reihenfolge zu halten UTXO-Datenbanken konsistent, so gibt es keine harte Gabel. Dies bedeutet auch, dass die Transaktion in der genesis-block wird nicht Teil von beliebigen Datenbanken, einschließlich der Transaktion index, das ist der Grund, warum Sie nicht nachschlagen, die Transaktion. Dies zu beheben, so dass die Transaktion wurden Hinzugefügt, um die Transaktion index erforderlich wäre, einen beträchtlichen änderungen beheben ein Sonderfall, weil Sie den block nicht verarbeitet werden kann, oder es kann eine harte Gabel.

Anstatt zu versuchen, die Abfrage der Transaktion, die Sie verwenden sollten, getblock mit verbosity-level 2. Dieser decodiert den block noch weiter, um Ihnen die Transaktionen dekodiert, statt nur Ihre Transaktions-ids. Da der Baustein selbst ist bekannt und in der block-index block geholt und decodiert, so dass yo ucan bekommen Sie die Transaktion Daten auf diese Weise. In der Tat, würde ich empfehlen, dass Sie immer getblock mit Ausführlichkeit 2, so können Sie die block-Daten und alle Transaktions-Daten decodiert, mit einem RPC-stattdessen müssen mehrere zu Holen jede Transaktion in einem block.

+674
user137871 03.03.2017, 17:02:30

Dogecoin kein limit mehr.

+664
THE DARK KING 24.08.2019, 13:44:52

Ich bin ein Neuling auf Bitcoin, so dass ich entschuldige mich, wenn dies scheint wie ein "noob" - Frage.

Also, von was ich gelesen habe: jeder Benutzer kann erstellen Sie ein neues Bitcoin-wallet. Bei der Erstellung, eine wallet-Adresse wird automatisch generiert. Die wallet-Adresse können von anderen genutzt werden, um Transaktionen zu, dass insbesondere Geldbeutel.

Nun, meine Frage ist, was garantiert, dass zwei automatisch generierte wallet-Adressen einzigartig sein wird? Wenn mein Freund und ich getrennte Brieftaschen auf unserem eigenen Computer offlineist, was ist dann die Garantie, dass die beiden wallet-Adressen einzigartig sein wird? Was, wenn die zwei zufällig generierte wallet-Adressen stellte sich heraus, das gleiche zu sein?

+462
Killian Mills 27.11.2017, 13:26:24

Sie haben eine API jetzt. Zu bekommen, die die letzten trades, man könne die showPublicTradeHistory API-Endpunkt: https://api.bitcoin.de/v1/trades/history.

+375
J Hodge 01.05.2014, 18:13:25

Es gibt vier grundlegende Möglichkeiten, und Sie alle arbeiten:

  1. Kommen mit einer Adresse, übergibt die grundlegende geistige Gesundheit überprüft, aber intern ist ungültig. Sie wissen sicher, dass keine Schlüssel könnte evtl. passen diese Adresse.

  2. Strings von Zeichen in der Adresse, die weit über das hinaus, was jeder konnte erzeugen in einem vanity-Adresse. Zum Beispiel, wenn die Bitcoin-Adresse hat "FourScoreAndSevenYearsAgo", es ist eindeutig jenseits jeder Fähigkeit zu finden, die einen entsprechenden privaten Schlüssel.

  3. Verwenden Sie einen öffentlichen Schlüssel, der offensichtlich aus, wie eine, die nur aus null-bytes enthält alle aufeinanderfolgenden Ziffern von Pi. Es ist eindeutig jenseits jeder Fähigkeit zu finden, die einen entsprechenden privaten Schlüssel. (Für diese zu arbeiten, müssen Sie zur Bekanntgabe der öffentlichen Schlüssel.)

  4. Verwenden Sie einen hash des öffentlichen Schlüssels, der offensichtlich aus. Dies funktioniert genauso wie die oben genannte option, aber die Schwierigkeit wäre auch der Suche nach einer public-key mit so einem hash, viel weniger finden, die den entsprechenden privaten Schlüssel.

+354
Dustin Hodges 30.01.2014, 05:18:47

Wenn Sie sich zu mir signifikanter Menge, Sie verbrauchen eine erhebliche Menge an Energie, die beachtet werden können. Zum Beispiel, wenn ich die Installation eines einzelnen AntMiner S9 an mein Zuhause, mein Strom Verbrauch gehen würde bis zu 400%. Wenn die Regierung führt die Elektro-Firma oder überwachen können Ihre Einträge, diese Art der Sache könnte eine sofortige Untersuchung.

+344
Lembik 10.08.2017, 04:19:49

Die blockchain wird der teuerste Teil von dir Kosten wenn man die VPS-Strecke; disk-Nutzung wird nur zu erhöhen, wo, wie RAM & CPU stats bleiben ruffly die gleichen. Würde ich Schießen für ruffly 100-120gigs Speicherplatz auf der Festplatte vorhanden, so dass Ihre hosting-Kosten ändern sich nicht; die macht, halten die Bücher, um ein bisschen einfacher. Auch für hosting-Anbieter, die behaupten, Sie don ' T limit/cap-network-Nutzung und hosting-Anbieter, die unterstützen, laden Sie Ihre eigenen Kernel. Diese Letzte Anregung ist, weil nach dem Lesen des zuvor geschriebenen Kommentare es ist offensichtlich, dass Sie verwenden einen vserver unabhängig von Warnungen, und Sie wollen, minimieren der Angriffsfläche von der Kernel-Ebene auf bis zu Datei-system und darüber hinaus.

Soweit die Vorschläge der VPS-service-provider, die angeblich Digital Ocean unterstützt custom-Kernel, wenn Sie ein support-ticket Einreichen. Sie brauchen auch nicht cap-network data usage zuletzt habe ich geprüft. Während ich kann nicht mit Ihnen jetzt ich habe versucht, Ihren service und meine Erfahrungen mit Ihnen war gut. Die meisten Probleme/Fragen hatte ich beantwortet, wo (oder zumindest anerkannt durch das Personal, wenn es war ein bisschen, um wieder zu mir) innerhalb der business Tag oder zwei.

Zuletzt zeigen Sie auf Sicherheit für Ihre VPS, ya kann wollen, um den check-in grsecurity kernel-patch und wie es zu verschmelzen Funktionen in den kernel Ihrer Wahl. Es ist schwer zu setup aber sehr viel Wert, es zu haben, einen gewissen Schutz auf der niedrigsten Niveaus zugänglich, die auf Ihrem remote-server.

Bearbeitungen/Aktualisierungen

So nach ein wenig Herumspielen Runde auf dem terminal fand ich den folgenden scriptlet vielleicht hilfreich, Sie zu Benachrichtigen, wenn der Platz es Einschränkungen nähern sich der Zeitpunkt der Aktualisierung vpn-Speicher.

#!/usr/env/bin bash
Var_mount="/media/btc_node"
Var_max_percent="80"
Var_current_present="$(df -H | grep "$Var_mount}" | awk '{print $5}')"
if [ "${Var_current_present//%/}" -gt "${Var_max_percent}" ]; then
 # setzen Zeug zu warnen ya wie E-mail hier
 echo "# Critical space levels auf ${Var_mount} ${Var_current_present}"
fi

Die oben könnte sich weiter verändert und Hinzugefügt cron, um gelegentlich zu prüfen und warnt Sie, wenn ein upgrade auf Platz benötigen.

+333
Neybar 16.08.2014, 03:58:06

Nein, du wirst nicht täuschen die standard-client mit diesem. Wenn Sie nicht verstehen, das Skript komplett (d.h. es ist ein nicht dem Standard entsprechende Skript), es nicht versucht zu analysieren, es teilweise oder ähnliches. Das Verfahren ist einfach: wenn der client kann nicht verstehen, das Skript komplett, es wird einfach ignoriert. Zeitraum.

+300
rohitpatna 28.06.2016, 15:13:28

Warten Sie einfach 10 Minuten oder so. Wenn Sie mehr als 8 verbindungen erhalten Sie eingehende verbindungen.

+293
user12993 14.03.2018, 14:26:25

Beachten Sie, dass die ledger selbst, wenn kompromittierten austreten könnte die pk auch in anderer Weise. Diese Methoden, die ich beschrieben wird nur bestätigen, dass Sie eine bestimmte Adresse gehört, um die privaten Schlüssel, die Sie halten, nicht, dass Sie die einzige person, die diese pks

wie du schon gesagt hast: eine Möglichkeit, günstig stellen Sie sicher, dass ist, nehmen Sie einfach die Adresse und senden Sie ein wenig Geld, um es. Das bedeutet nicht beantworten, wenn Ihr Schlüssel kompromittiert ist, aber es tut Ihnen sagen, wenn die Adresse gehört deine Saat-oder auch nicht.

Eine andere Möglichkeit wäre, manuell Derivat der Adresse aus dem privaten Schlüssel unter Verwendung des BIP39 tool hier , bis Sie die Adresse, ledger gab Sie.

Diese zweite man nicht verlangen, dass Sie senden das Geld, aber es ist riskanter, als Sie müssen darauf Vertrauen, dass der code in der Seite die ich dir geschickt habe und Sie sind buchstäblich das einsetzen der pk in ein Formular im Internet, das ist nie eine gute Idee.

Die Dritte Sache, die Sie tun können, erzeugen Privater Schlüssel, die mit einer Methode, der Sie Vertrauen (d.h. mit Samourai Brieftasche oder so) und dann diesen Merksatz in der Finanzbuchhaltung als ein Samen. Auf diese Weise wissen Sie, dass nur Sie, die privaten Schlüssel.

+221
WilsonHuangJi 25.04.2016, 07:06:58

Hier ist eine Transaktion, die zu SatoshiDice für 0,01 BTC:

enter image description here

Aber untersuchen Sie den entsprechenden Eintrag in blockchain.info:

enter image description here

Sie denken, das:

Insgesamt ein 0.01974 BTC 
Gesamtleistung 0.01973 BTC

Aber das ist innacurate!

es acually:

Insgesamt ein-0.011 BTC 
Gesamtleistung 0.010 BTC

Warum können Sie nicht (blockchain.info) sehen, dass, während SatoshiDice können?

Ist es, weil die Transaktion an dieser Stelle noch unbestätigt?

+120
arzul 24.05.2014, 19:23:55

Wenn jemand sucht, um eine Verbindung zu einem RegTestnet mit bitcoinJ hier sind die Schritt auf mac:

Ich benutzte ein docker-image, um das setup das bitcoin-Netzwerk.

https://github.com/freewil/bitcoin-testnet-box

führen Sie dieses Andockfenster Bild mit diesem Befehl:

docker run-t-i -p 19001:19001 -p 19011:19011 -p 19000:19000 freewil/bitcoin-testnet-box

Beim ausführen dieses Andockfenster Bild wird es beginnen 2 bitcoin Knoten.

Knoten 1 wird hören, bitcoin-Knoten verbindungen auf port 19000 und für rpc-verbindungen auf port 19001.

Knoten 2 ist nicht zu hören bitcoin-Knoten-verbindungen. Knoten 2 verbunden ist Knoten 1.

Jetzt mit dem port-forwarding-Einstellungen in Virtual-Box weiterleiten container port 19000 auf Ihrem Computer host port 19000.

Jetzt können Sie eine Verbindung zu Knoten 1 von jedem Rechner in Ihrem lokalen Netzwerk (wifi-Netzwerk) mit der Adresse, die Ihr-Maschine-local-ip:19000

Hier Ihrem lokalen Rechner-ip ist die ip-Adresse von Ihrem laptop in Ihrem lokalen Netzwerk. Im mac finden Sie es heraus von den Netzwerk-Einstellungen.

Die Verbindung zu Knoten 1 von bitcoinj verwenden:

mParams = RegTestParams.get();
.
.
// definieren, wie eine Verbindung, basierend auf network params
wenn (mParams == RegTestParams.get()) {
 try {
 PeerAddress pa = new PeerAddress(mParams, InetAddress.getByName("<your-Maschine-local-ip>"), 19000);
mKit.setPeerNodes(pa);
 } catch (UnknownHostException e) {
e.printStackTrace();
}
}
+111
ovanes 14.01.2010, 02:28:42

Erstens, der Austausch verfolgen von Transaktionen von Ihren TXIDs. Die TXID kann geändert werden von 3. Parteien, aber nicht die Bewegungsdaten.

Ich kann nicht verstehen, wie, sagen wir, Bob ändern kann Alice die Signatur in einem Alice->Bob Transaktion, wenn die Signatur nicht zu ihm gehören, in den ersten Platz.

Alte Versionen von Bitcoin Core verwendet OpenSSL zur überprüfung von Signaturen (jetzt libsecp256k1). OpenSSL ist nachsichtig über Signatur-Codierung.

  • Eine ECDSA Signatur ist ein (R,s) - paar. (R,-s) macht auch eine gültige Signatur.
  • OpenSSL ermöglicht Verschlüsselungs-algorithmen, die anderen als DER.

was bedeutet, es gibt mehr als eine Möglichkeit zu codieren Signaturen. Unterschiedliche, aber gleichwertige Signaturen ermöglichen die 3rd parties zum ändern der Signaturen ohne Kenntnis des privaten Schlüssels, also die änderung der TXID.

Details: Bulletin 62

+67
Pichi Wuana 01.01.2016, 10:07:52

Fragen mit Tag anzeigen