معايير التشغيل
[toc]
مستوى الجذر
chain required
السلسلة ID التي يجب أن يتم تضمينها في كل معاملة. تستخدم لمنع هجمات إعادة التداول.
الهجوم المتكرر هو محاولة لإرسال معاملة صالحة إلى شبكة مختلفة عن تلك التي كانت موجهة لها. لأن chain هو جزء من الحمل المفيد للمعاملات الموقعة، يتم رفض المعاملة الموقعة لسلسلة واحدة من قبل النظراء الذين يستخدمون سلسلة أخرى ID.
| Type: | String |
|---|---|
| Env: | CHAIN |
chain = "00000000-0000-0000-0000-000000000000"CHAIN="00000000-0000-0000-0000-000000000000"public_key required
المفاتيح العامة للقرابة. يجب أن تستخدم أقرابة مؤكدات الإجماع BLS - المفاتيح الطبيعية.
| Type: | String, public key multihash |
|---|---|
| Env: | PUBLIC_KEY |
public_key = "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2"PUBLIC_KEY="ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2"private_key required
المفتاح الخاص للقرابة: يجب أن يطابق public_key؛ يجب أن تستخدم الأقران المؤكدة بالإجماع BLS-المفاتيح الطبيعية.
| Type: | todo private-key |
|---|---|
| Env: | PRIVATE_KEY |
private_key = "8926201CA347641228C3B79AA43839DEDC85FA51C0E8B9B6A00F6B0D6B0423E902973F"PRIVATE_KEY="8926201CA347641228C3B79AA43839DEDC85FA51C0E8B9B6A00F6B0D6B0423E902973F"trusted_peers
قائمة من أقرانهم الموثوقين
يجب أن يستخدم مؤكدون الإجماع مفاتيح BLS-القرابة العادية. لكل مؤكد، قم بتوفير إدخال متطابق trusted_peers_pop.
| Type: | صف من سلسلة الأقران. استخدم |
|---|---|
| Env: | TRUSTED_PEERS |
trusted_peers = [
"ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2@127.0.0.1:1337",
"ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77@127.0.0.1:1338",
]# as JSON
TRUSTED_PEERS='[
"ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2@127.0.0.1:1337",
"ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77@127.0.0.1:1338"
]'trusted_peers_pop
BLS إدخالات دليل على امتلاك المؤكّد الأقارب الموثوق بهم.
| Type: | صف من الأشياء مع حقل |
|---|---|
| Env: | TRUSTED_PEERS_POP |
trusted_peers_pop = [
{ public_key = "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2", pop_hex = "8515da750f81182aaba5c22fc9f03a01e81ed85e4495a2ca6b29a71c0c8549537e31e79cddf6ff285b9e22d0d9dc17ce0f46e7d0cf78b2ef9feab50c849a1ea8e1e4f07e966f6113faa8a999317545d9f111b8e08a7273913710b43a20b19c08" },
{ public_key = "ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77", pop_hex = "a14eb180f0d78c55d2c034e91ccf691378e9c3ceed8e0b81d3e4b7c215c0dbb633bb9f1c5063911c31af4610016c164015f0f93db3c7df6a2ad0c39338fe7695b976a59fd13797615f229fbd77276a8bb2842e4e44fadcafdb7b37f4a143b913" },
]# as JSON
TRUSTED_PEERS_POP='[
{"public_key":"ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2","pop_hex":"0x8515da750f81182aaba5c22fc9f03a01e81ed85e4495a2ca6b29a71c0c8549537e31e79cddf6ff285b9e22d0d9dc17ce0f46e7d0cf78b2ef9feab50c849a1ea8e1e4f07e966f6113faa8a999317545d9f111b8e08a7273913710b43a20b19c08"},
{"public_key":"ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77","pop_hex":"0xa14eb180f0d78c55d2c034e91ccf691378e9c3ceed8e0b81d3e4b7c215c0dbb633bb9f1c5063911c31af4610016c164015f0f93db3c7df6a2ad0c39338fe7695b976a59fd13797615f229fbd77276a8bb2842e4e44fadcafdb7b37f4a143b913"}
]'التكوين
genesis.file
مسار الملف إلى الحمل المفيد الذي تم إنشاؤه بواسطة kagami genesis sign. عادة ما تكتب ملفات الشخصية التي يتم إنشاؤها هذا باعتباره ملف Norito .nrt.
| Type: | String, file path (relative to the config file or CWD) |
|---|---|
| Env: | GENESIS |
[genesis]
file = "./genesis.signed.nrt"GENESIS="./genesis.signed.nrt"genesis.public_key required
مفتاح عام من زوج مفتاح جينيس
| Type: | String, public key multihash |
|---|---|
| Env: | GENESIS_PUBLIC_KEY |
[genesis]
public_key = "ed01208BA62848CF767D72E7F7F4B9D2D7BA07FEE33760F79ABE5597A51520E292A0CB"GENESIS_PUBLIC_KEY="ed01208BA62848CF767D72E7F7F4B9D2D7BA07FEE33760F79ABE5597A51520E292A0CB"الشبكة
network.address required
عنوان الاتصالات p2p لأغراض التوافق (sumeragi) وتزامن الكتلة (block_sync).
| Type: | String, socket address (host/IPv4/IPv6 + port) |
|---|---|
| Env: | P2P_ADDRESS |
[network]
address = "0.0.0.0:1337"P2P_ADDRESS=0.0.0.0:1337network.public_address required
العنوان بين الأقران (الخارجي، كما يرى أقرانهم الآخرون).
سيتم الإشاعات إلى أقرانهم المرتبطين حتى يتمكنوا من إشاعاتها لأقرانهم الآخرين.
| Type: | String, socket address (host/IPv4/IPv6 + port) |
|---|---|
| Env: | P2P_PUBLIC_ADDRESS |
[network]
public_address = "0.0.0.0:5000"P2P_PUBLIC_ADDRESS=0.0.0.0:5000network.block_gossip_size
كمية الكتل التي يمكن إرسالها في رسالة مزامنة واحدة.
| Type: | Number |
|---|---|
| Default: | 4 |
[network]
block_gossip_size = 256network.block_gossip_period_ms
الفاصل الزمني بين الطلبات من الأقران على أحدث كتلة.
الإشاعات المتكررة تقلل من وقت المزامنة، ولكن يمكن أن تزيد من عبء الشبكة.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 10_000 (10 seconds) |
[network]
block_gossip_period_ms = 1_000network.transaction_gossip_size
أقصى عدد من المعاملات في الرسالة الشائعة.
الحجم الأصغر يؤدي إلى وقت أطول للتزامن، ولكنه مفيد إذا كان لديك خسارة كبيرة من الحزم.
| Type: | Number |
|---|---|
| Default: | 500 |
[network]
transaction_gossip_size = 256network.transaction_gossip_period_ms
فترة الشائعات في انتظار المعاملة بين الأقران.
الإشاعات المتكررة تقلل من وقت المزامنة، ولكن يمكن أن تزيد من عبء الشبكة.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 1_000 (1 second) |
[network]
transaction_gossip_period_ms = 5_000network.idle_timeout_ms
مدة الوقت التي تنتهي فيها الاتصال مع الزملاء إذا كان الزملاء غير مشغولين.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 300_000 (5 minutes) |
[network]
idle_timeout_ms = 300_000Torii
torii.address required
العنوان الذي يجب أن يستمع إليه الخادم Torii والذي يقوم العميل بقدمه طلباته.
| Type: | String, socket address (host/IPv4/IPv6 + port) |
|---|---|
| Env: | API_ADDRESS |
[torii]
address = "0.0.0.0:8080"API_ADDRESS=0.0.0.0:8080torii.max_content_len
الحد الأقصى من البايتات في جسم الطلب الخام المقبول بواسطة نقاط نهاية Torii .
يستخدم هذا الحد لمنع الهجمات DOS.
| Type: | عدد (بالبايت) |
|---|---|
| Default: |
|
[torii]
max_content_len = 64_000_000torii.query_idle_time_ms
الوقت الذي يمكن أن يبقى فيه البحث في المتجر إذا لم يتم الوصول إليه.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 10_000 (10 seconds) |
[torii]
query_idle_time_ms = 10_000torii.query_store_capacity
الحد الأعلى لعدد الاستفسارات المباشرة.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity = 128torii.query_store_capacity_per_user
الحد الأعلى لعدد الاستفسارات المباشرة لمستخدم واحد.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity_per_user = 128الخشبية
logger.level
الكلمات العامة في التسجيل (انظر logger.filter للتكوين المعقّد).
| Type: | السلاسل، القيم المحتملة:
اختر المستوى الذي يناسب حالة الاستخدام الخاصة بك. راجع Stack Overflow للحصول على تفاصيل إضافية حول كيفية استخدام مستويات السجل المختلفة. |
|---|---|
| Default: | INFO |
| Env: | LOG_LEVEL |
[logger]
level = "INFO"LOG_LEVEL=INFOتحديث وقت التشغيل
هذه المعلمة تخضع لتحديث تشكيل وقت التشغيل من خلال نقاط نهاية عامل Torii.
logger.filter
مرشحات السجل المكررة بالإضافة إلى logger.level. يسمح بتخصيص صيغة التسجيل لكل هدف.
| Type: | السلسلة، تتكون من إحدى أو أكثر من المبادئ التوجيهية المنفصلة عن بعضها البعض بواسطة العنصرات. يمكن لكل إرشادة أن يكون لها مستوى أقصى للفصائل المقابلة الذي يسمح (على سبيل المثال، يختار) بالفترات والحداثات المتطابقة. تعتبر Iroha مستويات أقل حصراً (مثل على مستوى مرتفع، يتكون النصوصية للاتجاهات من عدة أجزاء: للحصول على مزيد من التفاصيل، انظر |
|---|---|
| Env: | LOG_FILTER |
[logger]
filter = "iroha_core=debug,iroha_p2p=debug"LOG_FILTER=iroha_core=debug,iroha_p2p=debugالموافقة مع logger.level
يعمل logger.filter مع logger.level ولا أحد يغطى الآخر.
على سبيل المثال، إذا logger.level يتم تعيينها INFO و logger.filter يتم تعيينها iroha_core=debug, ستكون مجموعة الصفحات الناتجة info,iroha_core=debug (أي info لجميع الوحدات، debug لـ iroha_core).
تحديث وقت التشغيل
هذه المعلمة تخضع لتحديث تشكيل وقت التشغيل من خلال نقاط نهاية عامل Torii.
logger.format
شكل السجلات.
| Type: | السلاسل، القيم المحتملة:
للحصول على مزيد من التفاصيل ومخرجات العينات، انظر |
|---|---|
| Default: | full |
| Env: | LOG_FORMAT |
[logger]
format = "json"LOG_FORMAT=jsonKura
Kura هو محرك التخزين المستمر لـ Iroha (اليابانية للتخزين).
kura.blocks_in_memory
في أقصى حد سيتم تخزين N الكتل الأخيرة في الذاكرة.
سيتم إسقاط الكتل القديمة من الذاكرة و تحميلها من القرص إذا لزم الأمر
| Type: | Number |
|---|---|
| Default: | 1024 |
| Env: | KURA_BLOCKS_IN_MEMORY |
[kura]
blocks_in_memory = 1024KURA_BLOCKS_IN_MEMORY=1024kura.init_mode
Kura وضع البدء
| Type: | السلاسل، القيم المحتملة:
|
|---|---|
| Default: | strict |
| Env: | KURA_INIT_MODE |
[kura]
init_mode = "fast"KURA_INIT_MODE=fastkura.store_dir
يحدد المجلد [^paths] حيث يتم تخزين الكتل.
انظر أيضاً: snapshot.store_dir.
| Type: | String, file path (relative to the config file or CWD) |
|---|---|
| Default: | ./storage |
| Env: | KURA_STORE_DIR |
[kura]
store_dir = "/path/to/storage"KURA_STORE_DIR=/path/to/storagekura.debug.output_new_blocks debug
العلامة تمكن من طباعة كتلة جديدة على الكونسول.
| Type: | todo bool |
|---|---|
| Default: | false |
| Env: | KURA_DEBUG_OUTPUT_NEW_BLOCKS |
[kura.debug]
output_new_blocks = trueKURA_DEBUG_OUTPUT_NEW_BLOCKS=trueالصف
queue.capacity
الحد الأعلى لعدد المعاملات التي تنتظر في الصف.
| Type: | Number |
|---|---|
| Default: | 65_536 |
[queue]
capacity = 1_048_576queue.capacity_per_user
الحد الأعلى لعدد المعاملات التي تنتظر في الصف لمستخدم واحد.
استخدم هذه الخيارة لتطبيق التدفق.
| Type: | Number |
|---|---|
| Default: | 65_536 |
[queue]
capacity_per_user = 1_048_576queue.transaction_time_to_live_ms
سيتم إلغاء المعاملة بعد هذا الوقت إذا كانت مازالت في الصف.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 86_400_000 (24 hours) |
[queue]
transaction_time_to_live_ms = 43_200_000Sumeragi
sumeragi.debug.force_soft_fork debug
مفتاح إزالة الأخطاء فقط لممارسة مسارات معالجة الشوكة الناعمة Sumeragi. اترك هذا المحذوف خارج الاختبارات السيطرة؛ تغييره على شبكة إنتاج جارية يمكن أن يجعل الأقران غير متفقين حول سلوك التوافق.
| Type: | todo bool |
|---|---|
| Default: | false |
[sumeragi.debug]
force_soft_fork = trueصورة سريعة
هذه الوحدة هي المسؤولة عن قراءة وصياغة اللقطات الفورية لـ World State View.
تخزن اللقطات الفورية نقطة تفتيش متسلسلة لمشاهدة الدولة العالمية بحيث يمكن للقرابة إعادة تشغيلها دون إعادة تشغل كل كتلة من Kura. Kura يبقى تاريخ الكتل الدائم ومصدر الحقيقة لإعادة تشغيله. عند البدء ، يقوم Iroha بتحقق من بيانات اللقطة الفورية ضد السلسلة التي تم تشكيلها والبلوكز المخزنة قبل اتخاذ قرار ما إذا كان يجب تحميل اللقطة أو العودة إلى التشغيل.
مسح اللقطات الفورية
في حال كان هناك خطأ ما مع نظام اللقطات الفورية، وترغب في البدء من صفحة فارغة (من حيث اللقطات فوريًا) ، يمكنك إزالة المجلد المحدد عن طريق snapshot.store_dir.
snapshot.mode
الوضع الذي يعمل فيه نظام Snapshot.
| Type: | السلاسل، القيم المحتملة:
|
|---|---|
| Default: | read_write |
| Env: | SNAPSHOT_MODE |
[snapshot]
mode = "readonly"SNAPSHOT_MODE=readonlysnapshot.create_every_ms
تردد اللقطات.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 600_000 (10 minutes) |
[snapshot]
create_every_ms = 60_000snapshot.store_dir
دليل حيث تخزين اللقطات.
انظر أيضاً: kura.store_dir
| Type: | String, file path (relative to the config file or CWD) |
|---|---|
| Default: | ./storage/snapshot |
| Env: | SNAPSHOT_STORE_DIR |
[snapshot]
store_dir = "/path/to/storage"SNAPSHOT_STORE_DIR="/path/to/storage"الهوائية
تقوم "التليميتريا" بتصدير تشخيص الأقران إلى مجمع التليميترية الخارجي. قم بتشغيل telemetry.name و telemetry.url عندما يتعين على النسيق أن يقدم تقريرًا إلى الجمع؛ فلتفوت القسم عندما لا تستخدم التليميتري .
name و url يجب أن تكون مزدوجة.
جميع القسم telemetry اختياري.
telemetry.name
اسم العقدة ليتم عرضها على جهاز التلفاز.
| Type: | String |
|---|
[telemetry]
name = "iroha"telemetry.url
WebSocket URL من جهاز جمع التلفاز.
| Type: | String |
|---|
[telemetry]
url = "ws://telemetry.example.com/submit"telemetry.min_retry_period_ms
الحد الأدنى لفترة الانتظار قبل إعادة الاتصال.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 1_000 (1 second) |
[telemetry]
min_retry_period_ms = 5_000telemetry.max_retry_delay_exponent
الحد الأقصى من 2 الذي يستخدم لزيادة التأخير بين الاتصالات.
| Type: | Number |
|---|---|
| Default: | 4 |
[telemetry]
max_retry_delay_exponent = 4dev_telemetry.out_file
طريق الملف للكتابة التلفزيونية إلى
| Type: | String, file path (relative to the config file or CWD) |
|---|
[dev_telemetry]
out_file = "/path/to/file.json"