親愛なる暗号通貨愛好者の皆さん!スマートコントラクトの作成経験を共有することにしました。正直なところ、私が始めたばかりの頃は、これらの用語やプロセスのせいで髪の毛を引き抜きそうになりました。でも、頑張ってください。## ブロックチェーンの選択 - 最初で最も重要なステップまず最初にブロックチェーンを決める必要があります。私はイーサリアムを選びましたが、正直言って、そこでは手数料が私を困らせます!他にも選択肢があります - 同じBNBチェーンやソラナなど。それぞれに長所と短所があります。コードを書く場所に違いはないと言うでしょう?大きな違いがあります!いくつかのブロックチェーンはより速く、安価ですが、セキュリティが低いです。逆に他のものもあります。そして、ブロックチェーンの選択によって、あなたの契約を使用するオーディエンスも変わります。## プログラミング言語 - Solidity が支配しています主にすべての人がSolidityで書いています。はい、他の言語を使用することもできますが、なぜ複雑にするのですか?Solidityはスマートコントラクトのために特別に作成されており、わかりやすい構文を持っています。ソリディティプラグマの堅固さ ^0.8.0;契約MoyPervyyKontrakt { string public privet = "こんにちは、ブロックチェーン!";}こんなに簡単なものでも契約と見なすことができます。しかし、実際のプロジェクトはもちろん、もっと複雑です。## 開発環境 - ツールがなければどこにも行けません私はRemix IDEから始めました - これはブラウザベースの環境で、インターネット上で直接契約を書く、コンパイルする、テストすることができます。初心者には便利です!その後、HardhatやTruffleなどのより高度なツールに移行しました。## テスト - 最も緊張する段階ここから本当の"楽しみ"が始まります!契約を書いたら、それをテストする必要があります。そしてここで私は全ての可能な落とし穴に足を踏み入れました。ある時、私はコインを使ったミニゲームのための契約を作成しましたが、資金の二重引き出しをチェックするのを忘れてしまいました。その結果?テストグループの一人の賢者が、資金をぐるぐる回してプロジェクトをほぼ破産させるところでした。テストネットでよかった!## デプロイ - 戻れないポイントすべてのテストが完了した後、契約をデプロイする必要があります(ブロックチェーンに展開する)。そしてここで重要なのは、これは不可逆的なプロセスであるということです!ブロックチェーンに入ったコードは変更できません。新しいバージョンをデプロイすることだけが可能です。私は一度テストコードの行を削除するのを忘れました。新しい契約を作成し、なぜ古いものがもう動作しないのかユーザーに説明しなければなりませんでした。恥ずかしい!## 脆弱性 - すべての開発者の悪夢スマートコントラクトのセキュリティは神聖な牛です。ほんの少しのミスが何百万もの損失をもたらす可能性があります。The DAOの話を覚えていますか?あそこでハッカーはコードの脆弱性のために$50 百万を盗みました。私は必ず自分の契約を確認します:- オーバーフロー- 再突入攻撃- アクセス管理の脆弱性- そして他にもたくさんのこと## 新人へのアドバイス自転車を発明しないでください!OpenZeppelinのような既製のライブラリを使用してください。それらは時間とコミュニティによって検証されています。そして、すぐに取引所やDeFiプロトコルの複雑な契約を書くことを目指さないでください。まずはシンプルなものから始めましょう - トークン、投票、シンプルなゲーム。そして、何がうまくいかないか常に考えてください。スマートコントラクトの世界では、間違いを犯す権利はありません。各機能は、それがどのように動作すべきかではなく、悪意のあるユーザーがどのように壊すことができるかを確認してください。ブロックチェーンの世界で頑張ってください!私は新しい契約を書くために行きます。それが、開始後1時間でハッキングされないことを願っています。
スマートコントラクトの書き方 - 私の個人的な経験
親愛なる暗号通貨愛好者の皆さん!スマートコントラクトの作成経験を共有することにしました。正直なところ、私が始めたばかりの頃は、これらの用語やプロセスのせいで髪の毛を引き抜きそうになりました。でも、頑張ってください。
ブロックチェーンの選択 - 最初で最も重要なステップ
まず最初にブロックチェーンを決める必要があります。私はイーサリアムを選びましたが、正直言って、そこでは手数料が私を困らせます!他にも選択肢があります - 同じBNBチェーンやソラナなど。それぞれに長所と短所があります。
コードを書く場所に違いはないと言うでしょう?大きな違いがあります!いくつかのブロックチェーンはより速く、安価ですが、セキュリティが低いです。逆に他のものもあります。そして、ブロックチェーンの選択によって、あなたの契約を使用するオーディエンスも変わります。
プログラミング言語 - Solidity が支配しています
主にすべての人がSolidityで書いています。はい、他の言語を使用することもできますが、なぜ複雑にするのですか?Solidityはスマートコントラクトのために特別に作成されており、わかりやすい構文を持っています。
ソリディティ プラグマの堅固さ ^0.8.0;
契約MoyPervyyKontrakt { string public privet = "こんにちは、ブロックチェーン!"; }
こんなに簡単なものでも契約と見なすことができます。しかし、実際のプロジェクトはもちろん、もっと複雑です。
開発環境 - ツールがなければどこにも行けません
私はRemix IDEから始めました - これはブラウザベースの環境で、インターネット上で直接契約を書く、コンパイルする、テストすることができます。初心者には便利です!その後、HardhatやTruffleなどのより高度なツールに移行しました。
テスト - 最も緊張する段階
ここから本当の"楽しみ"が始まります!契約を書いたら、それをテストする必要があります。そしてここで私は全ての可能な落とし穴に足を踏み入れました。
ある時、私はコインを使ったミニゲームのための契約を作成しましたが、資金の二重引き出しをチェックするのを忘れてしまいました。その結果?テストグループの一人の賢者が、資金をぐるぐる回してプロジェクトをほぼ破産させるところでした。テストネットでよかった!
デプロイ - 戻れないポイント
すべてのテストが完了した後、契約をデプロイする必要があります(ブロックチェーンに展開する)。そしてここで重要なのは、これは不可逆的なプロセスであるということです!ブロックチェーンに入ったコードは変更できません。新しいバージョンをデプロイすることだけが可能です。
私は一度テストコードの行を削除するのを忘れました。新しい契約を作成し、なぜ古いものがもう動作しないのかユーザーに説明しなければなりませんでした。恥ずかしい!
脆弱性 - すべての開発者の悪夢
スマートコントラクトのセキュリティは神聖な牛です。ほんの少しのミスが何百万もの損失をもたらす可能性があります。The DAOの話を覚えていますか?あそこでハッカーはコードの脆弱性のために$50 百万を盗みました。
私は必ず自分の契約を確認します:
新人へのアドバイス
自転車を発明しないでください!OpenZeppelinのような既製のライブラリを使用してください。それらは時間とコミュニティによって検証されています。
そして、すぐに取引所やDeFiプロトコルの複雑な契約を書くことを目指さないでください。まずはシンプルなものから始めましょう - トークン、投票、シンプルなゲーム。
そして、何がうまくいかないか常に考えてください。スマートコントラクトの世界では、間違いを犯す権利はありません。各機能は、それがどのように動作すべきかではなく、悪意のあるユーザーがどのように壊すことができるかを確認してください。
ブロックチェーンの世界で頑張ってください!私は新しい契約を書くために行きます。それが、開始後1時間でハッキングされないことを願っています。