Skip to content

Gxs (Transfer)

David Gerber edited this page Mar 9, 2023 · 14 revisions

Gxs (Transfer)

Service type: none.

This is the transfer system used by all Gxs services.

Items

Item Subtype Purpose
GxsSyncGroupRequestItem 1 Requests a GxsSyncGroupItem. Sent every minute.
GxsSyncGroupItem 2 Contains a group id which needs to be transferred. Is typically sent within a list of many, in a transaction.
GxsSyncGroupStatsItem 3 Requests or contains statistics about a group (number of posts and last timestamp).
GxsTransferGroupItem 4 Contains the Gxs group data.
GxsSyncMessageItem 8 XXX
GxsSyncMessageRequestItem 16 Requests a GxsSyncMessageItem. Sent for every subscribed group.
GxsTransactionItem 64 Controls transactions which is a way to send a collection of items.

Transactions

The transfer of data is done using transactions. All items, except GxsSyncGroupRequestItem are done within transactions.

Group syncing

Each minute, Heike asks Juergen if it has new groups by sending a GxsSyncGroupRequestItem containing the last syncing time.

Juergen checks its list of subscribed groups and sends the ids of all of them that have been updated since that last time in a GROUP_LIST_RESPONSE transaction with many GxsSyncGroupItems.

Heike checks against all the groups she already has and requests those that are more recent on Juergen's end by sending a GROUP_LIST_REQUEST transaction with many GxsSyncGroupItems.

Juergen sends back all the groups requested by Heike that is has by doing a transfer transaction.

Retroshare naming

Xeres Retroshare
GxsSyncGroupRequestItem RsNxsSyncGrpReqItem
GxsSyncGroupItem RsNxsSyncGrpItem
GxsSyncGroupStatsItem RsNxsSyncGrpStatsItem
GxsTransferGroupItem RsNxsGrp
GxsTransactionItem RsNxsTransacItem
Clone this wiki locally