Bitcoin Forum

Local => Projektentwicklung => Topic started by: dissent on April 21, 2013, 07:54:17 PM



Title: Datenaustausch zwischen den Clients, Dokumentation?
Post by: dissent on April 21, 2013, 07:54:17 PM
Hallo zusammen,

kann mir Jemand eine Dokumentation verlinken, wie technisch die Datenübertragung im Bitcoin Client gelöst ist?

Ich habe bisher leider nur herausgefunden, dass für die Kontakte ein zentraler IRC Server genutzt wird und die Blöcke sollen ja dezentral verteilt werden.

Mich interessiert, wie dies gelöst ist, da dies ohne Portweiterleitung im Router funktioniert und ich bisher dachte, dass die Daten dann über einen Server mit offenen Ports verteilt werden müssten.

Bei einer P2P Software müssen ja ansonsten die Ports im Router entsprechend konfiguriert werden, da sonst eine Datenübertragung zwischen zwei Peers nicht direkt erfolgen kann.

Wie gesagt, ich habe schon viel gesucht habe aber nur allgemeine Informationen oder Detailinformationen zu der Verschlüsselung gefunden.

beste Grüße
Paul


Title: Re: Datenaustausch zwischen den Clients, Dokumentation?
Post by: candoo on April 21, 2013, 08:01:46 PM
https://en.bitcoin.it/wiki/Protocol_specification


Title: Re: Datenaustausch zwischen den Clients, Dokumentation?
Post by: dissent on April 21, 2013, 08:17:29 PM
Danke für den Link,

den hab ich mir durchgelesen, dort wird leider nicht erklärt wie die Peers miteinander sprechen.

Ich habe dort nur Beschreibungen gefunden, welche Art von Nachrichten es gibt und wie diese aufgebaut sind etc.

ich habe mir ausserdem noch
https://en.bitcoin.it/wiki/Protocol_rules

angesehen und diesen Absatz gefunden:

Quote
Connection

To connect to a peer, you send a version message containing your version number, block count, and current time. The remote peer will send back a verack message and his own version message if he is accepting connections from your version. You will respond with your own verack if you are accepting connections from his version.
The time data from all of your peers is collected, and the median is used by Bitcoin for all network tasks that use the time (except for other version messages).
You then exchange getaddr and addr messages, storing all addresses that you don't know about. addr messages often contain only one address, but sometimes contain up to 1000. This is most common at the beginning of an exchange.

Aber auch hier wird nicht beschrieben wie technisch eine Verbindung zum Peer aufgebaut wird.


Title: Re: Datenaustausch zwischen den Clients, Dokumentation?
Post by: Chefin on April 22, 2013, 10:54:09 AM
vieleicht hilft dir das weiter

https://en.bitcoin.it/wiki/Current_Network_Status

Dort steht das hinter NAT-Router stehende Clients nicht korrekt gezählt werden können, es sei den sie werden manuel gemapped oder können uPnP benutzen.

Bitcoin lösst das problem indem jeder "Server" 8 Connections macht. Also müssen nur 1/8 durch ihre Firewall kommen. Sobald das aber mehr werden, wird es wohl Probleme für diese Clients geben. Aber das lösen dann einige die ihre Firewall manuell aufmachen und für jeden der dieses Problem so löst können sich 8 neue verbinden.

Ich jedenfalls versteh das so, das es ausser uPnP kein Verfahren gibt, sich durch einen NAT-Router zu tunneln.


Title: Re: Datenaustausch zwischen den Clients, Dokumentation?
Post by: Sukrim on April 22, 2013, 01:45:44 PM
Es gibt schon Verfahren, die sind aber teils nicht gern gesehen oder funktionieren nicht zuverlässig. UPnP ist das Protokoll, das für sowas vorgesehen ist.


Title: Re: Datenaustausch zwischen den Clients, Dokumentation?
Post by: BeeCoin on May 27, 2013, 07:14:42 AM
Ich finde es einen Hammer, was zumindest theoretisch mit dem Bitcoin-Protokoll möglich sein soll:
https://en.bitcoin.it/wiki/Script

Ich hätte bloss Angst, advanced features mit echtem Geld zu verwenden. Ich hätte kein vertrauen, dass sie richtig implementiert / weitergepflegt / von allen Minern unterstützt werden...


Title: Re: Datenaustausch zwischen den Clients, Dokumentation?
Post by: Sukrim on May 27, 2013, 08:02:46 AM
Das sind die Transaktionen an sich - das Thema dieses Threads ist glaube ich eher, wie diese Transaktionsskripts zwischen Clients ausgetauscht werden und möglichst schnell das gesamte Netzwerk bzw. zumindest viele Miner erreichen.


Title: Re: Datenaustausch zwischen den Clients, Dokumentation?
Post by: BeeCoin on May 27, 2013, 08:19:36 AM
Stimmt, hatte ich übersehen. Danke.