原作者: パトリック・コリンズ @Chainlink
原文の翻訳: 頭
スマート コントラクト、ブロックチェーン、Web3、イーサリアム、Solidity 開発者向けの包括的なツール ガイド。さらに、Solana、Terra、その他の Rust スマート コントラクト ベースのツールの簡単な紹介
去年、少し勉強しましたスマートコントラクト開発者向けのトップフレームワーク、今年はさらに拡大していきます。
10 のカテゴリのツールを検討し、その後、スマート コントラクト/ブロックチェーン/ソリディティ/vyper/rust/web3 開発者に最適な各カテゴリのツールを見ていきます (最近、「ブロックチェーン開発者」を表す用語が多すぎます)。 。
私はこのリストにあるすべてのツールをある程度使用したことがありますので、単にツールのリストをコピー&ペーストしているわけではないので、ご安心ください。私のことを知らない人のために少し自己紹介から始めると、私はスマートコントラクトの世界に住んでおり、業界の優秀な人々と協力して働いています。Chainlinkプロジェクト開発者擁護者、私自身のブロックチェーンインフラストラクチャ会社CEO、Web3愛好家。これにより、世界の優秀な開発者が使用しているものが得られます。ただし、このリストはすべてを網羅したリストではないため、ツールを見逃していた場合は申し訳ありません。これはすべての開発者が認識する必要があると私が思うことです。それでは、始めましょう!
この記事には次の内容が含まれます。
スマートコントラクトガイド
スマートコントラクトの必需品
財布
財布
ブロック エクスプローラー (ブラウザ)
レイヤ1ノードサービス
フロントエンドツール
ヘルプとサポート
セキュリティ分析
監視とメンテナンス
さらに、テーマビデオ最初のレベルのタイトル
1. スマートコントラクト言語
副題
Solidity
スマート コントラクトを初めて使用する場合は、以下から始める必要があります。solidity始める。スマート コントラクトを行ったことがある場合は、おそらくソリッド性についてすでにご存知でしょう。 Solidity が最も重要で最も一般的に使用されているスマート コントラクト開発言語であることは否定できません。 Solidity は、Ethereum、Avalanche、Moonbeam、Polygon、BSC など、ほとんどのスマート コントラクト プラットフォームに適しています。これは、ほとんどのブロックチェーンが採用しているという事実によるものです。イーサリアム仮想マシン (EVM)、そしてそのために堅牢性が生まれます。現在のランキングではDefiプロジェクトトップ10このうち 9 社は主要なプログラミング言語として Solidity を使用しています。
私は、将来的にはスマート コントラクトの価値の 90% が堅牢に実装されると予測しています。 Solidity 言語は積極的に保守されており、豊富なサポートが提供されています。
置くこともできますyul/assembly副題
Vyper
Vyperこれは、EVM と互換性のあるもう 1 つの言語で、主に次のような言語で使用されます。Defiプロジェクトトップ10用途の 1 つ (他のプロジェクトではヘルパーとして使用されています)。Curve.fi副題
Rust
Rustこれはブロック上の新生であり、イーサリアム、ポリゴン、バイナンススマートチェーンなどのEVMのブロックチェーンには適用されません。ただし、Rust は以下にデプロイできます。Solana、Terraチェーンを待つか、Polkadotブロックチェーン アプリケーションを構築します。 Rust は、スマート コントラクト以外でも使用できる優れたパフォーマンスを備えた汎用言語であるため、多くのパブリック チェーンが開発言語として Rust を選択しています。そのロジックは、「まあ、一部の開発者はすでに Rust を持っているので、できるだけ多くの場所で開発者が Rust を利用できるようにしましょう」というものです。
副題
スマートコントラクト言語の概要
知っておくべきこと: 堅牢性
Python 愛好家: Vyper
Terra, Solana,最初のレベルのタイトル
2. スマートコントラクトに必須のツール
副題
Chainlink
チェーンリンクはブロックチェーンオラクル、それはスマートコントラクトですハイブリッドスマートコントラクトこのツールにはいくつかのオフチェーン コンポーネントが含まれており、現実世界と接続されています。スマート コントラクトは優れていますが、外部の世界とまったく接続されていないという大きな問題があります。データやオフチェーン計算などのオフチェーンコンポーネントを使用してスマートコントラクトを分散化した状態に保つには、オフチェーンデータと計算を分散化する必要があり、これを実現するのがChainlinkネットワークとツールです。上位のスマート コントラクト プラットフォームの大部分はハイブリッド スマート コントラクトであり、インフラストラクチャの重要な部分としてオラクルを使用しています。ただ見てくださいDeFipulse最初の 10 プロジェクトについては、どのプロジェクトが混在しているかがわかります。
アスタリスクの説明*: Uniswap には Oracle 製品があります。 Yearn と Instadapp は、Oracle を使用する/ハイブリッドなプロトコルで動作するアグリゲーターです。 Sushiswap はレバレッジ取引にオラクルを使用します。プロジェクトの少なくとも 50% がインフラストラクチャの重要な部分としてオラクルを使用しており、さらに 30% (合計 80%) が何らかの方法でオラクルを使用していることがわかります。オラクルで入手可能資産価格設定情報、乱数、イベント駆動型の自動実行、等。
Chainlink は、この分野に参入するスマート コントラクト開発者にとって不可欠な機能です。言語やブロックチェーンを問わず。
さらに、2020 年と 2021 年には、数多くのフラッシュローン攻撃、オラクル操作攻撃など。ハクティビズム、Defi分野で数十億ドル近くの損失を引き起こしました。最も悲惨なことに、その半分以上は、Chainlink のような信頼できるオラクルを使用することで防ぐことができます。 2022 年には、あなたやあなたの友人が集中型または安全でないオラクルを使用することを許可しないでください。
副題
Openzeppelin
Openzeppelin「Solidity標準ライブラリ」としての地位を確固たるものとしました。開発者 (私も含めて) が簡単な方法を探しているときはいつでも、NFT/ERC721の導入、ERC20、アップグレード可能な契約、DAO/ガバナンス、またはこの分野の開発者が実行したいプロジェクトであれば、十中八九、Openzeppelin パッケージを見つけたいと思うでしょう。
副題
スマートコントラクトの要点の概要
知っておくべきこと: チェーンリンクとオープンツェッペリン
これらは両方とも使用できます (おそらく使用する必要があります)。これらのテクノロジーについて私が知っている限りでは、それはいくら強調してもしすぎることはありません。
3. フレームワークのデプロイとテスト
昨年の私のレビュー記事は、特にこのカテゴリーに関しては, そこで今年は、これらのフレームワークが今日どのように考えられているかの違いについて話さなければなりません。スマート コントラクト フレームワークは、開発者の仕事の重要な部分です。これらは、スマート コントラクトの効率的なテストと展開に役立ちます。これらのうち少なくとも 1 つを習得することは、成功への重要なステップです。
より直感的に理解するには、defpulse からコンパイルしたグラフを見てください。トップの DeFi プロジェクトのいくつかで使用されている開発フレームワークが示されています。
Defipulse のトップ 10 Defi プロジェクトとそれらが使用するスマート コントラクト開発フレームワーク さらに、私はこれらの開発フレームワークの現状を次のように見ています。
スター選手:
優秀な選手:
Remix, Truffle, Apeworx, Foundry
代役:
Waffle, sbt-ethereum, web3j, Embark, Saddle
非EVM:
副題
Etherlime, Openzeppelin SDK, Cobra, Parasol
スター選手
Hardhat
現在、ハードハット フレームワークは最も重要なスマート コントラクト開発フレームワークです。 Hardhat は、JavaScript と Solidity に基づいた開発フレームワークで、アプリケーションの開発速度を迅速に向上させることができます。見ることができますhardhat-starter-kit、ヘルメット プロジェクトの使用例について学びます。
Hardhat のテスト速度、TypeScript のサポート、幅広い採用、そして驚くべき開発者エクスペリエンスを重視したチームを考えると、その人気がこれほど急速に高まったのも不思議ではありません。去年の今頃、私はこの枠組みを最優先事項に据えましたが、それは今でも変わりません。バックエンドで使用されますethers.js、テスト用のネイティブ ブロックチェーンが付属しており、チームは現在構築中です新しい先進的な開発プラットフォーム、Hardhat に統合される、2022 年のこの試みに非常に興奮しています。
私のことを知っている方は、あらゆる種類の JavaScript のせいで奇妙さ, 私はその最大のファンではないので、タイプスクリプトで Hardhat を使用することを好むことがよくあります。 Hardhat は、私が 2 番目によく使用するフレームワークです。
JavaScript が好きな場合、または最も人気があり最もサポートされているフレームワークを使用したい場合は、このフレームワークを強くお勧めします。
Brownie
私の他の作品を読んだことがあるなら、私が恋に落ちていることがわかるでしょうbrownieフレーム。
Brownie は、上に構築されたオープンソースの Python ベースのフレームワークです。web3.pyそしてCurve.fi、Badgerなどのプロトコルが使用されます。 Solidity と vyper の両方をサポートしていますが、このフレームワークの主なハイライトは Python に基づいていることです。 Brownie が誕生したのは、多くの Python エンジニアが JavaScript での作業を嫌い、Python 用のフレームワークを望んでいたからです。また、従来のフィンテック分野の多くはJavaScriptではなくPythonを使用しており、Brownieの誕生によりフィンテック分野からDefiへの移行も容易になります。
新しいプロジェクトを作成するときに私が選んだフレームワークは Brownie であり、私は自称 Brownie 開発者の支持者です。見ることができますbrownie-starter-kit(ブラウニーの世界では「ミックス」とも呼ばれます)、フレームワークを使用して開発を開始します。必ずご確認くださいBrownie Mixesリポジトリ内の他のスターター キットのリスト。
いいえ
DappTools
それでもDapptoolsいいえゴージャスなロゴ, しかし、これは Haskell で構築されたアプリケーションです。ただし、心配しないでください。Haskell を使用するために Haskell を知る必要はありません。
Dapptools は主に次のもので構成されますMakerDAOチーム (DAI の背後にあるチーム) からインスピレーションを受けましたUnix哲学: 「プログラムは 1 つのことだけを行い、それをうまく実行します。 (1 つのことを実行し、それをうまく実行するプログラムを作成します。)」 Dapptools はコマンド ラインに焦点を当てたツールです。ここでは、すでに使い慣れたコマンド ラインを使用できます。開発に役立つ、Python、JavaScript、またはその他の高レベル プログラミング言語の代わりに、bash や zsh などの /shell ツール。これにより、習熟しなければならないテクニックが 1 つ減り、シェル スクリプトの作成がより上手になる必要があります。これには、dapp、seth、ethsign、hevm などの一連のツールが付属しており、それぞれがスマート コントラクト開発者の日常業務に不可欠な部分として特別に設計されています。
私は最近 Dapptools を使い始めましたが、その背後にある考え方が気に入っています。私は、Dapptools のスターター キット、ツールの使用方法を示します。 Dapptools を使用するには、以下を使用できる必要があります。makefilesコードを「本番化」するためのシェル スクリプト。 Dapptools は、テストは堅牢に記述されるべきであると信じています。fuzzing組み込まれている必要があります。
私のこれまでの経験は少し不器用でしたが、その多くは私の凡庸な bash スクリプト スキルによるものだと思います。私は誰もがシェル スクリプトをもっと上手に扱えるべきだと考えていますし、シェル スクリプトによって学習が強制されるのがとても気に入っています。
JavaScript や Python などの別の言語を学習したくない、セットアップで使用するツールをできるだけ少なくしたい、MakerDAO が好き、または@transmissions11副題
優秀な選手
Remix
Remix についての私の簡単なレビュー: 誰もがその使い方を知っておくべきですRemixただし、実稼働環境では必ずしも必要ではありません。
リミックス自体はフレームワークではありませんが、むしろフレームワークのようなものです。IDE。 Remixは、アイデアを共有する際に全員が共通認識を持つために、まず始めるべきツールだと思います。誰もが Python、JavaScript、または bash スクリプトの連結を知っているわけではないため、視覚的なツールである Remix のようなツールを使用するのが最適です。
コントラクトがデプロイされると、Remix はそれを操作するためのボタンを表示します。 Solidity バージョンの選択、コンパイル、Solidity テストの実行などは簡単です。 JavaScript を使用したい場合は、JavaScript スクリプト オプションもあります。 Remix は拡張可能なので、機能を追加したい場合は拡張することができ、さらにローカルホスト上に Remix 開発環境を構築する、ローカル リポジトリからコードを実行します。
Remix は全員を団結させるツールであり、全員を助けるこのような素晴らしいツールに取り組んでいるチームがいることをうれしく思います。ただし、Remix は上級ユーザーにはお勧めできません。常に Web IDE に依存するのではなく、ローカル開発環境でさらに微調整されたツールが必要になるからです。 Remix の高度な設定はお勧めしませんが、作業が楽しい場合は可能です。
誰もが Remix に慣れることを強くお勧めします (Solidity を知っている場合は、直接始めることができます)。
Truffle
Truffle元々は最初に登場したフレームワークの 1 つでした。ConsensysConsensys の一部であり、Consensys から分離され、その後 Consensys に統合されました。これは JavaScript ベースのフレームワークであり、次のものが含まれます。Ganache(brownie のようなフレームワークでも使用されています)、Drizzleそして今最新のtruffle teamsおよびその他のツール。 Truffle はすべてのフレームワークの中で最も歴史的な影響力があり、業界への影響が見て取れます。多くのフレームワークが Truffle のプラクティスを採用しています。このチームが参加し、フレームワークのこれほど優れた出発点を構築できたことを幸運に思うべきです。試してみたい方はぜひご覧くださいトリュフ スターター キット。
書類書類、起動ガナッシュ第 7 版, 彼らのチームと話したところ、大きな計画があるとのことで、とても楽しみにしています。
2019 年当時、誰もが Truffle について聞いたことがあるか、使用していましたが、それ以来、状況は変わりました。 Hardhat は、事実上の JavaScript フレームワークとしての地位を確立するために成長を続けています。 Truffle を使用すると奇妙なバグに遭遇することがよくあります。Truffle の TypeScript サポートは微妙で、テストはより高速に実行されます。Hardhatはるかに遅いです。現時点では、Hardhat の方がすべてにおいて優れているため、Truffle を支持することを議論するのは困難です。
2021年の初めに、私は言及された私は Truffle について緊張しています。フレームワークについて知っている限り、2021 年は Hardhat が引き継ぐ年になるようです。しかし、トリュフの未来はまだ明るいと思います。彼らは本当に素晴らしいチームを持っており、Truffle がどこに住むか(現在は Consensys と提携しています)を把握しており、2022 年には彼らに大きな成果が得られることを期待しています。
Ganache はフレームワークです。Truffle からスマート コントラクト開発フレームワークにアクセスし始め、Truffle の構文が気に入った場合は、このフレームワークを使用する必要があります。ほとんどの場合、私は Truffle よりも Hardhat をお勧めしますが、Ganache は依然として強力なツールであると考えており、ローカルでテストネットを構築しようとしている人には Ganache を検討することをお勧めします。トランザクションをより簡単に「確認」するために使用できる気の利いた UI コンポーネントがあり、簡単に開始でき、グローバルにインストールできます。
ApeWorX
ApeWorXPython の新参者であり、ブラウニー コミュニティから分岐し、その祖先のより良いバージョンを作成しました。brownieよりモジュール化された財務に焦点を当てたフレームワーク。
Apeworx のセットアップと構文は Brownie と同じですが、適用すると興味深い改善がいくつかあります。
Apeworx は少ししか使ったことがないのですが、とてもブラウニーっぽい感じがして、プラグインの追加が気に入っています。これがブラウニーの続編になるのか(ハードハットがトリュフの心を引き継ぐのと同様)、それともこの2つが並行して存在するのかは不明です。とにかく見るのがとても楽しみですDoggieそして、彼のチームは 2022 年に何かを作成する予定で、間違いなく注目すべきフレームワークです。プラグインを追加できるブラウニーのようなフレームワークが必要な場合は、試してみてください。
Foundry
FoundryRustで書かれていますdapptools。これは、このツールの最も簡単な概要です。
私は Dapptools よりも少しだけ Foundry を使ってきたので、これが Dapptools の後継になるのではないかと感じていますが、よくわかりません。また、コマンドラインベースであり、同様のファイル構造を必要とし、Dapptools のほとんどすべてのコマンドはファウンドリのコマンドと似ています。ParadigmチームのGeorgiosと友人たちは、人気のある Dapptools を再発明しました。記事を投稿するDapptools へのオマージュ。
多くのコマンドとファイル構造の設定は Dapptools と同じです。このフレームワークは高速かつ強力で、Solidity でのテストの構築に重点を置いており、ファジングやその他の強力なツールが組み込まれています。
副題
代わりの
これらはおそらく使用したいフレームワークであると思われますが、私はこれらのフレームワークにあまり詳しくないか、自分自身で十分に試したことがないため、このセクションでは少し速く説明します。
Waffle
Waffleはい
Saddle
SaddleはいCompoundトリュフの再発明。コンパウンドが好きな方はぜひ試してみてください!
sbt-ethereum
ここ数年、私は Java をあまり使用していませんでした。これは試用中のものです。sbt-ethereumいつ現れた。 Sbt-ethereum はそれ自体を次のように販売しています。
「「愛好家」、つまりプログラマーではない人向けに作成されたテキストベースのインタラクティブなプラットフォーム * — *sbt-ethereum.io
これも私が昨年知ったフレームワークですが、残念ながら私の Scala スキルはそれほど高くありません。ただし、コマンド ラインを使用する場合は、これは別のオプションになります。
Web3j/Epirus
これも私が昨年知ったフレームワークで、Web サイトを見ると、主力製品がフレームワークからエンタープライズ ブロック エクスプローラーに移行したようです。しかし、彼らはまだ彼らのweb3jパッケージは、Java ベースのフレームワークです。あなたが Java 開発者であれば、これを試してみて、どのように感じられるかを確認してください。
Embark
Embark昨年、私はそれにかなり素晴らしいレビューを与えました。フレームワークからスマート コントラクトをテストしてデプロイし、いくつかの UI ツールを使用することができます。しかし、1年以上受け取っていませんgitコミット済み副題
非EVM
Anchor
今のところ、私は思うAnchorこのフレームワークは現在、Solana 上で最大の非 EVM フレームワークです。 Solana で開発を行っている場合は、ぜひ試してみることをお勧めしますAnchor、現時点ではそれが最善の解決策のように感じられるためです。
TerraSDK
TerraそしてTerra.jsそしてpython SDK最初のレベルのタイトル
4.財布
副題
MetaMask
Metamaskは、この分野のほぼすべての人が知っているか、知っておくべきツールです。これはシンプルでブラウザ内テストに最適であり、すべてのフロントエンド開発者が行う必要があるものです。ほぼ全員がメタマスクまたはメタマスクに似たブラウザウォレット (Solana のものなど) を持っているはずです。Phantom)。
ホットウォレットホットウォレット副題
Gnosis Safe
Gnosis safeマルチ署名ウォレットとして知られており、トランザクションを送信するには X 個の署名が必要であることを意味します。そうすれば、攻撃者はキーホルダーの少なくとも半分を侵害する必要があるため、ウォレットが侵害されても問題になりません。
そしてSnapshot。
Ledger / Trezor
LedgerそしてTrezor「コールドウォレット」、つまり変換が面倒なウォレットとして知られています。この煩わしさは意図的なもので、資金の移動が困難になり、攻撃者にとっても困難になります。
最初のレベルのタイトル
5. ブロックチェーンエクスプローラー
副題
Etherscan
ああ、EtherscanそしてPolygon、ETH 2そしてBinance Smart Chain副題
Etherchain
しかし、彼らに競争があるのは嬉しいことなので、気を引き締めなければなりません。Etherchainもリリースする軽量のブロック エクスプローラーです。ETH 2 副題
Ethplorer
別のETHブロックエクスプローラー、Ethplorer、別のブラウザについて知りたいかもしれません。
最初のレベルのタイトル
6. レイヤ1ノードサービス
副題
Alchemy
Alchemy副題
Infura
Infura副題
Moralis
私も知りませんMoralis副題
QuickNode
上記のいずれかに必要なブロックチェーンがない場合は、QuickNode最初のレベルのタイトル
7. フロントエンドツール
そして
Web3js/Ethersjs
Moralis
MoralisまたはEtherscanまたはOpensea; おそらく、そのアドレスが所有する NFT のリストが必要になるでしょう。やりたいことはたくさんありますが、Moralis にはそれらのサポートが組み込まれています。
オープンソース ツールキットやクラウドベースのサービス フレームワークなど、必要なものがすべて揃っています。
2022 年に Web3 サイトを構築するすべての人に、Moralis について知っておくことを強くお勧めします。彼らはたくさん持っていますテンプレート副題
UseDapp
Usedapp副題
Drizzle
DrizzleTruffle、Metamask、Infura、Consensys のファミリーからは、よくやった。 JavaScript の周りにいくつかの単純なラッパーを作成してコントラクトを操作します。また、React サポートも組み込まれています。参照してください副題。
さらに多くのツール
そしてcreate-eth-appそしてscaffold-eth最初のレベルのタイトル
8. ヘルプとサポートを受ける
すべての開発者は、問題が発生したときにヘルプを得る方法を知っておく必要があります基本ロードマップ。
1. Googleで正確なエラーを調べてください
2. StackOverflow または Stack Exchange ETH (または任意の Stack Exchange) で検索します。
3. プロジェクトの Github で問題を提起する
4. フォーラムで質問する
5.Discordで質問する
このような場所で質問する場合は、次のように質問する必要があります。
1. 検索可能: 同じ問題を抱えている他の人があなたの問題を見つけることができます。
2. 最小化と再現性: 使用法が具体的であればあるほど、答えが得られる可能性は低くなります。
フォーラムやスタック オーバーフローで質問することを「生きたドキュメント」と考える必要があります。質問の形式が適切であればあるほど、答えやすくなります。悪い質問はありません。不適切な形式の質問だけです。質問は良い質問副題
StackOverflow & Stack Exchange ETH
経験則は次のとおりです。「質問があって、その回答が Google 検索結果の最初のページに表示されない場合は、Stack Overflow に投稿する必要があります。」
これを行うことで、コミュニティ全体を支援しながら、必要な答えを得ることができます。場合によっては、これらのサイトから常に回答を得ることができるとは限りません。質問が難しすぎる場合や、これまでに誰も回答したことがない場合、または回答を知っている人がその質問を見ていない場合などがあります。より多くの注目を集めるために、時々、ディスカッション掲示板に私の質問へのリンクを含めます。しかし、経験則として、問題が発生したときに最初に調べる場所の 1 つは Stackoverflow または Stack Exchange ETH であるはずです。
副題
Discord
2022 年には、Discord副題
フォーラム
フォーラムは、StackOverflow と同様にインデックスが付けられ、ランク付けされるため、優れています。良い例は次のとおりですオープンツェッペリン フォーラム最初のレベルのタイトル
9. セキュリティ分析ツール
コードは誰でも閲覧でき、一度公開されると悪用される可能性があるため、コードをブロックチェーンに公開する際には監査が重要であることは誰もが知っています。したがって、コード内のエラーを確実に減らすのに役立つツールをいくつか用意することが非常に重要です。この分野では、スマートコントラクトをより安全にするためのツールがいくつか登場しました。
そしてcharinganeそしてMatt Solomon.
副題
Slither
Slitherなっている静的解析推奨ツールの 1 つ。すり抜けてTrail of Bits副題
MythX
MythX副題
Mythril
Mythril副題
Manticore
Manticoreこれも Trail of Bits ツールですが、静的分析を行う代わりに、シンボリック実行副題
Echidna
次に、Trail of Bits (なぜ私のお気に入りの 1 つであるかご存知でしょう) が戻ってきます。Echidna。これはEVM契約用ですfuzzer副題
Securify
Securify最初のレベルのタイトル
10. 監視と保守
最後のセクションには写真がありません。監視には通常、独自のスクリプトを多数使用するためです。しかし、私は思いますそしてそしてTenderlyは、100% 使い慣れておく必要があるツールです。どちらも、運用コードを監視し、安全性を確保できるようにするツールです。
要約する
要約する
これは私のこれまでで最大の投稿であり、膨大なツールのリストが含まれています。たくさんあることは承知していますが、この領域で構築すればするほど、アプリケーションを迅速に構築するためにこれらの各ツールがいかに重要であるかがわかります。
2022 年は素晴らしい年になるでしょう。驚くべき、ユニークで刺激的な Web3 アプリケーションを構築するために今年何を試すべきかについてのアイデアをいくつかお届けできれば幸いです。
私が見逃していると思われるツールをぜひコメント欄でお知らせください。よいお年になりますように!大きくしてみよう!
今年ブロックチェーンの旅を始めたい場合は、その方法を確認してくださいブロックチェーンエンジニアになる、そしてこれは10 の優れたリソースのリスト。