|
Rice Pastry API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.mpisws.p2p.transport.peerreview.PeerReviewImpl<Handle,Identifier>
Handle - (Usually a NodeHandle)Identifier - (Permanent Identifier), can get an Identifier from a Handlepublic class PeerReviewImpl<Handle extends RawSerializable,Identifier extends RawSerializable>
| Field Summary |
|---|
| Fields inherited from interface org.mpisws.p2p.transport.peerreview.PeerReview |
|---|
DONT_COMMIT, PEER_REVIEW_COMMIT, PEER_REVIEW_PASSTHROUGH, RELEVANT_LENGTH |
| Constructor Summary | |
|---|---|
PeerReviewImpl(IdentityTransport<Handle,Identifier> transport,
Environment env,
Serializer<Handle> handleSerializer,
Serializer<Identifier> idSerializer,
IdentifierExtractor<Handle,Identifier> identifierExtractor,
IdStrTranslator<Identifier> stringTranslator,
AuthenticatorSerializer authenticatorSerialilzer,
EvidenceSerializer evidenceSerializer)
|
|
| Method Summary | |
|---|---|
void |
acceptMessages(boolean b)
Toggle accepting incoming messages. |
void |
acceptSockets(boolean b)
Toggle accepting new sockets. |
boolean |
addAuthenticatorIfValid(AuthenticatorStore<Identifier> store,
Identifier subject,
Authenticator auth)
Helper function called internally from the library. |
void |
challengeSuspectedNode(Handle handle)
|
void |
destroy()
|
Authenticator |
extractAuthenticator(Identifier id,
long seq,
short entryType,
byte[] entryHash,
byte[] hTopMinusOne,
byte[] signature)
A helper function that extracts an authenticator from an incoming message and adds it to our local store. |
PeerReviewCallback<Handle,Identifier> |
getApp()
|
AuthenticatorSerializer |
getAuthenticatorSerializer()
|
byte[] |
getEmptyHash()
|
Environment |
getEnvironment()
|
long |
getEvidenceSeq()
|
EvidenceSerializer |
getEvidenceSerializer()
|
Serializer<Handle> |
getHandleSerializer()
|
short |
getHashSizeBytes()
|
int |
getHashSizeInBytes()
|
IdentifierExtractor<Handle,Identifier> |
getIdentifierExtractor()
|
Serializer<Identifier> |
getIdSerializer()
|
Identifier |
getLocalId()
|
Handle |
getLocalIdentifier()
The local node. |
short |
getSignatureSizeBytes()
|
int |
getSignatureSizeInBytes()
|
long |
getTime()
Current time in millis, however, we depend on there being a timesource that is more discritized than the "wall" clock. |
boolean |
hasCertificate(Identifier id)
|
byte[] |
hash(java.nio.ByteBuffer... hashMe)
|
byte[] |
hash(long seq,
short type,
byte[] nodeHash,
byte[] contentHash)
|
void |
incomingSocket(P2PSocket<Handle> s)
Notification of a new socket. |
void |
init(java.lang.String dirname)
|
void |
messageReceived(Handle handle,
java.nio.ByteBuffer message,
java.util.Map<java.lang.String,java.lang.Object> options)
Called when a new message is received. |
void |
notifyCertificateAvailable(Identifier id)
|
void |
notifyStatusChange(Identifier id,
int newStatus)
|
SocketRequestHandle<Handle> |
openSocket(Handle i,
SocketCallback<Handle> deliverSocketToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
Open a socket to the Identifier |
void |
panic(java.lang.String s)
|
Cancellable |
requestCertificate(Handle source,
Identifier certHolder,
Continuation<java.security.cert.X509Certificate,java.lang.Exception> c,
java.util.Map<java.lang.String,java.lang.Object> options)
|
void |
sendEvidenceToWitnesses(Identifier subject,
long timestamp,
Evidence evidence)
Called internally by other classes if they have found evidence against one of our peers. |
MessageRequestHandle<Handle,java.nio.ByteBuffer> |
sendMessage(Handle target,
java.nio.ByteBuffer message,
MessageCallback<Handle,java.nio.ByteBuffer> deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
Send the message to the identifier |
void |
setApp(PeerReviewCallback<Handle,Identifier> callback)
|
void |
setCallback(TransportLayerCallback<Handle,java.nio.ByteBuffer> callback)
Set the callback for incoming sockets/messages |
void |
setErrorHandler(ErrorHandler<Handle> handler)
To be notified of problems not related to an outgoing messaage/socket. |
byte[] |
sign(byte[] bytes)
|
void |
statusChange(Identifier id,
int newStatus)
|
void |
transmit(Handle dest,
PeerReviewMessage message,
MessageCallback<Handle,java.nio.ByteBuffer> deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
Note, must include PEER_REVIEW_COMMIT and the type |
void |
verify(Identifier id,
java.nio.ByteBuffer msg,
java.nio.ByteBuffer signature)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public PeerReviewImpl(IdentityTransport<Handle,Identifier> transport,
Environment env,
Serializer<Handle> handleSerializer,
Serializer<Identifier> idSerializer,
IdentifierExtractor<Handle,Identifier> identifierExtractor,
IdStrTranslator<Identifier> stringTranslator,
AuthenticatorSerializer authenticatorSerialilzer,
EvidenceSerializer evidenceSerializer)
| Method Detail |
|---|
public void notifyStatusChange(Identifier id,
int newStatus)
notifyStatusChange in interface StatusChangeListener<Identifier extends RawSerializable>
public void init(java.lang.String dirname)
throws java.io.IOException
java.io.IOExceptionpublic PeerReviewCallback<Handle,Identifier> getApp()
getApp in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>
public SocketRequestHandle<Handle> openSocket(Handle i,
SocketCallback<Handle> deliverSocketToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
TransportLayer
openSocket in interface TransportLayer<Handle extends RawSerializable,java.nio.ByteBuffer>i - who to open the socket todeliverSocketToMe - the callback when the socket is openedoptions - options on how to open the socket (don't source route, encrypt etc) (may not be respected if layer cannot provide service)
public void incomingSocket(P2PSocket<Handle> s)
throws java.io.IOException
TransportLayerCallback
incomingSocket in interface TransportLayerCallback<Handle extends RawSerializable,java.nio.ByteBuffer>s - the incoming socket
java.io.IOException
public MessageRequestHandle<Handle,java.nio.ByteBuffer> sendMessage(Handle target,
java.nio.ByteBuffer message,
MessageCallback<Handle,java.nio.ByteBuffer> deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
TransportLayer
sendMessage in interface TransportLayer<Handle extends RawSerializable,java.nio.ByteBuffer>target - the destinationmessage - the messagedeliverAckToMe - layer dependent notification when the message is sent (can indicate placed on the wire, point-to-point acknowledgment, or end-to-end acknowledgement)options - delivery options (don't source route, encrypt etc) (may not be respected if layer cannot provide service)
public void messageReceived(Handle handle,
java.nio.ByteBuffer message,
java.util.Map<java.lang.String,java.lang.Object> options)
throws java.io.IOException
TransportLayerCallback
messageReceived in interface TransportLayerCallback<Handle extends RawSerializable,java.nio.ByteBuffer>handle - The node it is coming frommessage - the messageoptions - describe how the message arrived (udp/tcp, encrypted etc)
java.io.IOException - if there is a problem decoding the messagepublic void panic(java.lang.String s)
public void acceptMessages(boolean b)
TransportLayer
acceptMessages in interface TransportLayer<Handle extends RawSerializable,java.nio.ByteBuffer>public void acceptSockets(boolean b)
TransportLayer
acceptSockets in interface TransportLayer<Handle extends RawSerializable,java.nio.ByteBuffer>public Identifier getLocalId()
public Handle getLocalIdentifier()
TransportLayer
getLocalIdentifier in interface TransportLayer<Handle extends RawSerializable,java.nio.ByteBuffer>public void setApp(PeerReviewCallback<Handle,Identifier> callback)
public void setCallback(TransportLayerCallback<Handle,java.nio.ByteBuffer> callback)
TransportLayer
setCallback in interface TransportLayer<Handle extends RawSerializable,java.nio.ByteBuffer>callback - the callback for incoming sockets/messagespublic void setErrorHandler(ErrorHandler<Handle> handler)
TransportLayer
setErrorHandler in interface TransportLayer<Handle extends RawSerializable,java.nio.ByteBuffer>handler - to be notified of problems not related to a specific messaage/socket.public void destroy()
destroy in interface Destructablepublic AuthenticatorSerializer getAuthenticatorSerializer()
getAuthenticatorSerializer in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>public Environment getEnvironment()
getEnvironment in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>public Serializer<Identifier> getIdSerializer()
getIdSerializer in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>public long getTime()
PeerReview
getTime in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>
public Authenticator extractAuthenticator(Identifier id,
long seq,
short entryType,
byte[] entryHash,
byte[] hTopMinusOne,
byte[] signature)
throws java.io.IOException
extractAuthenticator in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>java.io.IOException
public boolean addAuthenticatorIfValid(AuthenticatorStore<Identifier> store,
Identifier subject,
Authenticator auth)
addAuthenticatorIfValid in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>public long getEvidenceSeq()
getEvidenceSeq in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>public Serializer<Handle> getHandleSerializer()
getHandleSerializer in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>public int getHashSizeInBytes()
getHashSizeInBytes in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>public int getSignatureSizeInBytes()
getSignatureSizeInBytes in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>public IdentifierExtractor<Handle,Identifier> getIdentifierExtractor()
getIdentifierExtractor in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>public void challengeSuspectedNode(Handle handle)
challengeSuspectedNode in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>
public void sendEvidenceToWitnesses(Identifier subject,
long timestamp,
Evidence evidence)
sendEvidenceToWitnesses in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>subject - the "bad" guy
public void transmit(Handle dest,
PeerReviewMessage message,
MessageCallback<Handle,java.nio.ByteBuffer> deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
transmit in interface PeerReview<Handle extends RawSerializable,Identifier extends RawSerializable>dest - message - deliverAckToMe - options - public void notifyCertificateAvailable(Identifier id)
notifyCertificateAvailable in interface IdentityTransportCallback<Handle extends RawSerializable,Identifier extends RawSerializable>
public void statusChange(Identifier id,
int newStatus)
statusChange in interface IdentityTransportCallback<Handle extends RawSerializable,Identifier extends RawSerializable>public boolean hasCertificate(Identifier id)
hasCertificate in interface CertificateManager<Handle extends RawSerializable,Identifier extends RawSerializable>
public Cancellable requestCertificate(Handle source,
Identifier certHolder,
Continuation<java.security.cert.X509Certificate,java.lang.Exception> c,
java.util.Map<java.lang.String,java.lang.Object> options)
requestCertificate in interface CertificateManager<Handle extends RawSerializable,Identifier extends RawSerializable>public byte[] sign(byte[] bytes)
sign in interface CertificateManager<Handle extends RawSerializable,Identifier extends RawSerializable>public short getSignatureSizeBytes()
getSignatureSizeBytes in interface CertificateManager<Handle extends RawSerializable,Identifier extends RawSerializable>
public void verify(Identifier id,
java.nio.ByteBuffer msg,
java.nio.ByteBuffer signature)
throws java.security.SignatureException,
UnknownCertificateException
verify in interface CertificateManager<Handle extends RawSerializable,Identifier extends RawSerializable>java.security.SignatureException
UnknownCertificateExceptionpublic byte[] getEmptyHash()
getEmptyHash in interface HashProviderpublic short getHashSizeBytes()
getHashSizeBytes in interface HashProvider
public byte[] hash(long seq,
short type,
byte[] nodeHash,
byte[] contentHash)
hash in interface HashProviderpublic byte[] hash(java.nio.ByteBuffer... hashMe)
hash in interface HashProviderpublic EvidenceSerializer getEvidenceSerializer()
|
Rice Pastry API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||