第2课

イーサリアムとSolidityの基本

イーサリアムは、スマートコントラクトと分散型アプリケーション(dApps)をサポートするブロックチェーンベースのプラットフォームです。

イーサリアムの概要

イーサリアムは、ブロックチェーンベースのオープンソースの分散型ソフトウェアプラットフォームであり、ビットコインへの主要な挑戦者として浮上しています。 イーサリアムは、2013年に暗号通貨研究者のヴィタリック・ブテリンによって最初に提案され、ビットコインにプログラミング用のスクリプト言語を追加することを提案しました。 2015年7月30日に発売されました。 イーサリアムの開発は、暗号通貨トークンが発行されるクラウドソーシングの一種であるオンラインクラウドセールによって後援されました。

続きを読む: イーサリアムとは?

イーサリアムのネイティブ暗号通貨はイーサ(ETH)と呼ばれ、Solidityと呼ばれるプログラミング言語を備えています。 イーサリアムの基盤技術であるブロックチェーンは、永続的で改ざん防止された記録のリストを維持する分散型台帳です。 この分散型アーキテクチャにより、開発者はプラットフォームの堅牢なエコシステムと汎用性を活用して、幅広い分散型アプリケーション(dApps)を作成できます。

イーサリアムのコア機能の1つは、レッスン1で述べたように、事前に定義された条件に基づいて自動的に実行されるデジタルコン トラクトであるスマートコントラクトのサポートです。 これらのスマートコントラクトは、仲介者を必要とせずに安全かつ透過的に取引を行うことができるトラストレスな環境を可能にします。 イーサリアムネットワーク上のマイナーは、通貨としてだけでなく、プラットフォームでの使用料を支払う手段としても機能するイーサトークンを生成していました。「マージ」の後、イーサリアムはプルーフ・オブ・ステーク(PoS)メカニズムに移行し、(マイナーではなく)バリデーターがトランザクションを検証し、新しいブロックを作成します。 バリデーターは、イーサリアムトークンを生成する代わりに、ネットワークに参加することで取引手数料を獲得し、イーサリアムで報酬をブロックします。 イーサリアムは、プラットフォーム上での利用料金を支払う手段としても機能していますが、その発行と配布は、以前のプルーフ・オブ・ワーク(PoW)メカニズムとは異なります。

イーサリアムは、dAppsやスマートコントラクトをホストする能力が開発者や組織から大きな関心を集めており、金融、サプライチェーン、ゲームなど、さまざまな業界で革新的なソリューションを構築するための主要なプラットフォームとなっています。 イーサリアムのエコシステムは進化を続けており、ブロックチェーン技術の最前線に立ち続け、イノベーションを推進し、開発者とユーザーの活発なコミュニティを育成しています。

続きを読む: マージとは何ですか?

続きを読む: DAppとは?

Solidityプログラミング言語の紹介

Solidityは、イーサリアムブロックチェーン上にスマートコントラクトを書くために特別に設計された、高レベルの静的型付けプログラミング言語です。 イーサリアムのコアチームによって開発されたSolidityの構文はJavaScriptの影響を受けているため、幅広い開発者にとって馴染みがあり、アクセスしやすいものとなっています。 この言語はチューリング完全であり、開発者は複雑なロジックを作成し、スマートコントラクトにさまざまな機能を実装することができます。 Solidityは、イーサリアムネットワーク上で実行されるイーサリアム仮想マシン(EVM)バイトコードにコンパイルされます。

Solidityでは、開発者はカスタムデータ構造の定義、ユーザー定義関数の作成、アクセス制御メカニズムの実装などの機能を行うことができます。 Solidityを使用すると、分散型金融(DeFi)プラットフォーム、非代替性トークン(NFT)、分散型自律組織(DAO)など、さまざまな分散型アプリケーションを作成できます。

Solidity契約の構造:例

Solidity コントラクトは、変数、関数、イベント、修飾子などの要素で構成される自己完結型のコードです。 Solidity契約の基本構造は次のとおりです。

  1. プラグマディレクティブ:この行は、スマートコントラクトと互換性のあるSolidityコンパイラのバージョンを指定します。 例えば:

    硬度
    プラグマの堅実さ^0.8.0;
    
  2. 契約の定義: この行は、契約とその名前を宣言します。 \
    例えば:

    硬度
    契約 SimpleToken {
    
  3. 状態変数:これらは、コントラクトの状態をブロックチェーンに格納する変数です。 たとえば、トークンの総供給量を格納できます。

    硬度
    uint256パブリックtotalSupply;
    
  4. 関数: 関数はコントラクトの動作を定義し、外部ユーザーまたは他のコントラクトから呼び出すことができます。 トークンを転送する簡単な関数は次のとおりです。

    硬度
    関数転送(アドレス受信者、uint256金額) 公開 {
     // ... transfer logic ...
    }
    
  5. イベント: イベントは、コントラクト内の特定のアクションをログに記録するために使用され、外部ユーザーまたはコントラクトによって監視できます。 たとえば、トークンコントラクトの Transfer イベントでは、次のようになります。

    硬度
    イベント転送(インデックス元のアドレス、インデックスのアドレス、uint256値);
    
  6. 修飾子: 修飾子は、通常、アクセス制御または前提条件チェックのために、関数の動作を変更するために使用されます。 たとえば、送信者が転送するのに十分なトークンを持っているかどうかを確認する修飾子は、次のようになります。

    JavaScriptについて
    修飾子hasEnoughTokens(uint256 amount) {
     require(balanceOf[msg.sender] >= amount, "Insufficient balance");
     _;
    }
    
  7. コンストラクタ: コンストラクタは、コントラクトの状態変数をデプロイ時に初期化する特別な関数です。 たとえば、トークンの総供給量を初期化すると、次のようになります。

    JavaScriptについて
    コンストラクタ(uint256 _totalSupply) {
     totalSupply = _totalSupply;
     balanceOf[msg.sender] = _totalSupply;
    }
    

まとめると、トークンの単純なSolidityコントラクトは次のようになります。

タイプスクリプト
プラグマの堅実さ^0.8.0;

契約 SimpleToken {
    uint256パブリックtotalSupply;
    mapping(address => uint256) public balanceOf;

イベント転送(インデックス元のアドレス、インデックスのアドレス、uint256値);

修飾子hasEnoughTokens(uint256 amount) {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        _;
    }
}

ハイライト
イーサリアムは、スマートコントラクトと分散型アプリケーション(dApps)をサポートするブロックチェーンベースのプラットフォームです。
イーサリアムのネイティブ暗号通貨はイーサリアム(ETH)です。
Solidityは、イーサリアム上でスマートコントラクトを書くために使用される高水準プログラミング言語です。
イーサリアム上のスマートコントラクトは、事前に定義された条件に基づいて自動的に実行されます。
イーサリアムは、トランザクションを検証し、新しいブロックを作成するためのプルーフ・オブ・ステーク(PoS)メカニズムに移行しました。
Solidityを使用すると、開発者はデータ構造の定義、関数の作成、アクセス制御の実装などを行うことができます。
イーサリアムのエコシステムは、さまざまな業界の開発者や組織を魅了しています。
Solidity コントラクトは、プラグマ、コントラクト定義、状態変数、関数、イベント、修飾子、およびコンストラクタで構成されます。
Solidityコントラクトは、DeFiプラットフォーム、NFT、DAOなどの作成に使用できます。

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第2课

イーサリアムとSolidityの基本

イーサリアムは、スマートコントラクトと分散型アプリケーション(dApps)をサポートするブロックチェーンベースのプラットフォームです。

イーサリアムの概要

イーサリアムは、ブロックチェーンベースのオープンソースの分散型ソフトウェアプラットフォームであり、ビットコインへの主要な挑戦者として浮上しています。 イーサリアムは、2013年に暗号通貨研究者のヴィタリック・ブテリンによって最初に提案され、ビットコインにプログラミング用のスクリプト言語を追加することを提案しました。 2015年7月30日に発売されました。 イーサリアムの開発は、暗号通貨トークンが発行されるクラウドソーシングの一種であるオンラインクラウドセールによって後援されました。

続きを読む: イーサリアムとは?

イーサリアムのネイティブ暗号通貨はイーサ(ETH)と呼ばれ、Solidityと呼ばれるプログラミング言語を備えています。 イーサリアムの基盤技術であるブロックチェーンは、永続的で改ざん防止された記録のリストを維持する分散型台帳です。 この分散型アーキテクチャにより、開発者はプラットフォームの堅牢なエコシステムと汎用性を活用して、幅広い分散型アプリケーション(dApps)を作成できます。

イーサリアムのコア機能の1つは、レッスン1で述べたように、事前に定義された条件に基づいて自動的に実行されるデジタルコン トラクトであるスマートコントラクトのサポートです。 これらのスマートコントラクトは、仲介者を必要とせずに安全かつ透過的に取引を行うことができるトラストレスな環境を可能にします。 イーサリアムネットワーク上のマイナーは、通貨としてだけでなく、プラットフォームでの使用料を支払う手段としても機能するイーサトークンを生成していました。「マージ」の後、イーサリアムはプルーフ・オブ・ステーク(PoS)メカニズムに移行し、(マイナーではなく)バリデーターがトランザクションを検証し、新しいブロックを作成します。 バリデーターは、イーサリアムトークンを生成する代わりに、ネットワークに参加することで取引手数料を獲得し、イーサリアムで報酬をブロックします。 イーサリアムは、プラットフォーム上での利用料金を支払う手段としても機能していますが、その発行と配布は、以前のプルーフ・オブ・ワーク(PoW)メカニズムとは異なります。

イーサリアムは、dAppsやスマートコントラクトをホストする能力が開発者や組織から大きな関心を集めており、金融、サプライチェーン、ゲームなど、さまざまな業界で革新的なソリューションを構築するための主要なプラットフォームとなっています。 イーサリアムのエコシステムは進化を続けており、ブロックチェーン技術の最前線に立ち続け、イノベーションを推進し、開発者とユーザーの活発なコミュニティを育成しています。

続きを読む: マージとは何ですか?

続きを読む: DAppとは?

Solidityプログラミング言語の紹介

Solidityは、イーサリアムブロックチェーン上にスマートコントラクトを書くために特別に設計された、高レベルの静的型付けプログラミング言語です。 イーサリアムのコアチームによって開発されたSolidityの構文はJavaScriptの影響を受けているため、幅広い開発者にとって馴染みがあり、アクセスしやすいものとなっています。 この言語はチューリング完全であり、開発者は複雑なロジックを作成し、スマートコントラクトにさまざまな機能を実装することができます。 Solidityは、イーサリアムネットワーク上で実行されるイーサリアム仮想マシン(EVM)バイトコードにコンパイルされます。

Solidityでは、開発者はカスタムデータ構造の定義、ユーザー定義関数の作成、アクセス制御メカニズムの実装などの機能を行うことができます。 Solidityを使用すると、分散型金融(DeFi)プラットフォーム、非代替性トークン(NFT)、分散型自律組織(DAO)など、さまざまな分散型アプリケーションを作成できます。

Solidity契約の構造:例

Solidity コントラクトは、変数、関数、イベント、修飾子などの要素で構成される自己完結型のコードです。 Solidity契約の基本構造は次のとおりです。

  1. プラグマディレクティブ:この行は、スマートコントラクトと互換性のあるSolidityコンパイラのバージョンを指定します。 例えば:

    硬度
    プラグマの堅実さ^0.8.0;
    
  2. 契約の定義: この行は、契約とその名前を宣言します。 \
    例えば:

    硬度
    契約 SimpleToken {
    
  3. 状態変数:これらは、コントラクトの状態をブロックチェーンに格納する変数です。 たとえば、トークンの総供給量を格納できます。

    硬度
    uint256パブリックtotalSupply;
    
  4. 関数: 関数はコントラクトの動作を定義し、外部ユーザーまたは他のコントラクトから呼び出すことができます。 トークンを転送する簡単な関数は次のとおりです。

    硬度
    関数転送(アドレス受信者、uint256金額) 公開 {
     // ... transfer logic ...
    }
    
  5. イベント: イベントは、コントラクト内の特定のアクションをログに記録するために使用され、外部ユーザーまたはコントラクトによって監視できます。 たとえば、トークンコントラクトの Transfer イベントでは、次のようになります。

    硬度
    イベント転送(インデックス元のアドレス、インデックスのアドレス、uint256値);
    
  6. 修飾子: 修飾子は、通常、アクセス制御または前提条件チェックのために、関数の動作を変更するために使用されます。 たとえば、送信者が転送するのに十分なトークンを持っているかどうかを確認する修飾子は、次のようになります。

    JavaScriptについて
    修飾子hasEnoughTokens(uint256 amount) {
     require(balanceOf[msg.sender] >= amount, "Insufficient balance");
     _;
    }
    
  7. コンストラクタ: コンストラクタは、コントラクトの状態変数をデプロイ時に初期化する特別な関数です。 たとえば、トークンの総供給量を初期化すると、次のようになります。

    JavaScriptについて
    コンストラクタ(uint256 _totalSupply) {
     totalSupply = _totalSupply;
     balanceOf[msg.sender] = _totalSupply;
    }
    

まとめると、トークンの単純なSolidityコントラクトは次のようになります。

タイプスクリプト
プラグマの堅実さ^0.8.0;

契約 SimpleToken {
    uint256パブリックtotalSupply;
    mapping(address => uint256) public balanceOf;

イベント転送(インデックス元のアドレス、インデックスのアドレス、uint256値);

修飾子hasEnoughTokens(uint256 amount) {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        _;
    }
}

ハイライト
イーサリアムは、スマートコントラクトと分散型アプリケーション(dApps)をサポートするブロックチェーンベースのプラットフォームです。
イーサリアムのネイティブ暗号通貨はイーサリアム(ETH)です。
Solidityは、イーサリアム上でスマートコントラクトを書くために使用される高水準プログラミング言語です。
イーサリアム上のスマートコントラクトは、事前に定義された条件に基づいて自動的に実行されます。
イーサリアムは、トランザクションを検証し、新しいブロックを作成するためのプルーフ・オブ・ステーク(PoS)メカニズムに移行しました。
Solidityを使用すると、開発者はデータ構造の定義、関数の作成、アクセス制御の実装などを行うことができます。
イーサリアムのエコシステムは、さまざまな業界の開発者や組織を魅了しています。
Solidity コントラクトは、プラグマ、コントラクト定義、状態変数、関数、イベント、修飾子、およびコンストラクタで構成されます。
Solidityコントラクトは、DeFiプラットフォーム、NFT、DAOなどの作成に使用できます。

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.