Skip to content

Müqəddəs Kitab

Genesis başlanğıc silsilə vəziyyətini təyin edir. Düzenlənə bilən mənbə JSON manifestidir və Iroha 3 düyün imzalanmış Norito əməliyyat faylini istehlak edir.

Default genesis manifestı
json
{
  "chain": "00000000-0000-0000-0000-000000000000",
  "chain_discriminant": 753,
  "consensus_fingerprint": "0x65fdcf7c51004c91602cc8cec2b470ea96918fab2985a79044ae6ddf77416447",
  "consensus_mode": "Npos",
  "sumeragi_v2": {"da_layout":{"encoding":{"encoding":"reed_solomon16","details":null},"chunk_size_bytes":262144,"data_shards":4,"parity_shards":2,"max_payload_size_bytes":16777216,"max_chunk_count":1024},"nexus_amx_context_hash":"6611CDC66348BEBFBD583F888864A747DCC828C5FE84F58DFB0346CCA27ABAF3"},
  "crypto": {
    "allowed_curve_ids": [
      1,
      3,
      4
    ],
    "allowed_signing": [
      "ed25519",
      "secp256k1",
      "bls_normal"
    ],
    "default_hash": "blake2b-256",
    "sm2_distid_default": "1234567812345678",
    "sm_intrinsics": "auto",
    "sm_openssl_preview": false
  },
  "executor": null,
  "ivm_dir": ".",
  "transactions": [
    {
      "instructions": [
        {
          "Register": {
            "Domain": {
              "id": "wonderland.universal",
              "logo": null,
              "metadata": {
                "key": "value"
              }
            }
          }
        },
        {
          "Register": {
            "Account": {
              "id": "sorauロ1PノウヌmEエWオebHム6ヤルイヰiwuCWErJ7uスoPGアヤnjムKヒTCW2PV",
              "label": null,
              "metadata": {
                "key": "value"
              },
              "uaid": null
            }
          }
        },
        {
          "Register": {
            "Account": {
              "id": "sorauロ1NアサクYSafヌキヰc5ヌトVxマ9jLZヱヒzsKqurハリ9ク3eエAカD54TDT",
              "label": null,
              "metadata": {
                "purpose": "fee_sponsor_vault_custody"
              },
              "uaid": null
            }
          }
        },
        {
          "Register": {
            "AssetDefinition": {
              "confidential_policy": {
                "mode": "TransparentOnly",
                "pedersen_params_id": null,
                "pending_transition": null,
                "poseidon_params_id": null,
                "vk_set_hash": null
              },
              "id": "62Fk4FPcMuLvW5QjDGNF2a4jAmjM",
              "logo": null,
              "metadata": {},
              "mintable": "Infinitely",
              "spec": {
                "scale": null
              },
              "name": "rose"
            }
          }
        },
        {
          "Register": {
            "Domain": {
              "id": "garden_of_live_flowers.universal",
              "logo": null,
              "metadata": {}
            }
          }
        },
        {
          "Register": {
            "Account": {
              "id": "sorauロ1PyXノspjg6gnvエ1メムLネオBトEwtテD8Rクヌgヲホセレカ7エvWUJA5A",
              "label": null,
              "metadata": {},
              "uaid": null
            }
          }
        },
        {
          "Register": {
            "AssetDefinition": {
              "confidential_policy": {
                "mode": "TransparentOnly",
                "pedersen_params_id": null,
                "pending_transition": null,
                "poseidon_params_id": null,
                "vk_set_hash": null
              },
              "id": "5CJ6HCMxWw9xhuHmxDrzEfWGeE7M",
              "logo": null,
              "metadata": {},
              "mintable": "Infinitely",
              "spec": {
                "scale": null
              },
              "name": "cabbage"
            }
          }
        }
      ],
      "ivm_triggers": [],
      "parameters": {
        "block": {
          "max_transactions": 512
        },
        "custom": {
          "ivm_gas_limit_per_block": {
            "id": "ivm_gas_limit_per_block",
            "payload": 1680000
          },
          "sumeragi_npos_parameters": {
            "id": "sumeragi_npos_parameters",
            "payload": {
              "activation_lag_blocks": 1,
              "epoch_length_blocks": 3600,
              "epoch_seed": "A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5",
              "evidence_horizon_blocks": 7200,
              "finality_margin_blocks": 8,
              "max_entity_correlation_pct": 25,
              "max_nominator_concentration_pct": 25,
              "max_validators": 128,
              "min_nomination_bond": 1,
              "min_self_bond": 1000,
              "seat_band_pct": 5,
              "slashing_delay_blocks": 259200,
              "vrf_commit_window_blocks": 100,
              "vrf_reveal_window_blocks": 40
            }
          }
        },
        "executor": {
          "execution_depth": 3,
          "fuel": 55000000,
          "memory": 1048576
        },
        "smart_contract": {
          "execution_depth": 3,
          "fuel": 55000000,
          "memory": 1048576
        },
        "sumeragi": {
          "block_cadence_ms": 100,
          "key_activation_lead_blocks": 1,
          "key_allowed_algorithms": [
            "bls_normal"
          ],
          "key_allowed_hsm_providers": [
            "pkcs11",
            "yubihsm",
            "softkey"
          ],
          "key_expiry_grace_blocks": 0,
          "key_overlap_grace_blocks": 8,
          "key_require_hsm": false,
          "max_clock_drift_ms": 1000},
        "transaction": {
          "ivm_bytecode_size": 4194304,
          "max_decompressed_bytes": 10485760,
          "max_instructions": 20000,
          "max_metadata_depth": 8,
          "max_signatures": 16,
          "max_time_to_live_ms": 86400000,
          "max_tx_bytes": 10485760,
          "require_height_ttl": false,
          "require_sequence": false
        }
      },
      "topology": []
    },
    {
      "instructions": [
        {
          "Mint": {
            "Asset": {
              "destination": "62Fk4FPcMuLvW5QjDGNF2a4jAmjM#sorauロ1PノウヌmEエWオebHム6ヤルイヰiwuCWErJ7uスoPGアヤnjムKヒTCW2PV",
              "object": "13"
            }
          }
        },
        {
          "Mint": {
            "Asset": {
              "destination": "5CJ6HCMxWw9xhuHmxDrzEfWGeE7M#sorauロ1PノウヌmEエWオebHム6ヤルイヰiwuCWErJ7uスoPGアヤnjムKヒTCW2PV",
              "object": "44"
            }
          }
        },
        {
          "Transfer": {
            "AssetDefinition": {
              "destination": "sorauロ1PノウヌmEエWオebHム6ヤルイヰiwuCWErJ7uスoPGアヤnjムKヒTCW2PV",
              "object": "62Fk4FPcMuLvW5QjDGNF2a4jAmjM",
              "source": "sorauロ1Nノマ2スヘネdmcLfDBwoスリシoF5sHeカdカQbネxGVヰ8tCホ4P4KX7"
            }
          }
        },
        {
          "Grant": {
            "Permission": {
              "destination": "sorauロ1PノウヌmEエWオebHム6ヤルイヰiwuCWErJ7uスoPGアヤnjムKヒTCW2PV",
              "object": {
                "name": "CanSetParameters"
              }
            }
          }
        },
        {
          "Grant": {
            "Permission": {
              "destination": "sorauロ1PノウヌmEエWオebHム6ヤルイヰiwuCWErJ7uスoPGアヤnjムKヒTCW2PV",
              "object": {
                "name": "CanRegisterAccount"
              }
            }
          }
        }
      ],
      "ivm_triggers": [],
      "topology": []
    }
  ],
  "wire_protocol_version": 3
}

Dosyalar

Upstream repository default manifestini defaults/genesis.json ünvanına göndərir. Kagami tərəfindən istehsal olunan şəbəkələr öz manifesti və imzalanmış əməliyyatlarını çıxışı dizaynına yazırlar:

bash
cargo run --bin kagami -- localnet --build-line iroha3 --peers 4 --out-dir ./localnet

Bu dizaynda yaradılan README.md seçilmiş profil üçün dəqiq faylları və başlatma əmrlərini qeyd edir.

Tərəflər arasındakı seçim

config.toml [genesis] bölməsində imzalanmış genesis əməliyyatı ilə əlaqəli rəfiqələr:

toml
[genesis]
file = "./genesis.signed.nrt"
public_key = "ed0120..."

Şəbəkədəki bütün həmyaşıdlar imzalanmış genesis əməliyyatı və genesis ictimai açarı barədə razılığa gəlməlidirlər.

Qədim Mövzunun imzalanması

Manifesti əl ilə redaktə edirsinizsə, həmyaşıdları başlamadan əvvəl təsdiqləyin və imzalayın:

bash
cargo run --bin kagami -- genesis validate ./genesis.json
cargo run --bin kagami -- genesis sign ./genesis.json \
  --private-key "$GENESIS_PRIVATE_KEY_HEX" \
  --algorithm ed25519 \
  --out-file ./genesis.signed.nrt

NPoS və ya Nexus profilləri üçün topoloji və BLS Yaradılmış profil tərəfindən tələb olunan mülkiyyət sübutları daxil edin. Kagami localnet, wizard və profil istehsalı əmrləri həmin detalları avtomatik olaraq idarə edir.

Yaradılışın yenidən qurulması

Bir həmyaşıd yalnız saxlama boş olduğu zaman genesi həyata keçirir.Birbaşa istifadə edilə bilən lokal şəbəkədə yeni bir genesi sınaqdan keçirmək üçün həmyaşıdıları dayandırın, istehsal olunan dövlət dizini çıxarın və yeni imzalanmış genesisdən başlayın. Hər təsdiqçi eyni miqrasiyanı əlaqələndirmədiyi təqdirdə işləyən şəbəkədə genesi əvəz etməyin.