لین دین
ٹرانزیکشن بلاکچین پر کام انجام دینے کے لئے ایک دستخط شدہ درخواست ہے۔ قابل عمل پے لوڈ ہدایات ، ایک معاہدہ کال ، IVM بائٹ کوڈ ، یا ایک ثابت ہوا IVM عملدرآمد کا حکم ہوسکتا ہے. موجودہ معاہدے کے نفاذ کے ماڈل کے لئے ذہین معاہدوں دیکھیں.
ٹرانزیکشنز ریاست کو تبدیل کرنے یا قابل عمل کام انجام دیتے ہیں۔ صرف پڑھنے کی جانچ پڑتال دستخط شدہ سوالات یا عوامی پڑھنے کے اختتام پوائنٹس کا استعمال کرتی ہے اور کوئی ٹرانزیکtionشن نہیں بناتی۔
ایک پابند بلاک میں داخل ہونے والی ٹرانزیکشن کو اس کے عملدرآمد کے نتیجے کے ساتھ ذخیرہ کیا جاتا ہے، جس میں عملدرآمد سے انکار بھی شامل ہے۔ بلاک ایڈمنسٹریشن سے پہلے مسترد کی جانے والی درخواستیں، جیسے کہ غلط لفافہ یا قطار سے مسترد شدہ لین دین، کسی بلاک میں محفوظ نہیں کیے جاتے ہیں۔
پرائیویسی کو برقرار رکھنے والے اثاثوں کی نقل و حرکت کے لئے ، گمنام لین دین دیکھیں۔ گمنام ٹرانزیکشنز عوامی اکاؤنٹ سے اکاؤنٹ بیلنس میں تبدیلیوں کے بجائے شیلڈ اثاثہ نوٹ ، مصروفیات ، باطل کرنے والے اور صفر علم کے ثبوت استعمال کریں۔
منتخب شفاف عمل درآمد کے اثرات پر ثبوت ثبوت کے لئے، FastPQ دیکھیں. FastPQ معمول ٹرانزیکشن عملدرآمد کے بعد عملدرآمد گواہوں کو استعمال کرتا ہے اور معاون ریاستی منتقلی کے لئے تعیناتی ثبوت بیچوں کی تعمیر کرتا ہے.
Taira پر آزمائیں
سائننگ اکاؤنٹ کے بغیر حالیہ عوامی Taira بلاکس اور لین دین کی حیثیت کا معائنہ کرنے کے لئے تلاش کرنے والے راستوں کا استعمال کریں:
curl -fsS 'https://taira.sora.org/v1/explorer/blocks?page=1&per_page=3' \
| jq '{pagination, blocks: [.items[] | {height, hash, transactions_total, transactions_rejected}]}'
curl -fsS 'https://taira.sora.org/v1/explorer/transactions?page=1&per_page=5' \
| jq '{pagination, txs: [.items[] | {hash, block, status, executable}]}'کسی ٹرانزیکشن کی پیروی کرنے کے لئے جو آپ کی ایپ نے پہلے جمع کروائی ہے، اس فہرست سے hash کاپی کریں اور ایکسپلورر تفصیلات روٹ چیک کریں:
TX_HASH='<transaction-hash>'
curl -fsS "https://taira.sora.org/v1/explorer/transactions/$TX_HASH" \
| jq '{hash, block, status, authority, executable}'یہ ابھی تک صرف پڑھنے کے لئے ہے۔ ٹرانزیکشن جمع کروانے کے لئے ایک دستخط شدہ Norito لفافہ ، صحیح سلسلہ ID ، فیس میٹا ڈیٹا اور نل سے فنڈ شدہ Taira اکاؤنٹ کی ضرورت ہوتی ہے۔
فیس ادا کرنے والے مثالوں کے لئے Taira, سے نل کے مددگار کو بچانے ٹیسٹ نیٹ حاصل کریں XOR پر Taira کے طور taira_faucet_claim.py, پھر دستخط کنندہ کو سب سے پہلے عوامی نل کے ذریعے فنڈ دیں:
export TAIRA_ACCOUNT_ID='<TAIRA_I105_ACCOUNT_ID>'
export TAIRA_FEE_ASSET=6TEAJqbb8oEPmLncoNiMRbLEK6tw
curl -fsS https://taira.sora.org/v1/accounts/faucet/puzzle | jq .
python3 taira_faucet_claim.py "$TAIRA_ACCOUNT_ID"
iroha --config ./taira.client.toml ledger asset get \
--definition "$TAIRA_FEE_ASSET" \
--account "$TAIRA_ACCOUNT_ID"اگر نل پازل یا دعوے کا راستہ 502 واپس آتا ہے تو، ٹرانزیکشن خود کو ڈیبگ کرنے سے پہلے انتظار کریں اور دوبارہ کوشش کریں.
اس کے بعد ٹرانزیکشن جمع کروانے پر Taira فیس اثاثہ میٹا ڈیٹا شامل کریں:
printf '{"gas_asset_id":"%s"}\n' "$TAIRA_FEE_ASSET" > taira.tx-metadata.json
iroha --config ./taira.client.toml \
--metadata ./taira.tx-metadata.json \
ledger transaction ping --msg "faucet-funded taira transaction"آف لائن ٹرانزیکشنز
Iroha کے پاس دو آف لائن لین دین ورک فلوز ہیں:
- آف لائن دستخط ایک عام دستخط شدہ ٹرانزیکشن بناتا ہے جبکہ دستخط کرنے والا آلہ منقطع ہے۔ جب تک کہ آن لائن کلائنٹ Torii کو دستخط شدہ لفافہ پیش نہیں کرتا ، اس وقت تک یہ عمل پر عملدرآمد نہیں ہوتا ہے ، لہذا اسے ابھی بھی صحیح سلسلہ ID ، اتھارٹی ، اجازت نامے ، فیسوں اور لین دین کی زندگی کی ضرورت ہے۔
- کاگیموشا آف لائن نقد رقم آن لائن ہونے کے دوران ایک بٹوے کو ٹاپ کرتی ہے ، جب دونوں بٹوے آف لائن ہوں تو وصول کنندہ کی طرف سے شروع کردہ بٹوے سے بٹوے کی ترسیل کی حمایت کرتا ہے ، اور جب وصول کنندہ آن لائن واپس آجاتا ہے تو اس نتیجے میں نوٹ کی حالت کو تبدیل کر دیتا ہے۔
Torii /v1/offline/* کے تحت مکمل Kagemusha زندگی کا دورہ ظاہر کرتا ہے:
| طریقہ کار اور اختتامی نقطہ | مقصد |
|---|---|
GET /v1/offline/readiness | ایک asset_definition_id کے لئے Kagemusha کی تیاری کا اندازہ کریں |
POST /v1/offline/receiver-lineage | دستخط شدہ وصول کنندہ کی درخواست کے لئے ثبوت پر مبنی فعال رجسٹریشن نسب کو حل کریں |
POST /v1/offline/top-up | ایک دستخط شدہ آن لائن سے آف لائن بھرتی آپریشن جمع کرو |
POST /v1/offline/redeem | ایک دستخط شدہ آف لائن ریڈم آپریشن جمع کرو |
GET /v1/offline/operations/{operation_id} | ایک اضافی یا ریفریجریشن کی کینیکل حیثیت پڑھیں |
آف لائن آپریشن بنانے سے پہلے اثاثہ کی تیاری چیک کریں:
curl -fsS --get https://taira.sora.org/v1/offline/readiness \
--data-urlencode 'asset_definition_id=<canonical_asset_definition_id>' \
| jq '{ready, blockers, artifact_set}'تیاری والیٹ کو فعال پل ABI 21 اور مستند V4 آرٹیفیکٹ سیٹ سے جوڑتی ہے۔ نسب ، بھرنے اور بازیابی کی درخواستوں میں ٹائپ شدہ application/x-norito آرکائیو استعمال ہوتا ہے۔ آپریشن ریسورس کی طرف اشارہ کرنے والے Location ہیڈر کے ساتھ ٹاپ اپ اور ریفریجریشن ریٹرن 202 Accepted؛ ایمبیڈڈ غیر صفر آپریشن ID idempotency کلید فراہم کرتا ہے.
عام بہاؤ یہ ہے:
- اگر
readyغلط ہے یا کوئی بلاکٹر لاگو ہوتا ہے تو تیاری کی جانچ کریں اور روک دیں۔ - Swift یا JVM ٹائپ کردہ بٹوے کا استعمال کینیکل ٹاپ اپ آرکائیو بنانے، اسے جمع کروانے اور ان پٹ نوٹ کی حالت اور آپریشن ID دونوں کو برقرار رکھنے کے لئے جب تک کہ آپریشن حتمی سلسلہ کی حالت تک نہ پہنچ جائے۔
- جب ضرورت ہو تو وصول کنندہ رجسٹریشن نسب کو حل کریں، مقامی طور پر ہر ہم مرتبہ کی منتقلی کی تعمیر اور تصدیق کریں، اور منتقلی کو تسلیم کرنے سے پہلے خفیہ شدہ نوٹ کی حالت برقرار رکھیں.
- جب وصول کنندہ آن لائن ہو، تو کینیکل ریڈیمنٹ آرکائیو بنائیں، اسے جمع کروائیں، اور اس کے آپریٹنگ وسائل کو حتمی طور پر سروے کریں.
لیجر آن لائن لائف سائیکل کے ذریعے نوٹ کی حالت واپس آنے تک متضاد آف لائن منتقلی کا مشاہدہ نہیں کرسکتا ہے۔ لہذا بٹوے اور آپریٹر پالیسی کو قیمت کی حدود ، ختم ہونے والی مدت ، قبول شدہ جاری کرنے والے ، دیرپا مقامی اسٹوریج اور مصالحہ ونڈوز پر عملدرآمد کرنا چاہیے۔
یہاں Grant ہدایات کے ساتھ ایک نیا لین دین بنانے کی ایک مثال ہے۔ اس لین دین میں ، ماؤس ایلس کو مخصوص کردار (role_id) دے رہا ہے۔ مکمل مثال چیک کریں .
let grant_role = Grant::account_role(role_id, alice_id);
let grant_role_tx = TransactionBuilder::new(chain_id, mouse_id)
.with_instructions([grant_role])
.sign(mouse_private_key);