date
Dec 15, 2025
slug
docs-traning-be-intern-week-4
status
Published
tags
NestJs
Backend
summary
Tổng hợp docs trainning back-end Intern Week 4
type
Post

TUẦN 4 – BLOCKCHAIN CORE

Mục tiêu tuần

  • Hiểu blockchain hoạt động thế nào từ bên trong
  • Hiểu Ethereum / EVM chứ không chỉ “biết Solidity”
  • Biết transaction lifecycle
  • Biết backend nói chuyện với blockchain ra sao
  • Không nhầm lẫn blockchain ≠ database

1. Blockchain là gì? (Hiểu đúng, không marketing)

Blockchain KHÔNG phải:

  • Phép màu
  • Database thay thế SQL

Blockchain LÀ:

  • Distributed ledger
  • Append-only
  • Consensus-based
👉 Mỗi node giữ bản sao giống nhau của dữ liệu.

2. Cấu trúc một Block

Một block gồm:

  • Block number
  • Block hash
  • Parent hash
  • Timestamp
  • Transaction list
👉 Nếu sửa 1 block → hash đổi → toàn chain vỡ.

3. Transaction là gì? (Phải hiểu sâu)

Transaction chứa:

  • from
  • to
  • value
  • data
  • gasLimit
  • gasPrice / maxFee
  • nonce
  • signature

Transaction lifecycle

  1. User ký tx
  1. Gửi lên mempool
  1. Miner / validator chọn
  1. Thực thi EVM
  1. Ghi vào block
👉 Tx có thể:
  • Pending
  • Success
  • Fail (revert) → vẫn mất gas

4. Gas – Thứ backend dev rất hay hiểu sai

Gas là gì?

  • Đơn vị đo chi phí tính toán
  • Tránh spam network

Vì sao tx fail vẫn mất gas?

  • EVM đã chạy rồi
  • Chỉ revert state, không revert compute

5. Account model của Ethereum

EOA (Externally Owned Account)

  • Có private key
  • Ký tx

Contract Account

  • Không có private key
  • Chạy code
👉 Backend thường thao tác với cả 2.

6. Public Key, Private Key & Address

Private key

  • 256-bit số ngẫu nhiên
  • Mất = mất tài sản

Address

  • Hash từ public key
  • Không thể suy ngược private key

7. Ethereum Virtual Machine (EVM)

EVM là gì?

  • Máy ảo chạy bytecode
  • Mọi node chạy giống nhau

EVM quan trọng vì:

  • Quyết định:
    • Gas cost
    • Security
    • Performance

8. On-chain vs Off-chain

On-chain

  • Smart contract
  • Immutable
  • Tốn gas

Off-chain

  • Backend
  • Database
  • Indexer
👉 Web3 backend là cầu nối giữa 2 thế giới.

9. RPC & Node provider

RPC là gì?

  • JSON-RPC
  • Giao tiếp với blockchain node

Provider phổ biến

  • Infura
  • Alchemy
  • Public RPC
👉 Backend không tự chạy node (đa số).

10. Read vs Write trên blockchain

Read (call)

  • Không tốn gas
  • Free
  • Chậm hơn DB

Write (send tx)

  • Tốn gas
  • Phải ký
  • Có độ trễ

11. Backend & Blockchain – Mối quan hệ thật sự

Backend làm gì?

  • Chuẩn bị tx
  • Gửi tx
  • Theo dõi tx
  • Lưu kết quả

Backend KHÔNG:

  • Quyết định state on-chain
  • Gian lận được contract

12. Testnet, Mainnet & Chain ID

Testnet

  • Dùng để test
  • Token không có giá trị

Chain ID

  • Tránh replay tx giữa chain

13. Bài tập BẮT BUỘC (Hands-on)

Bài 1 – Làm quen blockchain

  • Tạo ví Metamask
  • Lấy ETH testnet
  • Gửi tx

Bài 2 – Script Node.js

  • Connect RPC
  • Get balance
  • Get block
  • Get tx by hash

Bài 3 – Tx lifecycle

  • Gửi tx
  • Chờ receipt
  • Log status

14. Checklist TỰ KIỂM TRA

  • Blockchain khác database chỗ nào?
  • Vì sao blockchain chậm?
  • Gas dùng để làm gì?
  • Tx fail vẫn mất gas vì sao?
  • Nonce dùng để làm gì?
  • Backend có cần private key không?

© Hiếu Trần 2020 - 2025

Tip: Use console.table() for better array logging!