Web3 Series: Cách tạo giao dịch Ethereum

Giao dịch Ethereum đầu tiên của bạn
Giờ thì ta sẵn sàng học cách thực hiện giao dịch đầu tiên trên blockchain Ethereum. Dù việc gửi một giao dịch khá đơn giản, bạn vẫn cần nắm các bước để hiểu mình đang làm gì. Trong bài này, sẽ hướng dẫn: chuẩn bị ví, khởi tạo giao dịch, ký giao dịch, gửi lên mạng Ethereum công khai. Ta cũng sẽ học cách tra cứu giao dịch bằng blockchain explorer. Cuối cùng, mình sẽ tóm tắt để bạn tự tay gửi thêm nhiều giao dịch trước khi đi sâu vào lập trình smart contract.

Nội dung chính trong chương:

  • Cài đặt Hardhat
  • Chuẩn bị ví của bạn
  • Khởi tạo giao dịch chuyển tiền
  • Xem và xác minh kết quả

Có nhiều cách để gửi giao dịch Ethereum, tùy vào loại giao dịch. Phổ biến và đơn giản nhất là chuyển ETH từ tài khoản này sang tài khoản khác. Bạn có thể làm bằng ví như MetaMask, hoặc bằng mã. Trong chương này, ta sẽ làm cả hai. Trước hết, cần một blockchain test/local để thực hành. Ta sẽ dựng một blockchain Ethereum cục bộ và dùng nó cho giao dịch đầu tiên.


Cài đặt Hardhat

Có nhiều công cụ cho phát triển Ethereum; Hardhat là lựa chọn dễ bắt đầu.

Hardhat là bộ khung phát triển ứng dụng blockchain trên Ethereum. Nó cung cấp môi trường phát triển, khung kiểm thử, và pipeline triển khai cho smart contract và dApp.

Hardhat hỗ trợ các chuẩn phổ biến như ERC-20, ERC-721, tích hợp với testnet như Goerli, Sepolia, và các nhà cung cấp node như Infura.

Về thực chất, Hardhat có thể chạy blockchain cục bộ để bạn test/ debug trước khi lên mạng công khai: chạy smart contract, thực thi giao dịch, và quan sát trạng thái chain. Nó có CLI và các tính năng như gỡ lỗi contract, truy vết giao dịch, theo dõi gas, mô phỏng kịch bản nghẽn mạng hay lỗi contract.

Ta sẽ dùng Hardhat CLI xuyên suốt nội dung để xem code, ví dụ, và chạy test.

Cài Hardhat

Truy cập trang “Getting started” của Hardhat (link hướng dẫn). Các bước cài đặt rất đơn giản.

Yêu cầu trước:

  • Node.js version 20
  • npm 7 trở lên

Khuyến nghị cài nvm và trỏ về Node 20. Khi xong, cài đặt chỉ mất khoảng một phút.

Chạy lệnh sau trong terminal:

npm install –save-dev hardhat

Cài xong có thể xuất hiện cảnh báo phụ thuộc; bạn có thể bỏ qua.

Vậy là Hardhat đã được cài.

Kiểm tra cài đặt:

  1. Tạo thư mục dự án:
mkdir myhardhat && cd myhardhat
  1. Khởi tạo dự án (lưu ý chữ thường):
npx hardhat init

Lệnh này mở menu. Chọn Create an empty hardhat.config.js để thoát.

Tiếp theo, trải nghiệm blockchain cục bộ có sẵn của Hardhat. Vẫn ở thư mục myhardhat, chạy:

npm install --save-dev hardhat@^2.17.4
npx hardhat node

Lệnh này khởi chạy Ethereum cục bộ với 20 tài khoản (có sẵn public/private key).

Hardhat cung cấp môi trường với 20 EOA mặc định như ta đã nói ở chương trước.

Giờ ta đã có công cụ để chạy blockchain cục bộ. Bước kế tiếp: kết nối ví để tương tác.


Chuẩn bị ví MetaMask

Mở MetaMask bạn đã cài ở phần “A self-custodial wallet, MetaMask”. Trước khi chuyển tiền, ta cần thiết lập tài khoảnkết nối ví với blockchain cục bộ:

  • Màn hình đăng nhập MetaMask: nhập mật khẩu ví
  • Nhấn ba chấm bên phải Account 1Expand view để mở giao diện mở rộng— dễ thao tác cho người mới.

Bây giờ, kết nối ví với blockchain cục bộ Hardhat:

  • Ở góc trái trên, phần network mặc định là Ethereum Mainnet. Mở danh sách mạng và chọn Localhost 8545 (mạng do Hardhat tạo).
  • Nếu không thấy Localhost 8545, nhấn Add network và nhập thông tin như hình để thêm mạng cục bộ.

Import tài khoản từ Hardhat

Ta sẽ import Account #0Account #1 từ môi trường local:

  • Chọn Import account trong MetaMask.
  • Lấy private key của tài khoản cần import từ terminal nơi chạy npx hardhat node (hiển thị danh sách tài khoản và private key).
  • Dán private key vào ô nhập → Import.
  • Sau khi import, kiểm tra địa chỉnetwork đang là Localhost 8545.

Đổi tên tài khoản cho dễ nhận biết:

  • Mở Account details, nhấn biểu tượng bút để đổi tên
  • Ví dụ đổi Account #0 thành tên dễ nhớ
  • Lặp lại các bước để import Account #1 và đặt tên.

Ví đã sẵn sàng. Sang phần tiếp theo để thực hiện giao dịch Web3 đầu tiên.


Khởi tạo giao dịch chuyển tiền

Ta sẽ chuyển 2 ETH từ Account #0 sang Account #1 trên mạng cục bộ (dùng ETH test để trả gas):

  1. Mở MetaMask, chuyển sang Localhost 8545, chọn Hardhat Account #0 (số dư mặc định ~1.000 ETH).
  2. Chọn Send.
  3. Chọn Transfer between my accounts → chọn Account #1.
  1. Nhập số tiền 2 ETH.
  2. Màn hình xác nhận hiện ra → Confirm. Giao dịch sẽ được xử lý trên blockchain cục bộ

Bạn sẽ thấy Account #0 giảm 2 ETH (cộng phí) và Account #1 tăng 2 ETH.


Xem và xác minh kết quả

Mở cửa sổ terminal đang chạy Hardhat node để xem log giao dịch. Bạn sẽ thấy chi tiết tương tự: xác nhận giao dịch đã được ghi vào blockchain.

Trong ví dụ, bạn có thể xác minh:

  • Người gửingười nhận 2 ETH,
  • Gas used = 21.000, gas price = 2.375.000.000,
  • Gas limit = 21.001,
  • Block chứa giao dịch là #1 (block đầu tiên sinh ra bởi giao dịch này).

Kết thúc bài thực hành. Hãy làm thêm: import nhiều account từ Hardhat bằng private key và thử nhiều lượt chuyển, kiểm tra số dư, tra block và transaction để quen tay.


Tóm tắt

Trong bài này, ta đã tìm hiểu ví MetaMask (phần mềm ví tiền mã hóa) để tương tác với Ethereum và dApp: cách cài, thiết lập, dùng MetaMask, và tầm quan trọng của việc bảo mật seed phrase. Ta đã kết nối MetaMask với blockchain cục bộ Hardhat bằng cách thêm custom RPCimport các tài khoản Hardhat. Cuối cùng, ta đã chuyển token giữa các tài khoản trong MetaMask khi dùng blockchain cục bộ.

Để lại một bình luận