アルゴランド・デベロッパー・ポータル・チャレンジ:解説&簡略版



アルゴランド・デベロッパー・ポータル・チャレンジ:解説&簡略版 by Jonathan Rivera


私がプログラミングを学んでいたとき、それがどれほど困難だったかを覚えています。私のように非常に視覚的な人間にとって、それがどれほど困難であったかを覚えています。もっと視覚的な教材があれば、もっとチュートリアルがあれば、もっと無料の動画があれば、もっと無料のリソースがあればと、学習プロセスを導くために本当に思っていました。でも、悪いことばかりではありません。ブロックチェーンの基本を理解する上で、ありがたいプロトコルが2つほどありました。私のお気に入りのブロックチェーンの1つには、私が学び始めていた頃に彼らが提供してくれた多くのリソースに感謝しなければなりません。この時代にプログラミングを学ぶ最大の利点は、ウェブ上で無償で提供されるステップバイステップのガイドです。今回、私のお気に入りのチェーンの1つであるアルゴランドの新機能を紹介できることにとても興奮しています。アルゴランドは、ブロックチェーン開発の基本を学ぶための新しい方法を導入しました。新しいデベロッパー・ポータル・チャレンジのおかげで、あなたは今、コードを学び、ハンズオン・ガイドでそれをすべて行うことができます。


https://developer.algorand.org/challenges/



デベロッパー・ポータル・チャレンジ


チャレンジは、アルゴランドで開発するための基礎的なものから高度なプログラミングの原則まで、楽しくコーディングを学べるものです。いくつかの決済取引とスマートコントラクトのコードを追加することから始めます。何も書き直さずに追加できるガイド付きのコードを最初に見ることができます。クールなのは、何もインストールする必要がなく、すべてブラウザから実行できることです。「コードを実行する」をクリックすると、テストネット上でトランザクションが確認されます。すべてのチャレンジが完了すると、あなたが選んだアドレス/ウォレットにバッジが送信されます。課題はJavaScriptとPythonの両方で利用でき、各課題には課題を完了するためのタスクに関連するドキュメントのリンクが提供されています。あなたのチャレンジのために、資金を提供されたテストネットが準備されます。すべてのTodo項目を完了すると、コードが直接仮想マシンで実行されるようになります。Replitでコードを実行すると、トランザクションが表示されるはずです。何か問題が発生した場合は、エラーメッセージが表示され、問題の解決方法をアドバイスする何らかの情報が表示されます。チャレンジが完了するとバッジがもらえ、自慢できますよ。以下では、ドキュメントだけでなく、その他のリソースもご紹介します。


https://developer.algorand.org/docs/



最初のチャレンジ:決済処理


最初のチャレンジでは、アルゴランドが提供する6種類のトランザクションのうち、最初の簡単な決済を作成します。これは、トランザクションの作成、署名、および送信によって行うことができます。決済取引は、アカウントが他の誰かにAlgosを転送する方法です。詳細なドキュメントは、以下を参照してください。


https://developer.algorand.org/docs/get-details/transactions/


この課題では、提案されたトランザクション・パラメータをAPIサーバから取得する必要があります。そして、あなたからあなたへの、1つのAlgoに対する支払いを表す決済トランザクションを構築する必要があります。最後に、秘密鍵を使ってトランザクションに署名してください。



スタンダード・アセットにチャレンジ


この次のチャレンジでは、まったく新しいアセットを作成することになります。アルゴランド・ブロックチェーンでは、これをASA(Algorand Standard Asset:アルゴランド標準アセット)と呼びます。


あなたは、アセットを作成し、設定する必要があります。これは1つのトランザクションで行うことができ、スマートコントラクトは全く必要ありません。スマートコントラクトを必要とせず、所有権を表すためにASAを使用することで、これまで以上に簡単になります。以下、参考までにASAのドキュメントを紹介します。


https://developer.algorand.org/docs/get-details/transactions/#asset-configuration-transaction



この課題では、署名によって新しいアセットを作成し、ネットワークにトランザクションを送信するためにトランザクションを構築する必要があります。以下では、課題へのリンクと、より詳細なASAのドキュメントを見つけることができます。


https://developer.algorand.org/challenges/asa-rookie/


https://developer.algorand.org/docs/get-details/asa/



スマートコントラクトにチャレンジ


では、スマートコントラクトをデプロイします!スマートコントラクトは、アルゴランドでは2つの異なる部分があります。1つ目は承認プログラム(approval.teal)、2つ目はクリア・ステート・プログラム(clear.teal)です。ほとんどのロジックは承認プログラムになります。クリア・ステートのトランザクションは、たとえロジックが失敗しても失敗しません。このチャレンジにおける承認プログラムは比較的単純です。スマートコントラクトが初めてデプロイされるとき、それは「setup」ブランチに行きます。そこで最初のアプリケーションの引数を「access_code」というグローバル・ステートに格納します。このタスクでは、スマートコントラクトのコードはすでに書かれていることに注意してください。スマートコントラクトは、ネットワークに送信される前に、まずバイトコードに変換される必要があります。提供される承認プログラムは、1つのグローバルbytesliceと1つのグローバルintを必要とするだけです。以下に、詳細なドキュメントを掲載します。


https://developer.algorand.org/docs/get-details/dapps/smart-contracts/apps/



このスマートコントラクトに挑戦するには、まずスマートコントラクトをバイトコードにコンパイルする必要があります。コンパイルした後、アプリケーション呼出しトランザクションを構築する必要があります。そして、アプリケーションIDを特定した後、スマートコントラクトをデプロイする準備ができました。最後に、正しいパラメータでスマートコントラクトを呼び出し、カウンターをインクリメントする必要があります。以下に、SDKを使用してスマートコントラクトをデプロイし、呼び出す方法についての詳細なドキュメントをご覧いただけます。


https://developer.algorand.org/docs/get-details/dapps/smart-contracts/frontend/apps/




アトミック・トランザクションにチャレンジ


この記事では、スマートコントラクトの使用方法について説明します。この課題では、トランザクションのアトミック・グループを作成します。アトミック・グループのトランザクションは、グループ内のすべてのトランザクションが成功する必要があるか、またはそれらのすべてが成功しない場合です。これは非常にシンプルでありながら、非常に強力な概念です。アトミック・グループは、共通のグループIDを持つトランザクションを関連付けることによって作成され、このグループIDは、グループ内のすべてのトランザクションのハッシュから計算されます。通常、アトミックにグループ化されるトランザクションは最大16個までです。


SDKのアトミック・トランザクション・コンポーザーは、あるグループにトランザクションを追加できるようにすることで、これを簡単に実行できるようにするものです。その後、1回の呼び出しでそれらすべてを実行する必要があります。このSDKの詳細については、以下を参照してください。


https://developer.algorand.org/docs/get-details/atomic_transfers/



この最後のチャレンジでは、アトミック・トランザクション・コンポーザーのインスタンスを作成する必要があります。次に、2つのトランザクションをアトミック・トランザクション・コンポーザーに追加します。そして最後にトランザクション・グループを実行します。このシンプルで強力なチャレンジは、以下のリンクで見ることができます。


https://developer.algorand.org/challenges/atomic-group-transaction-rookie/



これで、構築して学習する準備が整いました。


このチャレンジは、今のところJavaScriptとPythonにしか設定されていないかもしれませんが、近いうちにもっと多くのプログラミング言語が利用できるようになるでしょう。あなたがアルゴランド流の学習の第一歩を踏み出せますように。これは、私が、そして他の多くの人が、コードを学ぶことがもっと教科書的だった頃にあったらよかったと思うようなツールでした。作って、間違えて、また作って、もっと間違えて、また作って。これが学習方法であり、上達する方法です。では、お別れです。皆さんのコーディングの旅が楽しいものになりますように。



元記事:https://medium.com/web-zero/algorand-developer-portal-challenge-explained-679b44acd4d5