Wie kann ich integrieren Bitcoin Zahlungen in meine Webseite erstellt, die in C#?

Ich bin neu bei Bitcoin. Wie kann ich integrieren Bitcoin Zahlungen in meine website, die ausgelegt ist, mit ASP.Net?

+151
user25794 16.07.2017, 03:19:35
23 Antworten

Lassen Sie uns sagen, ein Benutzer hat eine anständige Menge an Rechenleistung. Bei der aktuellen Schwierigkeit von 1777774.4820015, hätte er zum Beispiel 10Gh/s (er verdienen würde, um die 5 BTC pro Tag, entsprechend einem Taschenrechner).

Ist es profitabler für ihn solo-mine oder zur pool-mine? Was sind die Unterschiede in dieser situation?

+924
Danny Shepherd 03 февр. '09 в 4:24

Gibt es eine Drupal SCI für Bitcoin verfügbar? Entweder gebunden in Ubercart oder, vorzugsweise, Drupal Commerce.

+924
Jack Lacy 27.06.2011, 14:44:38

Es wird nicht empfohlen, senden Sie eine private asymmetrische Schlüssel als blockchain Transaktion (was ist ein Kommunikations-Kanal) in dieser Art und Weise.

Es ist ein gutes Papier auf den Schlüssel-Austausch hier:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.216.6107&rep=rep1&type=pdf

In diesem Papier macht der Autor auch deutlich macht, dass das senden eines privaten Schlüssels über einen Kanal, der ist nicht gut design:

"Wenn ein Schlüssel gesendet wird, wird eine Nachricht, die nur der öffentliche Schlüssel wird verwendet, um explizite... Keines der Protokolle studierte in diesem Papier jemals senden Sie einen geheimen Schlüssel über den Draht"

https://dominictarr.github.io/secret-handshake-paper/shs.pdf

Die öffentlichen Schlüssel sind entworfen, für das senden über einen Kanal. Nicht den privaten Schlüssel. Die Verschlüsselung gebrochen werden kann durch brute-force. Einmal hat jemand den privaten Schlüssel Sie entschlüsseln kann alles, was mit diesem Schlüssel verschlüsselte.

+897
Sansayan Chakma 08.09.2010, 23:55:47

ja, je nachdem, wie viel wissen und Mühe, die Sie ausgeben möchten. Aber es ist umständlich und erfordert eine Tiefe Lernkurve. Normalerweise sollte der private Schlüssel 51 chars beginnend mit "5" oder 52 chars beginnend mit "K" oder "L". In seltenen Fällen müssen Sie möglicherweise ein hex-Wert den private key, das ist ein 32 Zeichen langer string. (Post nie Ihren privaten Schlüssel hier!!!).

Auch Sie brauchen, um zu überprüfen, wenn Sie eine "xpriv Schlüssel" - das ist eine etwas andere Art der Präsentation eine priv-key, und hat den zusätzlichen Verbrauch. Dies spielt eine Rolle, wenn das zurückladen in ein anderes wallet.

Ich bin nicht vertraut mit blockchain.info und wenn der private Schlüssel ist irgendwie mit diesem Passwort verschlüsselt - vielleicht einige der Forschung erforderlich. Wenn es verschlüsselt ist, dann ist dies nicht viel helfen, und ich kann nichts mehr tun für Sie.

Also, wenn Sie einer von denen priv keys, beginnend mit "5" oder "K" oder "L", dann haben Sie die Optionen: Sie könnten eine Geldbörse (wie das Elektron), und das laden der priv key da. Es würde dann zeigen Sie die entsprechende Adresse, und Sie können überprüfen, ob es richtig ist. Es würde dann auch zeigen, das Gelder. Sie können auch montieren Sie die Transaktion manuell, melden Sie es manuell zu bekommen, und es weitergeleitet an das bitcoin-Netzwerk. Aber dies erfordert eine gute Menge von anspruchsvollen Kenntnissen der bitcoin Netzwerk (in der Befehlszeile-layer).

+847
infiniteloop 04.11.2011, 02:20:54

Was ist der einfachste Weg, um eine E-Mail Benachrichtigung, wenn ich empfangen oder senden Sie eine Welligkeit Zahlung?

+833
jastram 06.02.2019, 19:45:55

Wurden Sie eventuell über einen Adapter-Kabel, das ermöglicht den Einsatz von verschiedenen slots, wie das hier dargestellt wird: https://bitcointalk.org/index.php?topic=66070.0

Während der Bergbau die Daten zu und von der Grafikkarte nicht annähernd so viel wie wenn die Karte ist für Spiele verwendet, so dass es keine wesentliche Verschlechterung im Bergbau Ausgang.

Allerdings, ich erinnere mich an das Lesen über mindestens einen Fall, wo schaltkreise überlastet war, dies zu tun (dh es ausgebrannt), die möglicherweise durch ein defektes Kabel, aber auch möglicherweise weil die Grafikkarten sind nicht so konzipiert, das es so funktioniert.

+830
Ibikus 10.07.2015, 03:09:52

Bitcoin-Transaktionen sind gespeichert in einem Hauptbuch. Es muss einen Weg für alle zu vereinbaren, auf demselben Sachkonto. In bitcoin erfolgt dies, indem Sie sicher, dass die nur gültig ledger ist derjenige, wo mehr Rechenleistung wurde in der es zu "generieren". Es gibt eine Menge von anderen Daten, wo das Hauptbuch ist eigentlich ein block-Kette, sondern insgesamt die Idee ist, dass "die meisten computing-power" ist die Regel dahinter, wie Knoten akzeptieren das Hauptbuch.

Mit diesem im Verstand, es konnte immer noch passieren, dass jemand mit einer großen Menge an Rechenleistung, können erstellen Sie ein Hauptbuch, das ersetzt die derzeit angenommen durch das Netz. Weil, wie die block-Kette funktioniert, das wird exponentiell schwieriger, für jeden block in dem Hauptbuch generiert wird/gefunden.

Also um deine Frage zu beantworten "warum ist es, dass wir warten müssen, für 5-6 Bestätigungen", es ist, weil ein böswilliger Partei mit viel Rechenleistung könnte theoretisch ersetzen Sie die neusten 2 blocks oder so. Aber, zu ersetzen, um die neuesten 5 oder 6 Blöcke wird es so hart, dass es beinahe unmöglich, dass es passiert. Also eine Transaktion ohne Bestätigungen "weniger sicher" als eine Transaktion mit 5 Bestätigungen. Je mehr Bestätigungen, desto höher ist die Sicherheit einer Transaktion ist.

+769
Donnie 29.11.2017, 01:50:15

Was verursacht die riesigen Tropfen des mempool von 60 MB auf Weniger als 1 MB?

Diese Transaktion nicht verarbeitet bekommen, es war keine 60 MB block abgebaut zu der Zeit.

Dies geschah um 10:38 Uhr 29. August 2017 NZ Zeit

Mempool dropping to zero

+727
pnhgiol 04.02.2013, 04:09:24

Bitcoin Gold haben behauptet, pro-block Schwierigkeit der Anpassung, wie funktioniert es? Ich finde diese https://github.com/BTCGPU/BTCGPU/pull/151, aber immer noch nicht verstehen, wie es funktioniert, indem einige Parameter ändern.

+698
Nnamdi Affia 26.05.2010, 03:01:54

Eine wichtige Kritik gegen die üblichen SHA-basierte proof-of-work-systems in Haupt-cryptocurrencies (mit Ausnahme des ökologischen Bedenken), ist die Tatsache, dass, Jahre nach Jahren, ist es mehr und mehr dominiert von einer Minderheit mit entwickelt spezifische hardware (CPU -> GPU -> FPGA -> ASIC), so dass es unmöglich für den durchschnittlichen Benutzer mit einem laptop zu lösen, die ein einzelnes proof-of-work-problem im Leben.

Was sind heute die Lösungen für dieses problem?

  • Ich hörte Equihash, ein Speicher-hard proof-of-work-Regelung, verbunden mit dem Generalized Birthday problem

  • gibt es andere (Arbeits -) versucht? was sind Sie basiert?

+694
Boonnoon 10.07.2010, 01:40:35

Related: Mit bitcore um eine Transaktion zu erzeugen, mit zwei Adressen und die Adresse ändern

Ich möchte, um eine Transaktion zu erzeugen, die von den Adressen A und B senden an Adresse C

In der obigen Frage, die ich ein wenig verwirrt zu bekommen (es sieht aus wie hes tun, eine Transaktion, die schickt von den Adressen A und B Adressen C und D empfangen von änderung an der Adresse E), weil es aussieht wie er ist, Unterschreiben Sie es mit den beiden empfangen von Adressen!

In der Regel, wenn ich erstellen und unterzeichnen einen tx mit Bitcore melde ich mich dann mit dem Absender den privaten Schlüssel nicht die Empfängeradresse (in meinem Fall der Empfang von Adresse wäre ein user den ich nicht persönlich kenne)

Die bitcore docs sagen:

Senden Sie eine Transaktion eine multisig-Adresse, die API ist die gleiche wie im obigen Beispiel. Verbringen Ausgänge, die erfordern, dass mehrere Unterschriften, muss der Prozess zusätzliche Informationen: die öffentlichen Schlüssel der Unterzeichner, die können entsperren diese Ausgabe.

var multiSigTx = new Transaction()
.aus(utxo, publicKeys, Schwelle)
.ändern(Adresse)
.Zeichen(myKeys);

var serialisiert = multiSigTx.toObject();

Die zwei Teile, die verwirren mich sind:

  • Bitcore zitieren - Zum senden einer Transaktion eine multisig-Adresse...

Ist dieser unterscheidet sich von einem regulären Adresse? Ich merke, dass das Beispiel fehlt .zu(Adresse, Betrag)

  • Warum ist Richard von der Frage der Unterzeichnung mit der Empfängeradresse die private keys?

Logischerweise sollte nicht meine gewünschte Aktion in etwa so Aussehen?:

var transaction=new Bitcore.Transaction()
.Gebühr(fee)
.aus([output_A,output_B])
.zu(pubkey_C,satoshis-Gebühr)
.ändern(address_A) //don ' T lose ändern
.Zeichen([privatekey_A,privatekey_B]);

output_A ist " von " - Adresse Ein und output_B von Adresse B (meine beiden Adressen)

+632
huseyin tugrul buyukisik 02.01.2013, 10:13:26

Der Import-Prozess ist nicht sofort, jeden block aus der bootstrap.dat muss dann geprüft werden, ersten.

Sie könnte mit Blick auf dieses Verfahren der überprüfung.

+631
Sivanesh 18.12.2012, 02:40:35

Ich habe irgendwo gelesen (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-May/005816.html), dass Bitcoin Core ist die Umstellung auf eine edge-router-Rolle. Kann mir jemand sagen warum dass so ist? Edge-Router in Bitcoin sind Dienstleistungen, wie Börsen, online-wallets, etc, wenn ich richtig bin, richtig?

+613
Quver 28.07.2010, 05:23:04

Die Teilnahme an einer disruptiven Technologie

Viele der anderen Antworten sind mit den investment-Winkel, sondern auch berücksichtigen, dass Bitcoin ist eine disruptive Technologie. Bitcoin ermöglicht eine individuelle Art der Kontrolle über Ihr Geld, das hat es noch nie zuvor in der Geschichte.

Dies ist eine sehr große Sache. Es ist nun möglich, schicken Sie jede Menge Geld, zu jedermann, überall in der Welt, anonym (wenn Sie sehr vorsichtig) in den Momenten. Dies war nicht möglich, bevor man sich nun für eine Vielzahl von Gründen:

  • Regierungen einschränken Ziele / Mengen
  • Banken mit einer Präsenz in einigen Regionen
  • überhöhte Gebühren (insbesondere für kleine Beträge)
  • Unzuverlässigkeit mancher Postdienste

Alle der oben genannten kann oder kann nicht um Sie, aber Sie beeinflussen das Leben von vielen. Durch die alternative Bitcoin kann potenziell führen zu einer gesellschaftlichen Veränderung in der gleichen Weise, dass Handys und E-Mail haben. Schon die Idee, jemanden einige kleine änderung, in bitcoins, als Belohnung für Ihre kreativen Bemühungen alltäglich geworden für mich.

Die knock-on-Effekt von diesem ist, zu fördern, dass der Autor oder Künstler ist, mehr zu produzieren, und die Welt wird bereichert. In der Lautstärke, diese bitcoins können Sie aus einem langweiligen job und es Ihnen ermöglichen, zu verfolgen Ihren Traum.

Sicher, dass der Wert eines bitcoin.

+584
Danny Danyel 22.06.2014, 17:14:27
'Satoshi' ist die Bezeichnung für die kleinste Einheit der Bitcoins.
+565
coz 26.12.2012, 00:09:01

Der einfachste Weg ist die Verwendung einer PPA. Sobald Sie fügen Sie die PPA Ihrer apt-Quellen installieren möchten, können Sie es mit apt-get, genauso wie alle anderen apt-Paket.

Führen Sie einfach die folgenden und du bist gut zu gehen!

sudo add-apt-repository ppa:cwayne18/doge
sudo apt-get update && sudo apt-get install dogecoin-qt

Bitte beachten Sie: Wenn Sie ein PPA, Sie müssen darauf Vertrauen, dass die person, die die PPA ändert nichts bösartige. Für die höchste Sicherheit, kompilieren Sie die Quelle selbst.

+538
NOID MUTSVA 29.06.2010, 14:31:46

Ja, die OP_RETURN-Ausgabe ist Teil der blockchain für immer.

Dies ist leicht zu zeigen: die OP_RETURN und die Nachricht, die folgt, ist Teil der Transaktion der Ausgabe eingestellt, daher ändern sich die Nachricht ändert die Transaktions-ID, die wiederum ändert sich auch der hash des Blocks. Wenn die Nachricht waren, werden nach einer gewissen Zeit gelöscht, dann werden neue Knoten im Netzwerk nicht synchronisiert, da Sie nicht in der Lage wäre, zu überprüfen, dass block. Daher ist alles voller Knoten behalten Ihre Nachricht für immer (wie du schon erwähnt hast, nicht im RAM, aber tief vergraben in einer Datei auf Ihrer Festplatte).

Als für den eigentlichen Zugriff auf die Daten, abgesehen von den Blockchain.info API, ich denke, Sie laufen konnte Toshi Knoten lokal (auf Ihrer eigenen hardware). Seit es nutzt PostgreSQL, können Sie einfach eine Abfrage, die in der blockchain als würden Sie eine beliebige Datenbank. Auf diese Weise brauchen Sie nicht abhängig, externe API, die könnte böse oder Herunterfahren. Die Festplatte Anforderungen, jedoch sind enorm (sogar noch schlimmer als eine Bitcoin-Core full-node).

+458
davidmacd 13.03.2012, 18:20:59

Ich bin versucht, überprüfen Sie die folgenden einfachen MULTISIG P2SH Skript auf bitcoin-testnet (mit python-bitcoinlib):

Einlösen = CScript([2, J1_public_key, J2_public_key, J3_public_key, 3, OP_CHECKMULTISIG])
ex31a_txout_scriptPubKey = "Einlösen".to_p2sh_scriptPubKey()

Meine erste Transaktion habe abgebaut. Hier ist der link. Es wird überprüft, indem die python-Bibliothek python-bitcoinlib , dass die folgenden scriptSig einlösen der Medaille.

J2_signature = create_OP_CHECKSIG_signature(txin, txout, Einlösen,
J2_private_key)
J3_signature = create_OP_CHECKSIG_signature(txin, txout, Einlösen,
J3_private_key)

dummy = 123
txin_scriptSig = CScript([dummy, J2_signature, J3_signature, Einlösen]) 

Aber meine erlösende Transaktion nicht bekommen, abgebaut, auf dem testnet. Ich weiß nicht, warum!


Bearbeiten

Ein minimal-Beispiel ersetzt, statt der vorherigen.

Das neue Skript verwendet P2SH.

Hier wird der API-code der Transaktion:

{
 "block_height": -1,
 "block_index": -1,
 "hash": "6371461a476ae87dd31b89e7deb9ff59b9679306b23ff86036dc3d7851a76a3c",
 "hex": "01000000019d8e6c705ba87c12f785542ea6253478585a24d871624036c3cfa30b1c0bfbe400000000fddb01017b483045022100dc369db54ceaa7b182969f23a176ae21d14272dff8d941360a5140d17f196e24022044ed2a8c05c5eff115fd5536478027b74a8aeea8f8e393377fcf7c8c232b352201483045022100c227a4fa63b5040bc85a5e7b15c0b081aadd4c538223fa9d8c90cadbc04e649702205a72760687a8c9e74202bfd11b6661f44f093e51a7a4eb4d89876303a9bc94d8014730440220586615cbc74089d7ab4aaf96dc857c0d523df77260159dced512f72c9d3d88b30220177c6f3eb5622ed263c28052ffcda89062a1bda74fdf8e398fba76dd85942bbd014cfd6e51210245aef9640296f238a04b0ee9af1e8dc62a6fe51214af7d3c5bfe518a9cd5afaf2103482de8ad8bf744318b97063544d2fc59322f63baad3d1054ea57609cdb059b6452af6e52210245aef9640296f238a04b0ee9af1e8dc62a6fe51214af7d3c5bfe518a9cd5afaf2103482de8ad8bf744318b97063544d2fc59322f63baad3d1054ea57609cdb059b6452ae635167522102e1183cefc9b3fb15e15bfc53703a6d2e626ccf42cc017f84ec41486114d8cefe210200139f5a548a7cebce4be1308a0262fbb04ec2ea6fc5b38bb3c4ac140ccb5d852102259a3b4527adf82a32e06fb177f27e0606c10f329a22ba7b206ea3eef0e5aa2853ae68ffffffff01a0860100000000001976a9149f9a7abd600c0caa03983a77c8c3df8e062cb2fa88ac00000000",
 "Adressen": [
"2Mz66CzbFYADatUbwXWqHxayRrMHoTCAqxn",
"mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtfb"
],
 "total": 100000,
 "Gebühren": 400000,
 "Größe": 562,
 "preference": "hoch",
 "relayed_by": "194.225.46.158",
 "empfangen": "2018-11-18T21:19:22.298 Z",
 "ver": 1,
 "double_spend": false,
 "vin_sz": 1,
 "vout_sz": 1,
 "Bestätigungen": 0,
 "inputs": [
{
 "prev_hash": "e4fb0b1c0ba3cfc336406271d8245a58783425a62e5485f7127ca85b706c8e9d",
 "output_index": 0,
 "script": "017b483045022100dc369db54ceaa7b182969f23a176ae21d14272dff8d941360a5140d17f196e24022044ed2a8c05c5eff115fd5536478027b74a8aeea8f8e393377fcf7c8c232b352201483045022100c227a4fa63b5040bc85a5e7b15c0b081aadd4c538223fa9d8c90cadbc04e649702205a72760687a8c9e74202bfd11b6661f44f093e51a7a4eb4d89876303a9bc94d8014730440220586615cbc74089d7ab4aaf96dc857c0d523df77260159dced512f72c9d3d88b30220177c6f3eb5622ed263c28052ffcda89062a1bda74fdf8e398fba76dd85942bbd014cfd6e51210245aef9640296f238a04b0ee9af1e8dc62a6fe51214af7d3c5bfe518a9cd5afaf2103482de8ad8bf744318b97063544d2fc59322f63baad3d1054ea57609cdb059b6452af6e52210245aef9640296f238a04b0ee9af1e8dc62a6fe51214af7d3c5bfe518a9cd5afaf2103482de8ad8bf744318b97063544d2fc59322f63baad3d1054ea57609cdb059b6452ae635167522102e1183cefc9b3fb15e15bfc53703a6d2e626ccf42cc017f84ec41486114d8cefe210200139f5a548a7cebce4be1308a0262fbb04ec2ea6fc5b38bb3c4ac140ccb5d852102259a3b4527adf82a32e06fb177f27e0606c10f329a22ba7b206ea3eef0e5aa2853ae68",
 "output_value": 500000,
 "sequence": 4294967295,
 "Adressen": [
"2Mz66CzbFYADatUbwXWqHxayRrMHoTCAqxn"
],
 "script_type": ""pay-to-script-hash",
 "Alter": 0
}
],
 "Ausgaben": [
{
 "value": 100000,
 "script": "76a9149f9a7abd600c0caa03983a77c8c3df8e062cb2fa88ac",
 "Adressen": [
"mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtfb"
],
 "script_type": ""pay-to-pubkey-hash"
}
]
}
+427
sandeepc 17.06.2016, 11:00:23

Wenn man bedenkt, wie groß die gesamte blockchain ist relativ zum durchschnittlichen download-Geschwindigkeiten, warum wurden die Blöcke nie Daten komprimiert, bevor Sie gesendet werden?

Warum konnte dies nicht umgesetzt werden, auf eine neue alt?

+363
Ozmodiar 04.12.2016, 16:06:30

Meine Meinung dazu ist, dass es keine deterministische Weise, ist zuverlässig, noch wissen, was am nächsten ist. Darüber hinaus ist es auch nicht optimal für das Netz zu tun. Wenn Sie darüber nachdenken, ein Angreifer clustering Bergleute zu tun, eine Sybil-Attacke würde Probleme haben, wenn das Netz fördert die Bergleute zu gehen und suchen verbindungen mit Knoten auf der anderen Seite des Planeten. Bitcoin ist auch die Bestätigung, die Dinge so langsam, dass die Verbindungsgeschwindigkeit ist einfach nicht ein Thema, das gerade jetzt.

+280
A rtur 27.12.2018, 20:02:47

Sind Bitcoin Tage Zerstört ein Maß von Horten?

Manchmal. Aber nur weil bitcoins geänderten Adressen bedeutet nicht, dass Sie die Hände gewechselt.

Ist es auch möglich, abzuleiten Geschwindigkeit von bitcoin (Geld) von bitcoin Tage zerstört?

Nicht direkt. Obwohl die Geschwindigkeit der Geld - und BDD sind verwandt, aber Sie sind nicht ganz das gleiche. velocity of money basiert auf einer gesetzlichen definition, in der Erwägung, dass BDD-basiert auf einer technischen definition. Auch, BDD wiegt die Bewegung der alten, selten benutzten Münzen als wichtiger als die Häufig gehandelten lieben.

Zwei Unterschiede:

Erste

BDD basiert auf Transaktionen im bitcoin-Netzwerk, in der Erwägung, dass velocity of money basiert auf Geld den Eigentümer wechseln. Eine Transaktion heißt nicht, dass Geld die Hände gewechselt. Beispiele:

  • Ändern. Ich schicke dir 10 BTC, 5 BTC kommt zurück, um meine Adresse zu ändern. Das bitcoin-Netzwerk sieht 15 BTC bewegen, aber nur 10 BTC wirklich die Besitzer gewechselt.
  • Geldwäsche. Das beste Beispiel dafür. Viele bitcoins bewegen, aber am Ende, haben Sie immer noch die gleiche Menge.
  • Ich meine bitcoins von Mt Gehex zu blockchain.info. Wieder gab es eine Transaktion, aber kein Geld die Hände gewechselt.

Weil dieses, die Geschwindigkeit des Geldes Schätzung basiert auf den gesamten Transaktionsvolumen wird Wild ungenau.

Auch wenn keine bitcoin-Transaktion stattgefunden hat, kann das Geld noch den Besitzer wechseln. Viele e-wallets unterstützt die Fähigkeit, sofort übertragung von Geld zwischen Konten.

Zweite

Weil insgesamt das Transaktionsvolumen ist so schlecht Messen, wie schnell sich bitcoins Eigentümer wechselt, BDD erstellt wurde. Es unterscheidet sich von Geschwindigkeit-Geld, dass Sie kann nicht Spiel, indem es die Geld-zurück-und-her , weil es ist viel wichtiger zu verbringen 100 BTC, der Sie zuletzt bewegt vor einer Woche, als es ist, verbringen Sie 1 BTC tausend mal.

+237
kyzmi4 13.01.2019, 10:08:22

Ich bin kein C++ Profi. Ich lese C++ als Teil meiner undergrad Schule natürlich. Ich bin sehr leidenschaftlich über die Zukunft der Währung, d.h. Bitcoin.

Aber ich verstehe nicht, der source code Struktur. Wie Lesen Sie den source-code? Wie ich schon sagte, ich bin sehr grundlegende Kenntnisse von C++.

Allerdings kann ich google auf dem Weg, wenn Sie etwas nicht verstehen(Funktionen, Bibliotheken, Header).

Das eigentliche problem, das ich die Verkleidung innen src/ - Verzeichnis. Ich verstehe nicht, der Fluss von Dateien und Verzeichnissen src/. Das ist die erste Datei, die sollte ich wohl anfangen zu Lesen. Kann einer mir erklären, alle der Fluss der alle das Projekt in einer Art Baum wie Struktur?

~/GitHub/bitcoin/src
"ls ✔ master
Makefile.bin coincontrol.h Bergmann.h Skript
Makefile.Bank.gehören coins.cpp net.cpp secp256k1
Makefile.qt.zählen von Münzen.h net.h serialisieren.h
Makefile.qttest.include " compat netbase.cpp streams.h
Makefile.test.gehören compat.h netbase.h-Unterstützung
addrman.cpp compressor.cpp noui.cpp sync.cpp
addrman.h Kompressor.h noui.h-sync.h
alert.cpp config obj test
alert.h Konsens obj-test threadsafety.h
amount.cpp core_io.h policy timedata.cpp
Betrag.h core_memusage.h pow.cpp timedata.h
arith_uint256.cpp core_read.cpp pow.h tinyformat.h
arith_uint256.h core_write.cpp prevector.h torcontrol.cpp
base58.cpp crypto-primitiven torcontrol.h
base58.h dbwrapper.cpp protocol.cpp txdb.cpp
Bank dbwrapper.h-Protokoll.h txdb.h
bitcoin-cli-res.rc hash.cpp pubkey.cpp txmempool.cpp
bitcoin-cli.cpp hash.h pubkey.h txmempool.h
bitcoin-tx-res.rc httprpc.cpp qt ui_interface.h
bitcoin-tx.cpp httprpc.h random.cpp uint256.cpp
bitcoind-res.rc httpserver.cpp random.h uint256.h
bitcoind.cpp httpserver.h rest.cpp rückgängig machen.h
bloom.cpp init.cpp reverselock.h univalue
bloom.h init.h rpcblockchain.cpp util.cpp
chain.cpp key.cpp rpcclient.cpp util.h
Kette.h-Taste.h rpcclient.h utilmoneystr.cpp
chainparams.cpp keystore.cpp rpcmining.cpp utilmoneystr.h
chainparams.h-keystore.h rpcmisc.cpp utilstrencodings.cpp
chainparamsbase.cpp leveldb rpcnet.cpp utilstrencodings.h
chainparamsbase.h limitedmap.h rpcprotocol.cpp utiltime.cpp
chainparamsseeds.h main.cpp rpcprotocol.h utiltime.h
checkpoints.cpp main.h rpcrawtransaction.cpp validationinterface.cpp
Prüfpunkte.h memusage.h rpcserver.cpp validationinterface.h
checkqueue.h merkleblock.cpp rpcserver.h-version.h
clientversion.cpp merkleblock.h scheduler.cpp wallet
clientversion.h miner.cpp scheduler.h zmq
+107
Jose Castano Pardo 04.01.2016, 18:02:30

Ich habe versucht, zu verallgemeinern und diese Frage von einem fragte ich auf der BitcoinJ Entwicklung Liste.

Ich arbeite an einem Projekt, das erfordert eine zentrale Geldbeutel. Von dem, was ich sammeln, diese Arten von Leistungen, die in der Regel verlassen sich auf einfache balance-Kontrollen, um sicherzustellen, dass ein einzelner Benutzer nicht mehr ausgeben, als in Ihre Geldbörse. Das heißt, alle Nutzer teilen sich einen pool von keys, und die einzige Sache, die Verfolgung jedes Benutzers Gleichgewicht ist der service-Datenbank.

Der Bitcoin-daemon stellt die Funktionalität nicht in der GUI, nämlich die Konten. Ein Konto ist ein string, der Gruppen-Tasten. Sie senden können, ein Konto, und es erfasst nur Münzen, die im Besitz der Schlüssel in diesem Konto. Dies ist von Vorteil, aber ist Recht begrenzt. Mit dieser jedoch, Sie hätte jedem Konto werden ein eindeutiger Bezeichner für einen Benutzer, und dann, dass der Benutzer "besitzt" die zugeordneten Schlüssel. Ein scheinbarer Nachteil ist, dass es eine zentrale Stelle zu ändern, den Besitz eines Kontos.

Ich kam mit einem potenziell bessere Lösung. Jedes Konto "besitzt" eine oder mehrere öffentliche Schlüssel von hashes (das Fleisch, der eine Bitcoin-Adresse). Beim erstellen einer Transaktion, die der service übertragen wird diese hashes, lassen Sie die Brieftasche zu wissen, dass Sie beim Scannen nicht benutzten Ausgänge, verwenden Sie nur diejenigen, die mit einem öffentlichen Schlüssel (hash im Besitz des Benutzers. Auf diese Weise, ohne die Zuordnung eines Benutzer-Konto mit dem privaten Schlüssel selbst, wir sind in der Lage, dem Benutzer zu ermöglichen, haben exklusiven Zugriff auf eine beliebige Anzahl von Tasten.

Scheint dies wie eine gute Lösung für das problem? Gibt es etwas besseres, dass mir fehlt?

+93
Lashonda 03.11.2016, 04:26:32

Fragen mit Tag anzeigen