web3.0の簡単な紹介とプロジェクト紹介

web3.0って何ですか?

1 はじめに

Web3.0 は、ブロックチェーンおよびその他のテクノロジーを通じて実現される、よりインテリジェントで分散型の安全かつ信頼性の高いアプリケーションです。

Web3.0 の主な機能は次のとおりです。

分散化: Web3.0 は、データとアプリケーションを集中サーバーから分散ノードに転送して、分散アプリケーションを実現します。

安全で信頼性の高い: Web3.0 はブロックチェーンやその他のテクノロジーを採用し、分散型で改ざん不可能な安全で信頼性の高いアプリケーションを実現します。

Web3.0 のアプリケーション シナリオには、スマート コントラクト、分散型アプリケーション (DApp)、モノのインターネット、人工知能、その他の分野が含まれます。

2. 取り組むべき学習内容

  1. ブロックチェーン技術:分散型プロジェクトは一般的にブロックチェーン技術に基づいて実装されますが、イーサリアム、EOSなどのブロックチェーンの概念、原理、一般的な実装方法を理解する必要があります。

イーサリアムのブロックチェーンは「イーサリアムアカウントモデル」と呼ばれる設計を採用しており、各アカウントは固有のアドレスを持ち、そのアドレスによってアカウントを識別し、アクセスすることができます。Ethereum アカウントには、外部アカウントと契約アカウントの 2 種類があります。コントラクト アカウントはスマート コントラクトの実行コードであり、トランザクション リクエストを受信して​​処理し、複雑なビジネス ロジック処理を実行できます。

外部アカウントは、20 バイトのアドレスで表される標準の Ethereum アカウントです。外部アカウントの秘密キーはユーザーのウォレットに保存され、ユーザーはウォレット ソフトウェアを使用して、作成、インポート、バックアップ、転送、その他の操作などの管理を行うことができます。

コントラクト アカウントは、スマート コントラクトの実行コードを含む特別なタイプのアカウントです。各契約アカウントには 20 バイトで表される一意のアドレスがありますが、外部アカウントのように秘密キーを介して転送することはできません。それに対して、コントラクト アカウントのコードでは、パブリックに呼び出すことができる関数を 1 つ以上定義する必要があります。ユーザーはトランザクション リクエストを送信することでこれらの関数を呼び出すことができます。コントラクト コードは、トランザクション リクエストに従って対応する処理を実行し、結果を送信者に返します。

ユーザーが取引リクエストを送信する際には宛先アドレスを指定する必要があり、宛先アドレスが外部口座の場合は送金操作となり、送金者の口座から取引額が差し引かれて送金者の口座に送金されます。ターゲットアドレス; ターゲットアドレスの場合 これはコントラクトアカウントです, つまりコントラクト関数を呼び出すことを意味します. トランザクションデータにはパラメータと呼び出し関数の戻り値が含まれます. コントラクトコードはパラメータに従って処理し、結果を返します送り主。したがって、契約アカウントのコードは、デジタル資産の管理、投票決定の実行など、非常に複雑なビジネス ロジックと対話型操作を実現できます。

イーサリアム ブロックチェーンの外部アカウントとコントラクト アカウントは異なる方法で動作し、外部アカウントは単純な送金操作に使用され、コントラクト アカウントは複雑なビジネス ロジックとインタラクティブな操作を実装できます。

外部アカウント (左)、契約アカウント (右):

各ブロックには複数の取引記録が含まれており、ハッシュ アルゴリズムによってリンクされて不変のチェーン構造を形成し、取引記録の透明性と追跡可能性が保証されます。

Ethereum ネットワークでは、各トランザクションは固有のトランザクション ハッシュ (トランザクション ハッシュ、TX ハッシュとも呼ばれます) を生成します。TX ハッシュは長い文字列で、通常は 64 個の 16 進文字で構成されます。これは、イーサリアム ネットワーク内のトランザクションの一意の識別子であり、トランザクションのステータスのクエリ、トランザクションがブロックにパッケージ化されているかどうかの確認、およびその他の関連操作に使用できます。

TX ハッシュはトランザクションの送信者によって作成され、トランザクションのさまざまな詳細から計算され、ネットワーク上でブロードキャストされます。TX ハッシュがブロードキャストされると、マイナー ノードはそれをメモリ プールに追加し、ブロックにパックされるのを待ちます。

トランザクションがブロックにパッケージ化されると、TX ハッシュはブロックの一部となり、ブロックチェーンに永続的に記録されます。この時点で、TX ハッシュを使用してトランザクションのステータスを照会し、トランザクションが処理されたかどうかを確認し、その他の関連情報を確認できます。

TX ハッシュは、イーサリアム ネットワーク内のトランザクションの一意の識別子であり、トランザクションのステータスの識別、トランザクションが処理されているかどうかのクエリ、およびその他の関連操作に使用されます。

  1. スマートコントラクト:スマートコントラクトはブロックチェーンプロジェクトの中核であり、スマートコントラクトの概念、記述方法、セキュリティなどを理解する必要があります。

私は開発ツールRemix-Ethereumを使用して作成し、彼は Ethereum ブロックチェーンに基づいて Solidity を作成します。

3.堅牢性

Ethereum チームによって開発された Solidity は、Web3 で最も一般的に使用されるスマート コントラクト プログラミング言語です。この言語は完全なチューリング言語であり、オブジェクト指向です。これらの特性は、この言語が C++、Python、JavaScript の影響を強く受けた結果です。

EVM 互換のブロックチェーン上に構築されているため、開発者は Solidity を使用してイーサリアム ネイティブの dApp を作成し、投票、トランザクション管理、マルチシグネチャ ウォレットなどの無数の目的でスマート コントラクトを展開できます。

アカウントのガス使用量が 2 倍になります

3. 連携開発ツール

テスト環境:ガナッシュ

正式環境: メタマスク

プロジェクトの説明

このプロジェクトは、2021 年 12 月 12 日に設立されました。フロントエンド フレームワークはvue 3+ts を使用し、コンポーネント ライブラリは antd を使用し、Truffle フレームワークは Web3 アプリケーションの開発に使用され、ブロックチェーンは Solidity+web3.js を使用します。

プロジェクトの説明:ブロックチェーンテクノロジー、Web3.js+ Solidityを使用してスマート コントラクトを作成し、従来の Web 2.0 インターフェイスを置き換え、メタマスク プラグインを使用して分散アカウントにログインしますWeb 3.0 Peace of Mind - 慈善活動と公共福祉の公開性と透明性を促進する、重篤な病気に対する個人的な支援のためのブロックチェーン サービス ネットワーク (BSN) に基づくサービス プラットフォーム。このプラットフォームは、スマートコントラクトを通じて患者情報、取引データ、寄付承認などをチェーン上に置き、寄付資金の安全性と透明性を最大限に確保します

主な仕事

フロントエンドは、従来のフロントエンドとバックエンドのインターフェイス モードではなく、Web3.js を使用してブロックチェーン内のインターフェイスを呼び出します。分散化により開発がより便利になり、すべてのトランザクション レコードがオープンで透過的になります。

プロジェクト構成 (truffle web3 フレームワークを使用)

設定シーケンス:

1. まず、`node`、`npm`、`yarn`を設定し、`ganache`、`chrome`、`chrome`をインストールし、`MetaMask`プラグインをインストールする必要があります。
2. truffle をインストールします。「yarn global add truffle」
3.「ガナッシュ」ソフトウェアを開きます
4. 「ganache」ソフトウェアのクイックスタートを選択し、右上隅の歯車アイコンをクリックして設定します
5. ワークスペース タブでプロジェクトを追加し、「./truffle-config.js」を選択し、サーバー タブでポートを 8545 に変更します。
6. 右上隅にある「保存して再起動」をクリックします。
7. ガナッシュ ソフトウェアの一番上の契約タブを選択し、クラウドファンディング契約のアドレスをコピーし、`./crowdfunding/src/api/contract.ts` ファイルの 7 行目を見つけて、0x で始まるアドレスを上書きします。先ほどコピーしたアドレス。
8.finalWorkフォルダーに切り替えます
9. 「truffle COMPILE」と入力します。
10.「truffle Migrate」と入力します。
11. `./build/contracts/CrowdFunding.json` を `./crowdfunding/src/api/` ディレクトリにコピーします
12. `./crowdfunding/` ディレクトリに切り替えます
13.「yarn」と入力します。
14. インストールが完了したら、「yarnserve」と入力します。
15. ブラウザでアクセスします: `http://localhost:8080`
16. 「metamask」で localhost:8545 に接続されているローカル ネットワークを選択し、ganache からいくつかのアカウントをインポートしてテストを開始します。
説明:
  • 1.truffle コンパイルは、Solidity スマート コントラクトをコンパイルするために Truffle フレームワークによって提供されるコマンドライン ツールです。Ethereum DApp を開発する場合、スマート コントラクトは DApp の核となり、アプリケーションのビジネス ロジックとデータ構造を定義します。Truffle では、スマート コントラクトは通常、contracts/ ディレクトリにあり、Solidity 言語で書かれています。スマート コントラクトが変更された場合、その後の展開、テスト、および対話を実行できるように、コントラクトを再コンパイルして ABI (アプリケーション バイナリ インターフェイス) とバイナリ コードを生成する必要があります。truffle コンパイル コマンドは、デフォルトで solc コンパイラーを使用してコントラクトをコンパイルすることに注意してください。コンパイラ オプションは、異なるバージョンの solc コンパイラの使用を選択したり、外部コンパイラを使用したりするなど、truffle-config.js のコンパイラ プロパティを設定することで変更できます。

  • 2. Solidity スマート コントラクトを作成するときは、通常、Solidity コンパイラーを使用して Solidity コードをバイトコードにコンパイルし、そのバイトコードを Ethereum ネットワークにデプロイする必要があります。Solidity のコンパイル プロセス中に、スマート コントラクトのメタデータと ABI (アプリケーション バイナリ インターフェイス) 情報を含む JSON ファイルが生成されます。

  • 3.truffle Migrate は、Truffle フレームワークによって提供されるコマンドライン ツールで、Solidity スマート コントラクトをターゲットのブロックチェーン ネットワークにデプロイするために使用されます。Ethereum DApp を開発する場合、スマート コントラクトは DApp の核となり、アプリケーションのビジネス ロジックとデータ構造を定義します。truffle Migrate コマンドは、デプロイメント スクリプトを実行し、スマート コントラクトをターゲット ネットワークにデプロイします。デプロイメント スクリプトを実行する前に、コンパイルが完了していること、つまり、対応する ABI とバイナリ コードが生成されていることを確認する必要があります。デプロイメント スクリプトは通常、migrations/ ディレクトリにあり、JavaScript 言語で記述されており、コントラクト アドレスの構成ファイルへの保存やコントラクトの状態の初期化など、いくつかの初期化操作を実行できます。

  • 4. これらの展開ファイルは、スマート コントラクト展開操作を実行するために使用される JavaScript スクリプトです。Truffle では、各デプロイメント ファイルはスマート コントラクトのデプロイメント プロセスに対応しており、1_initial_migration.js のように、数字で始まるファイル名はデプロイメントの順序を示します。デプロイメント ファイルでは、開発者は、デプロイするスマート コントラクトの名前、デプロイヤー アカウントのアドレス、デプロイヤー アカウントの秘密キー、使用するネットワーク構成などを指定する必要があります。デプロイメント ファイルは通常、Truffle によって提供される artifacts.require() メソッドを使用してコンパイルされたスマート コントラクトをロードし、次にデプロイヤ アカウントを使用してdeploy() メソッドを呼び出し、コントラクトをターゲット ネットワークにデプロイします。デプロイメントが成功すると、コントラクトのアドレスが構成ファイルに保存され、後続のテストや対話で使用されます。

  • 5. artifacts.require() メソッドは、スマート コントラクトの名前であるパラメーターを受け取ることができます。artifacts.require() メソッドを呼び出すと、対応する JSON ファイルを build/contracts/ ディレクトリから読み取り、スマート コントラクト ABI とバイナリ コードを含む JavaScript オブジェクトを返します。開発者は、このオブジェクトを使用して、スマート コントラクトの展開、テスト、対話などの操作を実行できます。artifacts.require() メソッドによって返される JavaScript オブジェクトには、スマート コントラクトの ABI とバイナリ コードが含まれていますが、コントラクトのアドレスは含まれていないことに注意してください。スマート コントラクトがデプロイされると、コントラクトのアドレスが構成ファイルに保存されるため、開発者は手動でアドレスを読み取り、スマート コントラクト オブジェクトに関連付ける必要があります。

  • 6. build/contracts/ ディレクトリ内の対応する JSON ファイルには、コンパイル時にネットワーク フィールドが含まれていませんが、スマート コントラクトが正常にデプロイされると、Truffle はネットワーク フィールドを自動的に更新して、別のネットワークでのコントラクトのデプロイを記録します。

主な機能

製品ホームページにレスキューリストを表示

募金活動を始める

救助者が資金を寄付

資金調達が成功した後、受取人は資金の使用リクエストを開始します。

寄付者が資金の使用に同意するかどうかを確認するのを待っています

寄付者の半数が承認した後、資金が患者の口座に送金されます。

パーソナルセンター情報ページ

終了

これは私にとって初めての Web3.0 共有です。これを皆さんと共有できることをとても嬉しく思います。

おすすめ

転載: blog.csdn.net/weixin_54079103/article/details/131741085