በ SORA 3 ላይ ይገንቡ: Taira እና Minamoto
SORA 3 በአፕሊኬሽኑ ላይ የተገነባ የህዝብ ማሰማራት ትራክ ነው Iroha 3 እና SORA Nexus. በመጀመሪያ በ Taira ላይ ይገንቡ እና ይለማመዱ ፣ ከዚያ ተመሳሳይ የደንበኛ ቅርፅ ወደ Minamoto የሚንቀሳቀሱት ለልዩ ዋና አውታረ መረብ ቁልፎች ሲኖሩዎት ብቻ ነው ፣ ክፍያዎች እውነተኛ XOR እና የምርት ማረጋገጫ።
ይህ መመሪያ ለሕዝብ SORA 3 አውታረ መረቦች የ Iroha ደንበኛ እንዴት እንደሚዋቀር ያሳያል:
- Taira የሙከራ መረብ በ
https://taira.sora.org - Minamoto ዋና መረብ በ
https://minamoto.sora.org
Taira ን ለመዋሃድ ሙከራዎች ፣ በቧንቧ የተደገፉ የጽሑፍ ካናሪዎችን እና የማሰማራት ልምምዶችን ይጠቀሙ ። Minamoto ን ለምርታማነት ዝግጁ ዋና አውታረመረብ እንቅስቃሴ ብቻ ይጠቀሙ። ሁለቱም አውታረመረቦች በ XOR ውስጥ ክፍያ ያስከፍላሉ-
- Taira ከሕዝብ ቧንቧው የተገኘ የሙከራ መርጃ XOR ይጠቀማል.
- Minamoto እውነተኛ XOR ይጠቀማል Minamoto ቧንቧ የለም።
የግንባታ መንገድ
| ደረጃ | Taira የሙከራ ኔት | Minamoto ማይንት |
|---|---|---|
| የአውታረ መረብ ሁኔታን ማንበብ ጀምር | ጥያቄ /status ያለ ቁልፍ | ጥያቄ /status ያለ ቁልፍ |
| የውሂብ ቦታ ይምረጡ | አፕሊኬሽኑ የሚተዳደር ጎዳና ካልፈለገ በስተቀር universal ይጠቀሙ። | ተመሳሳይ የመረጃ ቦታን መጠቀም የሚቻለው ከዋናው አውታረመረብ ማጽደቅ በኋላ ብቻ ነው |
| የክፍያ ገቢ ያግኙ ። | የሕዝብ Taira ቧንቧ ይጠቀሙ። | XOR ከገንዘብ የተደገፈ Minamoto ሂሳብ ወይም ከተፈቀደለት የግምጃ ቤት ፍሰት ያግኙ |
| ሙከራ ይጽፋል | በቧንቧ የተደገፈ ሙከራ ይጠቀሙ XOR | የሙከራ መሳሪያ አይጠቀሙ; እውነተኛ ወጪ ይጽፋል XOR |
| ማስተዋወቅ | ሎጂክ, ክትትል, እና ፊርማ አያያዝ እንደገና ይሞክሩ | የተለዩ ቁልፎችን፣ የገንዘብ ድጋፍ እና የመልቀቂያ ቁጥጥር ይጠቀሙ |
ተግባራዊ ፍሰት:
- ደንበኛው Taira ላይ ይገንቡ እና የህዝብ
universalየመረጃ ቦታን ይጠቀሙ. - አንድ ፊርማ ይጨምሩ እና Taira ቧንቧ ጋር የገንዘብ ድጋፍ.
- ስህተቶች አሰልቺ እና ሊታዩ እስኪችሉ ድረስ የመተግበሪያዎን አመክንዮ በ Taira ላይ ይለማመዱ ።
- የተለየ Minamoto ፊርማ ይፍጠሩ, ከእውነተኛ XOR ጋር የገንዘብ ድጋፍ ያድርጉት, እና ወደ ዋናው ኔትወርክ ተመሳሳይ የተረጋገጡ ስራዎችን ብቻ ያስተላልፉ.
1. የምታስቀመጡትን ነገር መረዳት
በ SORA Nexus ውስጥ የውሂብ ቦታ የአውታረ መረብ ጎዳና እና የመመሪያ ካታሎግ አካል ነው ። አንድ ደንበኛ client.toml ን በመቀየር ብቻ አዲስ የህዝብ ውሂብ ቦታ አይፈጥርም ። የደንበኛው ማዋቀር ሁለት ነገሮችን ያደርጋል-
- ደንበኛው ወደ ቀኝ Torii መጨረሻ ነጥብ ያመለክታል
- ለካኖኒካል መለያው የጎራ እና የመረጃ ቦታን የማዞሪያ አውድ ይመርጣል ።
AccountId ሁሌም መደበኛ እና ጎራ የሌለው ነው። በ client.toml ውስጥ ያለው [account].domain እሴት የጉዞ እና የአጠራር አውድ ያቀርባል ፣ እሱ የመለያ መታወቂያ አካል አይሆንም። ለአብዛኞቹ መተግበሪያዎች ከህዝብ universal የውሂብ ቦታ ይጀምሩ ። የጎራ አውድ domain.dataspace ቅፅን ይጠቀማል ፣ ለምሳሌ፡
wonderland.universalአዲስ የድርጅት የውሂብ ክልል ከፈለጉ ከተለመደው የደንበኛ መለያ ለመመዝገብ ከመሞከር ይልቅ ካታሎግ እና የመመሪያ ሀሳብ ያዘጋጁ። ከዚህ በታች የአዲስ የውሂብ ክፍል ማቅረብ ይመልከቱ.
የህዝብ Torii መጨረሻ ነጥብ ይመልከቱ።
ፊርማውን ከማዋቀርዎ በፊት የዒላማው መጨረሻ ነጥብ ቀጥተኛ መሆኑን ያረጋግጡ ።
ለ Taira:
curl -fsS https://taira.sora.org/status \
| jq '{peers, blocks, txs_approved, queue_size}'ለ Minamoto:
curl -fsS https://minamoto.sora.org/status \
| jq '{peers, blocks, txs_approved, queue_size}'የአውታረ መረብ የተጋለጠውን የውሂብ ቦታ እና የመንገድ እይታ ይፈትሹ:
curl -fsS https://taira.sora.org/status \
| jq '.teu_lane_commit[] | {lane_id, alias, dataspace_id, dataspace_alias, visibility}'ለዋና አውታረ መረብ ተመሳሳይ ትዕዛዝ ከ https://minamoto.sora.org/status ጋር ይጠቀሙ።
Taira ለወኪሎች MCP
Taira ለወኪል አሂድ ጊዜዎች የ Torii-አፍ መፍቻ ሞዴል አውታረ መረብ (MCP) ድልድይንም ያጋልጣል ። አንድ ወኪል በቀጥታ የሙከራ ኔት ንባቦችን ፣ ስክሪፕት ምርመራዎችን ወይም በጥብቅ የተከለከሉ የጽሑፍ ልምምዶችን ሲፈልግ በመጀመሪያ ብጁ Torii ደንበኛ ሳይገነቡ ይጠቀሙበት።
| ማዘጋጀት | ዋጋ |
|---|---|
| MCP መጨረሻ ነጥብ | https://taira.sora.org/v1/mcp |
| የአውታረ መረብ | https://taira.sora.org |
| የታሰበበት አጠቃቀም | Taira የሙከራ አውታረ መረብ ማንበብ እና ቧንቧ-የተደገፈ መጻፍ ልምምድ |
| የምርት እኩልነት | ይህንን ጽሑፍ በ Minamoto ላይ አያመለክቱ ፣ የዋና አውታረመረብ MCP መጨረሻ ነጥብ እና የመልቀቂያ ቁጥሮች በግልጽ ካልተፈፀሙ በስተቀር ። |
ፊርማ ቁሳቁስ ከመጨመርዎ በፊት የድልድይ ሜታዳታውን ያረጋግጡ:
curl -fsS https://taira.sora.org/v1/mcp \
| jq '{protocolVersion, server: .serverInfo.name, tools: .capabilities.tools.count}'URL ን እንደ ተጠቃሚ አካባቢያዊ MCP አገልጋይ በኤጀንት አሂድ ጊዜ ላይ ያዋቅሩ. የኤጀንት MCP ውቅርን ፣ API ቶከኖችን ፣ የተላለፉ የደራሲ ራስጌዎችን ፣ authority ወይም private_key እሴቶችን ወደዚህ ሰነድ ሪፖ ወይም የመተግበሪያ ሪፖ አይገቡ።
Taira ጋር በጥሩ ሁኔታ የሚሠሩ ወኪል ፈጣን ደንቦች:
- ከመደወልዎ በፊት MCP አገልጋይ ላይ ያሉትን መሳሪያዎች ያግኙ; አገልጋዩ
listChangedሪፖርት ካደረገ እንደገና ያግኙ። - የተመረጡትን
iroha.መሳሪያዎች ከ ጥሬውtorii.መሳሪያዎች ይመርጣሉ። - ማንበብ ብቻ ይጀምሩ: የጽሑፍ ጥያቄ ከመጠየቅዎ በፊት የአስተዳደር ሁኔታን, ሂሳቦችን, ንብረቶችን, ቅጽል ስሞችን, ብሎኮችን እና የግብይት ሁኔታን ያረጋግጡ.
- የቀጥታ የሙከራ አውታረ መረብ ለውጦች በፊት በግልጽ የሰውን መመሪያ ይጠይቁ። አስቀድሞ ለተፈረሙ የግብይት ፖስታዎች
iroha.transactions.submit_and_waitይጠቀሙ ፣ ስለሆነም ወኪሉ ውጤቱን ከማቅረብ ይልቅ ይጠብቃል ። - በኤጀንት ምላሽ ውስጥ የግብይት ሃሽ, የመጨረሻ ሁኔታ እና የአገልጋይ ማረጋገጫ ስህተቶችን ለማጠቃለል.
ከወኪሎች ጋር የልማት የስራ ፍሰት
ለ Iroha ደንበኞች፣ የግብይት ገንቢዎች፣ የምርመራ ስክሪፕቶች እና የሙከራ አውታረመረብ ሩጫ መጽሐፍት እንደ ልማት ረዳቶች ወኪሎችን ይጠቀሙ። የወኪሉን ስልጣን ጠባብ ያድርጉ: ኮዱን መመርመር፣ Taira ሁኔታን ማንበብ፣ ለውጦችን ማቀናበር እና አካባቢያዊ ሙከራዎችን ማድረግ ይችላል፤ ነገር ግን አንድ ሰው ትክክለኛውን አሠራር እስኪያጸድቅ ድረስ የቀጥታ አውታረመረብን መቀየር የለበትም.
ተግባራዊ የሆነ የስራ ፍሰት:
- ወኪሉ ኮድ ከመጻፉ በፊት አግባብነት ያላቸውን ሰነዶች ፣ SDK ኮድ ፣ CLI ትዕዛዝ ወይም MCP መሳሪያ መርሃግብር እንዲመረምር ይጠይቁ።
- ወኪሉ መጀመሪያ አነስተኛውን የደንበኛ መንገድ እንዲጽፍ ያድርጉት-የስቴቱ ማረጋገጫ፣ የመለያ ፍለጋ፣ የአጠራር ጥራት ወይም የሂሳብ ሚዛን ፍለጋ።
- የግብይት ግንባታ ኮድ ማከል የሚቻለው በ Taira ላይ ብቻ ከተነበቡ በኋላ ብቻ ነው።
- የቀጥታ አውታረመረብ ሙከራዎች ለምሳሌ ከ
TAIRA_LIVE=1በስተጀርባ ይከተሉ ፣ ስለሆነም መደበኛ የአሃድ የሙከራ ሩጫ በጭራሽ ለሙከራ አውታረ መረብ ገንዘብ አያወጣም ወይም በኔትወርክ ተገኝነት ላይ የተመሠረተ አይደለም። - ወኪሉ ማንኛውንም ግብይት ከማቅረብዎ በፊት የኔትወርክ ሥር ፣ ሰንሰለት ፣ ባለስልጣን ሂሳብ ፣ የትእዛዝ ማጠቃለያ ፣ የዋጋ አክሲዮን እና የሚጠበቀው የስቴት ለውጥ ሪፖርት እንዲያደርግ ይጠይቁ።
- ወደ CI ወይም ዋነኛ የስራ ፍሰቶች ከማስተዋወቅዎ በፊት ለስውር አያያዝ ፣ እንደገና ለመሞከር ባህሪ ፣ ለ idempotency እና ውድቅ አያያዝ የተፈጠረውን ኮድ ይገምግሙ ።
ለልማት ጠቃሚ የንባብ-ብቻ MCP መሳሪያዎች የመለያ ሀብት ፍለጋዎችን ፣ የማጠራቀሚያ መፍትሄን ፣ የብሎክ ፍለጋን ፣ የግብይት ፍለጋውን ፣ የግብይቶች ዝርዝሮችን እና የቧንቧ መስመር ሁኔታን ለመፈተሽ ያካትታሉ ። የተፈረሙ ጥቅማጥቅሞችን ከማቅረባቸው በፊት እምነትን ለመገንባት እነዚህን ይጠቀሙ።
Use Taira MCP as a read-only inspector while developing this Iroha feature.
Inspect available iroha.* tools, verify the target account and asset state,
then update the client code. Do not submit transactions unless I explicitly
say "submit this transaction".በወኪሎች አማካኝነት የግብይት የሥራ ፍሰት
የ MCP ድልድይ የተፈረመ Iroha ግብይት ማቅረብ ይችላል ፣ ግን መደበኛውን የግብይት መስፈርቶችን አያስወግድም ። አንድ ግብይት አሁንም ትክክለኛ ባለስልጣን ፣ ፈቃዶች ፣ የክፍያ የገንዘብ ድጋፍ ፣ ሰንሰለት ID ፣ ሜታዳታ እና ፊርማ ይፈልጋል።
ጥሬ Iroha ግብይቶች፣ የግብይት ፖስታን በመገንባት እና በ SDK ወይም CLI በመጀመሪያ, ከዚያም ወኪል ብቻ እንደ encoded የተፈረሙትን ቀኖናዊ የግብይት ባይቶች መስጠት body_base64. ወኪሉ መልዕክቱን በ iroha.transactions.submit_and_wait, ወይም ያቅርቡ iroha.transactions.submit እና የምርመራ ጋር iroha.transactions.wait.
የግል ቁልፎችን በኤጀንት ግብይት ውስጥ አይጣበቁ። አንድ ኤጀንት ግብይትን ለመገንባት ከፈለገ የተጠቃሚውን ሩጫ ጊዜ አካባቢ ፣ የቁልፍ ሰንሰለት ፣ የሃርድዌር ፊርማ ወይም ችላ የተባለውን የሙከራ አውታረመረብ ውቅር ፋይል ሚስጥሮችን በሚጭነው አካባቢያዊ ኮድ ላይ ያነጣጥሩት ። ወኪሉ ቁልፍ ቁሳቁሶቹን በጭራሽ ወደ ማርክዳውን ፣ ማጣቀሻዎች ፣ መዝገቦች ወይም ግዴታዎች መጻፍ የለበትም ።
ግብይት ከማቅረብዎ በፊት ወኪሉ አጭር የግብይት ዕቅድ እንዲያዘጋጅ ያድርጉት:
network: Taira የሙከራ ኔትወርክ ሥር እና ሰንሰለት IDauthority: ፊርማ እና ክፍያ የሚከፍል ሂሳብinstructions: የምዝገባ፣ የማዕድን ማውጫ፣ ማቃጠል፣ ማስተላለፍ፣ ሜታዳታ፣ ፈቃድ ወይም የውል ጥሪ ማጠቃለያ።fee asset: በ Taira ላይ የሚከፈልበት ንብረትpreflight reads: ቀድሞውኑ የተከናወኑ የሂሳብ፣ የንብረት ሚዛን፣ ፍቃዶች፣ ቅጽል ስሞች ወይም የብሎክ ምርመራዎችexpected result: ከተረጋገጠ በኋላ ሊታይ የሚገባው ሁኔታidempotency: ተመሳሳይ ጥያቄ እንደገና ከተጠየቀ ምን ይሆናል?
ከቀረበ በኋላ ወኪሉ የደረጃ ሁኔታን እስኪጠብቅ ያድርጉት ፣ ከዚያ የአቋም ለውጥን በማንበብ መጠይቅ ያረጋግጡ ። ጠቃሚ የማጠናቀቅ ሪፖርት የሚከተሉትን ያካትታል
- የግብይት ሃሽ
- እንደ
Committed,Applied,RejectedወይምExpiredያሉ የደረጃ ደረጃዎች - የብሎክ ወይም የማሰስ ዝርዝሮች በሚገኙበት ጊዜ
- የማረጋገጫ ውጤቶች
- ውድቀት መልዕክት እና አለመሳካቱ እንደ ፍቃዶች ፣ ክፍያዎች ፣ ማረጋገጫ ፣ የቆየ ሁኔታ ወይም የጨረታ ነጥብ ተደራሽነት ይመስላል
ምሳሌ ተጠብቆ ወዲያውኑ:
Prepare a Taira transaction plan, but do not submit yet. Use MCP reads to
verify the authority account, fee balance, target asset or alias, and current
transaction status if a hash already exists. Show the exact instructions and
expected post-state. Wait for my explicit "submit" message before calling
iroha.transactions.submit_and_wait.የተፈረመው ፖስታ ቀድሞውኑ ሲዘጋጅ:
Submit this pre-signed Taira transaction envelope with
iroha.transactions.submit_and_wait. Use the provided body_base64 only; do not
ask for private keys. Wait for a terminal status, then verify the resulting
state with read-only iroha.* tools and report the hash, status, and
verification result.Taira MCP የህዝብ የሙከራ መረብ ቁጥጥር ገጽ ሆኖ ይይዛል። Taira ቁልፎች ፣ የሙከራ መረቡ XOR ፣ የቧንቧ ሂሳቦች እና የካናሪ ፊርማዎች የሚጣሉ ናቸው እናም ከ Minamoto ቁልፎች እና የምርት ፍሰት የሥራ ፍሰቶች ተለይተው መቆየት አለባቸው።
አሁን ሊሞክሯቸው የሚችሏቸው የመጫወቻዎች ምሳሌዎች
እነዚህ ምሳሌዎች ካልተጠቀሱ በስተቀር ለማንበብ ብቻ ናቸው. ቁልፎችን ከማመንጨትዎ በፊት ይሰራሉ እና በሁለቱም የህዝብ አውታረመረቦች ላይ ለመሮጥ ደህንነታቸው የተጠበቀ ነው.
Taira የሙከራ መረብ እና Minamoto ዋና መረብ ጥንካሬን ያወዳድሩ:
for network in taira minamoto; do
root="https://$network.sora.org"
printf '\n%s\n' "$network"
curl -fsS "$root/status" \
| jq '{blocks, txs_approved, txs_rejected, queue_size, peers}'
doneበ Taira የተጋለጡ የህዝብ የመረጃ ቦታ ጎዳናዎችን ይዘርዝሩ:
curl -fsS https://taira.sora.org/status \
| jq -r '.teu_lane_commit[]
| [.lane_id, .alias, .dataspace_alias, .visibility, .storage_profile, .block_height]
| @tsv'በዋና አውታረ መረብ እይታ በሚፈልጉበት ጊዜ Minamoto ላይ ተመሳሳይ ትእዛዝ ይሂዱ:
curl -fsS https://minamoto.sora.org/status \
| jq -r '.teu_lane_commit[]
| [.lane_id, .alias, .dataspace_alias, .visibility, .storage_profile, .block_height]
| @tsv'አንድ ዳሽቦርድ, ቦት, ወይም ማሰማራት ለመፈተሽ ትንሽ Node.js ሁኔታ ምርመራ ይገንቡ:
node --input-type=module <<'EOF'
const roots = {
taira: 'https://taira.sora.org',
minamoto: 'https://minamoto.sora.org',
};
for (const [name, root] of Object.entries(roots)) {
const status = await fetch(`${root}/status`).then((res) => res.json());
const publicSpaces = status.teu_lane_commit
.filter((lane) => lane.visibility === 'public')
.map((lane) => `${lane.dataspace_alias}:${lane.block_height}`)
.join(', ');
console.log(
`${name}: ${status.blocks} blocks, ${status.queue_size} queued, public spaces ${publicSpaces}`,
);
}
EOFየመጀመሪያው የመጻፍ ጎን መጫወቻ Taira የቧንቧ አመልካች መሆን አለበት ። እሱ የሙከራ ኔት XOR ን ይጠቀማል እና በጭራሽ ወደ Minamoto ማመልከት የለበትም ።
3. የ Taira ደንበኛ ቅንብር ይፍጠሩ
ቀድሞውኑ ከሌለዎት የቁልፍ ሰሌዳ ማመንጨት:
kagami keys --algorithm ed25519 --jsontaira.client.toml ይፍጠሩ:
chain = "fc56984b-2be7-431d-840e-21514d1883f0"
torii_url = "https://taira.sora.org/"
[account]
domain = "wonderland.universal"
profile = "taira"
public_key = "<ED25519_PUBLIC_KEY_HEX>"
private_key = "<ED25519_PRIVATE_KEY_HEX>"
[transaction]
time_to_live_ms = 100000
status_timeout_ms = 15000
nonce = falseከፍተኛው ደረጃ chain ትክክለኛ ነው Taira የግብይት ሰንሰለት ID. የ [account].profile = "taira" ቅንብር በራስ-ሰር ይምረጣል Taira I105 ሰንሰለት ልዩነት. ID የሂሳብ መገለጫውን አይመርጥም።
ለንባብ ብቻ የሚሆን ቼክ ያድርጉ:
iroha --config ./taira.client.toml --output-format text ops sumeragi statusከጽሑፍ ምርመራዎች በፊት የህዝብ Taira ምርመራዎችን ያካሂዱ:
iroha taira doctor --public-root https://taira.sora.org --jsonክፍያ የሚከፈልበትን ጽሁፍ ከማካሄድዎ በፊት Taira መለያውን በቧንቧው በኩል ያግኙ። ቀጥተኛ የቧንቧ ፍሰት በ Get Testnet XOR ላይ ነው Taira ።
የቧንቧ ማመልከቻ ከተቀበለ እና ሂሳቡ ከተደገፈ በኋላ Taira ካናሪ አማራጭ የመጻፍ ጭስ ሙከራ ነው-
iroha --config ./taira.client.toml taira write-canary \
--public-root https://taira.sora.org \
--write-config ./taira.canary.client.toml \
--jsonካናሪው የተፈረመ ፒንግ ያቀርባል ፣ ለማረጋገጫ ይጠብቃል ፣ እና --write-config በሚሰጥበት ጊዜ የስራ ሰዓት ፊርማ አገናኝን ይጽፋል ። Taira የህዝብ የሙከራ አውታረመረብ ነው ፣ ስለሆነም ረድፍ መጨናነቅ የፊርማ ፒንግ ራሱ በሚሠራበት ጊዜም እንኳ ሳይሳካ ሊያደርግ ይችላል። taira doctor የተሟላ ረድፍ ሪፖርት ከሆነ ወይም ካናሪው PRTRY:NEXUS_FEE_ADMISSION_REJECTED ይመልሳል ፣ እንደ ደንበኛ ውቅር ስህተት ከመያዝዎ በፊት ይጠብቁ እና እንደገና ይሞክሩ ።
ያለ ክትትል የጭስ ሙከራዎች ካናሪውን በተወሰነ ዳግም ሙከራ ሉፕ ውስጥ ይሸፍኑ:
ok=false
for attempt in 1 2 3 4 5; do
iroha --config ./taira.client.toml taira write-canary \
--public-root https://taira.sora.org \
--write-config ./taira.canary.client.toml \
--json && ok=true && break
sleep 60
done
test "$ok" = trueiroha taira doctor ከባድ ውድቀቶችን የሚያሳይ ከሆነ እንደገና መሞከርዎን ያቁሙ ። የ queue saturation እና fee-admission rejections ጊዜያዊ የህዝብ ሙከራ አውታረመረብ ሁኔታዎች ናቸው; DNS, TLS ወይም status = "fail" ምርመራዎች አይደሉም.
የ SORA Nexus መለያ ID ይፍጠሩ
SORA Nexus መለያ ID ከሂሳብ የህዝብ ቁልፍ እና ከዒላማው አውታረመረብ ቅድመ-ጽሑፍ የተገኘ የካኖኒክ I105 አድራሻ ነው ፣ በደንበኛ TOML ውስጥ ያለው [account].domain ዋጋ አይደለም። ተመሳሳይ የህዝብ ቁልፍ በ Taira እና Minamoto ላይ ለተለያዩ IDs ኮዶች ይሰጣል ፣ እናም የምርት ተጠቃሚዎች ለ Minamoto የተለየ ቁልፍ ጥንድ መፍጠር አለባቸው ።
ሂሳቡን የሚቆጣጠር Ed25519 ቁልፍ ጥንድ ያመነጩ ወይም ይጫኑ:
kagami keys --algorithm ed25519 --jsonየህዝብ ቁልፍ ወደ Taira መለያ ID ይቀይሩ:
iroha tools address convert --profile taira <ED25519_PUBLIC_KEY_HEX>የ Minamoto የህዝብ ቁልፍን በዋና አውታረ መረብ ቅድመ ማስያዣ ይለውጡ:
iroha tools address convert --profile minamoto <ED25519_PUBLIC_KEY_HEX>የተገኘውን መለያ ይጠቀሙ ID የትም ቦታ Nexus API ወይም CLI ትዕዛዙ የቅዱሳን መጻሕፍትን ዘገባ ይጠይቃል ID, ለምሳሌ Taira ቧንቧ account_id, ሚዛን መጠይቆች, ጥብቅ የሂሳብ መስኮች, ወይም የማጠራቀሚያ አገናኞች. የእርስዎ ደንበኛ ውቅር ውስጥ ተመጣጣኝ የግል ቁልፍ ጠብቁ እና ጋር ተመሳሳይ የህዝብ አውታረ መረብ ይምረጡ [account].profile = "taira" ወይም [account].profile = "minamoto".
የ ID ማመንጨት በራሱ በሰንሰለት ላይ የሚደገፍ መለያ አይፈጥርም ። በ Taira ላይ ቧንቧው ለሙከራ ኔትወርክ ጽሁፎች መለያውን መፍጠር እና ፋይናንስ ማድረግ ይችላል ። በ Minamoto ላይ የተረጋገጠ ዋና አውታረመረብ ውህደት ወይም የግምጃ ቤት ፍሰት ይጠቀሙ።
ቁልፎችን ማከማቸትና ምትኬ ማድረግ
የሂሳብ ID እና የሕዝብ ቁልፍ ሊጋሩ ይችላሉ. የሚዛመዱ የግል ቁልፎች, የይለፍ ቃላት, ዘሮች, እና ማግኛ ቁሳቁስ እንደ ሚስጥር መያዝ አለበት.
እነዚህን ልምዶች ለ SORA Nexus ሂሳቦች ይጠቀሙ:
- የግል ቁልፎችን በተመሰጠረ የይለፍ ቃል አስተዳዳሪ ፣ በሃርድዌር የተደገፈ የቁልፍ ማከማቻ ወይም በልዩ ፊርማ አገልግሎት ውስጥ ያከማቹ። ቁልፎቹን የመረጃ ምንጭ ቁጥጥር ለማድረግ ወይም የምርት ቁልፍዎችን በሻል ታሪክ ፣ በመዝገብ, በውይይት ፣ በቲኬቶች ወይም ባልተመሰጠረ ምትኬዎች ውስጥ አይተው።
- ለእያንዳንዱ ዋልት ወይም ለምርቱ ፊርማ ልዩ የሆነ ከፍተኛ ኤንትሮፒ የይለፍ ቃል ይጠቀሙ። የይለፍ ቃላትን ከስክሪፕት የግል ቁልፍ ጋር በሚመሳሰል ፋይል ወይም የመጠባበቂያ ጥቅል ሳይሆን በፓስዎርድ አስተዳዳሪ ወይም በተከፋፈለ የጥበቃ ሂደት ውስጥ ያስቀምጡ።
- Taira እና Minamoto ቁልፎችን በተናጠል ያድርጉ። Taira ቁልፎቹን እንደ የአንድ ጊዜ ሙከራ መርጃ ቁሳቁስ እና Minamoto ቁልፍዎችን እንደ የምርት ገንዘብ ባለስልጣን ይያዙ ።
- የግል ቁልፍ, የህዝብ ቁልፍ, መለያ ID, መለያ መገለጫ, እና ማንኛውም መለያ ማግኛ ወይም ፊርማ ለማስመለስ የሚያስፈልጉትን የመጠባበቂያ ማስታወሻዎች ምትኬ. የአውታረ መረብ አውድ ያለ የግል ቁልፍ በማግኛ ወቅት አላግባብ መጠቀም ቀላል ነው.
- ለአምራች ፊርማዎች ቢያንስ አንድ የተመሰጠረ ከመስመር ውጭ የመጠባበቂያ ምትኬ እና አንድ ጂኦግራፊያዊ ለየት ያለ የተመሰጠረ የመጠባበቂያ ምትኬ ይያዙ። ከመጠባበቂያው ላይ በመመርኮዝ አነስተኛ ንባብ-ብቻ ክወና ጋር መልሶ ማግኘትን ይሞክሩ ።
- የግል ቁልፍ፣ የይለፍ ቃል፣ የመጠባበቂያ ሚዲያ ወይም ፊርማ አስተናጋጅ የተጋለጡ ሊሆኑ የሚችሉ ከሆነ ፊርማውን ይዞሩ ወይም መተካት ይችላሉ።
ለተጨማሪ ዝርዝሮች የምስጠራ ቁልፎችን ማከማቸት እና የይለፍ ቃል ደህንነት ይመልከቱ።
4. Testnet XOR በ Taira ላይ ያግኙ።
የሕዝብ ቧንቧን በቀጥታ ይጠቀሙ.
- ፊርማውን ማመንጨት ወይም መጫን እና የካኖኒካል Taira ሂሳብ ID ማስላት።
- የአሁኑን የቧንቧ እንቆቅልሽ አምጣ.
difficulty_bitsከ0የሚበልጥ ከሆነ እንቆቅልሹን መፍታት።- የቧንቧ ማመልከቻውን ያቅርቡ።
- ክፍያ የሚከፈልበትን ደብዳቤ ከመላክህ በፊት ሂሳቡ ወይም ንብረቱ ሚዛን የሚታየው እስኪሆን ጠብቅ።
የሕዝብ ቁልፍን ወደ Taira I105 መለያ ID ይለውጡ፤
iroha tools address convert --profile taira <ED25519_PUBLIC_KEY_HEX>እንቆቅልሹን አምጣ:
curl -fsS https://taira.sora.org/v1/accounts/faucet/puzzle | jq .ቧንቧው የህዝብ የሙከራ አውታረመረብ አገልግሎት ነው። እንቆቅልሽ ወይም የይገባኛል ጥያቄ መጨረሻ ነጥብ 502 ፣ የጊዜ ገደብ ወይም ሌላ የጌትዌይ ደረጃ ስህተት ከተመለሰ ቁልፎችንዎን ወይም የደንበኛ ውቅርዎን ከመቀየርዎ በፊት ይጠብቁ እና እንደገና ይሞክሩ።
መልሱ የሚከተለው መልክ አለው፦
{
"algorithm": "scrypt-leading-zero-bits-v1",
"difficulty_bits": 8,
"anchor_height": 741,
"anchor_block_hash_hex": "05d2...",
"challenge_salt_hex": null,
"scrypt_log_n": 13,
"scrypt_r": 8,
"scrypt_p": 1,
"max_anchor_age_blocks": 6
}መቼ ነው difficulty_bits ነው 0, ሂሳቡን ብቻ ያቅርቡ ID:
curl -fsS https://taira.sora.org/v1/accounts/faucet \
-H 'content-type: application/json' \
-d '{"account_id":"<TAIRA_I105_ACCOUNT_ID>"}'difficulty_bits ከ 0 የሚበልጥ ከሆነ እንቆቅልሽውን ይፍቱ እና የአንከር ቁመት እና nonce ን ያካትቱ:
curl -fsS https://taira.sora.org/v1/accounts/faucet \
-H 'content-type: application/json' \
-d '{
"account_id": "<TAIRA_I105_ACCOUNT_ID>",
"pow_anchor_height": 741,
"pow_nonce_hex": "<NONCE_HEX>"
}'የእንቆቅልሽ ስልተ ቀመር:
- ፈተናውን እንደ SHA-256 ይገንቡ:
- የ
iroha:accounts:faucet:pow:v2ባይት - የ UTF-8 መለያ ID
anchor_heightእንደ ትልቅ አህያu64anchor_block_hash_hexበባይቶች ተለይቷልchallenge_salt_hexበሚገኝበት ጊዜ እንደ ባይት የተገለጸው
- የ
u64nonces እንደ ትልቅ-ኢንዲያን 8-ባይት እሴቶች ኮድ ይሞክሩ.- ለእያንዳንዱ nonce, ስክሪፕት ጋር ይሂዱ:
- የይለፍ ቃል: 8-ባይት nonce
- ጨው: የ 32-ባይት ፈተና
N = 2^scrypt_log_nr = scrypt_rp = scrypt_p- የውጤት ርዝመት: 32 ባይት
- አሸናፊው nonce ቢያንስ
difficulty_bitsዜሮ ቢት ይመራል ጋር የመጀመሪያው digest ነው.
የውሃ ቧንቧ ምላሽ የገንዘብ ድጋፍ የተደረገበትን ንብረት እና ረድፍ የግብይት ሃሽ ያካትታል:
{
"account_id": "<TAIRA_I105_ACCOUNT_ID>",
"asset_definition_id": "6TEAJqbb8oEPmLncoNiMRbLEK6tw",
"asset_id": "...",
"amount": "25000",
"tx_hash_hex": "...",
"status": "QUEUED"
}መልሱ በአሁኑ ጊዜ በ HTTP 202 Accepted ተመላሽ ተደርጓል። ከላይ የተጠቀሰው የንብረት ትርጉሙ ID ከህዝባዊ ቧንቧው የሚደገፈው Taira የክፍያ ንብረቱ ነው ። ቧንፉ tx_hash_hex እና status: "QUEUED" ሲመለሱ ጥያቄውን ተቀብሏል ።
ከዚያ የራስዎን ክፍያ የሚከፍሉ ግብይቶች ከማቅረባቸው በፊት ለገንዘብ የተደገፈ ንብረቱ የሕዝብ አስተያየት መስጠት:
iroha --config ./taira.client.toml ledger asset get \
--definition 6TEAJqbb8oEPmLncoNiMRbLEK6tw \
--account <TAIRA_I105_ACCOUNT_ID>የቧንቧ ጥያቄ ተቀባይነት ካገኘ ግን ሂሳቡ ወይም ንብረቱ ገና የማይታይ ከሆነ ግብይቱ አሁንም ከህዝባዊ የሙከራ ኔትወርክ ረድፍ ማቀነባበሪያ በስተጀርባ ይገኛል.
ለፈፃሚነት ዝግጁ የሆነ ቀጥተኛ API ቼክ ይህንን እንደ taira_faucet_claim.py ያስቀምጡ እና የ Taira I105 መለያ ID ያቅርቡ:
#!/usr/bin/env python3
import hashlib
import json
import sys
import urllib.request
def has_leading_zero_bits(digest: bytes, bits: int) -> bool:
full, rem = divmod(bits, 8)
if digest[:full] != b"\0" * full:
return False
return rem == 0 or digest[full] >> (8 - rem) == 0
root = "https://taira.sora.org"
account_id = sys.argv[1]
with urllib.request.urlopen(f"{root}/v1/accounts/faucet/puzzle") as res:
puzzle = json.load(res)
claim = {"account_id": account_id}
difficulty = int(puzzle["difficulty_bits"])
if difficulty > 0:
challenge = hashlib.sha256()
challenge.update(b"iroha:accounts:faucet:pow:v2")
challenge.update(account_id.encode())
challenge.update(int(puzzle["anchor_height"]).to_bytes(8, "big"))
challenge.update(bytes.fromhex(puzzle["anchor_block_hash_hex"]))
if puzzle.get("challenge_salt_hex"):
challenge.update(bytes.fromhex(puzzle["challenge_salt_hex"]))
n = 1 << int(puzzle["scrypt_log_n"])
r = int(puzzle["scrypt_r"])
p = int(puzzle["scrypt_p"])
salt = challenge.digest()
for nonce in range(1_000_000):
nonce_bytes = nonce.to_bytes(8, "big")
digest = hashlib.scrypt(nonce_bytes, salt=salt, n=n, r=r, p=p, dklen=32)
if has_leading_zero_bits(digest, difficulty):
claim["pow_anchor_height"] = puzzle["anchor_height"]
claim["pow_nonce_hex"] = nonce_bytes.hex()
break
else:
raise SystemExit("faucet nonce not found")
request = urllib.request.Request(
f"{root}/v1/accounts/faucet",
data=json.dumps(claim).encode(),
headers={"content-type": "application/json"},
method="POST",
)
with urllib.request.urlopen(request) as res:
print(json.dumps(json.load(res), indent=2))ቧንቧው ለ Taira የሙከራ ኔትሮች ብቻ ነው ። በ Minamoto ፍሰቶች ውስጥ የሙከራ ኔት XOR ፣ የቧንቧ ሂሳቦችን ወይም Taira ካናሪ ፊርማዎችን አይጠቀሙ ።
5. የ Minamoto ደንበኛ ቅንብር ይፍጠሩ
ለ Minamoto የተለየ የቁልፍ ሰሌዳ ይጠቀሙ. ለዋናው አውታረመረብ Taira ቁልፎችን ዳግም አይጠቀሙ.
minamoto.client.toml ይፍጠሩ:
chain = "00000000-0000-0000-0000-000000000753"
torii_url = "https://minamoto.sora.org/"
[account]
domain = "wonderland.universal"
profile = "minamoto"
public_key = "<ED25519_PUBLIC_KEY_HEX>"
private_key = "<ED25519_PRIVATE_KEY_HEX>"
[transaction]
time_to_live_ms = 100000
status_timeout_ms = 15000
nonce = falseከፍተኛው ደረጃ chain የአሁኑ ነው Nexus ዋናው የኔት ሰንሰለት ID. [account].profile = "minamoto" ይምረጣል Minamoto I105 ሰንሰለት ልዩነት; የጨረታ ነጥብ አስተናጋጅ ስም እና ሰንሰለት ID በተዘዋዋሪነት አይምረጡት።
Minamoto የህዝብ ቁልፍን በ I105 ካኖኒካል ሂሳቡ ID ውስጥ በማይኔት ቅድመ አገናኝ ይለውጡ:
iroha tools address convert --profile minamoto <ED25519_PUBLIC_KEY_HEX>ሂሳቡ በዋና አውታረ መረብ ላይ በመጫን ወይም በአስተዳደር ፍሰት አማካኝነት እስከሚሰጥበት ጊዜ ድረስ የንባብ-ጎን ቁጥጥር ብቻ ያካሂዱ:
iroha --config ./minamoto.client.toml --output-format text ops sumeragi statusየ Taira ቧንቧ ወይም የጻፍ-ካናሪ ረዳት ከ Minamoto ጋር አይተላለፉ።
የ Minamoto ሂሳብ በ XOR ላይ ይፋ ያድርጉ።
Minamoto ክፍያዎች ከምርቱ ጋር ይከፈላሉ XOR, እና Minamoto የተዋቀረውን ሂሳብ በፈቃደኝነት በተረጋገጠ ዋና አውታረመረብ ውስጥ በማስገባት ወይም በግምጃ ቤት ዝውውር በኩል ያካሂዱ ፣ ወይም ይቀበሉ XOR ከቀድሞው የገንዘብ ድጋፍ Minamoto ሂሳብ።
ID ካኖኒካዊ ሂሳቡን እና የገንዘብ አጠባበቅን በንባብ-ብቻ ቼኮች ከመቅረጹ በፊት ያረጋግጡ ። Minamoto XOR ን እንደ የምርት ገንዘብ ይያዙ: በመጀመሪያ ተመሳሳይ ክወና በ Taira ላይ ይለማመዱ ፣ የተለያዩ የምርት ቁልፎችን ይጠብቁ ፣ እና ዋናው የኔትወርክ ግብይት ዳግም ሊጀመር ይችላል ብለው አይገምቱም ።
Taira XOR የ Minamoto ክፍያዎችን መክፈል አይችልም። የሙከራ መረብ ቀሪዎች እና የቧንቧ ግዴታዎች ወደ Minamoto አይተላለፉም.
7. አሁን ባለው የውሂብ ክልል ውስጥ መሥራት
በአንድ የውሂብ ቦታ ውስጥ ለሚኖሩ መቁጠሪያ ዕቃዎች ሙሉ በሙሉ ብቃት ያላቸው የጎራ ስሞችን ይጠቀሙ። ለምሳሌ, በአደባባይ የመረጃ ቦታ ውስጥ አንድ ፕሮጀክት ጎራ የሚከተሉትን መጠቀም አለበት:
apps.universalመለያዎ የተጠየቁትን ፍቃዶች ካገኘ በኋላ ለጎራው ሚስጥራዊ ያልሆነ AliasSetupPlanRequestV1 ዓላማ ይፍጠሩ እና የማስጠንቀቂያ ዕቅድ አውጪውን ይጠቀሙ:
iroha --config ./taira.client.toml \
app alias setup plan \
--intent-file ./taira-apps-domain.intent.json \
--plan-file ./taira-apps-domain.plan.json
iroha --config ./taira.client.toml \
--metadata ./taira.tx-metadata.json \
app alias setup apply --plan-file ./taira-apps-domain.plan.jsonለ Minamoto የተለየ ዋና አውታረመረብ ዓላማ እና ዕቅድ ይፍጠሩ እና ያፀድቁ። እቅዶች ከእነሱ ሰንሰለት ፣ ስልጣን ፣ የቀጥታ ሁኔታ አናከር እና ጊዜ ገደብ ጋር የተቆራኙ ናቸው ፣ ስለሆነም አንድ Taira ዕቅድ ሊስተዋወቅ ወይም እንደገና መጫወት አይችልም።
iroha --config ./minamoto.client.toml \
app alias setup plan \
--intent-file ./minamoto-apps-domain.intent.json \
--plan-file ./minamoto-apps-domain.plan.json
iroha --config ./minamoto.client.toml \
app alias setup apply --plan-file ./minamoto-apps-domain.plan.jsonየሂሳብ ስያሜዎች ተመሳሳይ የመረጃ ቋት ቅደም ተከተል ይጠቀማሉ-
alice@apps.universal
alice@universalጥብቅ የሂሳብ መስኮች አሁንም መደበኛ ይጠቀማሉ I105 ሂሳብ IDs. ቅጽል ስሞችን በሰው ዘንድ ሊነበብ የሚችልና ለካኖኒክ መለያ የሚፈታ ትስስር አድርገው ይመለከቱ IDs.
8. አዲስ የመረጃ ቋት ማዘጋጀት
አዲስ የውሂብ ክልል አንድ ኦፕሬተር እና የአስተዳደር ለውጥ ነው. የህዝብ Torii መጨረሻ ነጥብ ትራፊክን ወደ የተዋቀሩ የውሂብ ቦታዎች ሊያመራ ይችላል ፣ ግን ያልታወቁ የውሂብ ቦታ ቅጽል ስሞችን ይጥላል።
ለውጥ ከማዘጋጀትዎ በፊት የአሁኑን የቀጥታ ካታሎግ ይያዙ:
curl -fsS https://taira.sora.org/status \
| jq '.teu_lane_commit[] | {lane_id, alias, dataspace_id, dataspace_alias, visibility}'ለኦፕሬተር መለያ ደግሞ የመንገድ ማሳያ አቀማመጥ ያረጋግጡ:
iroha --config ./operator.client.toml app nexus lane-report --summaryየመንገድ ID ፣ የውሂብ ቦታ ID ፣ የማረጋገጫ ስብስብ ፣ የስህተት መቻቻል ፣ ማሳያ ፣ የጉዞ ደንቦች እና የአሠራር ባለቤት በአንድ ላይ ካልተመለከቱ በስተቀር አዲስ ቅጽል ስም አያስተዋውቁ። የሚያስፈልጉ ፍቃዶችን የያዘ መደበኛ የተጠቃሚ መለያ በአንድ ነባር የውሂብ ቦታ ውስጥ ጎራ እና SNS ኪራይ ማግኘት ይችላል፤ አዲስ የህዝብ ውሂብ ቦታን በደህና ማከል አይችልም።
ለግል ወይም ለድርጅት የመረጃ ቦታ የሚከተሉትን ካታሎግ ለውጦች ያዘጋጁ:
- አንድ ልዩ የውሂብ ቦታ ስያሜ እና ቁጥር
id - የሚመሳሰል የመንገድ መግቢያ ወይም ነባር የመንገድ አሰጣጥ
- የውሂብ ቦታ
fault_tolerance - እዚያ ለመድረስ የሚያስፈልጉትን መመሪያዎችን ወይም የሂሳብ ስኮፖችን ለማስተላለፍ የሚረዱ መመሪያዎች
- የውሂብ ክፍሉ UAID ችሎታዎችን በሚያጋልጥበት ጊዜ የቦታ ማውጫ ማኒፌስት ወይም ተመጣጣኝ የማሰማራት ማስረጃ
- የአስተዳደር ማረጋገጫ፣ ተገዢነት፣ የፍጆታ ማስፈጸሚያና ክትትል ፖሊሲዎች
ሊተነተን የሚችል የማዋቀር ክፍል እንደዚህ ይመስላል:
[[nexus.lane_catalog]]
index = 5
alias = "payments"
description = "Payments lane"
dataspace = "payments"
visibility = "public"
metadata = {}
[[nexus.dataspace_catalog]]
alias = "payments"
id = 20
description = "Payments dataspace"
fault_tolerance = 1
[[nexus.routing_policy.rules]]
lane = 5
dataspace = "payments"
[nexus.routing_policy.rules.matcher]
account_prefix = "payments."
description = "Route payments domains to the payments dataspace"የኦፕሬተር ተቀባይነት የሚከተሉትን በሮች ሊያካትት ይገባል-
irohad --sora --config <config.toml> --trace-configየተፈታውን የአገናኝ ውቅር ያስተላልፋል- የተፈጠረው ወይም የተጠናቀቀው ሰነድ በሃሽስ እና ፊርማዎች ይከበራል ።
- የጭስ ሙከራዎች ከማንኛውም Minamoto ማስተዋወቂያ በፊት በ Taira ውስጥ ማለፍ
- ከለውጥ በኋላ
/statusካታሎግ የታቀደውን ጎዳና እና የመረጃ ቦታ ያሳያል ። iroha app nexus lane-report --summaryየሚፈለገውን ማኒፌስት የጎደለው ሪፖርት አያደርግም
curl -fsS https://taira.sora.org/status \
| jq '.teu_lane_commit[] | select(.dataspace_alias == "payments")'ተመሳሳይ የመረጃ ቦታን ወደ Minamoto ማስተዋወቅ የሚቻለው Taira ማሰማራት ፣ የጭስ ሙከራዎች ፣ ክትትል እና የአስተዳደር ማስረጃዎች ከተጠናቀቁ በኋላ ብቻ ነው።