בראשית
בראשית מגדירה את מצב שרשרת הראשונית. המקור העורך הוא מוניסט JSON, ונקודה Iroha 3 צורכת קבוצה של עסקאות חתומה Norito.
מוניפסט הגנזה מקובל
{
"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
}קבצים
המאגר העליון שלח מוניסטר מקובל ב defaults/genesis.json. רשתות שנוצרו על ידי Kagami כותבים את המוניסטר שלהם וטראנזציה חתומה לתוך מדריך ההוצאה:
cargo run --bin kagami -- localnet --build-line iroha3 --peers 4 --out-dir ./localnetהמוצר README.md במגוון זה רשום את הקבצים המדויקים ואת פקודות ההתחלה עבור הפרופיל הנבחר.
הגדרת השותפים
עמיתים מצביעים על העסקה המותחתנת של הגנזה בנקודת [genesis] של config.toml:
[genesis]
file = "./genesis.signed.nrt"
public_key = "ed0120..."כל השותפים ברשת חייבים להסכים על העסקה הנחתמה של גנזה והפתח הציבורי של הגנזה.
חתימה על בראשית
אם תדיר את המניפסט ביד ידנית, תעודד ותחתום עליו לפני שתתחיל עם עמידים:
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 או Nexus, לכלול את הטופולוגיה ואת BLS הוכחות רכוש הנדרשות על ידי הפרופיל המוצר. Kagami localnet, wizard והפקודות לייצור פרופיל מטפלות בפרטים אלה באופן אוטומטי.
החזרת בראשית
עמיתים מבצעים גנזה רק כאשר האחסון שלו ריק. כדי לבחון גנזה חדשה ברשת מקומית חד פעמית, לעצור את העמיתים, להסיר את תיווך המדינה המוצא שלהם ולהתחיל מהגנזה החדשה חתומה. אל תחליפו את הגנזה ברשת פועלת אלא אם כל מתוקן מתואם את אותה מיגרציה.