Leçon 3

Vyperでのスマートコントラクトの作成と管理

このコースを修了することで、Vyperを使用したブロックチェーンプログラミングの強固な基盤が作成されました。 これで、イーサリアム、スマートコントラクト、およびVyperを使用してRemix IDEでそれらを作成する方法についてしっかりと理解できました。 この理解は、分散型アプリケーションを開発し、ブロックチェーンエコシステムに参加する機会の世界を放棄します。

紹介

レッスン3へようこそ!このレッスンでは、前のレッスンで学んだ概念と構文を適用して、Remix IDEでVyperを使用してイーサリアムスマートコントラクトを開発することに焦点を当てます。 シンプルなスマートコントラクトを作成、デプロイ、操作し、Vyperとイーサリアムを実際に体験します。 最初の契約は単純なデータストレージ契約で、2番目の契約は基本的な投票システムをシミュレートします。

シンプルストレージ:スマートコントラクトの紹介

展開する最初の契約はです SimpleStorage。 このコントラクトは、その名前が示すように、単一の数値を格納する単純なデータ ストレージ コントラクトです。 SimpleStorage は、変数 storedDataと 2 つの関数、 set および getで構成されます。 この関数を使用すると、ユーザーは番号を格納でき、この関数を使用するとget、誰でもこのset番号を取得できます。

シンプルストレージのデプロイと操作

イーサリアムブロックチェーンでコントラクトを SimpleStorage デプロイして操作する手順を実行します。 イーサリアムブロックチェーンへのコントラクトのデプロイは、コントラクトのバイトコードとABIをイーサリアムネットワークに送信し、そこから呼び出して実行するプロセスです。 コントラクトがデプロイされると、到達可能な一意のアドレスを受け取ります。

SimpleStorageコードは次のとおりです。

ニシキヘビ
# @titleシンプルストレージ
格納データ: int128

@external
def set(x: int128):
    自己保存データ = x

@external
def get() -> int128:
    自己保存データを返す

このコントラクトでは、 の現在の値を取得するためのパブリック変数、 の値を設定するパブリック関数set(x: int128)、および のstoredDatastoredData現在のstoredData値を取得するパブリック定数関数get() -> int128を定義します。

Remix を使用してこのコントラクトをデプロイする方法のステップバイステップガイドを次に示します。

  1. ウェブブラウザを開き、 リミックスイーサリアムIDEに移動します。

  2. Vyperプラグインを有効にする

  3. 環境をセクション内に切り替え Injected Web3 ます Deploy & Run Transactions 。 これにより、リミックスがメタマスクウォレットに接続されます。

  4. File Explorerセクションで、アイコンをクリックして+新しいファイルを作成します。名前を付けます SimpleStorage.vy

  5. コントラクト コードをこの新しいファイルに貼り付けます SimpleStorage

  6. 次に、[VyperCompile ]タブに移動して、 SimpleStorage 契約を選択します。

  7. タブに切り替え Deploy & Run TransactionsDeploy 、ボタンをクリックします。

  8. メタマスクはトランザクション確認ポップアップを開きます。 トランザクションを確認します。

  9. トランザクションが確認されると、デプロイされた SimpleStorage コントラクトが Deployed Contracts セクションに表示されます。

  10. これで、コントラクトを操作できます。 たとえば、数値を格納するには、関数に set 数値を入力して をクリックします transact。 保存されている番号を取得するには、 をクリックします get

シンプル投票:より複雑な契約

で足を濡 SimpleStorageらした後、もう少し複雑なものに移ります: SimpleVoting。 契約は SimpleVoting 単純な投票システムをシミュレートします。 候補のリストがあり、それぞれが文字列として表されます。 ユーザーはこれらの候補者に投票でき、各候補者が獲得した投票数を追跡します。 このコントラクトは、候補者の追加、候補者への投票、および候補者が獲得した総投票数を取得する機能を提供します。

シンプル投票の展開と操作

契約は SimpleVoting よりも少し複雑 SimpleStorageです。 には SimpleVoting、それぞれが文字列で表される候補のリストがあります。

SimpleVotingコードは次のとおりです。

ニシキヘビ
# バイパー投票契約

# 状態変数 'votes' を HashMap として宣言し、各候補者の投票を保存します。投票数: ハッシュマップ[バイト32, uint256]

@external
def vote(候補者: バイト32):
    """
    候補者に投票します。    引数:
    候補者: bytes32 - 投票する候補者の識別子。    """
    # 指定した候補者の投票数をインクリメントします。    自己投票[候補者] += 1

@external
@view
def get_votes(候補: バイト32) -> uint256:
    """
    候補者の合計投票数を取得します。    引数:
    候補者: bytes32 - 投票を取得する候補者の識別子。    収益:
    uint256 - 候補者が獲得した投票の総数。    """
    自己投票を返す[候補者]

この契約は非常に基本的なものであり、二重投票や不正投票に対する予防措置はありません。 実際には、有権者登録や各住所が一度しか投票できないことを確認するためのチェックなど、これらの問題を防ぐための手順を含める必要があります。

結論と次のステップ

このコースを修了することで、Vyperを使用したブロックチェーンプログラミングの強固な基盤が作成されました。 これで、イーサリアム、スマートコントラクト、およびVyperを使用してRemix IDEでそれらを作成する方法についてしっかりと理解できました。 この理解は、分散型アプリケーションを開発し、ブロックチェーンエコシステムに参加する機会の世界を放棄します。

スキルと知識をさらに向上させるには、次の領域を探索することを検討してください。

  1. 高度なSolidityプログラミング:Solidityは、イーサリアムスマートコントラクトのもう1つの人気のあるプログラミング言語です。 Solidityを学ぶことで、既存の契約を扱い、イーサリアムコミュニティに貢献する能力が広がります。 ここで私たちのコースをチェックしてください: [オンライン時にSolidityコースのリンクを挿入]

  2. 分散型アプリケーション(DApp)開発:Web3.js、React、Vue.jsなどのフレームワークを使用して、スマートコントラクトとフロントエンド開発を組み合わせることにより、完全な分散型アプリケーションの構築についてさらに深く掘り下げます。 これにより、スマートコントラクトと対話するインタラクティブなユーザーインターフェイスを作成できます。

  3. セキュリティと監査:スマートコントラクトを保護し、徹底的なコード監査を実施するためのベストプラクティスを探ります。 潜在的な脆弱性を理解し、リスクを軽減することで、スマートコントラクトの信頼性と安全性を確保できます。

  4. ブロックチェーンの相互運用性:さまざまなブロックチェーンネットワークとプロトコルの統合を調査します。 クロスチェーン通信と、複数のブロックチェーンと対話できる相互運用可能なスマートコントラクトの開発について学びます。
    ブロックチェーンテクノロジーは絶えず進化しており、最新の進歩を常に把握しておくことが重要であることを忘れないでください。 ブロックチェーンコミュニティと関わり、ディスカッションに積極的に参加し、新しい概念やテクノロジーを探索して、最新情報を入手し、最新の状態に保ちます。

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.
Catalogue
Leçon 3

Vyperでのスマートコントラクトの作成と管理

このコースを修了することで、Vyperを使用したブロックチェーンプログラミングの強固な基盤が作成されました。 これで、イーサリアム、スマートコントラクト、およびVyperを使用してRemix IDEでそれらを作成する方法についてしっかりと理解できました。 この理解は、分散型アプリケーションを開発し、ブロックチェーンエコシステムに参加する機会の世界を放棄します。

紹介

レッスン3へようこそ!このレッスンでは、前のレッスンで学んだ概念と構文を適用して、Remix IDEでVyperを使用してイーサリアムスマートコントラクトを開発することに焦点を当てます。 シンプルなスマートコントラクトを作成、デプロイ、操作し、Vyperとイーサリアムを実際に体験します。 最初の契約は単純なデータストレージ契約で、2番目の契約は基本的な投票システムをシミュレートします。

シンプルストレージ:スマートコントラクトの紹介

展開する最初の契約はです SimpleStorage。 このコントラクトは、その名前が示すように、単一の数値を格納する単純なデータ ストレージ コントラクトです。 SimpleStorage は、変数 storedDataと 2 つの関数、 set および getで構成されます。 この関数を使用すると、ユーザーは番号を格納でき、この関数を使用するとget、誰でもこのset番号を取得できます。

シンプルストレージのデプロイと操作

イーサリアムブロックチェーンでコントラクトを SimpleStorage デプロイして操作する手順を実行します。 イーサリアムブロックチェーンへのコントラクトのデプロイは、コントラクトのバイトコードとABIをイーサリアムネットワークに送信し、そこから呼び出して実行するプロセスです。 コントラクトがデプロイされると、到達可能な一意のアドレスを受け取ります。

SimpleStorageコードは次のとおりです。

ニシキヘビ
# @titleシンプルストレージ
格納データ: int128

@external
def set(x: int128):
    自己保存データ = x

@external
def get() -> int128:
    自己保存データを返す

このコントラクトでは、 の現在の値を取得するためのパブリック変数、 の値を設定するパブリック関数set(x: int128)、および のstoredDatastoredData現在のstoredData値を取得するパブリック定数関数get() -> int128を定義します。

Remix を使用してこのコントラクトをデプロイする方法のステップバイステップガイドを次に示します。

  1. ウェブブラウザを開き、 リミックスイーサリアムIDEに移動します。

  2. Vyperプラグインを有効にする

  3. 環境をセクション内に切り替え Injected Web3 ます Deploy & Run Transactions 。 これにより、リミックスがメタマスクウォレットに接続されます。

  4. File Explorerセクションで、アイコンをクリックして+新しいファイルを作成します。名前を付けます SimpleStorage.vy

  5. コントラクト コードをこの新しいファイルに貼り付けます SimpleStorage

  6. 次に、[VyperCompile ]タブに移動して、 SimpleStorage 契約を選択します。

  7. タブに切り替え Deploy & Run TransactionsDeploy 、ボタンをクリックします。

  8. メタマスクはトランザクション確認ポップアップを開きます。 トランザクションを確認します。

  9. トランザクションが確認されると、デプロイされた SimpleStorage コントラクトが Deployed Contracts セクションに表示されます。

  10. これで、コントラクトを操作できます。 たとえば、数値を格納するには、関数に set 数値を入力して をクリックします transact。 保存されている番号を取得するには、 をクリックします get

シンプル投票:より複雑な契約

で足を濡 SimpleStorageらした後、もう少し複雑なものに移ります: SimpleVoting。 契約は SimpleVoting 単純な投票システムをシミュレートします。 候補のリストがあり、それぞれが文字列として表されます。 ユーザーはこれらの候補者に投票でき、各候補者が獲得した投票数を追跡します。 このコントラクトは、候補者の追加、候補者への投票、および候補者が獲得した総投票数を取得する機能を提供します。

シンプル投票の展開と操作

契約は SimpleVoting よりも少し複雑 SimpleStorageです。 には SimpleVoting、それぞれが文字列で表される候補のリストがあります。

SimpleVotingコードは次のとおりです。

ニシキヘビ
# バイパー投票契約

# 状態変数 'votes' を HashMap として宣言し、各候補者の投票を保存します。投票数: ハッシュマップ[バイト32, uint256]

@external
def vote(候補者: バイト32):
    """
    候補者に投票します。    引数:
    候補者: bytes32 - 投票する候補者の識別子。    """
    # 指定した候補者の投票数をインクリメントします。    自己投票[候補者] += 1

@external
@view
def get_votes(候補: バイト32) -> uint256:
    """
    候補者の合計投票数を取得します。    引数:
    候補者: bytes32 - 投票を取得する候補者の識別子。    収益:
    uint256 - 候補者が獲得した投票の総数。    """
    自己投票を返す[候補者]

この契約は非常に基本的なものであり、二重投票や不正投票に対する予防措置はありません。 実際には、有権者登録や各住所が一度しか投票できないことを確認するためのチェックなど、これらの問題を防ぐための手順を含める必要があります。

結論と次のステップ

このコースを修了することで、Vyperを使用したブロックチェーンプログラミングの強固な基盤が作成されました。 これで、イーサリアム、スマートコントラクト、およびVyperを使用してRemix IDEでそれらを作成する方法についてしっかりと理解できました。 この理解は、分散型アプリケーションを開発し、ブロックチェーンエコシステムに参加する機会の世界を放棄します。

スキルと知識をさらに向上させるには、次の領域を探索することを検討してください。

  1. 高度なSolidityプログラミング:Solidityは、イーサリアムスマートコントラクトのもう1つの人気のあるプログラミング言語です。 Solidityを学ぶことで、既存の契約を扱い、イーサリアムコミュニティに貢献する能力が広がります。 ここで私たちのコースをチェックしてください: [オンライン時にSolidityコースのリンクを挿入]

  2. 分散型アプリケーション(DApp)開発:Web3.js、React、Vue.jsなどのフレームワークを使用して、スマートコントラクトとフロントエンド開発を組み合わせることにより、完全な分散型アプリケーションの構築についてさらに深く掘り下げます。 これにより、スマートコントラクトと対話するインタラクティブなユーザーインターフェイスを作成できます。

  3. セキュリティと監査:スマートコントラクトを保護し、徹底的なコード監査を実施するためのベストプラクティスを探ります。 潜在的な脆弱性を理解し、リスクを軽減することで、スマートコントラクトの信頼性と安全性を確保できます。

  4. ブロックチェーンの相互運用性:さまざまなブロックチェーンネットワークとプロトコルの統合を調査します。 クロスチェーン通信と、複数のブロックチェーンと対話できる相互運用可能なスマートコントラクトの開発について学びます。
    ブロックチェーンテクノロジーは絶えず進化しており、最新の進歩を常に把握しておくことが重要であることを忘れないでください。 ブロックチェーンコミュニティと関わり、ディスカッションに積極的に参加し、新しい概念やテクノロジーを探索して、最新情報を入手し、最新の状態に保ちます。

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.