dAppでボタンをクリックすると、実際には何が起きるのでしょうか?👇
分散型アプリを使っていて、「トークンを送信」をクリックしたとします。
見た目はシンプルな操作ですが、その裏側ではいくつかの処理が行われています。
1√ フロントエンドがリクエストを準備する
dAppはインターフェースとコントラクト連携コードを使って、実行したい操作の準備をします。
2√ ウォレットが承認を求める
ブロックチェーンの状態を変更するトランザクションの場合、ウォレットでリクエストを確認して署名できます。理解できないものには絶対に署名しないでください。
3️⃣ トランザクションがネットワークに送信される
署名されたトランザクションは、RPCプロバイダーを介してブロックチェーンネットワークに送信されます。
4️⃣ スマートコントラクトが実行される
ネットワークはコントラクトのコードに従ってトランザクションを処理します。トランザクションが成功すると、コントラクトの状態が変わることがあります。
5√ アプリが結果を確認する
dAppはトランザクションのステータスを追跡し、関連する確認を受け取った後に結果を表示できます。重要な操作では、フロントエンドの成功メッセージを鵜呑みにせず、トランザクションレシートと想定されるイベントを検証するべきです。
初心者が見落としがちなポイントがひとつあります。
ブロックチェーンのデータを読み取ることと、変更することは別です。
- 「balanceOf()」は通常、読み取り専用の呼び出しでトークン残高を確認でき、トランザクション手数料はかかりません。
- 「transfer()」はブロックチェーンの状態を変更するため、一般的に署名済みトランザクションとネットワーク手数料が必要です。
具体的な処理は、使用するブロックチェーン、ウォレット、コントラクトによって異なります。
開発者として、この一連の流れを理解することは、より良いインターフェースを作り、エラーを適切に処理し、ユーザーにトランザクションの状態をわかりやすく伝えるのに役立ちます。
フルスタックおよびWeb3エンジニアリングの視点からこうした概念を学び、学んだことを共有しています。
開発者のみなさんへの質問です。次はどの部分を掘り下げてほしいですか?ウォレット連携、RPCプロバイダー、それともトランザクションレシートでしょうか?
#Web3Dev #SmartContracts #BinanceSquare