Ixian SDK
IXICore.CoreConfig Class Reference

Basic Ixian (compile-time) configuration values. More...

Static Public Attributes

static readonly string version = "xcore-0.6.6b"
 Current version of IxiCore. More...
 
static readonly int protocolVersion = 5
 Current version of the Ixian network protocol. More...
 
static readonly int walletStateChunkSplit = 10000
 Number of wallets to send in each chunk of data when synchronizing new Master Nodes. More...
 
static readonly int matcherBytesPerAddress = 4
 This value is used when clients subscribe to events on their connected Master Nodes. More...
 
static readonly int maxNetworkQueue = 10000
 Maximum number of messages in the incoming network queue, before the connection are throttled. More...
 
static readonly int maxSendQueue = 10000
 Maximum number of outgoing messages in the queue per each remote endpoint. More...
 
static readonly int maxMessageSize = 50000000
 Maximum size of a network message in bytes. More...
 
static readonly int pongInterval = 2
 Pong interval (in seconds) - if no data has been received from connected remote client for this time, a special packet will be sent instead to 'wake up' the receiver. More...
 
static readonly int pingTimeout = 10
 Timeout (in seconds) before a remote client is disconnected if no data is received from it. More...
 
static readonly int networkClientReconnectInterval = 10 * 1000
 Duration (in milliseconds) between reconnection attempts to remote clients. More...
 
static readonly int serverKeepAliveInterval = 200
 Interval (in seconds) how often to send a 'Keep-Alive' presence packet into the network for server (M, H, R) nodes. More...
 
static readonly int clientKeepAliveInterval = 100
 Interval (in seconds) how often to send a 'Keep-Alive' presence packet into the network for client nodes. More...
 
static readonly int serverPresenceExpiration = 600
 Presence list entry expiration time (in seconds) for server presences More...
 
static readonly int clientPresenceExpiration = 300
 Presence list entry expiration time (in seconds) for client presences More...
 
static readonly int maximumNeighborReconnectCount = 3
 Number of retries when connecting to a neighbor node, before giving up. More...
 
static int simultaneousConnectedNeighbors = 6
 Target number of simultaneously connected neighbors. More...
 
static readonly int maximumSubscribableEvents = 500
 Maximum number of events a client can be subscribed to. More...
 
static readonly int maximumServerMasterNodes = 200
 Maximum number of neighbor Master Nodes this server can accept (used in DLT Node executable). More...
 
static readonly int maximumServerClients = 200
 Maximum number of client connections this server can accept (used in DLT Node executable). More...
 
static readonly bool threadLiveCheckEnabled = false
 If set to true, all threads will report liveness periodically, thus enabling checking for deadlocks. More...
 
static string walletNotifyCommand = ""
 Command to execute when a new transaction is received for this wallet. More...
 
static bool isTestNet = false
 Testnet designator. If false the node can only connect to mainnet, if true it can only connect to testnet. More...
 
static int forceTimeOffset = int.MaxValue
 Forces time offset to the specified value. More...
 
static string device_id = System.Guid.NewGuid().ToString()
 Unique node identifier More...
 
static string productVersion = ""
 Product version. More...
 

Detailed Description

Basic Ixian (compile-time) configuration values.

Definition at line 6 of file CoreConfig.cs.

Member Data Documentation

◆ clientKeepAliveInterval

readonly int IXICore.CoreConfig.clientKeepAliveInterval = 100
static

Interval (in seconds) how often to send a 'Keep-Alive' presence packet into the network for client nodes.

Definition at line 74 of file CoreConfig.cs.

◆ clientPresenceExpiration

readonly int IXICore.CoreConfig.clientPresenceExpiration = 300
static

Presence list entry expiration time (in seconds) for client presences

Definition at line 84 of file CoreConfig.cs.

◆ device_id

string IXICore.CoreConfig.device_id = System.Guid.NewGuid().ToString()
static

Unique node identifier

Definition at line 137 of file CoreConfig.cs.

◆ forceTimeOffset

int IXICore.CoreConfig.forceTimeOffset = int.MaxValue
static

Forces time offset to the specified value.

Definition at line 132 of file CoreConfig.cs.

◆ isTestNet

bool IXICore.CoreConfig.isTestNet = false
static

Testnet designator. If false the node can only connect to mainnet, if true it can only connect to testnet.

Definition at line 127 of file CoreConfig.cs.

◆ matcherBytesPerAddress

readonly int IXICore.CoreConfig.matcherBytesPerAddress = 4
static

This value is used when clients subscribe to events on their connected Master Nodes.

The best privacy would be achieved if the Master Node forwards all Transactions to all clients, who then sort out the 'interesting' ones. In this way, the Master Node does not know which addresses are the client's. This, however, is impractical due to the number of transactions and clients each Master node should support. On the other hand, if a client specifies which addresses it's interested in, this could be a potential leak of information, allowing Master Nodes to infer which Wallets are associated with each other and reduce the privacy element of the Ixian DLT Network. A specialized algorithm has been developed which allows the client to subscribe to some Wallet addresses, but not all, with potential false positives to further obscure the details. This will reduce the required bandwidth on the Master Node, while preventing the Master Node from immediately knowing which addresses belong to the client (until a transaction for that address appears on the blockchain). The setting matcherBytesPerAddress selects how precise this matching is and how many false positives it creates. Better precision decreases privacy, but lower precision increases the Master Node bandwidth requirements. A balanced default value is chosen here.

Definition at line 38 of file CoreConfig.cs.

◆ maximumNeighborReconnectCount

readonly int IXICore.CoreConfig.maximumNeighborReconnectCount = 3
static

Number of retries when connecting to a neighbor node, before giving up.

Definition at line 89 of file CoreConfig.cs.

◆ maximumServerClients

readonly int IXICore.CoreConfig.maximumServerClients = 200
static

Maximum number of client connections this server can accept (used in DLT Node executable).

Definition at line 109 of file CoreConfig.cs.

◆ maximumServerMasterNodes

readonly int IXICore.CoreConfig.maximumServerMasterNodes = 200
static

Maximum number of neighbor Master Nodes this server can accept (used in DLT Node executable).

Definition at line 105 of file CoreConfig.cs.

◆ maximumSubscribableEvents

readonly int IXICore.CoreConfig.maximumSubscribableEvents = 500
static

Maximum number of events a client can be subscribed to.

Definition at line 101 of file CoreConfig.cs.

◆ maxMessageSize

readonly int IXICore.CoreConfig.maxMessageSize = 50000000
static

Maximum size of a network message in bytes.

Definition at line 52 of file CoreConfig.cs.

◆ maxNetworkQueue

readonly int IXICore.CoreConfig.maxNetworkQueue = 10000
static

Maximum number of messages in the incoming network queue, before the connection are throttled.

Definition at line 44 of file CoreConfig.cs.

◆ maxSendQueue

readonly int IXICore.CoreConfig.maxSendQueue = 10000
static

Maximum number of outgoing messages in the queue per each remote endpoint.

Definition at line 48 of file CoreConfig.cs.

◆ networkClientReconnectInterval

readonly int IXICore.CoreConfig.networkClientReconnectInterval = 10 * 1000
static

Duration (in milliseconds) between reconnection attempts to remote clients.

Definition at line 64 of file CoreConfig.cs.

◆ pingTimeout

readonly int IXICore.CoreConfig.pingTimeout = 10
static

Timeout (in seconds) before a remote client is disconnected if no data is received from it.

Definition at line 60 of file CoreConfig.cs.

◆ pongInterval

readonly int IXICore.CoreConfig.pongInterval = 2
static

Pong interval (in seconds) - if no data has been received from connected remote client for this time, a special packet will be sent instead to 'wake up' the receiver.

Definition at line 56 of file CoreConfig.cs.

◆ productVersion

string IXICore.CoreConfig.productVersion = ""
static

Product version.

Definition at line 142 of file CoreConfig.cs.

◆ protocolVersion

readonly int IXICore.CoreConfig.protocolVersion = 5
static

Current version of the Ixian network protocol.

Definition at line 16 of file CoreConfig.cs.

◆ serverKeepAliveInterval

readonly int IXICore.CoreConfig.serverKeepAliveInterval = 200
static

Interval (in seconds) how often to send a 'Keep-Alive' presence packet into the network for server (M, H, R) nodes.

Definition at line 69 of file CoreConfig.cs.

◆ serverPresenceExpiration

readonly int IXICore.CoreConfig.serverPresenceExpiration = 600
static

Presence list entry expiration time (in seconds) for server presences

Definition at line 79 of file CoreConfig.cs.

◆ simultaneousConnectedNeighbors

int IXICore.CoreConfig.simultaneousConnectedNeighbors = 6
static

Target number of simultaneously connected neighbors.

If more neighbors are connected, they will slowly be disconnected. If fewer neighbors are connected, more will be added over time.

Definition at line 97 of file CoreConfig.cs.

◆ threadLiveCheckEnabled

readonly bool IXICore.CoreConfig.threadLiveCheckEnabled = false
static

If set to true, all threads will report liveness periodically, thus enabling checking for deadlocks.

See class ThreadLiveCheck for details.

Definition at line 117 of file CoreConfig.cs.

◆ version

readonly string IXICore.CoreConfig.version = "xcore-0.6.6b"
static

Current version of IxiCore.

Definition at line 11 of file CoreConfig.cs.

◆ walletNotifyCommand

string IXICore.CoreConfig.walletNotifyCommand = ""
static

Command to execute when a new transaction is received for this wallet.

Definition at line 122 of file CoreConfig.cs.

◆ walletStateChunkSplit

readonly int IXICore.CoreConfig.walletStateChunkSplit = 10000
static

Number of wallets to send in each chunk of data when synchronizing new Master Nodes.

Definition at line 21 of file CoreConfig.cs.


The documentation for this class was generated from the following file: