Enum holochain_p2p::event::HolochainP2pEvent
source · pub enum HolochainP2pEvent {
Show 18 variants
PutAgentInfoSigned {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<()>>,
dna_hash: DnaHash,
peer_data: Vec<AgentInfoSigned>,
},
QueryAgentInfoSigned {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<Vec<AgentInfoSigned>>>,
dna_hash: DnaHash,
agents: Option<HashSet<Arc<KitsuneAgent>>>,
kitsune_space: Arc<KitsuneSpace>,
},
QueryGossipAgents {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<Vec<AgentInfoSigned>>>,
dna_hash: DnaHash,
agents: Option<Vec<AgentPubKey>>,
kitsune_space: Arc<KitsuneSpace>,
since_ms: u64,
until_ms: u64,
arc_set: Arc<DhtArcSet>,
},
QueryAgentInfoSignedNearBasis {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<Vec<AgentInfoSigned>>>,
dna_hash: DnaHash,
kitsune_space: Arc<KitsuneSpace>,
basis_loc: u32,
limit: u32,
},
QueryPeerDensity {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<PeerView>>,
dna_hash: DnaHash,
kitsune_space: Arc<KitsuneSpace>,
dht_arc: DhtArc,
},
CallRemote {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<SerializedBytes>>,
dna_hash: DnaHash,
from_agent: AgentPubKey,
signature: Signature,
to_agent: AgentPubKey,
zome_name: ZomeName,
fn_name: FunctionName,
cap_secret: Option<CapSecret>,
payload: ExternIO,
nonce: Nonce256Bits,
expires_at: Timestamp,
},
Publish {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<()>>,
dna_hash: DnaHash,
request_validation_receipt: bool,
countersigning_session: bool,
ops: Vec<DhtOp>,
},
Get {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<WireOps>>,
dna_hash: DnaHash,
to_agent: AgentPubKey,
dht_hash: AnyDhtHash,
options: GetOptions,
},
GetMeta {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<MetadataSet>>,
dna_hash: DnaHash,
to_agent: AgentPubKey,
dht_hash: AnyDhtHash,
options: GetMetaOptions,
},
GetLinks {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<WireLinkOps>>,
dna_hash: DnaHash,
to_agent: AgentPubKey,
link_key: WireLinkKey,
options: GetLinksOptions,
},
CountLinks {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<CountLinksResponse>>,
dna_hash: DnaHash,
to_agent: AgentPubKey,
query: WireLinkQuery,
},
GetAgentActivity {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<AgentActivityResponse<ActionHash>>>,
dna_hash: DnaHash,
to_agent: AgentPubKey,
agent: AgentPubKey,
query: ChainQueryFilter,
options: GetActivityOptions,
},
MustGetAgentActivity {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<MustGetAgentActivityResponse>>,
dna_hash: DnaHash,
to_agent: AgentPubKey,
author: AgentPubKey,
filter: ChainFilter,
},
ValidationReceiptsReceived {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<()>>,
dna_hash: DnaHash,
to_agent: AgentPubKey,
receipts: ValidationReceiptBundle,
},
QueryOpHashes {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<Option<(Vec<DhtOpHash>, TimeWindowInclusive)>>>,
dna_hash: DnaHash,
arc_set: DhtArcSet,
window: TimeWindow,
max_ops: usize,
include_limbo: bool,
},
FetchOpData {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<Vec<(DhtOpHash, DhtOp)>>>,
dna_hash: DnaHash,
query: FetchOpDataQuery,
},
SignNetworkData {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<Signature>>,
dna_hash: DnaHash,
to_agent: AgentPubKey,
data: Vec<u8>,
},
CountersigningSessionNegotiation {
span_context: (),
respond: GhostRespond<HolochainP2pEventHandlerResult<()>>,
dna_hash: DnaHash,
to_agent: AgentPubKey,
message: CountersigningSessionNegotiationMessage,
},
}
Expand description
The HolochainP2pEvent stream allows handling events generated from the HolochainP2p actor.
Variants§
PutAgentInfoSigned
We need to store signed agent info.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<()>>
Response callback - respond to the request.
peer_data: Vec<AgentInfoSigned>
Input parameter.
QueryAgentInfoSigned
We need to get previously stored agent info.
The optional agents
parameter is an include filter. This can be thought of as a way to filter a held list of agents against the current state of the store.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<Vec<AgentInfoSigned>>>
Response callback - respond to the request.
agents: Option<HashSet<Arc<KitsuneAgent>>>
Input parameter.
kitsune_space: Arc<KitsuneSpace>
Input parameter.
QueryGossipAgents
We need to get agents that fit into an arc set for gossip.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<Vec<AgentInfoSigned>>>
Response callback - respond to the request.
agents: Option<Vec<AgentPubKey>>
Input parameter.
kitsune_space: Arc<KitsuneSpace>
Input parameter.
QueryAgentInfoSignedNearBasis
query agent info in order of closeness to a basis location.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<Vec<AgentInfoSigned>>>
Response callback - respond to the request.
kitsune_space: Arc<KitsuneSpace>
Input parameter.
QueryPeerDensity
Query the peer density of a space for a given [DhtArc
].
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<PeerView>>
Response callback - respond to the request.
kitsune_space: Arc<KitsuneSpace>
Input parameter.
CallRemote
A remote node is attempting to make a remote call on us.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<SerializedBytes>>
Response callback - respond to the request.
from_agent: AgentPubKey
Input parameter.
to_agent: AgentPubKey
Input parameter.
fn_name: FunctionName
Input parameter.
nonce: Nonce256Bits
Input parameter.
Publish
A remote node is publishing data in a range we claim to be holding.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<()>>
Response callback - respond to the request.
Get
A remote node is requesting entry data from us.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<WireOps>>
Response callback - respond to the request.
to_agent: AgentPubKey
Input parameter.
dht_hash: AnyDhtHash
Input parameter.
options: GetOptions
Input parameter.
GetMeta
A remote node is requesting metadata from us.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<MetadataSet>>
Response callback - respond to the request.
to_agent: AgentPubKey
Input parameter.
dht_hash: AnyDhtHash
Input parameter.
options: GetMetaOptions
Input parameter.
GetLinks
A remote node is requesting link data from us.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<WireLinkOps>>
Response callback - respond to the request.
to_agent: AgentPubKey
Input parameter.
link_key: WireLinkKey
Input parameter.
options: GetLinksOptions
Input parameter.
CountLinks
A remote node is requesting a link count from us.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<CountLinksResponse>>
Response callback - respond to the request.
to_agent: AgentPubKey
Input parameter.
query: WireLinkQuery
Input parameter.
GetAgentActivity
A remote node is requesting agent activity from us.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<AgentActivityResponse<ActionHash>>>
Response callback - respond to the request.
to_agent: AgentPubKey
Input parameter.
agent: AgentPubKey
Input parameter.
query: ChainQueryFilter
Input parameter.
options: GetActivityOptions
Input parameter.
MustGetAgentActivity
A remote node is requesting agent activity from us.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<MustGetAgentActivityResponse>>
Response callback - respond to the request.
to_agent: AgentPubKey
Input parameter.
Input parameter.
filter: ChainFilter
Input parameter.
ValidationReceiptsReceived
A remote node has sent us a validation receipt.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<()>>
Response callback - respond to the request.
to_agent: AgentPubKey
Input parameter.
receipts: ValidationReceiptBundle
Input parameter.
QueryOpHashes
The p2p module wishes to query our DhtOpHash store. Gets all ops from a set of agents within a time window and max number of ops. Returns the actual time window of returned ops as well.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<Option<(Vec<DhtOpHash>, TimeWindowInclusive)>>>
Response callback - respond to the request.
window: TimeWindow
Input parameter.
FetchOpData
The p2p module needs access to the content for a given set of DhtOpHashes.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<Vec<(DhtOpHash, DhtOp)>>>
Response callback - respond to the request.
query: FetchOpDataQuery
Input parameter.
SignNetworkData
P2p operations require cryptographic signatures and validation.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<Signature>>
Response callback - respond to the request.
to_agent: AgentPubKey
Input parameter.
CountersigningSessionNegotiation
Messages between agents that drive a countersigning session.
Fields
respond: GhostRespond<HolochainP2pEventHandlerResult<()>>
Response callback - respond to the request.
to_agent: AgentPubKey
Input parameter.
message: CountersigningSessionNegotiationMessage
Input parameter.
Implementations§
source§impl HolochainP2pEvent
impl HolochainP2pEvent
sourcepub fn target_agents(&self) -> &AgentPubKey
pub fn target_agents(&self) -> &AgentPubKey
The agent_pub_key associated with this network p2p event.
Trait Implementations§
source§impl Debug for HolochainP2pEvent
impl Debug for HolochainP2pEvent
source§impl<H: HolochainP2pEventHandler> GhostDispatch<H> for HolochainP2pEvent
impl<H: HolochainP2pEventHandler> GhostDispatch<H> for HolochainP2pEvent
source§fn ghost_actor_dispatch(self, h: &mut H)
fn ghost_actor_dispatch(self, h: &mut H)
impl GhostEvent for HolochainP2pEvent
Auto Trait Implementations§
impl Freeze for HolochainP2pEvent
impl !RefUnwindSafe for HolochainP2pEvent
impl Send for HolochainP2pEvent
impl Sync for HolochainP2pEvent
impl Unpin for HolochainP2pEvent
impl !UnwindSafe for HolochainP2pEvent
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.