Welche Programmiersprache sollte benutzt werden, zu entwickeln Bitcoin-exchange-software? Warum?

Ich habe nur gehört PHP ist schrecklich (z.B. im Kontext von Mt. Gehex) und eine effizientere/mehr-Sicherheit-orientierte Sprache wäre besser für die passenden Aufträge und account-Sicherheit. Welche Programmiersprache, und aus welchen Gründen, wäre es besser?

+702
Denis999 06.02.2014, 12:15:05
15 Antworten

Im Bitcoin-wiki:

Block-Zeiten werden genau nur in ein oder zwei Stunden.

ist ein bisschen vage. Ist es möglich zu beweisen, dass eine beliebige akzeptierte block timestamp ist innerhalb von x Sekunden von der realen Zeit? Wie?

+938
stenlan 03 февр. '09 в 4:24

Ich versuche zu schaffen und bauen eine funktionierende Gabel des Bitcoin, um zu verstehen, wie es arbeitet auf Quellcode-Niveau. Ich sehe eine Menge von Artikeln, die erklären, wie man erstellen Sie altcoins, aber Sie sind nicht sehr hilfreich für das lernen Zweck, da Sie überspringen eine Menge von details, und neigen dazu, zu sagen, was zu tun, ohne zu erklären, warum.

Bei dieser Frage konnte ich nicht finden jeden Artikel/Dokument auch nur im entferntesten irgendjemandem etwas über den öffentlichen Schlüssel für die Generierung der genesis-block-ich glaube, das ist eine wichtige Dinge zu wissen, zumindest, weil es war verwendet zum generieren der genesis-block des Bitcoin. Blick auf den Quellcode:

Bitcoin-0.1.5 - main.cpp @1490:

txNew.vout[0].scriptPubKey = CScript() << CBigNum("0x5F1DF16B2B704C8A578D0BBAF74D385cde12c11ee50455f3c438ef4c3fbcf649b6de611feae06279a60939e028a8d65c10b73071a6f16719274855feb0fd8a6704") << OP_CHECKSIG;

Bitcoin 0.8.0 main.cpp @2715

txNew.vout[0].scriptPubKey = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG;

Diese beiden public-keys sind die gleichen. Zuerst erschien in der ersten version des Bitcoin-soweit ich sehen kann, in dem Github-repo. Zweite ist die aktuelle Auslastung, bevor es völlig aus dem Quellcode entfernt.

Meine Fragen sind:

  1. Was ist dieser öffentliche Schlüssel? Ist dies [angeblich] Satoshi persönlichen öffentlichen Schlüssel oder nur ein zufälliger Schlüssel generiert, die für das wohl der Generierung des genesis Blocks?

  2. Gibt es irgendeine andere Anwendung für diesen öffentlichen Schlüssel oder es ist nur sinnvoll, wenn die Generierung des genesis Blocks? z.B. signieren von Transaktionen? überprüfung der Integrität der abgebauten Blöcke?

  3. Es gibt verschiedene Formate für Öffentliche/Private Schlüsselpaare. Was ist das format für diesen speziellen Schlüssel? Gibt es eine built-in-API/utility innerhalb des Bitcoin-Quelle, die verwendet werden könnten, für die Erzeugung oder Prüfung der Gültigkeit der Schlüssel?

  4. Was sind die Folgen der mit einem gebrochen/ungültig public key in dieser Phase? Angesichts der Tatsache, dass die genesis-block ist unspendable.

+880
guest123142123413 23.03.2019, 08:01:37

ich Schreibe ein Teil von Bergmann überprüfen Sie die korrekte Arbeit

private String generateCoinbase(String en2){
 StringBuilder coinbase = new StringBuilder();
coinbase.append(coinb1);
coinbase.append(Extranonce1);
coinbase.append(en2);
coinbase.append(coinb2);
 zurück coinbase.toString();
}

public String Merkle2(String cb) {
 String mr = cb;
 for(int i = 0; i < merkle_branch.length; ++i)
 mr = sha256(sha256(mr + merkle_branch[i]));
 zurück mr;
}

public String reverse(String String) {
 int n = string.length() / 2;
 StringBuilder sb = new StringBuilder();
 for(int i = (n - 1) * 2; n >= 0; n=2)
 sb.append(string.substring(i, i + 1));
 return sb.toString();
}

public String reverse8(String String) {
 StringBuilder sb = new StringBuilder();
 for(int i = 0; i < Zeichenkette.length(); i+=8){
 int end = Math.min(i + 7, string.length() - 1);
 sb.append(reverse(string.substring(i, end)));
}
 return sb.toString();
}

public String testControll(String nonce2, String en2) {
 String coinbase = sha256(sha256(generateCoinbase(en2)));
 String merkle = Merkle2(coinbase);
 String header = version + prevhash + reverse8(merkle) + nuhrzeit +
 nbits + nonce2 + "000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000";
 String hash = sha256(sha256(header));
 return hash;
}

Algorithmus habe ich von hier bekommen https://slushpool.com/help/#!/Handbuch/stratum-Protokoll

ich betreibe diese mit dem nächsten Parameter (die, die ich von bestehenden miner)

{"id": 0, "method": "der Bergbau.abonnieren"", "params": ["cgminer/3.7.2"]}

{"id":0,"result":[[["mining.set_difficulty","b4b6693b72a50c7116db18d6497cac52"],["mining.notify","ae6812eb4cd7735a302a8a9dd95cf71f"]],"f53d0211",4],"error":null} {"id": 1, "Methode": "der Bergbau.autorisieren", "params": ["up101084139.cgminertest", "pass"]}

{"id":1,"result":true,"error":null}

{"id":null,"params":[4],"method":"der Bergbau.set_difficulty"}

{"id":null,"params":["-4fb1d548","db48fff805d2f2be98c101b2103afcd3fc0d2f2803bf92a30000000000000000","01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff410353950604f8b0e75708","2e522cfabe6d6d3555ed13d9e4c9317fc507a9080eeef9cb14b591b0cc1636caff691168d3f24704000000000000000000000001e5129d4a000000001976a91480ad90d403581fa3bf46086a91b2d9d4125db6c188ac00000000",["7c60191525d8563e379a4049e44d77be2fecdb348eaf844c86d434a0cad8d75c","ae757ce8f99307303fd31b81b1672674523e84cebab7d4f5fc76c97c46fe6f87","6ab95b94b7970237331551e2f22097432863ee31916d9c80fa2251739d6eb20d","332eec53c5f131c6abe85d64f928151d072cae47f8477d417185b84ec2904a56","3c2f9fdbcca3f01cc8ca2f8eee445271617f10889c39d5644399865fe6dc8a1d","b06350717cd3e844ed5d605a4d7a5f25bf859beeb2bf1aab4e2bf7fa45ee5954","7a1f44163fe18591b2c50b1499b8f09f519e9cd18d1fda14be0e87a029cda741"],"20000000","18048ed4","57e7b0f8",true],"method":"mining.notify"}

{"params": ["up101084139.cgminertest", "-4fb1d548", "01000000", "57e7b0f8", "2536d114"], "id": 2, "Methode": "der Bergbau.senden"}

und schauen Sie sich das Ergebnis der header-block hash: 60be74f0d211b35bc2d23b39cb3bc79667291b439639dc20f63616a35d89b14b aber es muss geringer als Ziel und nicht

  • was mache ich falsch?
  • wo ist mein Fehler?
  • wie machen Sie es richtig?

Hier ist ein online code https://docs.google.com/document/d/132mNZ1TQ4kOCg490wUw44jkCFuMd5ehzqDxLGrnwnN0/edit?usp=sharing

+781
Hitesh patel 29.11.2013, 21:43:47

Meine Brieftasche.dat ist 260MB groß. Ich bin mit 32bit bitcoind (bitcoin-0.10.2), linux.

Bitcoind ist mit Speicher Probleme:

["Fehler"]=>
 string(89) "AUSNAHME: St9bad_alloc 
std::bad_alloc 
bitcoin in ProcessMessages() 

Aktuelle Speicherzuordnung: 2,9 GB virt, 2.3 GB virt.

Wie kann ich die beheben das problem mit dem Arbeitsspeicher? Lösche ich alte, nicht mehr benutzte Adressen? Ich fand Sie nicht einen API-Aufruf zu entfernen Sie alte Adressen. Wahrscheinlich bitcoin-0.11.0 löst nicht das problem, es hat bereits fast die gleichen Werte: 2.45 GB Virt, 2.1 GB Res.

+762
Gazizulya 03.07.2017, 21:16:19

Einige SPV-clients verwenden die filterload Befehl erhalten nur Transaktionen mit Adressen in Ihrer Brieftasche. Dies zu tun, nimmt die remote-Knoten linearer Zeit (bzgl. der Anzahl der Transaktionen in den block), die scheint mir suboptimal.

Könnten wir index Transaktionen irgendwie so, dass wir Sie beantworten können diese Abfragen in schneller als die lineare Komplexität? Es scheint mir möglich, aber ich bin mir nicht sicher wie Sie gehen über es, vor allem in Anwesenheit von nTweak.

+761
Ekat12 12.09.2019, 22:15:20

Ich bin ganz neu bei bitcoin. Ich habe die Kompilierung der client von github und ich möchte auf einem server ausführen, wie testnet und einige API-Anfragen. So wie ich das sehe in den Unterlagen, die ich erstellen sollte, eine bitcoin.conf-Datei. Aber wo erstelle ich dies im Falle von kompilierten client

+760
Fermin Arellano 18.02.2012, 10:06:04

Wenn Sie schnappen Sie sich eine Kopie des Bitcoin-qt-wallet von der Münzprüfer Gabel, können Sie einige sehr gute Informationen darüber, wie die Transaktionsgebühren Arbeit. Die Transaktionsgebühren sind in der post erklärt, dass link, und die kompilierte Münzprüfer Gabel ist auch verlinkt, so können Sie mit ihm zu spielen.

Einmal heruntergeladen und installiert, öffnen Sie Einstellungen -> Optionen, dann unter der Registerkarte Anzeige aktivieren Sie die Option "Display-Münzprüfer-Funktionen (nur für Experten!)" - option.

Nun, wenn Sie gehen, um zu senden-Fonds, haben Sie die Möglichkeit, genau dort, wo die Mittel herkommen, welche Priorität Sie bei der Eingabe-Blöcke, welche Gebühren werden (sofern erforderlich), und der Möglichkeit, mehrere Empfänger für die Transaktion.

Diese zusätzliche Funktionalität wird standard in den kommenden 0.9 Version von Bitcoin-qt und bitcoind.

Wie schon gesagt, am besten wäre es, Versuch es auf das Bitcoin-Testnet, derzeit Testnet3 - führen Sie einfach die Brieftasche mit dem Befehl:

bitcoin-qt -testnet

die in der Brieftasche auf Testnet3 eher als Haupt-Netzwerk. Können Sie einige freie testnet bitcoins von einigen Armaturen (überprüfen Sie die links am unteren Rand des Bitcoin-Testnet wiki-Artikel), und spielen, um mit dem senden von bitcoins in einer Transaktion aus mehreren wallet-Adressen an mehrere andere wallet-Adressen. Dies sollte Ihnen eine Idee davon, wie die Struktur der Zahlung, ohne dass eine Transaktion Gebühren.

+735
dxy 23.11.2011, 17:34:50

läuft ps ergibt:

31793 pts/0 11:04:46 bitcoind

aber Befehle wie bitcoind getblocktemplate

ergibt:

bash: bitcoind: Befehl nicht gefunden...

Ich habe versucht, fügen Sie den src - Ordner, um meine globalen Pfad durch den folgenden Befehl:

echo "export PATH=$PATH:/home/jpc/Code/WorkingCopies/bitcoin/src" >> ~/.Profil

Vielen Dank für jede Hilfe.

+585
jaygoody 12.01.2019, 02:24:36

Ich bin mit Elecron Cash 2.9.4, und ich öffnete die Brieftasche durch die Verwendung der Samen von meinem alten (BTC) Electrum Wallet. Ich soll BCH.

Screenshot

+563
LGP 25.05.2018, 10:24:38

Nun, es ist eine Nachricht, die angezeigt wird, auf der P2Pool Website, die liest, "25. Januar 2018: Unsere historischen block Daten beschädigt wurde (nur mit Bezug zur Anzeige auf dieser Webseite), werden Daten für alle Blöcke, die nach dem 1. April 2017 wurden verloren. Sie werden wiederhergestellt werden, um den Datensatz so schnell wie möglich." das ist also der Grund für die fehlenden Informationen.

+483
slowBear 03.09.2019, 10:51:29

Aus dem 100 Milliarden XRP kann jemals existieren, die Gründer gehalten, die 20 Milliarden, während OpenCoin erhielt den Rest von 80 Milliarden Euro. Aus, dass 80 Milliarden OpenCoin verkaufen 30 Milliarden zu finanzieren, die kontinuierliche Weiterentwicklung über die anfänglichen Engel Investitionen, und die restlichen 50 Milliarden werden verschenkt spur Annahme.

Wie lange wird es dauern, OpenCoin verteilen, die restlichen 50 Milliarden? Ein Jahr ab jetzt, wie viele XRP werden OpenCoin verschenken zu jedem einzigartigen neuen Benutzer? Was ist die kleinste Menge, dass OpenCoin schließlich Weg, im Laufe der Zeit? Wenn es keine spezifische Antwort, die zu der Zeit, OpenCoin einen Bereich (zum Beispiel zwischen 5 und 50 Jahren)? Gibt es eine halbwegs würdige untere Grenze für die erforderliche Zeit zu verschenken, die 50 Milliarden? Gibt es eine Obergrenze, wie viel werden ausgehändigt (d.h. wird es jemanden geben, erhalten Sie 50.000 XRP wieder als Teil der giveaway)?

Antworten, auch wenn teilweise, geschätzt.

+418
Aeronautix 21.01.2010, 12:07:38

Das Buch " Mastering Bitcoin wäre eine gute und solide starten (obwohl es vielleicht nicht die Antwort auf alle deine Fragen). Es ist auch verfügbar für kostenloses.

+270
Jeffrey M 31.08.2012, 20:51:53

Ich habe einen einfachen Rechner: 4GB ram, Intel core 2 duo E4500 und einer Geforce 315 (ich habe auch eine Geforce 9400, aber ich weiß nicht was besser ist) und ich Frage mich, ob es möglich wäre (ohne zu überhitzen meinem PC) zu mine bitcoin mit ihm. I dont care viel über die Stromrechnung, weil ich einfach möchte es für ein hobby, aber wenn jemand könnte mich wissen lassen, dass wäre toll.

Cheers,

Asche

+252
taemiru 12.08.2015, 23:07:41

Ich Frage mich, ob es möglich ist, eine neue erhalten-Adresse jedes mal, wenn ich einen crypto. Einige Börsen dies automatisch für Sie tun, aber ich bemerkte, jedes mal, wenn ich drücken Sie 'Anzeige', es war die gleiche Adresse.

Gibt es eine Möglichkeit, eine neue erhalten-Adresse für die einzelnen Transaktionen?

+251
JackJam 19.07.2019, 10:52:01

In der Bergleute (sgminer) log-Datei habe ich die folgenden Zeilen:

[21:14:19] ADL-index 0, id -546853344 - BIOS-teilnr.: 113-C3865001-T04, version: 015.041.000.000.000000, Datum: 11/25/13 02:47
[21:14:19] GPU 0 zugeordnet: iAdapterIndex:0 iPresent:1 strUDID:256:26520:4098:12289:5963 iBusNumber:1 iDeviceNumber:0 iDrvIndex:0 iFunctionNumber:0 iVendorID:4098 name:AMD Radeon R9 200 Series 

Kann ich die oben genannten Informationen, um die genauen GPU geben? Es ist klar, der AMD Radeon R9 200 Series - Familie, aber ich brauche den genauen Typ auch.

Gibt es eine Datenbank, die ich verwenden kann?

+67
Phila67 04.08.2013, 10:45:57

Fragen mit Tag anzeigen