-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Ethereumスマートコントラクトを書く方法は? Ethereumスマートコントラクトの例
Ethereum smart contracts are self-executing agreements written in code, automatically enforcing terms when conditions are met.
2025/06/15 23:56
Ethereum Smart Contractsの理解
Ethereumスマート契約は、コードのラインに直接書かれた契約の条件との自己執行契約です。これらの契約は、Ethereum Virtual Machine(EVM)で実行され、所定の条件が満たされたときに自動的に実行されます。スマートコントラクトを作成するには、ソリティなどの特定のプログラミング言語を使用することが含まれます。これは、イーサリアム開発に最も一般的に使用される言語です。
スマートコントラクトは展開すると不変です。つまり、ブロックチェーンに公開された後に変更することはできません。この特性により、展開前にコードが徹底的にテストされるようにすることが重要になります。また、開発者は、スマートコントラクトを書く際に、ガスコスト、機能の可視性、セキュリティベストプラクティスを考慮する必要があります。
開発環境を設定します
Ethereumスマートコントラクトを書く前に、適切な開発環境を設定する必要があります。方法は次のとおりです。
- まだインストールされていない場合は、 node.jsとnpmをインストールします。
- NPMを使用して、人気のあるイーサリアム開発フレームワークであるトリュフをインストールします。
npm install -g truffle - Ethereum開発のための個人的なブロックチェーンであるGanacheをインストールして、トランザクションをシミュレートし、契約をローカルでテストします。
- ブラウザ拡張ウォレットであるメタマスクをセットアップして、テストネットまたはメインネットで展開した契約と対話します。
- Visual Studioコードなどのコードエディターを選択し、構文の強調表示とエラー検出用のSolidity拡張機能をインストールします。
これらのツールが整ったら、スマートコントラクトの書き込みとテストを開始できます。
最初のスマートコントラクトを堅実さで書く
番号を保存および取得する簡単なストレージ契約を作成しましょう。以下は、堅実さで書かれた基本的な例です。
pragma solidity ^0.8.0;契約simplestorage {uint storedData; function set(uint x) public { storedData = x; } function get() public view returns (uint) { return storedData; }}
この例では:
-
pragma solidity ^0.8.0;行は、使用される堅牢性のバージョンを指定します。 - 状態変数の
storedData、署名されていない整数を保持すると宣言されています。 -
set()関数を使用すると、誰でもstoredDataの値を更新できます。 -
get()関数は、契約状態を変更せずに現在の値を返すビュー関数です。
各関数と変数は、パブリック、プライベート、または内部などの適切な可視性修飾子で明確に定義する必要があります。
スマートコントラクトのコンパイルと展開
トリュフとガナッシュを使用して上記の契約をコンパイルして展開するには、次の手順に従ってください。
新しいトリュフプロジェクトを作成します:
truffle initSolidityファイルを
contractsディレクトリ内に配置します。migrationsフォルダーで、次のコンテンツで移行スクリプト(2_deploy_contracts.js)を作成します。const SimpleStorage = artifacts.require('SimpleStorage');module.exports = function(deplayer){ deployer.deploy(simplestorage); };契約を編集します:
truffle compileGanacheを起動し、
truffle-config.jsでネットワーク設定を構成します。契約をローカルブロックチェーンに展開します。
truffle migrate
展開後、 Truffle Consoleを使用して、またはFrontendアプリケーションでWeb3.jsまたはEthers.jsライブラリを使用して契約と対話できます。
スマートコントラクトのテスト
テストにより、さまざまなシナリオで契約が予想どおりに動作するようになります。 Truffleは、JavaScriptまたはSolidity自体を使用した単体テストの組み込みサポートを提供します。
これは、 testディレクトリにあるJavaScriptベースのテストの例です。
const SimpleStorage = artifacts.require('SimpleStorage');契約( 'Simplestorage'、Accounts => { それ( '値42'を保存する必要があります、async()=> {const instance = await SimpleStorage.deployed(); await instance.set(42, { from: accounts[0] }); const result = await instance.get.call(); assert.equal(result, 42);}); });
このテスト:
- 契約インスタンスを展開します。
- 値42で
set()関数を呼び出します。 - 使用して、保存された値が予想される出力と一致することを確認するために
assert。
特に複雑なロジック、アクセス制御、または財務業務を扱う場合は、常にエッジケースのテストを作成します。
よくある質問
Q:イーサリアムスマートコントラクト開発のためにトリュフ以外にどのようなツールが必要ですか?契約を編集、展開、テストするために、トリュフの代替としてHardhatを使用できます。さらに、 Remix IDEは、ローカル環境をセットアップせずに小さな契約をすばやく書き、テストしたい初心者に最適なブラウザベースのツールです。
Q:展開されたEthereumスマートコントラクトを変更できますか?いいえ、イーサリアムスマートコントラクトは展開すると不変です。変更が必要な場合は、開発者は契約の新しいバージョンを展開し、必要に応じてデータを移行する必要があります。ただし、プロキシ契約のようなパターンを使用して、アップグレード可能な動作を実現できます。
Q:イーサリアムにスマートコントラクトを展開するのにどれくらいの費用がかかりますか?コストは、契約の複雑さとネットワーク上の現在のガス価格に依存します。 Remix IDEなどのツールを使用して、または展開中にメタマスクのトランザクションの詳細を確認することにより、ガスコストを見積もることができます。より複雑な契約はより多くのガスを消費するため、より多くの費用がかかります。
Q:生産用に私自身のスマートコントラクトを書いても安全ですか?スマートコントラクトを書くことを学ぶことは貴重ですが、それらを生産に展開するには、徹底的なセキュリティ監査と広範なテストが必要です。ベストプラクティスに従い、 Openzeppelinなどの定評のあるライブラリを使用し、実際の資金を処理する契約を開始する前に経験豊富な監査人に相談することをお勧めします。
免責事項:info@kdj.com
提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。
このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。
- Apple の大きな賭け: リップルが欧州を制し、Google がソウルでつまずく - 世界的な決済の綱引き
- 2026-02-03 01:20:02
- 市場の神経が混乱する中、ビットコイン先物は新たな暴落懸念に直面
- 2026-02-03 01:10:01
- Ozark AI が仮想通貨の話題に火をつける: 戦略的上場が 700 倍の価格加速の話題を促進
- 2026-02-03 01:20:02
- ビットコイン価格が8万ドルを下回り、市場の下落と清算が加速
- 2026-02-03 01:10:01
- ローマのトレビの泉:群衆を手なずける 2 ユーロのチケット
- 2026-02-03 01:00:02
- ジャスティン・サンの1億ドルのビットコイン賭け: 仮想通貨冬の真っ只中の逆張りプレイ
- 2026-02-03 01:15:02
関連知識
半減期とは何ですか? (Bitcoinの供給スケジュールの把握)
2026-01-16 00:19:50
Bitcoin 半減期とは何ですか? 1. Bitcoin の半減は、Bitcoin プロトコルに組み込まれた事前にプログラムされたイベントで、マイナーに与えられるブロック報酬を 50% 削減します。 2. これは約 210,000 ブロックごとに発生します。これは、Bitcoin の平均ブロック時...
Play-to-Earn (P2E) ゲームとは何ですか?またその仕組みは何ですか?
2026-01-12 20:19:33
定義とコアメカニズム1. Play-to-Earn (P2E) ゲームは、プレーヤーがゲームプレイ アクティビティを通じて暗号通貨トークンまたは非代替トークン (NFT) を獲得する、ブロックチェーン ベースのデジタル エクスペリエンスです。 2. これらのゲームは、分散型台帳テクノロジーに依存して...
Mempoolとは何ですか?トランザクションはどのように確認されるのですか?
2026-01-24 06:00:16
メンプールとは何ですか? 1. mempool は、未確認のトランザクションを保持する各 Bitcoin ノード内の一時記憶域です。 2. トランザクションはネットワークにブロードキャストされた後、マイナーがトランザクションをブロックに含める前にメモリプールに入ります。 3. すべてのフル ノードは...
暗号通貨で受動的収入を得る方法?
2026-01-13 07:39:45
ステーキングのメカニズム1. ステーキングには、トランザクションの検証やコンセンサスの維持などのネットワーク操作をサポートするために、ウォレットに一定量の暗号通貨をロックすることが含まれます。 2. 参加者は、賭けているのと同じトークンで指定された報酬を受け取り、通常はネットワークで定義されたパラメ...
ゼロ知識証明 (ZK 証明) とは何ですか?
2026-01-22 04:40:14
定義とコアコンセプト1. ゼロ知識証明 (ZK-Proof) は、一方の当事者が、その陳述の有効性を超えて基礎となる情報を明らかにすることなく、他方の当事者に対してその陳述の真実性を証明できるようにする暗号プロトコルです。 2. ZK 証明は、完全性、健全性、ゼロ知識という 3 つの基本特性を満たさ...
ブロックチェーンのトリレンマとは何ですか? (セキュリティ、スケーラビリティ、分散化)
2026-01-15 17:00:25
核心的な対立を理解する1. ブロックチェーンのトリレンマは、単一のブロックチェーン プロトコル内でセキュリティ、スケーラビリティ、分散化を同時に最大化することが非常に難しいという基本的なアーキテクチャ上の制約を説明します。 2. 主要な設計上の決定には必ずトレードオフが伴います。スループットを向上さ...
半減期とは何ですか? (Bitcoinの供給スケジュールの把握)
2026-01-16 00:19:50
Bitcoin 半減期とは何ですか? 1. Bitcoin の半減は、Bitcoin プロトコルに組み込まれた事前にプログラムされたイベントで、マイナーに与えられるブロック報酬を 50% 削減します。 2. これは約 210,000 ブロックごとに発生します。これは、Bitcoin の平均ブロック時...
Play-to-Earn (P2E) ゲームとは何ですか?またその仕組みは何ですか?
2026-01-12 20:19:33
定義とコアメカニズム1. Play-to-Earn (P2E) ゲームは、プレーヤーがゲームプレイ アクティビティを通じて暗号通貨トークンまたは非代替トークン (NFT) を獲得する、ブロックチェーン ベースのデジタル エクスペリエンスです。 2. これらのゲームは、分散型台帳テクノロジーに依存して...
Mempoolとは何ですか?トランザクションはどのように確認されるのですか?
2026-01-24 06:00:16
メンプールとは何ですか? 1. mempool は、未確認のトランザクションを保持する各 Bitcoin ノード内の一時記憶域です。 2. トランザクションはネットワークにブロードキャストされた後、マイナーがトランザクションをブロックに含める前にメモリプールに入ります。 3. すべてのフル ノードは...
暗号通貨で受動的収入を得る方法?
2026-01-13 07:39:45
ステーキングのメカニズム1. ステーキングには、トランザクションの検証やコンセンサスの維持などのネットワーク操作をサポートするために、ウォレットに一定量の暗号通貨をロックすることが含まれます。 2. 参加者は、賭けているのと同じトークンで指定された報酬を受け取り、通常はネットワークで定義されたパラメ...
ゼロ知識証明 (ZK 証明) とは何ですか?
2026-01-22 04:40:14
定義とコアコンセプト1. ゼロ知識証明 (ZK-Proof) は、一方の当事者が、その陳述の有効性を超えて基礎となる情報を明らかにすることなく、他方の当事者に対してその陳述の真実性を証明できるようにする暗号プロトコルです。 2. ZK 証明は、完全性、健全性、ゼロ知識という 3 つの基本特性を満たさ...
ブロックチェーンのトリレンマとは何ですか? (セキュリティ、スケーラビリティ、分散化)
2026-01-15 17:00:25
核心的な対立を理解する1. ブロックチェーンのトリレンマは、単一のブロックチェーン プロトコル内でセキュリティ、スケーラビリティ、分散化を同時に最大化することが非常に難しいという基本的なアーキテクチャ上の制約を説明します。 2. 主要な設計上の決定には必ずトレードオフが伴います。スループットを向上さ...
すべての記事を見る














