Lĩnh vực blockchain đang thu hút sự chú ý đáng kể với sự phát triển liên tục trong lĩnh vực blockchain, Bitcoin, Ethereum, tiền điện tử và ICO. Điều này đã thúc đẩy tôi viết bài hướng dẫn này, đây là bài viết đầu tiên trong một loạt bài viết nhằm giúp mọi người hiểu cách sử dụng công nghệ blockchain và tiền điện tử để tạo ra các ứng dụng có tác động lớn.
Trong hướng dẫn này, tôi nhằm mục đích hướng dẫn bạn qua toàn bộ quá trình, từ thiết lập tài khoản đến phát hành token đầu tiên trên mạng thử nghiệm Ethereum bằng một hợp đồng thông minh duy nhất và Metamask. Token này sẽ hoạt động như một token ERC20 tiêu chuẩn trên mạng thử nghiệm Ethereum, được trang bị các tính năng cốt lõi có thể phục vụ như là một nền tảng linh hoạt cho các ứng dụng phức tạp hơn ngoài việc chuyển tiền đơn giản.
Trước khi tạo token ERC20 riêng của bạn, bạn cần chuẩn bị những điều sau đây:
ERC viết tắt của Ethereum Request for Comment, với 20 là số xác định của đề xuất. Mục đích của ERC-20 là tăng cường mạng lưới Ethereum. Đó là một trong những tiêu chuẩn ERC quan trọng nhất và đã trở thành khung kỹ thuật cho việc tạo mã thông báo trên chuỗi khối Ethereum thông qua hợp đồng thông minh. ERC-20 chỉ ra một bộ quy tắc mà tất cả các mã thông báo dựa trên Ethereum phải tuân theo, định nghĩa chúng là tài sản dựa trên chuỗi khối có thể được gửi và nhận, có giá trị, hoạt động trên chuỗi khối Ethereum và phát sinh phí gas cho giao dịch.
Năm 2015, nhà phát triển Đức Fabian Vogelsteller đã đóng góp vào lịch sử của Ethereum bằng cách để lại nhận xét trên trang GitHub của dự án. Đây là lần thứ 20 ông nhận xét, trong đó ông đầu tiên đề cập đến ERC-20. Khi Ethereum mở rộng nhanh chóng, ERC-20 được giới thiệu như một giải pháp cho những thách thức về khả năng mở rộng của mạng.
Việc công nhận chính thức và áp dụng ERC-20 như một Đề xuất Cải tiến Ethereum (EIP-20), do Vogelsteller và Ethereum đồng sáng lập Vitalik Buterin cùng viết, đã diễn ra vào cuối năm 2017.
Trước tiên, trước chuẩn ERC-20, người tạo token phải bắt đầu từ đầu, dẫn đến sự không nhất quán giữa các token khác nhau. Các nhà phát triển cần phải hiểu rõ mã hợp đồng thông minh của các token khác do thiếu một cấu trúc tiêu chuẩn, làm phức tạp việc cho các ví và sàn giao dịch phải xem xét mã của mỗi token để hỗ trợ. Thêm token mới vào ứng dụng trở thành một nhiệm vụ phức tạp.
Với việc giới thiệu tiêu chuẩn ERC-20, các tính năng chuẩn hóa, khả năng tương tác và khả năng chuyển giao đã cho phép các ví và sàn giao dịch tích hợp nhiều mã thông báo và dễ dàng thực hiện giao dịch giữa chúng. Các hợp đồng thông minh được áp dụng trong các mã thông báo ERC-20 có thể tự động thực hiện và thi hành các giao dịch tài chính phức tạp, điều này rất quan trọng đối với các nền tảng DeFi. Trên những nền tảng này, các token có thể đại diện cho các công cụ tài chính khác nhau, như khoản vay hoặc cổ phần trong các hồ bơi thanh khoản.
Tiêu chuẩn ERC-20 chỉ định sáu chức năng bắt buộc và ba chức năng tùy chọn mà hợp đồng thông minh phải thực hiện.
Đây là các chức năng cần thiết và mô tả của chúng:
Ngoài các chức năng cơ bản đã đề cập trước đó, còn có thêm các chức năng tùy chọn khác có thể cải thiện khả năng sử dụng của token:
Nếu bạn quen thuộc với lập trình hướng đối tượng, bạn có thể nghĩ về ERC-20 như một giao diện. Để biến token của bạn thành token ERC-20, bạn phải thực hiện giao diện ERC-20, đòi hỏi bạn phải bao gồm sáu chức năng cần thiết này. Đơn giản, giao diện ERC-20 đóng vai trò như một mẫu, và bất kỳ hợp đồng nào mục tiêu được phân loại như một token ERC-20 phải thiết kế và thực hiện các chức năng của nó bằng cách sử dụng mẫu này.
Để bắt đầu triển khai hợp đồng của bạn trên mạng thử nghiệm Ethereum Sepolia, bạn cần cài đặt MetaMaskTiện ích mở rộng trình duyệt hoặc sử dụng ví Web3 khác, như Phantom, hoặc bất kỳ ví nào tương thích với WalletConnect. Sau khi thiết lập ví của bạn, bạn sẽ cần có một số ETH thử nghiệm. Bạn có thể nhận được điều này từ Vòi Ethereum Sepolia, được thiết kế đặc biệt cho mạng thử nghiệm Ethereum Sepolia. Việc nhận ETH thử nghiệm rất đơn giản: chỉ cần truy cập trang web faucet, kết nối địa chỉ ví của bạn hoặc nhập địa chỉ của bạn, và làm theo hướng dẫn. Bạn cũng có thể chia sẻ một tweet để nhận phần thưởng thêm, hoặc bạn có thể chọn tùy chọn “Không, cám ơn, chỉ cần gửi cho tôi 0.05 ETH” để nhận ETH thử nghiệm của bạn trực tiếp. Tuy nhiên, hãy nhớ rằng bạn cần ít nhất 0.001 ETH trong tài khoản Ethereum mainnet của bạn để sử dụng faucet tiền thử nghiệm QuickNode.
Hiện có nhiều token tuân thủ tiêu chuẩn ERC20 đang hoạt động trên blockchain Ethereum, được phát triển bởi các nhóm khác nhau. Các phiên bản này khác nhau; một số tập trung vào giảm chi phí gas, trong khi những phiên bản khác ưu tiên nâng cao tính bảo mật. Để tạo ra một token mạnh mẽ và an toàn, nhiều nhà phát triển lựa chọn tiêu chuẩn token ERC20 của OpenZeppelin. OpenZeppelin là một thư viện smart contract có thể tái sử dụng đã được kiểm tra kỹ lưỡng và được đánh giá bởi cộng đồng, bao gồm một framework token ERC20 đáng tin cậy và an toàn. Nó đảm bảo việc phát triển token tuân thủ và an toàn, là lựa chọn hàng đầu cho nhiều nhà phát triển token ngày hôm nay.
Để tiện lợi và an toàn, chúng tôi sẽ sử dụng OpenZeppelin ERC-20hợp đồng để tạo mã thông báo của chúng tôi trong hướng dẫn này. Với OpenZeppelin, chúng ta không cần phải viết toàn bộ giao diện ERC-20; chúng ta chỉ cần nhập hợp đồng thư viện và sử dụng các chức năng của nó. Trong trường hợp này, chúng tôi sẽ phát hành 1 triệu mã thông báo ERC-20 có tên MNT.
Tiếp theo, hãy đi đến Ethereum RemixIDE (môi trường phát triển tích hợp cho Ethereum hỗ trợ ngôn ngữ lập trình Solidity) và tạo một tệp Solidity mới, chẳng hạn - MyNewToken.sol.
Vui lòng dán đoạn mã sau vào kịch bản Solidity mới của bạn:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20;
Nhập "@openzeppelin/contracts/token/ERC20/ERC20.sol”;
contract MyNewToken là ERC20 {constructor() ERC20(“MyNewToken”, “MNT”) { _mint(msg.sender, 1000000 (10 * uint256(decimals()))); } }
Đây là những gì mã code làm:
Bình luận SPDX-License-Identifier chỉ ra giấy phép dưới đó hợp đồng được phát hành.
Chỉ thị pragma chỉ định phiên bản trình biên dịch sẽ được sử dụng.
Hợp đồng ERC20 được nhập từ OpenZeppelin và phục vụ như nền tảng cho token của bạn.
MyNewToken là tên của hợp đồng của bạn, kế thừa từ hợp đồng ERC20.
Hàm khởi tạo khởi tạo mã thông báo của bạn với tên (“MyNewToken”) và ký hiệu (“MNT”).
Hàm _mint trong constructor tạo ra nguồn cung ban đầu của các token. Trong trường hợp này, được đúc 1 triệu token và được gán cho địa chỉ triển khai hợp đồng. Tổng số lượng token được điều chỉnh theo giá trị số thập phân, mặc định là 18 trong OpenZeppelin.
Bởi vì chúng tôi đã nhập hợp đồng thông minh ERC20 từ OpenZeppelin và hợp đồng MyNewToken kế thừa từ nó, không cần định nghĩa tất cả các chức năng bằng chính chúng ta. Tất cả các chức năng được định nghĩa trong hợp đồng ERC20 đều được bao gồm trong hợp đồng MyNewToken. Nếu bạn muốn xem phiên bản chi tiết hơn về mã ERC-20 hoàn chỉnh, bạn có thể tham khảo tệp này.
Bây giờ, hãy dành chút thời gian để tùy chỉnh hợp đồng thông minh để phù hợp với nhu cầu của bạn. Bạn cũng có thể thay đổi tên và ký hiệu của token bằng cách sửa đổi phần này: ERC20(“MyNewToken”, “MNT”).
Sau khi bạn đã tùy chỉnh hợp đồng thông minh của mình, bước tiếp theo là biên dịch nó.
Bước 1: Nhấp vào Trình biên dịch Solidity nút. Kiểm tra phiên bản trình biên dịch và đảm bảo hợp đồng chính xác được chọn. Vì hợp đồng thông minh của bạn bao gồm dòng pragma solidity ^ 0.8.20; Phiên bản trình biên dịch phải có ít nhất 0.8.20. Tiếp theo, nhấp vào nút Compile MyNewToken.sol. Nếu mọi thứ thành công, bạn sẽ thấy dấu kiểm màu xanh lá cây trên nút biên dịch.
Bước 2: NaviGate đến tab Triển khai & Chạy giao dịch. Trong phần Môi trường, chọn tùy chọn Injected Provider để triển khai. Trước khi tiếp tục, hãy đảm bảo rằng MetaMask của bạn được đặt thành mạng thử nghiệm Sepolia và bạn đã chọn hợp đồng MyNewToken để triển khai. Cuối cùng, nhấp vào nút Triển khai để triển khai hợp đồng của bạn.
Nếu bạn không chắc chắn cách chuyển đổi mạng, hãy mở tiện ích mở rộng MetaMask, nhấp vào bộ chọn mạng ở góc trên bên trái và chọn Sepolia. Nếu nó không hiển thị, hãy đảm bảo rằng tùy chọn "Hiển thị mạng thử nghiệm" được bật. Để biết hướng dẫn về cách thêm URL RPC QuickNode vào MetaMask, vui lòng kiểm tra Hướng dẫn QuickNode.
Bước 3: Xác nhận giao dịch trong MetaMask:
Xin chúc mừng! Hợp đồng mã thông báo của bạn đã được triển khai thành công trên mạng thử nghiệm Ethereum Sepolia, và bạn chính thức sở hữu mã thông báo đầu tiên của mình!
Mời người khác bỏ phiếu
Lĩnh vực blockchain đang thu hút sự chú ý đáng kể với sự phát triển liên tục trong lĩnh vực blockchain, Bitcoin, Ethereum, tiền điện tử và ICO. Điều này đã thúc đẩy tôi viết bài hướng dẫn này, đây là bài viết đầu tiên trong một loạt bài viết nhằm giúp mọi người hiểu cách sử dụng công nghệ blockchain và tiền điện tử để tạo ra các ứng dụng có tác động lớn.
Trong hướng dẫn này, tôi nhằm mục đích hướng dẫn bạn qua toàn bộ quá trình, từ thiết lập tài khoản đến phát hành token đầu tiên trên mạng thử nghiệm Ethereum bằng một hợp đồng thông minh duy nhất và Metamask. Token này sẽ hoạt động như một token ERC20 tiêu chuẩn trên mạng thử nghiệm Ethereum, được trang bị các tính năng cốt lõi có thể phục vụ như là một nền tảng linh hoạt cho các ứng dụng phức tạp hơn ngoài việc chuyển tiền đơn giản.
Trước khi tạo token ERC20 riêng của bạn, bạn cần chuẩn bị những điều sau đây:
ERC viết tắt của Ethereum Request for Comment, với 20 là số xác định của đề xuất. Mục đích của ERC-20 là tăng cường mạng lưới Ethereum. Đó là một trong những tiêu chuẩn ERC quan trọng nhất và đã trở thành khung kỹ thuật cho việc tạo mã thông báo trên chuỗi khối Ethereum thông qua hợp đồng thông minh. ERC-20 chỉ ra một bộ quy tắc mà tất cả các mã thông báo dựa trên Ethereum phải tuân theo, định nghĩa chúng là tài sản dựa trên chuỗi khối có thể được gửi và nhận, có giá trị, hoạt động trên chuỗi khối Ethereum và phát sinh phí gas cho giao dịch.
Năm 2015, nhà phát triển Đức Fabian Vogelsteller đã đóng góp vào lịch sử của Ethereum bằng cách để lại nhận xét trên trang GitHub của dự án. Đây là lần thứ 20 ông nhận xét, trong đó ông đầu tiên đề cập đến ERC-20. Khi Ethereum mở rộng nhanh chóng, ERC-20 được giới thiệu như một giải pháp cho những thách thức về khả năng mở rộng của mạng.
Việc công nhận chính thức và áp dụng ERC-20 như một Đề xuất Cải tiến Ethereum (EIP-20), do Vogelsteller và Ethereum đồng sáng lập Vitalik Buterin cùng viết, đã diễn ra vào cuối năm 2017.
Trước tiên, trước chuẩn ERC-20, người tạo token phải bắt đầu từ đầu, dẫn đến sự không nhất quán giữa các token khác nhau. Các nhà phát triển cần phải hiểu rõ mã hợp đồng thông minh của các token khác do thiếu một cấu trúc tiêu chuẩn, làm phức tạp việc cho các ví và sàn giao dịch phải xem xét mã của mỗi token để hỗ trợ. Thêm token mới vào ứng dụng trở thành một nhiệm vụ phức tạp.
Với việc giới thiệu tiêu chuẩn ERC-20, các tính năng chuẩn hóa, khả năng tương tác và khả năng chuyển giao đã cho phép các ví và sàn giao dịch tích hợp nhiều mã thông báo và dễ dàng thực hiện giao dịch giữa chúng. Các hợp đồng thông minh được áp dụng trong các mã thông báo ERC-20 có thể tự động thực hiện và thi hành các giao dịch tài chính phức tạp, điều này rất quan trọng đối với các nền tảng DeFi. Trên những nền tảng này, các token có thể đại diện cho các công cụ tài chính khác nhau, như khoản vay hoặc cổ phần trong các hồ bơi thanh khoản.
Tiêu chuẩn ERC-20 chỉ định sáu chức năng bắt buộc và ba chức năng tùy chọn mà hợp đồng thông minh phải thực hiện.
Đây là các chức năng cần thiết và mô tả của chúng:
Ngoài các chức năng cơ bản đã đề cập trước đó, còn có thêm các chức năng tùy chọn khác có thể cải thiện khả năng sử dụng của token:
Nếu bạn quen thuộc với lập trình hướng đối tượng, bạn có thể nghĩ về ERC-20 như một giao diện. Để biến token của bạn thành token ERC-20, bạn phải thực hiện giao diện ERC-20, đòi hỏi bạn phải bao gồm sáu chức năng cần thiết này. Đơn giản, giao diện ERC-20 đóng vai trò như một mẫu, và bất kỳ hợp đồng nào mục tiêu được phân loại như một token ERC-20 phải thiết kế và thực hiện các chức năng của nó bằng cách sử dụng mẫu này.
Để bắt đầu triển khai hợp đồng của bạn trên mạng thử nghiệm Ethereum Sepolia, bạn cần cài đặt MetaMaskTiện ích mở rộng trình duyệt hoặc sử dụng ví Web3 khác, như Phantom, hoặc bất kỳ ví nào tương thích với WalletConnect. Sau khi thiết lập ví của bạn, bạn sẽ cần có một số ETH thử nghiệm. Bạn có thể nhận được điều này từ Vòi Ethereum Sepolia, được thiết kế đặc biệt cho mạng thử nghiệm Ethereum Sepolia. Việc nhận ETH thử nghiệm rất đơn giản: chỉ cần truy cập trang web faucet, kết nối địa chỉ ví của bạn hoặc nhập địa chỉ của bạn, và làm theo hướng dẫn. Bạn cũng có thể chia sẻ một tweet để nhận phần thưởng thêm, hoặc bạn có thể chọn tùy chọn “Không, cám ơn, chỉ cần gửi cho tôi 0.05 ETH” để nhận ETH thử nghiệm của bạn trực tiếp. Tuy nhiên, hãy nhớ rằng bạn cần ít nhất 0.001 ETH trong tài khoản Ethereum mainnet của bạn để sử dụng faucet tiền thử nghiệm QuickNode.
Hiện có nhiều token tuân thủ tiêu chuẩn ERC20 đang hoạt động trên blockchain Ethereum, được phát triển bởi các nhóm khác nhau. Các phiên bản này khác nhau; một số tập trung vào giảm chi phí gas, trong khi những phiên bản khác ưu tiên nâng cao tính bảo mật. Để tạo ra một token mạnh mẽ và an toàn, nhiều nhà phát triển lựa chọn tiêu chuẩn token ERC20 của OpenZeppelin. OpenZeppelin là một thư viện smart contract có thể tái sử dụng đã được kiểm tra kỹ lưỡng và được đánh giá bởi cộng đồng, bao gồm một framework token ERC20 đáng tin cậy và an toàn. Nó đảm bảo việc phát triển token tuân thủ và an toàn, là lựa chọn hàng đầu cho nhiều nhà phát triển token ngày hôm nay.
Để tiện lợi và an toàn, chúng tôi sẽ sử dụng OpenZeppelin ERC-20hợp đồng để tạo mã thông báo của chúng tôi trong hướng dẫn này. Với OpenZeppelin, chúng ta không cần phải viết toàn bộ giao diện ERC-20; chúng ta chỉ cần nhập hợp đồng thư viện và sử dụng các chức năng của nó. Trong trường hợp này, chúng tôi sẽ phát hành 1 triệu mã thông báo ERC-20 có tên MNT.
Tiếp theo, hãy đi đến Ethereum RemixIDE (môi trường phát triển tích hợp cho Ethereum hỗ trợ ngôn ngữ lập trình Solidity) và tạo một tệp Solidity mới, chẳng hạn - MyNewToken.sol.
Vui lòng dán đoạn mã sau vào kịch bản Solidity mới của bạn:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20;
Nhập "@openzeppelin/contracts/token/ERC20/ERC20.sol”;
contract MyNewToken là ERC20 {constructor() ERC20(“MyNewToken”, “MNT”) { _mint(msg.sender, 1000000 (10 * uint256(decimals()))); } }
Đây là những gì mã code làm:
Bình luận SPDX-License-Identifier chỉ ra giấy phép dưới đó hợp đồng được phát hành.
Chỉ thị pragma chỉ định phiên bản trình biên dịch sẽ được sử dụng.
Hợp đồng ERC20 được nhập từ OpenZeppelin và phục vụ như nền tảng cho token của bạn.
MyNewToken là tên của hợp đồng của bạn, kế thừa từ hợp đồng ERC20.
Hàm khởi tạo khởi tạo mã thông báo của bạn với tên (“MyNewToken”) và ký hiệu (“MNT”).
Hàm _mint trong constructor tạo ra nguồn cung ban đầu của các token. Trong trường hợp này, được đúc 1 triệu token và được gán cho địa chỉ triển khai hợp đồng. Tổng số lượng token được điều chỉnh theo giá trị số thập phân, mặc định là 18 trong OpenZeppelin.
Bởi vì chúng tôi đã nhập hợp đồng thông minh ERC20 từ OpenZeppelin và hợp đồng MyNewToken kế thừa từ nó, không cần định nghĩa tất cả các chức năng bằng chính chúng ta. Tất cả các chức năng được định nghĩa trong hợp đồng ERC20 đều được bao gồm trong hợp đồng MyNewToken. Nếu bạn muốn xem phiên bản chi tiết hơn về mã ERC-20 hoàn chỉnh, bạn có thể tham khảo tệp này.
Bây giờ, hãy dành chút thời gian để tùy chỉnh hợp đồng thông minh để phù hợp với nhu cầu của bạn. Bạn cũng có thể thay đổi tên và ký hiệu của token bằng cách sửa đổi phần này: ERC20(“MyNewToken”, “MNT”).
Sau khi bạn đã tùy chỉnh hợp đồng thông minh của mình, bước tiếp theo là biên dịch nó.
Bước 1: Nhấp vào Trình biên dịch Solidity nút. Kiểm tra phiên bản trình biên dịch và đảm bảo hợp đồng chính xác được chọn. Vì hợp đồng thông minh của bạn bao gồm dòng pragma solidity ^ 0.8.20; Phiên bản trình biên dịch phải có ít nhất 0.8.20. Tiếp theo, nhấp vào nút Compile MyNewToken.sol. Nếu mọi thứ thành công, bạn sẽ thấy dấu kiểm màu xanh lá cây trên nút biên dịch.
Bước 2: NaviGate đến tab Triển khai & Chạy giao dịch. Trong phần Môi trường, chọn tùy chọn Injected Provider để triển khai. Trước khi tiếp tục, hãy đảm bảo rằng MetaMask của bạn được đặt thành mạng thử nghiệm Sepolia và bạn đã chọn hợp đồng MyNewToken để triển khai. Cuối cùng, nhấp vào nút Triển khai để triển khai hợp đồng của bạn.
Nếu bạn không chắc chắn cách chuyển đổi mạng, hãy mở tiện ích mở rộng MetaMask, nhấp vào bộ chọn mạng ở góc trên bên trái và chọn Sepolia. Nếu nó không hiển thị, hãy đảm bảo rằng tùy chọn "Hiển thị mạng thử nghiệm" được bật. Để biết hướng dẫn về cách thêm URL RPC QuickNode vào MetaMask, vui lòng kiểm tra Hướng dẫn QuickNode.
Bước 3: Xác nhận giao dịch trong MetaMask:
Xin chúc mừng! Hợp đồng mã thông báo của bạn đã được triển khai thành công trên mạng thử nghiệm Ethereum Sepolia, và bạn chính thức sở hữu mã thông báo đầu tiên của mình!