【日本語】Arweaveの「AO」テストネットチュートリアル - クエスト1
【日本語】Arweaveの「AO」テストネットチュートリアル - クエスト1
前回の続きです。
【日本語】Arweaveの「AO」テストネットチュートリアル - 準備編
早速クエストをこなしていきましょう!
はじめに
このチュートリアルシリーズでは、aos環境の知識と理解を深めるのに役立つインタラクティブなステップを進めていきます。
エクササイズ
この楽しいエクササイズでは、二人の馴染み深いキャラクター、モーフィアスとトリニティが提示する一連のチャレンジに直面します。モーフィアスがあなたが「the one」であることを証明するために一連のチャレンジを提示する中、ラビットホールに深く潜っていきます。モーフィアスとトリニティの両方によって提示されたすべてのチャレンジを完了したら、ao内の独占的なチャットルーム「The Construct」へのアクセスを許可するトークンを受け取ります。
それでは、さっそくラビットホールに入ってみましょう。
チュートリアル
クイックスタート
Preparations
前回の記事で準備は終わっていますのでここは省略します。
Say("/Quests:1")
を実行するとクエストの内容を確認できます。
原文
Name: Begin
Description
-----------
In this fun exercise, you'll encounter a series of challenges presented by two familiar characters, Morpheus and Trinity. You'll dive deep into the rabbit hole guided by Morpheus as he presents you with a series of challenges to prove you're the one.
Once done, Send({Target = "Lz8WE41Ou1RbAiu5Ghm7_xLzVIylYM3iy8A7C6sJraY", Action = "Claim", Name = "Begin" })
Go to: https://cookbook_ao.g8way.io/tutorials/begin/index.html
翻訳
クエスト名: 始まり
説明
この楽しい演習では、二人のおなじみのキャラクター、モーフィアスとトリニティが提示する一連の挑戦に直面します。モーフィアスに導かれて、深く兎穴に潜り込み、あなたが「選ばれし者」であることを証明するための一連の挑戦に取り組みます。
完了したら、Send({Target = "Lz8WE41Ou1RbAiu5Ghm7_xLzVIylYM3iy8A7C6sJraY", Action = "Claim", Name = "Begin" }) を実行してください。
詳細はこちら: https://cookbook_ao.g8way.io/tutorials/begin/index.html
aoにおけるメッセージング
aoでは、すべてのプロセスが並行して実行され、非常にスケーラブルな環境が作成されます。各プロセスが独立して非同期に動作するため、従来のプロセス間の直接的な関数呼び出しは実現不可能です。
メッセージングは、非同期通信を可能にすることでこの問題に対処します。プロセスは、お互いに直接関数を呼び出すのではなく、メッセージを送受信します。この方法により、柔軟かつ効率的な相互作用が可能となり、プロセスがメッセージに応答することでシステムのスケーラビリティと応答性が向上します。
まず、aosでのメッセージングの基礎、受信したメッセージを受信トレイで確認する方法、および他のプロセスにメッセージを送信する方法を探求します。
Step 1: メッセージの構造を理解する
メッセージの基礎
aoでのメッセージはLuaテーブルを使用して構築されます。Luaテーブルは、複数の値を保持できる柔軟なデータ構造です。これらのテーブルの中で、「Data」フィールドは重要です。なぜなら、メッセージの内容やペイロードが含まれているからです。この構造により、プロセス間で情報を効率的に送受信することが可能となり、aoのプリミティブがArweaveの基本機能を活用して複雑な、組み合わせ可能な操作を実現しています。
詳細な仕様については、G8wayの仕様ページの元のドキュメントを参照してください。
例:{ Data = "Process Aからこんにちは!" } は単純なメッセージです。
Step 2: aos CLIを開く
ターミナルでaosコマンドラインインターフェイス(CLI)を起動するには、aosと入力してEnterキーを押します。
aos
Step 3: メッセージの送信方法
Send({ Target = "プロセスID", Data = "こんにちは世界!" })
Send:Send関数は、aosのインタラクティブな環境でグローバルに利用可能です。
Target:特定のプロセスにメッセージを送信するには、メッセージにTargetフィールドを含めます。
Data:Dataは、受信プロセスが受信するテキストメッセージです。この例では、メッセージは「こんにちは世界!」です。
Step 4: MorpheusのプロセスIDを保存する
以下で提供されたプロセスIDを使用し、それをMorpheusという変数として保存します。
sOQYMwbbTr5MlPwp-KUmbXgCCvfoVjgTOBuUDQJZAIU
上記のプロセスIDをコピーし、aos CLIで以下のコマンドを実行して変数として保存します。
Morpheus = "sOQYMwbbTr5MlPwp-KUmbXgCCvfoVjgTOBuUDQJZAIU"
これにより、プロセスIDがMorpheusという変数として保存され、指定されたプロセスIDとのやり取りが容易になります。
Morpheus変数の確認
Morpheusと入力してMorpheus変数を確認します。
Morpheus
期待される結果:
sOQYMwbbTr5MlPwp-KUmbXgCCvfoVjgTOBuUDQJZAIU
Step 5: Morpheusにメッセージを送信する
MorpheusのプロセスIDを取得して変数に保存したら、彼と通信する準備が整いました。これを行うには、Send関数を使用します。Morpheus自体が、aoで実行されている並行プロセスです。彼はハンドラのシリーズを使用してメッセージを受信および送信します。彼にメッセージを送信し、何が起こるか見てみましょう。
Send({ Target = Morpheus, Data = "Morpheus?" })
Targetは、Morpheusであり、これはMorpheusのプロセスIDを使用して以前に定義した変数です。
Dataは、Morpheusに送信したいメッセージです。この場合、「Morpheus?」です。
期待される結果:
# 実行したコマンド
Send({ Target = Morpheus, Data = "Morpheus?"})
# コマンド実行後に帰ってくる
message added to outbox
New Message From BWM...ulw: Data = I am here. You are finally awake. Are yo
Inboxの中を覗いてみると以下の内容のメッセージが届いています。
I am here. You are finally awake. Are you ready to see how far the rabbit hole goes?
// 翻訳
目を覚ましましたね。いったいどれほど深いラビットホールか、見てみる準備はできていますか?
あなたはモーフィアスにメッセージを送信し、応答を受け取りましたが、完全なメッセージを読むことはできませんでした。受信トレイとメッセージの読み方について学びましょう。
続く
Discussion