Risk Warning: Beware of illegal fundraising in the name of 'virtual currency' and 'blockchain'. — Five departments including the Banking and Insurance Regulatory Commission
Information
Discover
Search
Login
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
View Market
Crypto technology house must-see: 2022 Top Ten Smart Contract Development Tools Guide
Chainlink
特邀专栏作者
2022-01-19 10:00
This article is about 12411 words, reading the full article takes about 18 minutes
Comprehensive tools guide for smart contract, blockchain, Web3, Ethereum and Solidity developers.

Original Author: Patrick Collins @Chainlink

Original translation: head

Comprehensive tools guide for smart contract, blockchain, Web3, Ethereum and Solidity developers. Plus a brief introduction to Solana, Terra, and other Rust smart contract-based tools

Last year, I studied someThe top framework for smart contract developers, this year, we will expand to more.

We'll look at ten categories of tools, and then look at the tools in each category that are best for smart contract/blockchain/solidity/vyper/rust/web3 developers (we have too many terms for "blockchain developer" these days) .

I've used every tool on this list to some degree, so you can rest assured that I'm not simply copy-pasting a list of tools. To start with a little introduction for those who don't know me, I live in the world of smart contracts and work with some of the best people in the industry as aChainlinkProject Developer Advocate,My Own Blockchain Infrastructure CompanyCEO, and a web3 enthusiast. This will give you what some of the best developers in the world use. However, this list is not a list of everything, so sorry if I missed your tool! It's just something I think every developer needs to be aware of. So, let's get started!

This article includes the following:

  • Smart Contract Guide

  • Smart Contract Essentials

  • wallet

  • wallet

  • Block Explorer (Browser)

  • front-end tools

  • front-end tools

  • security analysis

  • security analysis

  • Monitoring and Maintenance

Additionally, we created atheme videofirst level title

1. Smart contract language

secondary title

Solidity

If you are new to smart contracts, you should start withsoliditystart. If you've been doing smart contracts, you probably already know about solidity. It is undeniable that Solidity is the most important and most commonly used smart contract development language. Solidity is suitable for most smart contract platforms, such as Ethereum, Avalanche, Moonbeam, Polygon, BSC, etc. This is due to the fact that most blockchains have adoptedEthereum Virtual Machine (EVM), and solidity is born for it. in the current rankingTop 10 Defi ProjectsOf these, nine use Solidity as their primary programming language.

I predict that 90% of the value of smart contracts will be implemented in solidity in the future. The Solidity language is actively maintained and has tons of support.

you can also putyul/assemblysecondary title

Vyper

Vyperis another EVM-compatible language, which is mainly used byTop 10 Defi ProjectsOne of the uses (some other projects use it as a helper), i.e.Curve.fisecondary title

Rust

RustIt is a newborn on the block, and it is not applicable to the blockchain of EVM, such as Ethereum, Polygon, Binance Smart Chain and so on. However Rust can be deployed toSolanaTerraWait for the chain, or in thePolkadotBuild blockchain applications. Rust is a general-purpose language with good performance, even used outside of smart contracts; therefore, many public chains choose it as their development language. The logic is, "Oh well, some developers already have Rust, so let's make Rust available to developers in as many places as possible."

secondary title

Smart Contract Language Summary

  • Must Know: Solidity

  • Python lovers: Vyper

  • Terra, Solana,first level title

2. Essential tools for smart contracts

secondary title

Chainlink

Chainlink isBlockchain oracle, it is a smart contract to beHybrid Smart Contracttool, which includes some off-chain components and connects with the real world. Smart contracts are great, but they have the huge problem that they are not connected to the outside world in any way. To keep smart contracts decentralized using some off-chain components like data or off-chain computation, off-chain data and computation must be decentralized, which is what the Chainlink network and tools do. The vast majority of top smart contract platforms are hybrid smart contracts and use oracles as a key part of their infrastructure. just lookDeFipulseFor the first 10 projects, you will know which ones are mixed.

Asterik's explanation*: Uniswap has an oracle product. Yearn and Instadapp are aggregators that work with protocols that use oracles/are hybrid. Sushiswap uses oracles for leveraged trading. It can be seen that at least 50% of the projects use oracles as an important part of the infrastructure, and another 30% (80% in total) use oracles in some way. Obtainable through the oracleasset pricingrandom numberrandom numberEvent-driven automated execution,etc.

Chainlink is an essential feature for any smart contract developer entering the space,No matter what language or blockchain

Flash loan attackFlash loan attack, oracle manipulation attacks, etc.Hacktivism, causing nearly billions of dollars in losses in the Defi field. Most harrowingly, more than half of this is preventable through the use of reliable oracles like Chainlink. Please do not allow you or your friends to use centralized or insecure oracles in 2022.

secondary title

Openzeppelin

OpenzeppelinConsolidated its position as the "solidity standard library". Anytime any developer (myself included) is looking for a quick way toDeploy NFT/ERC721ERC20upgradeable contractDAO/Governance, or any project that a developer in this field wants to do, nine times out of ten, you'll want to find an Openzeppelin package.

secondary title

Summary of Smart Contract Essentials

  • Must Know: Chainlink and Openzeppelin

  • You can (and probably should) use both of these things. From what I know of these technologies, it cannot be overemphasized.

3. Deploy and test the framework

Last year, my review article wasspecifically for this category, so this year, I have to tell you about the difference in what I think these frameworks are today. Smart contract frameworks are an important part of any developer's job. They help you efficiently test and deploy smart contracts. Mastering at least one of these is a critical step to success.

For a more intuitive understanding, take a look at the chart I compiled from defpulse, showing the development frameworks used by some of the top DeFi projects.

Defipulse's top 10 Defi projects and the smart contract development frameworks they use In addition, I look at the current situation of these development frameworks in this way:

Star player:

HardhatBrownieDappTools

Excellent player:

RemixTruffleApeworxFoundry

Substitutes:

Wafflesbt-ethereumweb3jEmbarkSaddle

Non-EVM:

AnchorTerraSDK

secondary title

Etherlime, Openzeppelin SDK, Cobra, Parasol

star player

Hardhat

Now, the hardhat framework is the most important smart contract development framework. Hardhat is a development framework based on javascript and solidity, which can quickly improve the development speed of your application. you can viewhardhat-starter-kit, learn about the use cases of the hardhat project.

With Hardhat's testing speed, TypeScript support, widespread adoption, and incredible developer experience-focused team, it's no wonder its popularity has risen so quickly. At this time last year, I made this framework a top priority, and it still is. it is used in the backendethers.js, comes with a native blockchain for testing, and the team is currently buildingA new advanced development platform, integrated into Hardhat, I am extremely excited about this attempt in 2022.

If you know me, due to all kinds of javascriptweirdness, I'm not its biggest fan, so many times, I prefer to use Hardhat with typescript. Hardhat is easily my second most used framework.

I highly recommend this framework if you like javascript, or if you want to use the most popular and most supported framework.

Brownie

If you've read any of my other material, you'll know I'm in lovebrownieframe.

Brownie is an open source python-based framework built onweb3.pyandCurve.fiBadgerand other protocols are used. It supports both solidity and vyper, but the main highlight of this framework is based on python. Brownie was born because many python engineers despised working in javascript and wanted a framework for python. In addition, most traditional fintech fields use python instead of javascript, so with the creation of Brownie, it is also easier to move from the fintech field to Defi.

Brownie is my framework of choice when creating new projects, and I'm a self-proclaimed brownie developer advocate. you can viewbrownie-starter-kit(also called "mixes" in the Brownie world), start developing with the framework. Be sure to checkBrownie MixesList of other starter kits in the repo.

No

DappTools

AlthoughDapptoolsNogorgeous logo, but it's an application built in Haskell. But don't worry, you don't need to know Haskell to use it.

Dapptools mainly consists ofMakerDAOteam (the team behind DAI), it was inspired byUnixPhilosophy: "A program only does one thing, and do it well. (Write programs that do one thing, and do it well.)" Dapptools is a tool focused on the command line, here, you can use your Already familiar command line/shell tools like bash or zsh instead of python, javascript or other high-level programming languages ​​to help you develop. This effectively reduces one technique you have to be familiar with and forces you to get better at shell scripting! It comes with a suite of tools such as dapp, seth, ethsign, and hevm, each of which is specifically designed as an essential part of a smart contract developer's daily work.

I've recently started working with Dapptools and I like the way of thinking behind it. I wrote aStarter kit for Dapptools, showing how to use the tool. To use Dapptools, you need to be able to usemakefilesand shell scripts to "productionize" your code. Dapptools believes that tests should be written in solidity, andfuzzingShould be built in.

My experience with it has been a bit clumsy, but I think a lot of that comes from my mediocre bash scripting skills. I think everyone should be better at shell scripting and I love that it forces me to learn.

If you don't want to learn another language like javascript or python, you like to use as few tools as possible in your setup, you like MakerDAO, or@transmissions11secondary title

excellent player

Remix

My brief review of Remix: Everyone should know how to use itRemix, but not necessarily for production environments.

Remix is ​​not a framework per se, but more like aIDE. Remix is ​​a tool that I think everyone should start with so that everyone can have a common understanding when trying to share ideas. Not everyone will know the concatenation of python, javascript or bash scripts, so using a tool like Remix is ​​perfect since it is a visual one.

When a contract is deployed, Remix will present buttons to interact with it. It's easy to choose a solidity version, compile, run solidity tests, etc. It also has javascript scripting options if you want to use javascript. Remix is ​​extensible, so if you want to add functionality, you can extend it, and evenBuild a Remix development environment on the local host, to run code from your local repository.

Remix is ​​a tool that brings everyone together, and I'm glad we have a team working on such an amazing tool to help everyone. However, Remix is ​​not something I would recommend for advanced users, as you'll need more fine-tuned tools in your local development environment instead of always relying on a web IDE. I don't recommend advanced settings for Remix, however, if you enjoy working with it, it's possible!

I strongly recommend that everyone familiarize themselves with Remix (if you know solidity, you can start directly).

Truffle

Trufflewas one of the first frameworks to emerge, originallyConsensyspart of Consensys, which was spun off from Consensys and then merged back into Consensys. It is a javascript based framework that includesGanache(even frameworks like brownie use it),Drizzleand now the latesttruffle teamsand other tools. Truffle has the greatest historical influence among all frameworks. You can see their impact on the industry. Many frameworks have adopted Truffle's practices. We should feel lucky that this team came along and built such an excellent starting point for the framework. If you want to try it out, take a look atTruffle Starter Kit

documentdocument, launchingSeventh Edition of Ganache, I spoke to their team and they told me they have big plans and I'm excited.

Back in 2019, everyone had heard of or was using Truffle, but in the time since then, things have changed. Hardhat has been on the rise to solidify itself as the de-facto javascript framework. I often run into weird bugs when using Truffle; their TypeScript support is subtle, and tests run faster thanHardhatmuch slower. Right now, it's hard to argue for Truffle when Hardhat is better at everything.

In early 2021, ImentionedI'm nervous about Truffle, and from what I know about the framework, it looks like 2021 is the year Hardhat takes over. However, I think the future of Truffle is still bright. They have a really great team, they've figured out where Truffle will live (with Consensys now), and I'm expecting big things from them in 2022.

Ganache is a framework. If you start to contact the smart contract development framework from Truffle and like the syntax of Truffle, you should use this framework. In most cases, I recommend Hardhat over Truffle; however, I think Ganache is still a powerful tool and recommend that anyone looking to work with building a testnet locally take a look at Ganache. It has a nifty UI component that can be used to "see" transactions more easily; it's simple to start and can be installed globally.

ApeWorX

ApeWorXis a newcomer to Python that branched out from the brownie community and made a better version of its ancestorbrownieA more modular financial-focused framework.

Apeworx has the same setup and syntax as brownie, but has some interesting improvements when applied.

I've only used Apeworx a bit, it feels very brownie-like, and I love the addition of plugins. It's unclear if this will be a sequel to Brownie (similar to Hardhat taking over Truffle's mind), or if the two will exist side-by-side. Anyway, I'm really looking forward to seeingDoggieAnd his team will create something in 2022, and definitely a framework to watch, if you want some brownie-like framework that can add plugins, give it a try.

Foundry

Foundryis written in Rustdapptools. This is the most straightforward summary of the tool.

I've been using foundry a little less than Dapptools, and it feels like this might be the successor to Dapptools, but I'm not sure. It is also command-line based, requires a similar file structure, and almost all commands from Dapptools are similar to foundry's.ParadigmTeam'sGeorgiosand friends reinvented the popular Dapptools, even in theirpost articleA tribute to Dapptools.

Many commands and file structure settings are the same as Dapptools. This framework is fast, powerful, focused on building tests in Solidity, and has built-in fuzzing and other powerful tools.

secondary title

Substitute

I'll go a little faster in this section, because these are probably frameworks you want to use, but I'm not too familiar with them, or haven't tried them well myself.

Waffle

Waffleyes

Saddle

SaddleyesCompoundA reinvention of Truffle. If you like Compound, give this one a try!

sbt-ethereum

In the past few years, I have not used java much, this is in my trialsbt-ethereumshowed up when. Sbt-ethereum markets itself as:

"A text-based interactive platform created for "hobbyists" — people who are not programmers * — *sbt-ethereum.io

This is another framework I got to know about last year, unfortunately my scala skills are not great. However if you want to use the command line, this is another option.

Web3j/Epirus

This is another framework I learned about in the last year; looking at their website, it seems their main product has moved from a framework to an enterprise block explorer. However, they still have theirweb3jpackage, which is a java-based framework. If you're a java developer, give this a try and see how it feels.

Embark

EmbarkI gave it a pretty stellar review last year. I am able to test and deploy smart contracts from their framework and use some UI tools. However, it has not received it for over a yeargit committedsecondary title

non-EVM

Anchor

For now, I thinkAnchorThe framework is currently the largest non-EVM framework on Solana. If you do development on Solana, I highly recommend you tryAnchor, as it feels like the best solution right now.

TerraSDK

Terraand aTerra.jsand apython SDKfirst level title

4. wallet

secondary title

MetaMask

Metamaskis a tool that almost everyone in the field knows or should know. It's simple, it's great for in-browser testing, and it's what all front-end developers need to do. Almost everyone should have a Metamask or some Metamask-like browser wallet (like the one on SolanaPhantom)。

hot wallethot walletsecondary title

Gnosis Safe

Gnosis safeKnown as a multi-signature wallet, meaning it requires X number of signatures to send a transaction. That way, it doesn't matter if a wallet is compromised, since the attacker would need to compromise at least half of the key holders.

andSnapshot

Ledger / Trezor

LedgerandTrezorKnown as "cold wallets," or wallets that are cumbersome to convert. This cumbersomeness is intentional; they make it harder for you to move funds, and harder for attackers.

first level title

5. Blockchain explorer

secondary title

Etherscan

ah,EtherscanandPolygonETH 2andBinance Smart Chainsecondary title

Etherchain

However, I'm glad they have competition, so they have to be on their toes!Etherchainis a lightweight block explorer that also releases aETH 2 secondary title

Ethplorer

Another ETH block explorer,Ethplorer, may be another browser you might want to know about.

first level title

6. Layer 1 node service

secondary title

Alchemy

Alchemysecondary title

Infura

Infurasecondary title

Moralis

i don't even knowMoralissecondary title

QuickNode

If one of the above does not have the blockchain I want,QuickNodefirst level title

7. Front-end tools

and

Web3js/Ethersjs

Web3jsandEthersjssecondary title

Moralis

MoralisorEtherscanorOpensea; maybe you need a list of NFTs owned by the address. There are a lot of things you might want to do, and Moralis has built-in support for them.

It has everything you need, including an open source toolkit and a cloud-based service framework.

I highly recommend everyone building a web3 site in 2022 to know about Moralis. they have manytemplatesecondary title

UseDapp

Usedappsecondary title

Drizzle

DrizzleFrom the family of Truffle, Metamask, Infura and Consensys, well done. It creates some simple wrappers around your javascript to work with your contracts, and it has React support built in too! please seesecondary title

more tools

andcreate-eth-appandscaffold-ethfirst level title

8. Get help and support

Every developer should know how to get help when they have a problemBasic Roadmap

1. Google the exact error

2. Look it up on StackOverflow or Stack Exchange ETH (or any Stack Exchange)

3. Raise an issue on the project's Github

4. Ask questions on the forum

5. Ask a question in Discord

When asking questions in these places, your questions should be:

1. Searchable: so other people with the same problem can find your problem.

2. Minimization and reproducibility: the more specific your use, the less likely you are to have an answer.

You should consider asking questions in forums or stack overflow as "living documentation". The better your question is formatted, the easier it will be to answer. There are no bad questions, only badly formatted questions; make your question agood questionsecondary title

StackOverflow & Stack Exchange ETH

Here's your rule of thumb: "If I have a question and its answer doesn't appear on the first page of Google results, I should post it on Stack Overflow."

By doing this you will get the answers you want while helping the whole community! Sometimes it's not always possible to get a response from these sites, because sometimes your question may be too difficult, no one has done it before, or people who know the answer haven't seen it. From time to time, I will include a link to my question in the discussion board to draw more attention to it. But a rule of thumb is that Stackoverflow or Stack Exchange ETH should be one of the first places I look when I have a problem.

secondary title

Discord

In 2022, I hope we move fromDiscordforum

forum

Forums are great because they are indexed and ranked like StackOverflow. A good example isOpenzeppelin Forumfirst level title

9. Security Analysis Tools

We all know that auditing is critical when publishing code to the blockchain, as anyone can view it and once it is published, it can be exploited! Therefore, it is very important to have some tools that can help us ensure that there are fewer errors in our code. Several tools have emerged in this space to make our smart contracts more secure.

andcharinganeandMatt Solomon.

secondary title

Slither

Slitheris becomingstatic analysisOne of the preferred tools. Slither byTrail of Bitssecondary title

MythX

MythXsecondary title

Mythril

Mythrilsecondary title

Manticore

Manticoreis another Trail of Bits tool, but instead of doing static analysis, it doessymbolic executionsecondary title

Echidna

Next up, Trail of Bits (you know why they're one of my favorites) is back withEchidna. This is a for the EVM contractfuzzersecondary title

Securify

Securifyfirst level title

10. Monitoring and maintenance

Our last section has no pictures because for monitoring I usually use a lot of my own scripts. However, I thinkandandTenderlyis a tool you should be 100% familiar with. They are both tools that allow you to monitor your production code and make sure it stays secure!

Summarize

Summarize

This is my biggest post yet and it includes a huge list of tools. I know there are many, but the more you build in this space, the more you realize how important each of these tools is to building applications quickly.

2022 is going to be a crazy year, and I hope I've given you some ideas of what to try this year to build your amazing, unique, inspiring web3 applications.

Let me know what tools you think I've missed, let me know in the comments section! I wish you a happy new year! Let's make it big!

If you want to start your blockchain journey this year, check out howBecome a Blockchain Engineer, and this hasA list of 10 great resources

Chainlink
smart contract
Welcome to Join Odaily Official Community