Difference between revisions of "Part.met.seeds file"

From AMule Project FAQ
Jump to: navigation, search
Line 7: Line 7:
 
== Description ==
 
== Description ==
  
This [[file]] contains up to 5 [[source]]s for a file in [[aMule]]'s [[download]] [[queue]]. This are known as [[seed]].
+
This [[file]] contains up to 10 [[source]]s for a file in [[aMule]]'s [[download]] [[queue]]. This are known as [[seed]].
  
 
== Format ==
 
== Format ==
Line 16: Line 16:
 
**''Source's ID'' <- The source's [[ID]] (4 [[byte]]s unsigned integer in [[little endian]])
 
**''Source's ID'' <- The source's [[ID]] (4 [[byte]]s unsigned integer in [[little endian]])
 
**''Source's port'' <- The source's [[port]] (2 [[byte]]s unsigned integer in little endian)
 
**''Source's port'' <- The source's [[port]] (2 [[byte]]s unsigned integer in little endian)
 +
*Time the file was written (32 bits unsigned number, [[Unix Epoch]] date)
  
 
The whole file is then written in packets of 2 bytes in [[little endian]].
 
The whole file is then written in packets of 2 bytes in [[little endian]].
Line 28: Line 29:
 
Which can be read as:
 
Which can be read as:
  
:''05'' <- 5 sources will be listed (which is the maximum amount of sources aMule allows to list in seeds files)
+
:''05'' <- 5 sources will be listed
 
:''41 65 1C 50'' <- First sources' ID, which, after performing endiannes conversion, becomes ''50 1C 65 41'' in hex and ''1344038209'' in decimal. This corresponds to IP ''80.28.101.65''
 
:''41 65 1C 50'' <- First sources' ID, which, after performing endiannes conversion, becomes ''50 1C 65 41'' in hex and ''1344038209'' in decimal. This corresponds to IP ''80.28.101.65''
 
:''2A 2D'' <- First sources port to communicate is port ''15658'' (since in big endian hex it would be ''2D 2A'')
 
:''2A 2D'' <- First sources port to communicate is port ''15658'' (since in big endian hex it would be ''2D 2A'')
Line 43: Line 44:
  
 
*Since from a [[LowID]] you cannot tell it's [[IP]], LowID [[client]]s should never make it into seeds files since it would be impossible to locate them later. So, seeds files only contain [[HighID]] sources.
 
*Since from a [[LowID]] you cannot tell it's [[IP]], LowID [[client]]s should never make it into seeds files since it would be impossible to locate them later. So, seeds files only contain [[HighID]] sources.
*aMule limits the amount of sources that can be listed to 5, but the file format could accept up to 255 sources (since the number of sources is told through an 8 bits unsigned integer).
+
*aMule limits the amount of sources that can be listed to 10, but the file format could accept up to 255 sources (since the number of sources is told through an 8 bits unsigned integer).
 +
*Read sources are ignored if the file was stored more than two hours ago. Since v1 format did not store the time it was stored, when reading an v1 file it will just read all sources and ignore none.

Revision as of 19:54, 1 December 2005

File

Name: *.part.met.seeds

Location: ~/.aMule/Temp/

Description

This file contains up to 10 sources for a file in aMule's download queue. This are known as seed.

Format

The format of this files is as follows:

  • Number of sources <- Amount of sources that will be listed (8 bits unsigned integer)
  • For each source it has:
    • Source's ID <- The source's ID (4 bytes unsigned integer in little endian)
    • Source's port <- The source's port (2 bytes unsigned integer in little endian)
  • Time the file was written (32 bits unsigned number, Unix Epoch date)

The whole file is then written in packets of 2 bytes in little endian.

Example

This is the contents of a valid seeds file (after endianess conversion to big endian:

05 41 65 1C 50 2A 2D 6E F3 2D 53 36 12 2F F1 CA
51 36 12 BF EA 7E C8 36 12 C1 31 3C D5 D5 30

Which can be read as:

05 <- 5 sources will be listed
41 65 1C 50 <- First sources' ID, which, after performing endiannes conversion, becomes 50 1C 65 41 in hex and 1344038209 in decimal. This corresponds to IP 80.28.101.65
2A 2D <- First sources port to communicate is port 15658 (since in big endian hex it would be 2D 2A)
6E F3 2D 53 <- Second source's IP: 83.45.243.110
36 12 <- Second source's port: 4662
2F F1 CA 51 <- Third source's IP: 81.202.241.47
36 12 <- Third source's port: 4662
BF EA 7E C8 <- Fourth source's IP: 200.126.234.191
36 12 <- Fourth source's port: 4662
C1 31 3C D5 <- Fifth source's IP: 213.60.49.193
D5 30 <- Fifth source's port: 12501

Notes

  • Since from a LowID you cannot tell it's IP, LowID clients should never make it into seeds files since it would be impossible to locate them later. So, seeds files only contain HighID sources.
  • aMule limits the amount of sources that can be listed to 10, but the file format could accept up to 255 sources (since the number of sources is told through an 8 bits unsigned integer).
  • Read sources are ignored if the file was stored more than two hours ago. Since v1 format did not store the time it was stored, when reading an v1 file it will just read all sources and ignore none.