Skip to content

Smart contract framework/tools qua các thời kì

Posted on:May 24, 2022

Ethereum được ra đời từ 2015, sự xuất hiện của smart contract đã nâng ứng dụng của blockchain lên một tầm cao mới, thay vì chỉ là payment như Bitcoin hay các bản fork ra từ nó trước kia.

Ethereum (và các hệ sinh thái khác fork ra từ Ethereum) ngày càng phát triển, thì các công cụ hỗ trợ phát triển cũng ngày càng tốt hơn: dễ sử dụng hơn, hiệu năng tốt hơn, an toàn hơn.

Không có nghĩa là các công cụ cũ không tốt và không còn được dùng nữa, sẽ vẫn có những nhóm đối tượng phù hợp với các công cụ này.

2017-2019

Truffle (Framework) + Web3.js (Web3 lib) + ganache (blockchain client)

Trong thời kì này đây là combo phổ biến nhất để viết smart contract.

Trong thời kì này cũng có vài framework khác nữa như là Waffle, Embark… tuy nhiên không phổ biến bằng Truffle.

2019-nay

Hardhat (Framework) + Ethers.js (Web3 lib) + ganache-cli (blockchain-client)

Bộ combo này cung cấp một bộ công cụ mạnh mẽ hơn, nhiều lựa chọn customize config để phù hợp với mong muốn của từng project.

Đây là combo phổ biến nhất hiện tại để phát triển smart contract.

Sau khi Hardhat xuất hiện, Truffle thường chỉ còn dành cho những newbie mới làm quen với smart contract tiếp cận, vì nó dễ.

Ngoài ra, Brownie là một framework viết bằng Python cũng rất mạnh mẽ và dễ sử dụng. Nếu bạn quen với Python, Brownie là một lựa chọn đáng để thử.

2020-nay: Dapptools

https://github.com/dapphub/dapptools

Dapptools là bộ công cụ vô cùng mạnh mẽ để phát triển smart contract. Dapptools viết bằng Haskell (đoạn này mình cũng chưa hiểu tại sao lại viết bằng Haskell: là do tác giả quen với Haskell? hay Haskell có thể làm được những tác vụ nào đó tốt hơn các ngôn ngữ khác?).

Nó bao gồm tất cả những gì mà các combo trước cung cấp, ngoài ra còn cung cấp thêm những phương thức kiểm thử smart contract linh động và mạnh mẽ.

Dapptools gồm các tool:

2021-nay: Foundry + ethers-rs

https://github.com/foundry-rs/foundry

https://github.com/gakonst/ethers-rs

Foundry ban đầu là một phiên bản viết lại của dapptool bằng Rust, hiện tại Foundry vẫn đang được viết tiếp để phát triển thêm các tính năng mới độc lập.

Các tool trong Foundry:

Một điểm tuyệt vời nữa là Foundry cũng hoàn toàn tương thích với các project Hardhat. Có nghĩa là bạn viết bằng Hardhat, sau đó tương tác bằng Foundry vẫn okela.

ethers-rs là phiên bản viết bằng Rust của ethers.js, nếu ta viết client dapp bằng Rust thì đây sẽ là một thư viện không thể thiếu.

Update 2022: Foundry giờ đây cung cấp solidity scripting “cực kì mạnh mẽ” với cheatcodes và fork testing giúp việc test trở nên vô cùng đơn giản, hiệu quả với đa dạng môi trường.

Lời bình

Nếu bạn không muốn cài đặt bất cứ thứ gì, hãy đến với Remix IDE, một môi trường phát triển đầy đủ, hoàn toàn trên web.

Nếu bạn đã quá quen thuộc với Hardhat, hãy cứ dùng nó. Hardhat vẫn là framework phổ biến nhất hiện nay. Và nó cũng dễ dùng.

Nếu bạn muốn một thứ gì đó mới, nhanh, mạnh, ngôn ngữ cool, thì hãy thử Foundry!

Bonus:

ethtools