Class Gossip
A class gossips messages into network. Peers will be stored and managed by Kademlia DHT.
Implements
Inherited Members
Namespace: Libplanet.Net.Consensus
Assembly: Libplanet.Net.dll
Syntax
public class Gossip : IDisposable
Constructors
| Improve this Doc View SourceGossip(ITransport, ImmutableArray<BoundPeer>, ImmutableArray<BoundPeer>, Action<Message>, Action<MessageContent>, Action<MessageContent>)
Creates a Gossip instance.
Declaration
public Gossip(ITransport transport, ImmutableArray<BoundPeer> peers, ImmutableArray<BoundPeer> seeds, Action<Message> validateMessageToReceive, Action<MessageContent> validateMessageToSend, Action<MessageContent> processMessage)
Parameters
Type | Name | Description |
---|---|---|
ITransport | transport | An ITransport used for communicating messages. |
ImmutableArray<BoundPeer> | peers | A list of BoundPeer composing network. |
ImmutableArray<BoundPeer> | seeds | A list of BoundPeer for lookup network. |
Action<Message> | validateMessageToReceive | Action to be called to validate a received message to add. Validates on Libplanet.Net.Consensus.Gossip.HandleMessageAsync(System.Threading.CancellationToken). |
Action<MessageContent> | validateMessageToSend | Action to be called to validate a new message to send. Validates on Libplanet.Net.Consensus.Gossip.HandleWantAsync(Libplanet.Net.Messages.Message,System.Threading.CancellationToken). |
Action<MessageContent> | processMessage | Action to be called when receiving a new message. |
Properties
| Improve this Doc View SourceAsPeer
Declaration
public BoundPeer AsPeer { get; }
Property Value
Type | Description |
---|---|
BoundPeer |
DeniedPeers
The list of BoundPeers written in Libplanet.Net.Consensus.Gossip._denySet.
Declaration
public IEnumerable<BoundPeer> DeniedPeers { get; }
Property Value
Type | Description |
---|---|
IEnumerable<BoundPeer> |
Peers
Declaration
public IEnumerable<BoundPeer> Peers { get; }
Property Value
Type | Description |
---|---|
IEnumerable<BoundPeer> |
Running
Whether this Gossip instance is running.
Declaration
public bool Running { get; }
Property Value
Type | Description |
---|---|
Boolean | Gets the value indicates whether the instance is running. |
Methods
| Improve this Doc View SourceAddMessage(MessageContent)
Process a MessageContent and add it to the gossip.
Declaration
public void AddMessage(MessageContent content)
Parameters
Type | Name | Description |
---|---|---|
MessageContent | content | A MessageContent instance to process and gossip. |
AddMessages(IEnumerable<MessageContent>)
Adds multiple MessageContents in parallel. AddMessage(MessageContent)
Declaration
public void AddMessages(IEnumerable<MessageContent> contents)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<MessageContent> | contents | An enumerable MessageContent instance to process and gossip. |
AllowPeer(BoundPeer)
Remove peer
frin the Libplanet.Net.Consensus.Gossip._denySet to allow
Messages from.
Declaration
public void AllowPeer(BoundPeer peer)
Parameters
Type | Name | Description |
---|---|---|
BoundPeer | peer | BoundPeer to allow. |
ClearCache()
Clear message cache.
Declaration
public void ClearCache()
ClearDenySet()
Clear Libplanet.Net.Consensus.Gossip._denySet to allow all BoundPeer.
Declaration
public void ClearDenySet()
DenyPeer(BoundPeer)
Adds peer
to the Libplanet.Net.Consensus.Gossip._denySet to reject
Messages from.
Declaration
public void DenyPeer(BoundPeer peer)
Parameters
Type | Name | Description |
---|---|---|
BoundPeer | peer | BoundPeer to deny. |
Dispose()
A class gossips messages into network. Peers will be stored and managed by Kademlia DHT.
Declaration
public void Dispose()
PublishMessage(MessageContent, IEnumerable<BoundPeer>)
Publish given MessageContent to given targetPeers
.
Declaration
public void PublishMessage(MessageContent content, IEnumerable<BoundPeer> targetPeers)
Parameters
Type | Name | Description |
---|---|---|
MessageContent | content | A MessageContent instance to publish. |
IEnumerable<BoundPeer> | targetPeers | BoundPeers to publish to. |
PublishMessage(MessageContent)
Publish given MessageContent to peers.
Declaration
public void PublishMessage(MessageContent content)
Parameters
Type | Name | Description |
---|---|---|
MessageContent | content | A MessageContent instance to publish. |
StartAsync(CancellationToken)
Start the Gossip instance.
Declaration
public async Task StartAsync(CancellationToken ctx)
Parameters
Type | Name | Description |
---|---|---|
CancellationToken | ctx | A cancellation token used to propagate notification that this operation should be canceled. |
Returns
Type | Description |
---|---|
Task | An awaitable task without value. |
StopAsync(TimeSpan, CancellationToken)
Stop the Gossip instance.
Declaration
public async Task StopAsync(TimeSpan waitFor, CancellationToken ctx)
Parameters
Type | Name | Description |
---|---|---|
TimeSpan | waitFor | The TimeSpan of delay before actual stopping. |
CancellationToken | ctx | A cancellation token used to propagate notification that this operation should be canceled. |
Returns
Type | Description |
---|---|
Task | An awaitable task without value. |
WaitForRunningAsync()
Waits until this Gossip instance gets started to run.
Declaration
public Task WaitForRunningAsync()
Returns
Type | Description |
---|---|
Task |