Skip to main content

Poor Network Conditions

Overview

The robustness of the KIRA network is maintained by a set of active consensus nodes who ensure the smooth operation and security of the system. However, external factors or unforeseen events can sometimes hinder their ability to maintain the integrity of the network. Such a scenario where the number of active consensus nodes drops below the defined min_validators network property is termed as "Poor Network Conditions".

This condition could be attributed to various potential causes:

  • Malicious DOS/DDOS attacks targeting consensus nodes not utilizing sentry nodes.
  • Coordinated interference from multiple ISPs used by consensus nodes.
  • Anomalies in DNS servers or incorrect address routing.
  • Failed network upgrades leading to unexpected behaviors.
  • Global political events affecting internet connectivity, like the "Great Firewall 2.0".
  • Among other unforeseen circumstances...

In response to these challenges, this module activates specific protocols and safeguards designed to protect the network and its users. These measures include limiting certain transactions and adjusting network properties to ensure asset safety and network stability until normal conditions are restored.

Ensuring Network & Users Safety

The primary objective during poor network conditions is to safeguard user assets until the network regains its strength. The poor_network_max_bank_send network property is instrumental in this context. It dictates the upper limit for asset transfers during compromised network states. By equating this value with the max_tx_fee, the network can prevent potential asset misappropriation by malicious entities.

Furthermore, custodians can monitor the min_validators and poor_network_max_bank_send to decide whether to accept transfers from a network or a fork, especially if the consensus nodes count dips below the safety threshold. Essentially, these measures deter malicious consensus nodes from gaining undue advantages, such as attempting to sideline honest consensus nodes for their own gain.

Restricted Transaction Types

In light of such situations, the network can determine which Transaction Message Types are permissible. This proactive approach halts any unexpected network activities until a sufficient number of nodes is available for secure chain operation.

The default set of allowed messages during poor network conditions are:

MESSAGE TYPEDESCRIPTION
MsgTypeSubmitProposalSubmit a new governance proposal
MsgTypeSetNetworkPropertiesUpdate network-level properties/settings
MsgTypeVoteProposalCast a vote on an existing governance proposal
MsgTypeClaimCouncilorRequest to claim a councilor role
MsgTypeWhitelistPermissionsGrant certain permissions to an entity
MsgTypeBlacklistPermissionsRevoke certain permissions from an entity
MsgTypeCreateRoleCreate a new network role
MsgTypeAssignRoleAssign an existing role to an entity
MsgTypeUnassignRoleRemove a role from an entity
MsgTypeWhitelistRolePermissionGrant specific permissions to a role
MsgTypeBlacklistRolePermissionRevoke specific permissions from a role
MsgTypeRemoveWhitelistRolePermissionRemove granted permissions from a role's whitelist
MsgTypeRemoveBlacklistRolePermissionRemove permissions from a role's blacklist
MsgTypeClaimValidatorRequest to claim validator seat
MsgTypeActivateActivate the consensus node that was previously inactivated for downtime
MsgTypePauseTemporarily pause the consensus node
MsgTypeUnpauseResume a previously paused consensus node
MsgTypeRegisterIdentityRecordsRegister new identity records
MsgTypeEditIdentityRecordModify an existing identity record
MsgTypeRequestIdentityRecordsVerifyRequest verification for an identity record
MsgTypeHandleIdentityRecordsVerifyRequestHandle incoming verification requests
MsgTypeCancelIdentityRecordsVerifyRequestCancel a previously made verification request

Parameters

NAMETYPEEXAMPLEDESCRIPTION
poor_network_messages[]stringMsgTypeSubmitProposal,MsgTypeSetNetworkProperties,…A list defining the type of messages allowed during poor network conditions.

CLI Syntax & Examples

note

Each CLI command and proposal process in KIRA requires specific permissions. These permissions must be added to the account's whitelist or obtained as sudo permissions for direct changes. Refer to the Roles & Permissions documentation for more details.

note

$SIGNER represents the transaction signer's account name or address. For instructions on setting common flags as environment variables, such as $FLAGS_TX and $FLAGS_QR, see the CLI Guide page.

Transactions

There is no transactions other than the governance proposals for this sub-module