, September 29, 2022

0 kết quả được tìm thấy

So sánh Hardhat vs Truffle, cái nào tốt nhất?


  •   8 min reads
So sánh Hardhat vs Truffle, cái nào tốt nhất?

Giới thiệu

Là một developer, bạn luôn phải lựa chọn một framework hoặc một môi trường (environment) cung cấp cho bạn các tùy chọn tốt nhất để phát triển phần mềm và khi bạn lập trình Blockchain điều đó cũng như vậy. Chúng ta có một số tùy chọn như Truffle, Hardhat, Brownie, Embark, v.v. Tuy nhiên, hiện tại chúng ta sẽ chỉ tập trung vào TruffleHardhat mà thôi.

Truffle và Hardhat - cả hai đều được phát triển dựa trên môi trường JavaScript, điều đó có nghĩa là bạn cần phải cài đặt chúng trên máy tính của mình vì bạn sẽ sử dụng npm rất nhiều trong quá trình phát triển Dapp hoặc bất kỳ loại ứng dụng nào dựa trên Blockchain.

Bây giờ, mình sẽ đưa ra một vài tiêu chí và đánh giá Truffle và Hardhat dựa trên các tiêu chí mà mình đã chọn nhé!

1. Tài liệu

Hardhat

Hardhat cung cấp cho chúng ta một bộ tài liệu rất rõ ràng và được cấu trúc rất tốt. Bạn có thể tìm thấy các hướng dẫn khác nhau về cách khởi động CLI hardhat và sử dụng các chức năng cốt lõi của Hardhat rất hiệu quả. Mọi thứ đã được sắp xếp gọn gàng và ngăn nắp để các developer bắt đầu hành trình khám phá & phát triển các ứng dụng blockchain của riêng mình.

Ngoài ra, phần tốt nhất của tài liệu hardhat là họ đã cung cấp các hướng dẫn cho các tác vụ và chức năng khác nhau có sẵn trong hardhat, cung cấp các phương pháp hay nhất để cho các developer sử dụng, không phải mất thời gian loay hoay. Vì vậy, nếu bạn là một lập trình viên mới và muốn đi sâu vào phát triển blockchain, hardhat sẽ trở thành lựa chọn đầu tiên của bạn để bắt đầu.

Truffle

Truffle cũng có tài liệu rõ ràng và có tổ chức để bạn dễ dàng bắt đầu hành trình phát triển của bạn với Truffle, Ganache, biên dịch (compile) hợp đồng thông minh (smart contract), testing,... Ngoài ra, Truffle còn cung cấp các ví dụ về cách kết nối Truffle với metamask.

Truffle là một "người chơi" lâu đời trên thị trường. Do đó, nó có lợi thế là có nhiều tài liệu tham khảo trên web, youtube và các blog để bạn có thể tiếp cận kiến thức từ nhiều nơi. Vì vậy nếu bạn bị mắc kẹt với một số khái niệm hoặc muốn tìm hiểu ý kiến ​​của người khác về vấn đề mà bạn đang gặp phải, bạn sẽ tìm thấy nhiều tài nguyên hơn so với hardhat, vốn là điều hơi bất lợi tẹo cho hardhat.

2. Community

Hardhat

Hardhat có một cộng đồng rất sôi nổi bao gồm các nhà phát triển blockchain và các core member của framework (những người maintain & phát triển dự án) trên Discord. Bạn có thể tham gia vào cộng đồng đấy tuy nhiên hãy hạn chế đưa ra các câu hỏi "ngớ ngẩn" (chẳng hạn là Hardhat có performance tốt nhất không :v, vân vân và mây mây)

Nhưng ngoài cộng đồng chính thức, chúng ta còn có các tùy chọn như cộng đồng StackoverflowStackexchange sẽ trở nên hữu ích khi bạn gặp một số lỗi phổ biến trong quá trình phát triển.

Truffle

Cộng đồng truffle rất hùng mạnh và tràn đầy nhiệt huyết. Bạn có thể tìm thấy nhóm cộng đồng ở đây và có thể đặt câu hỏi trên máy chủ Discord chính thức của họ.

Truffle có lợi thế vượt trội khi xét đến phương diện cộng đồng do Truffle ra đời sớm hơn. Truffle có nhiều tài nguyên trên web hơn hardhat nhưng khi hardhat ngày càng trở nên phổ biến, nó sẽ có nhiều cộng đồng hơn và nhiều tài nguyên hơn nên đừng lo lắng quá nếu bạn yêu thích Hardhat.

3. Libraries & Plugins

Hardhat

Hardhat có rất nhiều thư viện và plugin, chúng ta có thể nói rằng plugin cũng là xương sống của hardhat. Bạn có thể nâng cao (enhance) các chức năng của hardhat bằng các plugin mong muốn và bạn cũng có thể tự tạo plugin cho riêng mình, tham khảo thông tin tại đây.

Truffle

Truffle cũng có một cái gì đó tương tự nhưng được gọi là Box. Box là một loại plugin hoặc thư viện, bạn có thể tạo một Box riêng cho mình nhưng vấn đề là bạn phải sử dụng toàn bộ Box. Bạn không thể chỉ sử dụng một phần của Box, điều này khiến Truffle trở nên tẻ nhạt và phức tạp hơn Hardhat.

4. Testing

Hardhat

Hardhat đưa ra môi trường thử nghiệm (testing) linh hoạt hơn nhiều so với truffle. Lý do được đưa ra bởi vì bạn muốn có thể tương tác với các hợp đồng thông minh (smart contract) trong quá trình thử nghiệm, điều này cũng có thể thực hiện được với truffle nhưng hardhat làm cho nó dễ dàng hơn.

Chúng ta có thể lấy bất kỳ 1 file Smart Contract ra để thử nghiệm. Với Hardhat, bạn có thực hiện với ethers.js , mochawaffle. Mọi thứ đều được viết bằng javascript. Bạn chỉ cần chạy câu lệnh để kiểm tra và bạn sẽ thấy kết quả kiểm tra rất nhanh.

Truffle

Truffle cũng có môi trường thử nghiệm được xây dựng dựa trên các thư viện như mocha , chaiweb3.js.

Nhưng mặt trái của nó là bạn không thể tương tác trực tiếp với contract. Bạn cần phải cài đặt và khởi động thêm Ganache CLI hoặc Gahance UI, nơi cung cấp các free account và local blockchain để testing Smart contract nhưng hardhat đã cấu hình sẵn mọi thứ.

Kết quả khi thực thi testing với Truffle

5. Các công ty lớn đang sử dụng công cụ nào?

Hardhat

OpenZeppelin

OpenZeppelin cung cấp các sản phẩm bảo mật để xây dựng, tự động hóa và vận hành các ứng dụng phi tập trung. OpenZeppelin là công ty dịch vụ và công nghệ bảo mật không gian mạng hàng đầu, được các dự án DeFi và NFT sử dụng nhiều nhất cho các tổ chức tiền điện tử hàng đầu bao gồm Coinbase, Ethereum Foundation, v.v.

Optimism

Optimism là một giải pháp mở rộng quy mô Layer 2 cho Ethereum. Nó dùng để hỗ trợ tất cả các Dapp. Thay vì chạy tất cả các tính toán và dữ liệu trên mạng Ethereum, Optimism lấy tất cả dữ liệu giao dịch trên on-chain và chạy tính toán trên off-chain. Nhờ đó mà có thể tăng giao dịch của Ethereum trên mỗi giây và giảm phí giao dịch.

Aave

Aave là một giao thức phi tập trung cung cấp thanh khoản cho thị trường, nơi người dùng có thể tham gia với tư cách là người gửi tiền (depositer) hoặc người đi vay (borrower). Người gửi tiền cung cấp tính thanh khoản cho thị trường để kiếm thu nhập thụ động, trong khi người đi vay có thể vay theo kiểu thế chấp quá mức hoặc không thế chấp.

Truffle

BitGo

BitGo là công ty hàng đầu trong lĩnh vực tài chính, giao dịch và lưu ký tài sản kỹ thuật số của các tổ chức.

1inch

Giao thức của 1inch giúp lọc nhiều sàn DEX để tìm ra nền tảng rẻ nhất, tính theo phí và giá của chính tài sản mà mình giao dịch. Bộ tổng hợp này tự động xác định giao dịch rẻ nhất để thực hiện, làm cho nó trở thành một công cụ có giá trị cho bất kỳ nhà giao dịch nào. Thay vì dựa vào một giao thức DeFi duy nhất để mua tài sản tiền điện tử.

JPMorgan Chase & Co.

JPMorgan Chase & Co. là một ngân hàng đầu tư đa quốc gia của Mỹ và công ty cổ phần dịch vụ tài chính có trụ sở chính tại Thành phố New York. Công ty này là một nhà cung cấp chính của các dịch vụ tài chính và ngân hàng đầu tư khác nhau. Tính đến năm 2021, đây là nhà cho vay lớn nhất đối với ngành công nghiệp nhiên liệu hóa thạch trên thế giới.

Phần kết luận

Tôi đã đưa ra tất cả 5 thông số cho phép bạn quyết định cái nào phù hợp nhất với bạn, cá nhân tôi thích sử dụng Hardhat vì nó có vẻ dễ dàng đối với tôi nhưng bạn có thể tự do đưa ra lựa chọn của riêng mình. Happy Coding ^^

Bài viết liên quan

Tìm hiểu kiểu dữ liệu Boolean trong Solidity

Trong bài viết này, mình sẽ cùng nhau đi tìm hiểu kiểu dữ liệu Boolean trong Solidity thông qua các demo cơ bản nhé!...

Tìm hiểu kiểu dữ liệu Boolean trong Solidity
Tìm hiểu kiểu dữ liệu (Unsigned) Integer trong Solidity

Trong bài viết này, mình sẽ cùng nhau đi tìm hiểu kiểu dữ liệu (Unsigned) Integer trong Solidity thông qua các demo cơ bản nhé!...

Tìm hiểu kiểu dữ liệu (Unsigned) Integer trong Solidity
Sự khác biệt giữa Blockchain vs Cryptocurrency (Tiền điện tử)

Blockchain và tiền điện tử là hai thuật ngữ thường được sử dụng để thay thế cho nhau. Tuy nhiên, sẽ có sự khác biệt lớn giữa hai điều này. Tiền điện tử là loại tiền kỹ thuật số sử dụng blockchain làm sổ cái để lưu trữ hồ sơ của các giao dịch tiền điện tử....

Sự khác biệt giữa Blockchain vs Cryptocurrency (Tiền điện tử)
13 projects giúp bạn trở thành master với Web3 và Blockchain - Từ cơ bản đến nâng cao

Sau đây là 13 projects giúp bạn xây dựng để nâng cấp kỹ năng Web3 và Blockchain cho dù bạn là người mới bắt đầu hay đã lập trình trước đó....

13 projects giúp bạn trở thành master với Web3 và Blockchain - Từ cơ bản đến nâng cao
Làm sao để trở thành Blockchain Developer?

Dể trở thành Blockchain Developer, thì việc biết tương tác với smart contract là chưa đủ, còn rất nhiều công việc khác mà một Blockchain Dev cần phải đảm nhận. Vậy những công việc khác đó là gì?...

Làm sao để trở thành Blockchain Developer?
You've successfully subscribed to 200Lab Blog
Great! Next, complete checkout for full access to 200Lab Blog
Xin chào mừng bạn đã quay trở lại
OK! Tài khoản của bạn đã kích hoạt thành công.
Success! Your billing info is updated.
Billing info update failed.
Your link has expired.