Die einzige andere Sache - die ich mir denken kann - ist die Installation von Ihrem Computer auf einem USB-stick oder eine externe Festplatte, und dann nehmen, dass mit Ihnen und Booten von diesem. Auf diese Weise können Sie JEDEN computer verwenden, die Sie wollen. Einfach den USB-in und starten Sie den Computer neu. Boom! Ich bin mir bewusst, dass der link ist für Windows 7, aber ich kann nur finden, Anleitungen für Windows 8 umfassen secure boot. Mein laptop kam ursprünglich mit Windows 7 und ich habe ein Upgrade es zu 8. Ich weiß, es gibt einige Unterschiede zwischen den beiden, aber es kann nicht sein, dass verschiedene... danke benjamin für die Hilfe , es funktioniert, aber um ehrlich zu sein ich don ' T verstehen, was 'der dynamischen Bibliothek' bedeutet, werde ich es google

(disclaimer: ich arbeite auf Bitcoin Core)

Wie Luca schon erwähnt, man muss unterscheiden wallet-Implementierungen und die voll überprüfen der Knoten im Netzwerk.

Weil, wie Satoshi schrieb seinen code (ein Knoten und eine Geldbörse im gleichen Programm), die beiden werden oft verwechselt, aber dies wird als eine schlechte Idee jetzt. Sie können vollkommen unabhängig voneinander funktionieren können. Der Referenz-client ' s Portemonnaie ist nur einer von mehreren Brieftaschen jetzt, und sicherlich nicht die am häufigsten verwendeten oder in eine privilegierte position.

Wenn wir reden über die Validierung auf das Netzwerk, die Dinge sind komplexer. Bitcoin ist eine Konsens-system, wo alle Knoten im Netzwerk müssen in der Lage sein, selbstständig zu beurteilen, die Gültigkeit von Blöcken, und kommen zu dem exakt gleichen Schluss wie jeder andere auch. Wenn zwei Knoten sich uneinig über die Gültigkeit von Blöcken, ignorieren Sie die anderen (unter Berücksichtigung der jeweils anderen Blöcke als Angriffe). Wenn zwei Gruppen von Knoten mit unterschiedlichen Regeln, haben beide mining-power, eine Gabel, wo beide Gruppen glauben, Sie sind die einzigen, die rund um. Das ist eine Katastrophe, da es bedeutet, dass jede Münze, die existierten, bevor die Gabel kann ausgegeben werden, sobald auf jeder Seite.

So, die Regeln des Netzes sind diejenigen, die voller Knoten implementieren. Wir können versuchen, tun, beschreiben Sie das Verhalten, aber nicht verschreiben. Wenn die Regeln geschrieben würde, unten in einige eindeutige formale Dokument, und einen Unterschied gefunden werden zwischen den Regeln und der Umsetzung, könnten wir sagen, die Umsetzung hat ein bug... aber neue Knoten im Netzwerk kopieren müsste, dass der Fehler dennoch.

Leider reimplementing dieser Regeln ist nicht trivial. Viele Menschen, die versucht haben, haben dabei tatsächlich entdeckt weirdnesses in was wird als gültig angesehen, durch die Referenz-client, und waren zuvor nicht bekannt. Zum Beispiel, Bitcoin setzt auf OpenSSL für die Signatur-Verifizierung, und die frühen Versionen nur weitergegeben, was gefunden wurde in Transaktionen zu OpenSSL. Stellt sich heraus, dass OpenSSL akzeptiert tatsächlich falsch codierte Signaturen zu einem gewissen Grad. Ohne es zu wissen, mehrere wallet-Umsetzung erschienen im Laufe der Zeit, dass solcher Signaturen (Sie sind akzeptiert, Sie muss gültig sein, richtig?). Dies bedeutet, dass alle neuen voll Validierung Knoten-Anwendung müssen entweder Sie nutzen OpenSSL-auch, oder imitieren Sie genau durch die Annahme der exakt gleichen Menge der ungültigen Kodierungen. Es wurden Fortschritte in Richtung macht diese Unterschriften ungültig (seit 0.8, Sie sind nicht mehr weitergeleitet), aber eigentlich ungültig, Bedarf es einer koordinierten soft-Gabel der Konsens-Regeln (EDIT: dies geschah am 4. Juli 2015 mit BIP66 aktiviert wird).

Beispiele wie das macht mich sehr unsicher, ob exakte Nachbau ist möglich mit dem aktuellen Stand der Technik. Das ist sicherlich zum Teil aufgrund der Umsetzung details, die in der Referenz-client, sondern auch wegen des harten Konsens-Systeme sind. Es gibt unit-tests für mehrere Teile der Logik-und Netzwerk-Interaktions-test simuliert, dass mehrere seltsame Sonderfälle, um zu sehen, wie ein Knoten antwortet, aber Sie sind bei weitem nicht vollständig (vor allem, weil vielleicht nicht alle Grenzfälle sind auch perfekt verstanden). Unterschiede sind kaum Sachen gefunden, die durch stichprobenartige Tests.

Meiner Meinung nach, sollten wir das Ziel auf die Modularisierung der Referenz-client-code, und die Abstraktion der Konsens-Kritischer Teil in eine Bibliothek, so dass es wiederverwendet werden kann von mehreren clients ohne diese Risiken. Das wird zwangsläufig lange dauern, obwohl.