Ixian SDK
DLT.Network Namespace Reference

Classes

class  CoreNetworkUtils
 
struct  IPAndMask
 Represents an IP address and a subnet mask. More...
 
class  IPv4Subnet
 Helper class to help filter and classify IPv4 addresses More...
 
struct  NetOpsData
 Helper structure which holds a single IP addresses on which the server component is listening. Used only to communicate the configuration to the server listening thread. More...
 
class  NetworkQueue
 
class  NetworkServer
 Ixian network server object. This is used to accept connections from Ixian clients or other nodes and recieve Ixian protocol messages. Basic protocol validation is performed before a specialized protocol parser is called. More...
 
class  NetworkUtils
 
struct  QueueMessage
 
struct  QueueMessageRaw
 

Enumerations

enum  ProtocolByeCode {
  ProtocolByeCode.blockInvalidChecksum = 100, ProtocolByeCode.blockInvalidForked = 101, ProtocolByeCode.blockInvalidNoConsensus = 102, ProtocolByeCode.bye = 200,
  ProtocolByeCode.expectingMaster = 400, ProtocolByeCode.forked = 500, ProtocolByeCode.deprecated = 501, ProtocolByeCode.incorrectNetworkType = 502,
  ProtocolByeCode.insufficientFunds = 599, ProtocolByeCode.incorrectIp = 600, ProtocolByeCode.notConnectable = 601, ProtocolByeCode.tooFarBehind = 602,
  ProtocolByeCode.authFailed = 603, ProtocolByeCode.addressMismatch = 604
}
 Reason for disconnection. More...
 
enum  ProtocolMessageCode {
  ProtocolMessageCode.hello = 0, ProtocolMessageCode.helloData = 1, ProtocolMessageCode.bye = 2, ProtocolMessageCode.getBlock = 3,
  ProtocolMessageCode.blockData = 4, ProtocolMessageCode.getMeta = 5, ProtocolMessageCode.metaData = 6, ProtocolMessageCode.getWallet = 7,
  ProtocolMessageCode.walletData = 8, ProtocolMessageCode.getTransaction = 9, ProtocolMessageCode.transactionData = 10, ProtocolMessageCode.syncPoolState = 11,
  ProtocolMessageCode.poolState = 12, ProtocolMessageCode.syncWalletState = 13, ProtocolMessageCode.walletState = 14, ProtocolMessageCode.newWallet = 15,
  ProtocolMessageCode.newTransaction = 16, ProtocolMessageCode.newBlock = 17, ProtocolMessageCode.getNeighbors = 18, ProtocolMessageCode.neighborData = 19,
  ProtocolMessageCode.getWalletStateChunk = 20, ProtocolMessageCode.walletStateChunk = 21, ProtocolMessageCode.syncPresenceList = 22, ProtocolMessageCode.presenceList = 23,
  ProtocolMessageCode.updatePresence = 24, ProtocolMessageCode.removePresence = 25, ProtocolMessageCode.s2data = 26, ProtocolMessageCode.s2failed = 27,
  ProtocolMessageCode.s2signature = 28, ProtocolMessageCode.s2keys = 29, ProtocolMessageCode.ping = 30, ProtocolMessageCode.pong = 31,
  ProtocolMessageCode.getBalance = 32, ProtocolMessageCode.balance = 33, ProtocolMessageCode.keepAlivePresence = 34, ProtocolMessageCode.getPresence = 35,
  ProtocolMessageCode.getBlockTransactions = 36, ProtocolMessageCode.transactionsChunk = 37, ProtocolMessageCode.getUnappliedTransactions = 38, ProtocolMessageCode.extend = 39,
  ProtocolMessageCode.attachEvent = 40, ProtocolMessageCode.detachEvent = 41, ProtocolMessageCode.newBlockSignature = 42, ProtocolMessageCode.getBlockSignatures = 43,
  ProtocolMessageCode.blockSignatures = 44, ProtocolMessageCode.getNextSuperBlock = 45
}
 Codes represent types of network messages accepted by the Ixian network. Each code implies the expected following message structure. More...
 
enum  RemoteEndpointState { RemoteEndpointState.Initial, RemoteEndpointState.Established, RemoteEndpointState.Closed }
 Current stateus of the remote endpoint (server or client). More...
 

Enumeration Type Documentation

◆ ProtocolByeCode

Reason for disconnection.

Enumerator
blockInvalidChecksum 

A Block was sent with an incorrect checksum.

blockInvalidForked 

A Block which was sent is suspected to be from a forked chain.

blockInvalidNoConsensus 

A Block was sent without sufficient consensus signatures.

bye 

Unspecified disconnection reason.

expectingMaster 

A Master Node was expected.

forked 

The sending node suspects it is on a forked network.

deprecated 

A deprecated protocol was used which is not supported.

incorrectNetworkType 

The connecting node is on a different network (TestNet vs. MainNet).

insufficientFunds 

The connecting Master Node does not have sufficient funds int he wallet to participate in consensus.

incorrectIp 

The IP address specified in the Hello message was invalid. (Not a public IP address.)

notConnectable 

The IP address specified in the Hello message was not reachable for a connection test.

tooFarBehind 

The connecting node has fallen too far behind on the blockchain.

authFailed 

The authentication value does not match the connecting node's address.

addressMismatch 

The remote node's address does not match the known address for that node.

Definition at line 16 of file Network.cs.

◆ ProtocolMessageCode

Codes represent types of network messages accepted by the Ixian network. Each code implies the expected following message structure.

Enumerator
hello 
helloData 
bye 
getBlock 
blockData 
getMeta 
metaData 
getWallet 
walletData 
getTransaction 
transactionData 
syncPoolState 
poolState 
syncWalletState 
walletState 
newWallet 
newTransaction 
newBlock 
getNeighbors 
neighborData 
getWalletStateChunk 
walletStateChunk 
syncPresenceList 
presenceList 
updatePresence 
removePresence 
s2data 
s2failed 
s2signature 
s2keys 
ping 
pong 
getBalance 
balance 
keepAlivePresence 
getPresence 
getBlockTransactions 
transactionsChunk 
getUnappliedTransactions 
extend 
attachEvent 
detachEvent 
newBlockSignature 
getBlockSignatures 
blockSignatures 
getNextSuperBlock 

Definition at line 80 of file Network.cs.

◆ RemoteEndpointState

Current stateus of the remote endpoint (server or client).

Enumerator
Initial 
Established 
Closed 

Definition at line 133 of file Network.cs.