Rice Pastry API

org.mpisws.p2p.transport.peerreview.infostore
Class PeerInfoStoreImpl<Handle,Identifier>

java.lang.Object
  extended by org.mpisws.p2p.transport.peerreview.infostore.PeerInfoStoreImpl<Handle,Identifier>
All Implemented Interfaces:
PeerInfoStore<Handle,Identifier>, PeerReviewConstants, StatusConstants

public class PeerInfoStoreImpl<Handle,Identifier>
extends java.lang.Object
implements PeerInfoStore<Handle,Identifier>

In this class, the PeerReview library keeps information about its peers. Specifically, it stores the last checked authenticator plus any challenges, responses or proofs that are known about the peer.


Field Summary
protected  Environment environment
           
protected  Logger logger
           
 
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
PeerInfoStoreImpl(IdentityTransport<Handle,Identifier> transport, IdStrTranslator<Identifier> stringTranslator, AuthenticatorSerializer authSerializer, EvidenceSerializer evidenceSerializer, Environment env)
           
 
Method Summary
 void addEvidence(Identifier originator, Identifier subject, long timestamp, Evidence evidence)
           
 void addEvidence(Identifier originator, Identifier subject, long timestamp, Evidence evidence, Handle interestedParty)
           
 void addResponse(Identifier originator, Identifier subject, long timestamp, Evidence response)
          Record a response to a challenge
 PeerInfoRecord<Handle,Identifier> find(Identifier id)
           
 PeerInfoRecord<Handle,Identifier> find(Identifier id, boolean create)
           
 EvidenceRecord<Handle,Identifier> findEvidence(Identifier originator, Identifier subject, long timestamp)
           
 EvidenceRecord<Handle,Identifier> findEvidence(Identifier originator, Identifier subject, long timestamp, boolean create)
           
 Evidence getEvidence(Identifier originator, Identifier subject, long timestamp)
          Get the actual bytes of a piece of evidence
protected  java.io.File getFile(Identifier subject, Identifier originator, long timestamp, java.lang.String suffix)
           
 java.lang.String getHistoryName(Identifier subject)
           
 Authenticator getLastCheckedAuth(Identifier id)
           
 int getStatus(Identifier id)
           
static boolean isProof(Evidence e)
           
 void markEvidenceAvailable(Identifier originator, Identifier subject, long timestamp, boolean isProof, Handle interestedParty)
          This is called when new evidence becomes available, or (during startup) for all evidence files on disk.
 void markResponseAvailable(Identifier originator, Identifier subject, long timestamp)
          This is called when another node answers one of our challenges.
 void notifyStatusChanged(Identifier subject, int newStatus)
           
 void setLastCheckedAuth(Identifier id, Authenticator auth)
           
 void setStatusChangeListener(StatusChangeListener<Identifier> listener)
           
 boolean setStorageDirectory(java.io.File directory)
           
 EvidenceRecord<Handle,Identifier> statFirstUnansweredChallenge(Identifier subject)
          Look up the first unanswered challenge to a given node
 EvidenceRecord<Handle,Identifier> statProof(Identifier subject)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

environment

protected Environment environment

logger

protected Logger logger
Constructor Detail

PeerInfoStoreImpl

public PeerInfoStoreImpl(IdentityTransport<Handle,Identifier> transport,
                         IdStrTranslator<Identifier> stringTranslator,
                         AuthenticatorSerializer authSerializer,
                         EvidenceSerializer evidenceSerializer,
                         Environment env)
Method Detail

isProof

public static boolean isProof(Evidence e)

setStatusChangeListener

public void setStatusChangeListener(StatusChangeListener<Identifier> listener)
Specified by:
setStatusChangeListener in interface PeerInfoStore<Handle,Identifier>

findEvidence

public EvidenceRecord<Handle,Identifier> findEvidence(Identifier originator,
                                                      Identifier subject,
                                                      long timestamp)
Specified by:
findEvidence in interface PeerInfoStore<Handle,Identifier>

findEvidence

public EvidenceRecord<Handle,Identifier> findEvidence(Identifier originator,
                                                      Identifier subject,
                                                      long timestamp,
                                                      boolean create)
Specified by:
findEvidence in interface PeerInfoStore<Handle,Identifier>

markEvidenceAvailable

public void markEvidenceAvailable(Identifier originator,
                                  Identifier subject,
                                  long timestamp,
                                  boolean isProof,
                                  Handle interestedParty)
This is called when new evidence becomes available, or (during startup) for all evidence files on disk. We only keep some metadata in memory; the actual evidence is stored in a separate file on disk.


markResponseAvailable

public void markResponseAvailable(Identifier originator,
                                  Identifier subject,
                                  long timestamp)
This is called when another node answers one of our challenges. Again, we only update the metadata in memory; the actual response is kept in a file on disk.


addEvidence

public void addEvidence(Identifier originator,
                        Identifier subject,
                        long timestamp,
                        Evidence evidence)
                 throws java.io.IOException
Specified by:
addEvidence in interface PeerInfoStore<Handle,Identifier>
Throws:
java.io.IOException

addEvidence

public void addEvidence(Identifier originator,
                        Identifier subject,
                        long timestamp,
                        Evidence evidence,
                        Handle interestedParty)
                 throws java.io.IOException
Specified by:
addEvidence in interface PeerInfoStore<Handle,Identifier>
Throws:
java.io.IOException

getFile

protected java.io.File getFile(Identifier subject,
                               Identifier originator,
                               long timestamp,
                               java.lang.String suffix)

getStatus

public int getStatus(Identifier id)
Specified by:
getStatus in interface PeerInfoStore<Handle,Identifier>

setStorageDirectory

public boolean setStorageDirectory(java.io.File directory)
                            throws java.io.IOException
Specified by:
setStorageDirectory in interface PeerInfoStore<Handle,Identifier>
Throws:
java.io.IOException

find

public PeerInfoRecord<Handle,Identifier> find(Identifier id)

find

public PeerInfoRecord<Handle,Identifier> find(Identifier id,
                                              boolean create)

getLastCheckedAuth

public Authenticator getLastCheckedAuth(Identifier id)
Specified by:
getLastCheckedAuth in interface PeerInfoStore<Handle,Identifier>

setLastCheckedAuth

public void setLastCheckedAuth(Identifier id,
                               Authenticator auth)
Specified by:
setLastCheckedAuth in interface PeerInfoStore<Handle,Identifier>

getEvidence

public Evidence getEvidence(Identifier originator,
                            Identifier subject,
                            long timestamp)
                     throws java.io.IOException
Get the actual bytes of a piece of evidence

Specified by:
getEvidence in interface PeerInfoStore<Handle,Identifier>
Throws:
java.io.IOException

addResponse

public void addResponse(Identifier originator,
                        Identifier subject,
                        long timestamp,
                        Evidence response)
                 throws java.io.IOException
Record a response to a challenge

Specified by:
addResponse in interface PeerInfoStore<Handle,Identifier>
Throws:
java.io.IOException

getHistoryName

public java.lang.String getHistoryName(Identifier subject)
Specified by:
getHistoryName in interface PeerInfoStore<Handle,Identifier>

notifyStatusChanged

public void notifyStatusChanged(Identifier subject,
                                int newStatus)
Specified by:
notifyStatusChanged in interface PeerInfoStore<Handle,Identifier>

statFirstUnansweredChallenge

public EvidenceRecord<Handle,Identifier> statFirstUnansweredChallenge(Identifier subject)
Look up the first unanswered challenge to a given node

Specified by:
statFirstUnansweredChallenge in interface PeerInfoStore<Handle,Identifier>

statProof

public EvidenceRecord<Handle,Identifier> statProof(Identifier subject)
Specified by:
statProof in interface PeerInfoStore<Handle,Identifier>

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection