Rice Pastry API

org.mpisws.p2p.transport.peerreview.audit
Class AuditProtocolImpl<Handle extends RawSerializable,Identifier extends RawSerializable>

java.lang.Object
  extended by org.mpisws.p2p.transport.peerreview.audit.AuditProtocolImpl<Handle,Identifier>
All Implemented Interfaces:
AuditProtocol<Handle,Identifier>, PeerReviewConstants, StatusConstants

public class AuditProtocolImpl<Handle extends RawSerializable,Identifier extends RawSerializable>
extends java.lang.Object
implements AuditProtocol<Handle,Identifier>


Field Summary
protected  TimerTask auditTimer
          Null if there is no current timer.
protected  TimerTask progressTimer
           
 
Fields inherited from interface org.mpisws.p2p.transport.peerreview.PeerReviewConstants
AUTH_CACHE_INTERVAL, CERT_MISSING, CHAL_AUDIT, CHAL_SEND, DEFAULT_AUDIT_INTERVAL_MILLIS, DEFAULT_AUTH_PUSH_INTERVAL_MILLIS, DEFAULT_CHECKPOINT_INTERVAL_MILLIS, DEFAULT_LOG_DOWNLOAD_TIMEOUT, DEFAULT_TIME_TOLERANCE_MILLIS, EVT_ACK, EVT_CHECKPOINT, EVT_CHOOSE_Q, EVT_CHOOSE_RAND, EVT_INIT, EVT_MAX_RESERVED, EVT_MAX_SOCKET_EVT, EVT_MIN_SOCKET_EVT, EVT_RECV, EVT_SEND, EVT_SENDSIGN, EVT_SIGN, EVT_SOCKET_CAN_READ, EVT_SOCKET_CAN_RW, EVT_SOCKET_CAN_WRITE, EVT_SOCKET_CLOSE, EVT_SOCKET_CLOSED, EVT_SOCKET_EXCEPTION, EVT_SOCKET_OPEN_INCOMING, EVT_SOCKET_OPEN_OUTGOING, EVT_SOCKET_OPENED_OUTGOING, EVT_SOCKET_READ, EVT_SOCKET_SHUTDOWN_OUTPUT, EVT_SOCKET_WRITE, EVT_VRF, EX_TYPE_ClosedChannel, EX_TYPE_IO, EX_TYPE_Unknown, FLAG_FULL_MESSAGES_ALL, FLAG_FULL_MESSAGES_SENDER, FLAG_INCLUDE_CHECKPOINT, INVALID, INVESTIGATION_INTERVAL_MILLIS, MAINTENANCE_INTERVAL_MILLIS, MAX_ACTIVE_AUDITS, MAX_ACTIVE_INVESTIGATIONS, MAX_ENTRIES_BETWEEN_CHECKPOINTS, MAX_STATUS_INFO, MAX_WITNESSED_NODES, MSG_ACCUSATION, MSG_ACK, MSG_AUTHPUSH, MSG_AUTHREQ, MSG_AUTHRESP, MSG_CHALLENGE, MSG_RESPONSE, MSG_USERDATA, MSG_USERDGRAM, NO_CERTIFICATE, PROGRESS_INTERVAL_MILLIS, PROOF_INCONSISTENT, PROOF_NONCONFORMANT, RESP_AUDIT, RESP_SEND, SIGNATURE_BAD, SIGNATURE_OK, STATE_SEND_AUDIT, STATE_WAIT_FOR_LOG, TI_AUTH_PUSH, TI_CHECKPOINT, TI_MAINTENANCE, TI_MAKE_PROGRESS, TI_MAX_RESERVED, TI_START_AUDITS, TI_STATUS_INFO, VALID
 
Fields inherited from interface org.mpisws.p2p.transport.peerreview.StatusConstants
STATUS_EXPOSED, STATUS_SUSPECTED, STATUS_TRUSTED
 
Constructor Summary
AuditProtocolImpl(PeerReview<Handle,Identifier> peerreview, SecureHistory history, PeerInfoStore<Handle,Identifier> infoStore, AuthenticatorStore<Identifier> authInStore, IdentityTransport<Handle,Identifier> transport, AuthenticatorStore<Identifier> authOutStore, EvidenceTransferProtocol<Handle,Identifier> evidenceTransferProtocol, AuthenticatorStore<Identifier> authCacheStore)
           
 
Method Summary
protected  void auditsTimerExpired()
          A periodic timer to audit all nodes for which we are a witness
 void disableReplay()
           
 ActiveAuditInfo<Handle,Identifier> findOngoingAudit(Identifier subject, long evidenceSeq)
           
 void handleIncomingDatagram(Handle handle, PeerReviewMessage message)
           
 void investigate(Handle target, long since)
          Start an investigation since is in millis
protected  void makeProgressTimerExpired()
          While some audits haven't finished, we must call makeProgress() regularly
 void processAuditResponse(Identifier subject, long timestamp, AuditResponse<Handle> response)
          Called by the challenge/response protocol if we have received a response to an AUDIT challenge.
protected  void scheduleProgressTimer()
           
protected  void sendInvestigation(ActiveInvestigationInfo<Handle> investigation)
          Starts an investigation by sending authenticator requests to all the witnesses.
 void setLogDownloadTimeout(int timeoutMicros)
           
 void startAudits()
           
protected  void startAuditTimer()
           
 Evidence statOngoingAudit(Identifier subject, long evidenceSeq)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

auditTimer

protected TimerTask auditTimer
Null if there is no current timer.


progressTimer

protected TimerTask progressTimer
Constructor Detail

AuditProtocolImpl

public AuditProtocolImpl(PeerReview<Handle,Identifier> peerreview,
                         SecureHistory history,
                         PeerInfoStore<Handle,Identifier> infoStore,
                         AuthenticatorStore<Identifier> authInStore,
                         IdentityTransport<Handle,Identifier> transport,
                         AuthenticatorStore<Identifier> authOutStore,
                         EvidenceTransferProtocol<Handle,Identifier> evidenceTransferProtocol,
                         AuthenticatorStore<Identifier> authCacheStore)
Method Detail

setLogDownloadTimeout

public void setLogDownloadTimeout(int timeoutMicros)

disableReplay

public void disableReplay()

startAudits

public void startAudits()

scheduleProgressTimer

protected void scheduleProgressTimer()

auditsTimerExpired

protected void auditsTimerExpired()
A periodic timer to audit all nodes for which we are a witness


startAuditTimer

protected void startAuditTimer()

makeProgressTimerExpired

protected void makeProgressTimerExpired()
While some audits haven't finished, we must call makeProgress() regularly


processAuditResponse

public void processAuditResponse(Identifier subject,
                                 long timestamp,
                                 AuditResponse<Handle> response)
                          throws java.io.IOException
Called by the challenge/response protocol if we have received a response to an AUDIT challenge. At this point, we already know that we have all the necessary certificates (because of the statement protocol).

Specified by:
processAuditResponse in interface AuditProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>
Throws:
java.io.IOException

findOngoingAudit

public ActiveAuditInfo<Handle,Identifier> findOngoingAudit(Identifier subject,
                                                           long evidenceSeq)

statOngoingAudit

public Evidence statOngoingAudit(Identifier subject,
                                 long evidenceSeq)
Specified by:
statOngoingAudit in interface AuditProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>

handleIncomingDatagram

public void handleIncomingDatagram(Handle handle,
                                   PeerReviewMessage message)
Specified by:
handleIncomingDatagram in interface AuditProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>

sendInvestigation

protected void sendInvestigation(ActiveInvestigationInfo<Handle> investigation)
Starts an investigation by sending authenticator requests to all the witnesses. Most of them are (hopefully) going to respond; we're going to pick the authenticators that work best for us.


investigate

public void investigate(Handle target,
                        long since)
Start an investigation since is in millis


Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection