پیدائش
پیدائش ابتدائی سلسلہ کی حالت کو بیان کرتی ہے۔ ایڈیٹیبل ماخذ ایک 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 منتخب کردہ پروفائل کے لئے عین مطابق فائلوں اور لانچ کمانڈز کو ریکارڈ کرتی ہے۔
ہم عمروں کی ترتیب
config.toml کے [genesis] سیکشن میں دستخط شدہ جنیسس ٹرانزیکشن پر ہم مرتبہ اشارہ:
[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.nrtNPoS یا Nexus پروفائلز کے لئے، ٹاپولوجی اور BLS پروفیل کی طرف سے پیدا ہونے والے پروفائل کی طرف سے مطلوب ملکیت کا ثبوت شامل کریں. Kagami localnet ، wizard، اور پروفائل جنریشن کمانڈ خود بخود ان تفصیلات کو سنبھالتے ہیں.
پیدائش کا دوبارہ آغاز
ایک ہم مرتبہ صرف اس وقت جینس کرتا ہے جب اس کا اسٹوریج خالی ہو۔ ایک disposable localnet میں نئی جینس کی جانچ کرنے کے لئے ، ہم مرتبہ کو روکیں ، ان کی تخلیق کردہ ریاستی ڈائرکٹری کو ہٹا دیں ، اور نئے دستخط شدہ جینس سے شروع کریں۔ چلنے والے نیٹ ورک پر جینس کی جگہ نہ لیں جب تک کہ ہر توثیق کنندہ اسی منتقلی کو مربوط نہیں کر رہا ہے۔