WIP commit of scalar product 2.0. It is unfinished and does not yet pass tests. This...
[oweals/gnunet.git] / src / consensus / consensus.h
index 8436364b65fba6dbcb03a410efbf97c843214b6e..4ff21829877a8a320544e2524f173b04051679a0 100644 (file)
@@ -4,7 +4,7 @@
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
 
 GNUNET_NETWORK_STRUCT_BEGIN
 
+/**
+ * Sent by the client to the service,
+ * when the client wants the service to join a consensus session.
+ */
 struct GNUNET_CONSENSUS_JoinMessage
 {
   /**
@@ -37,47 +41,28 @@ struct GNUNET_CONSENSUS_JoinMessage
    */
   struct GNUNET_MessageHeader header;
 
-  struct GNUNET_HashCode session_id;
-
-  uint16_t num_peers;
-
-  /* GNUNET_PeerIdentity[num_peers] */
-};
-
-
-struct GNUNET_CONSENSUS_ConcludeMessage
-{
   /**
-   * Type: GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE
+   * Number of peers (at the end of this message) that want to
+   * participate in the consensus.
    */
-  struct GNUNET_MessageHeader header;
+  uint32_t num_peers GNUNET_PACKED;
 
   /**
-   * Timeout for conclude
+   * Session id of the consensus.
    */
-  struct GNUNET_TIME_RelativeNBO timeout;
+  struct GNUNET_HashCode session_id;
 
   /**
-   * Minimum group size required for a consensus group.
+   * Start time for the consensus.
    */
-  uint32_t min_group_size;
-};
-
+  struct GNUNET_TIME_AbsoluteNBO start;
 
-struct GNUNET_CONSENSUS_ConcludeDoneMessage
-{
   /**
-   * Type: GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE_DONE
+   * Deadline for conclude.
    */
-  struct GNUNET_MessageHeader header;
-
-  uint32_t group_id;
-
-  uint32_t num_elements;
-
-  uint16_t num_peers;
+  struct GNUNET_TIME_AbsoluteNBO deadline;
 
-  /*PeerIdentity[num_peers] */
+  /* GNUNET_PeerIdentity[num_peers] */
 };
 
 
@@ -97,25 +82,11 @@ struct GNUNET_CONSENSUS_ElementMessage
   /**
    * Type: GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_NEW_ELEMENT
    */
-  uint16_t element_type;
+  uint16_t element_type GNUNET_PACKED; /* FIXME: alignment? => uint32_t */
 
   /* rest: element data */
 };
 
-struct GNUNET_CONSENSUS_AckMessage
-{
-  /**
-   * Type: GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_ACK
-   */
-  struct GNUNET_MessageHeader header;
-
-  /**
-   * Do we want to keep and propagate the element?
-   */
-  uint8_t keep;
-
-  /* FIXME: add message hash? */
-};
 
 GNUNET_NETWORK_STRUCT_END