Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Public and Private keys of Iroha Peer
  • Kura configuration:
    • Kura Mode (strict or fast)
    • Block Store Path
  • Sumeragi configuration:
    • Peer Id
    • Block Time
    • List of Trusted Peers
    • Maximum Amount of Faulty Peers
    • Commit Time
    • Transaction Receipt Time
  • Torii configuration
    • Client-side URL
    • Peer-side URL
    • Maintenance URL
  • Block synchronization configuration:
    • Gossip Period
    • Batch Size
  • Queue configuration:
    • Maximum transactions in block
    • Transactions time to live
  • Logger configuration:
    • Maximum Logging Level
    • Terminal Color Enabled
    • Date Time Format
  • Initial configuration is out-of-scope because will be solved in Genesis Block and Network Setup

Documentation for configuration can be found here.

Now we can analyze each parameter with several criterias:

List of Trusted Peers URL + No
ParameterPossible ValuesDefault ValueShould it be synchronized between PeersShould it pass consensusCan it be applied without restartWill it affect clients

block_sync.batch_size

unsigned 32 bit integer4Yes?Key PairValid Key HashNoNoYesYesKura ModeNo

block_sync.gossip_period

unsigned 128 bit integer10_000YesYesstrict/fastNoNoYesNoBlock Store Path

kura.block_store_path

Valid Unix path
"./blocks"
NoNoWith additional developmentNo

kura.init_mode

strict/fast
strict
NoPeer IdValid URL + Key HashYes (Other Peers should update old Id to the new one)NoWith additional developmentNo

logger.max_log_level

TRACE/INFO/DEBUG/WARN/ERROR
DEBUG
NoNoYesNo

key_pair

Valid Key Hash
NoNoYesYes

queue.maximum_transactions_in_block

unsigned 32 bit integer
8192
YesYesYesNoBlock Time

queue.maximum_transactions_in_queue

unsigned 32 bit integer65536

Yes

queue.transaction_time_to_live

unsigned 128 bit integer
86400000(ms)
YesYesYesNoMaximum amount of Faulty Peers

sumeragi.block_time

unsigned 32 128 bit integer
1000(ms)
YesYesYesNoCommit Time

sumeragi.commit_time

unsigned 128 bit integer
1000(ms)
YesYesYesNoTransaction Receipt Time

sumeragi.max_faulty_peers

unsigned 128 32 bit integer0YesYesYesNoClient-side URLValid URLNo

sumeragi.max_instruction_number_per_tx

unsigned 32 bit integer4096Yes
Yes

sumeragi.n_topology_shifts_before_reshuffle

unsigned 32 bit integer1Yes
YesPeer-side URL

sumeragi.peer_id

Valid URL + Key Hash
Yes (Other Peers should update old Id to the new one)NoWith additional developmentYes
NoMaintenance URL

sumeragi.trusted_peers

Valid URL + Key HashNo[]NoYesYesYesGossip PeriodNo

sumeragi.tx_receipt_time

unsigned 128 bit integer
200(ms)
YesYesYesNoBatch Size

torii.api_url

Valid URL
"127.0.0.1:8080"
NoNo
Yes

torii.max_instruction_number

unsigned 32 bit integerYes?
4096


YesYesNoMaximum Transactions Block

torii.max_sumeragi_message_size

unsigned 32 bit integerYes?
16384000


YesYesNo
Transaction Time to Liveunsigned 128 bit integerYes?YesYesNo

torii.max_transaction_size

unsigned 32 bit integer32768

Yes

torii.p2p_url

Valid URL
"127.0.0.1:1337"
YesNo
No

torii.Maintenance URL

Valid URLMaximum Logging LevelTRACE/INFO/DEBUG/WARN/ERROR
NoNo
YesNo
Terminal Color Enabledtrue/falseNoNoYesNo

wsv.account_metadata_limits

Byte size and UTF length4096, 1048576

Yes

wsv.asset_metadata_limits

Byte size and UTF length4096, 1048576

Yes

wsv.length_limits

Range[1; 128]

YesDate Time FormatStringNoNoYesNo

Solution

So solution may be to use Iroha Special Instructions for management consensus dependent parameters like "Gossip Period", storing set of parameters under a Peer entity in World State View and propagating these parameters and their updates into subsystems via Iroha channels.

...