Project

General

Profile

Actions

Protocols » History » Revision 6

« Previous | Revision 6/26 (diff) | Next »
Greg Burri, 11/09/2009 09:57 AM


Protocols

There is two main protocols, one between cores and one between GUI and core. Both used protocol buffers for describing the exchanged messages.

Each data sent over the network (using TCP or UDP) are formatted like this :

<messageType:uint32><size:uint32><serializedMessage>
Where :
  • messageType is a number which determine the message type, more information in the proto files.
  • size is the size of the following serialized message.
  • serializedMessage is the data serialized by protocol buffer.

Links to resource

Links can be shared across peers. It locates a remote resource like folder or file from a specific peer. It doesn't contain any chunk hash, thus the peer must be online to download a file or a folder.

ayb://[<peer name>][:<file id>][:<shared id>/<folder>/<file>]

  • <file id> : its the n first group of 4 bits of the m first chunk.
    • 20,87cace382f7371cd3fab3cb0a53b93b7cd9719f6 : 20 chunks of 2 groups.
    • 8,05649bcbf065e0d032ada540d4a749d98db055cf : 8 chunks of 5 groups.
  • <peer name> : Not used to locate the resource, just an information for the user.
  • <shared id> : Like peer id, contains only the beginning of the hash.

Character encoding

TODO..

Examples

  • ayb://pierre:238e8634@dac4f75c/my%20movies/LOLCat.avi
  • ayb://pierre:238e8634@dac4f75c/my%20movies
  • ayb://2:2:4:d:3:2:4:2/LOLCat.avi

Updated by Greg Burri over 14 years ago · 6 revisions