Ixian SDK
IXICore.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  NetworkClient
 Implementation of the RemoteEndpoint interface as an Ixian network client. More...
 
class  NetworkClientManager
 
class  NetworkEvents
 
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
 
class  RemoteEndpoint
 
class  TimeSyncData
 

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.getTransaction = 9, ProtocolMessageCode.transactionData = 10, ProtocolMessageCode.syncWalletState = 13,
  ProtocolMessageCode.walletState = 14, ProtocolMessageCode.newTransaction = 16, ProtocolMessageCode.newBlock = 17, ProtocolMessageCode.getWalletStateChunk = 20,
  ProtocolMessageCode.walletStateChunk = 21, ProtocolMessageCode.getPresenceList = 22, ProtocolMessageCode.presenceList = 23, ProtocolMessageCode.updatePresence = 24,
  ProtocolMessageCode.s2data = 26, ProtocolMessageCode.s2failed = 27, ProtocolMessageCode.s2signature = 28, 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, ProtocolMessageCode.getBlockHeaders = 46, ProtocolMessageCode.blockHeaders = 47, ProtocolMessageCode.getRandomPresences = 48
}
 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 13 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 
getTransaction 
transactionData 
syncWalletState 
walletState 
newTransaction 
newBlock 
getWalletStateChunk 
walletStateChunk 
getPresenceList 
presenceList 
updatePresence 
s2data 
s2failed 
s2signature 
getBalance 
balance 
keepAlivePresence 
getPresence 
getBlockTransactions 
transactionsChunk 
getUnappliedTransactions 
extend 
attachEvent 
detachEvent 
newBlockSignature 
getBlockSignatures 
blockSignatures 
getNextSuperBlock 
getBlockHeaders 
blockHeaders 
getRandomPresences 

Definition at line 77 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.