MoneroSwapper MoneroSwapper

Hướng dẫn Node Monero Pruned: Tiết kiệm 60GB 2026

MoneroSwapper · · · 25 min read · 7 views

Hướng dẫn cài đặt Node Monero Pruned: Tiết kiệm 60GB năm 2026

Tính đến tháng 5 năm 2026, blockchain Monero đã phình lên khoảng 215 GB trên ổ đĩa — con số tăng vọt sau đợt hard fork tháng 11/2025 đưa FCMP++ vào vận hành chính thức và đẩy lượng giao dịch hàng ngày vượt mốc 60.000 trong nhiều tuần liên tiếp. Với những ai chạy node trên SSD 256 GB của laptop, một chiếc Raspberry Pi 5 gắn NVMe hat giá rẻ, hay một VPS tính phí theo dung lượng, việc đồng bộ toàn bộ chain archival không còn là quyết định nhẹ nhàng nữa. Pruned node giải quyết bài toán này một cách thanh lịch: nó loại bỏ khoảng hai phần ba dữ liệu chữ ký vòng (ring signature) cũ, nhưng vẫn giữ lại từng block header, từng output giao dịch, và toàn bộ khả năng tự xác minh chuỗi cục bộ mà không cần tin ai. Kết quả là một daemon Monero hoàn toàn độc lập, chiếm khoảng 85–95 GB thay vì 215 GB, vẫn phục vụ ví qua RPC, vẫn tham gia vào mạng peer-to-peer, và vẫn phát tán giao dịch của bạn qua Dandelion++ mà không để lộ metadata cho một daemon từ xa của người lạ. Bài hướng dẫn này đi qua từng bước triển khai trên Linux, Windows, macOS và một Raspberry Pi headless — bao gồm cả file systemd unit để node tự khởi động lại sau reboot, các quy tắc tường lửa để bảo vệ cổng RPC, và quy trình resync khi có chuyện chẳng lành xảy ra với database. Dù bạn đến đây sau khi vừa dùng MoneroSwapper để hoán đổi không-KYC, hay đang dựng node độc lập đầu tiên trong đời, đích đến đều giống nhau: ít dung lượng đĩa hơn, không mất chút quyền riêng tư nào.

Tại sao nên chạy Pruned Node thay vì Remote Node

Trên các thiết bị tài nguyên hạn chế, ai cũng từng nghĩ tới phương án dễ nhất: bỏ qua việc tự chạy node và trỏ ví của mình đến một community node như node.moneroworld.com hoặc một trong các endpoint .onion được liệt kê trên diễn đàn Monero. Cách đó hoạt động được, về mặt kỹ thuật. Nó cũng đồng thời trao cho người vận hành node đó một bản log chính xác về thời điểm ví của bạn quét chain, lúc bạn online, và — thông qua phân tích tương quan lưu lượng — một suy đoán hợp lý về những output nào thuộc về bạn. Remote node không thể thấy view key hay spend key, nhưng họ hoàn toàn có thể xây dựng một dấu vân tay hành vi (behavioral fingerprint). Vài bài nghiên cứu học thuật công bố trong giai đoạn 2024–2025 đã trình diễn các cuộc tấn công decloaking thực tế nhắm vào những ví chỉ dựa vào hạ tầng bên thứ ba.

Pruned node lấp khoảng trống đó mà không buộc bạn phải kiếm thêm một terabyte trống. Bảo đảm về quyền riêng tư là giống hệt một full node nếu xét từ góc nhìn của ví, vì logic cắt tỉa chỉ loại bỏ dữ liệu chữ ký vòng dư thừa — không bao giờ động đến output, không bao giờ động đến key image, không bao giờ động đến block header. Ví của bạn quét chuỗi dựa trên dữ liệu lưu cục bộ, giao dịch của bạn đi vào mempool qua các kết nối peer của chính bạn, và lưu lượng RPC không bao giờ rời khỏi localhost.

  • Không người vận hành từ xa nào thấy hoạt động ví: mỗi lần refresh, mỗi lần quét output, mỗi lần ước tính phí đều diễn ra trên máy của chính bạn.
  • Bạn vẫn đóng góp cho mạng lưới: một pruned node phục vụ khoảng một phần ba số khối lịch sử cho các peer khác, nghĩa là mạng không cần mọi node đều là archival.
  • Yêu cầu phần cứng hợp lý: 4 GB RAM, một CPU quad-core ARM hoặc x86 đời mới, và 120 GB SSD trống là đủ cho ít nhất đến năm 2027 ngay cả khi tính theo kịch bản tăng trưởng thận trọng.
  • Phục hồi đơn giản: nếu database hỏng, bạn có thể resync lại từ đầu trong khoảng sáu đến mười hai tiếng trên đường truyền cáp quang gia đình, so với mười tám đến ba mươi giờ của một full node archival.

Pruned vs Full Node: Khác biệt thực sự nằm ở đâu

Thuật toán pruning của Monero, được giới thiệu từ v0.15 và liên tục được tinh chỉnh đến v0.18.4 trong năm 2025, chia chuỗi thành 8 "pruning stripe", mỗi stripe gồm 4096 block. Một pruned node giữ lại toàn bộ dữ liệu cho đúng một stripe (được chọn ngẫu nhiên giả định theo từng peer khi node khởi tạo) cộng với 5500 block gần nhất ở dạng đầy đủ, đồng thời giữ headers, key image, lượng output và dữ liệu miner cho tất cả các khối khác. Phần dữ liệu chữ ký vòng — chiếm phần lớn dung lượng trên đĩa — bị loại bỏ với bảy stripe mà node không host.

Vì mỗi node host một stripe khác nhau, mạng lưới về tổng thể vẫn lưu trữ toàn bộ blockchain lịch sử ngay cả khi mọi node đều tỉa. Một ví đang đồng bộ lần đầu mà cần dữ liệu chữ ký vòng của một block cũ chỉ việc tải từ bất kỳ peer pruned nào tình cờ host stripe đó, một cách trong suốt và không cần người dùng can thiệp. Về mặt xác minh, không có gì bị hy sinh: mỗi pruned node xác thực toàn bộ chuỗi khi đồng bộ lần đầu, và tiếp tục xác thực mọi block mới khi chúng đến.

Khả năng Full Node Pruned Node Remote Node
Dung lượng đĩa (5/2026) ~215 GB ~90 GB 0 GB cục bộ
Riêng tư khi quét ví Tuyệt đối Tuyệt đối Operator thấy mọi scan
Phục vụ block lịch sử Mọi stripe 1 trên 8 stripe Không áp dụng
Thời gian sync đầu (1 Gbps) 18–30 giờ 6–12 giờ Tức thì (không sync)
RAM tối thiểu 4 GB 4 GB
Xác thực chuỗi Tin operator

Đánh đổi có ý nghĩa duy nhất của một pruned node là nó không thể đóng vai trò nguồn dữ liệu cho block explorer hoặc cho các công cụ phân tích chain học thuật vốn cần đầy đủ ring signature lịch sử. Nếu hai mục đích đó không có trong roadmap của bạn — và với đại đa số người tự host thì không — thì pruning rõ ràng tốt hơn archival trên một máy tài nguyên hạn chế.

Yêu cầu phần cứng và hệ thống năm 2026

Ngưỡng phần cứng tối thiểu cho một pruned Monero node chạy mượt đã nhích lên đôi chút kể từ khi FCMP++ kích hoạt, chủ yếu vì việc xác minh membership proof trên các block đến tốn CPU hơn khoảng 18% so với xác minh CLSAG trước fork. Tin tốt là bất kỳ thiết bị nào ra đời sau khoảng năm 2021 đều dư sức xử lý. Tin xấu là các single-board computer cũ — Raspberry Pi 4 đời đầu với 2 GB RAM, mini-PC Atom tiết kiệm điện — sẽ vật vã để theo kịp đầu chuỗi trong những ngày giao dịch dồn dập.

Cấu hình tham khảo

  • CPU: Quad-core ARM Cortex-A76 (Raspberry Pi 5) hoặc bất kỳ x86-64 đời mới nào có AES-NI. Tuyệt đối tránh host 32-bit; hiệu năng LMDB suy giảm và một số RPC của ví hoạt động sai.
  • RAM: Tối thiểu 4 GB, thoải mái 8 GB. Memory map của LMDB hưởng lợi khi có RAM dư; nếu RAM eo hẹp, monerod vẫn chạy nhưng việc xác minh block chậm rõ rệt.
  • Lưu trữ: 120 GB trống trên SSD hoặc NVMe. HDD vẫn dùng được về mặt kỹ thuật, nhưng đĩa cơ sẽ biến một đợt sync 6 tiếng thành cực hình 36 tiếng — kiểu truy cập ngẫu nhiên của LMDB rất khắc nghiệt với đĩa quay.
  • Mạng: 25 Mbps đối xứng là quá đủ cho vận hành ổn định. Đợt sync ban đầu sẽ ngốn hết băng thông bạn có; tính khoảng 90–110 GB tải xuống cho lần bootstrap pruned. Với cáp quang VNPT, Viettel hay FPT phổ biến tại Việt Nam (gói 100–300 Mbps), thời gian sync gần như chỉ giới hạn bởi tốc độ ổ đĩa và CPU.
  • Hệ điều hành: Ubuntu 24.04 LTS, Debian 12, Fedora 41, macOS 14+, hoặc Windows 11. Người dùng NixOS có module service được duy trì sẵn; Arch có gói monero-bin trong AUR.

Nếu bạn triển khai trên Raspberry Pi 5, hãy dùng NVMe Base chính thức của Pimoroni hoặc một M.2 hat tương đương; khe SD card chấp nhận được cho OS nhưng tuyệt đối không nên dùng để chứa blockchain. SD card chết vì kiểu ghi này chỉ trong vài tháng, và độ trễ I/O làm daemon trông như mãi mãi tụt sau đầu chuỗi ngay cả khi đã sync đầy đủ.

Thiết lập từng bước trên Linux

Đường đi tham chiếu là Linux vì nó dễ tái lập nhất, là môi trường production phổ biến nhất, và dễ duy trì chạy không người trông coi nhất. Phần điều chỉnh cho macOS và Windows nằm ở cuối.

  1. Tạo user và thư mục riêng. Với quyền root, chạy useradd -r -s /bin/false monero, sau đó mkdir -p /var/lib/monero/blockchain /var/log/monero rồi chown -R monero:monero /var/lib/monero /var/log/monero. Chạy monerod dưới một service account, không phải user đăng nhập của bạn, là cú hardening lớn nhất mà không tốn xu nào.
  2. Tải binary chính thức. Vào getmonero.org/downloads và lấy tarball Linux 64-bit — tại thời điểm viết bài, bản phát hành hiện tại là v0.18.4.2. Quan trọng: cũng tải file hashes.txt tương ứng và xác minh SHA256 bằng shasum -a 256 monero-linux-x64-v0.18.4.2.tar.bz2, sau đó xác nhận chữ ký của hashes.txt bằng gpg --verify hashes.txt dùng PGP key của binaryFate. Bỏ qua bước verify chính là cách malware lên máy bạn.
  3. Giải nén và cài đặt. Untar bằng tar xjf monero-linux-x64-v0.18.4.2.tar.bz2, rồi chuyển binary: install -m 755 monero-x86_64-linux-gnu-v0.18.4.2/monero* /usr/local/bin/. Lệnh này đặt monerod, monero-wallet-cli và monero-wallet-rpc vào PATH của bạn.
  4. Viết file cấu hình. Tạo /etc/monero/monerod.conf với nội dung tối thiểu sau: data-dir=/var/lib/monero/blockchain, log-file=/var/log/monero/monerod.log, log-level=0, prune-blockchain=1, sync-pruned-blocks=1, rpc-bind-ip=127.0.0.1, rpc-bind-port=18081, p2p-bind-port=18080, out-peers=32, in-peers=64, limit-rate-up=1048576, no-igd=1, enable-dns-blocklist=1. Flag sync-pruned-blocks=1 là điểm mấu chốt: thiếu nó, monerod sẽ tải nguyên chain rồi mới tỉa cục bộ, lãng phí cả băng thông lẫn thời gian.
  5. Tạo systemd unit. Lưu file sau thành /etc/systemd/system/monerod.service: một block [Unit] duy nhất với Description=Monero Full Node (pruned)After=network-online.target; block [Service] với User=monero, Group=monero, Type=simple, ExecStart=/usr/local/bin/monerod --config-file=/etc/monero/monerod.conf --non-interactive, Restart=on-failure, RestartSec=30, MemoryHigh=3G, và MemoryMax=5G; và một block [Install] với WantedBy=multi-user.target.
  6. Kích hoạt và khởi động service. Chạy systemctl daemon-reload, rồi systemctl enable --now monerod. Theo dõi tiến độ bằng journalctl -u monerod -f hoặc tail trực tiếp log file. Đồng bộ ban đầu của một pruned node từ đầu trên đường truyền cáp quang gia đình 1 Gbps thường mất 6–10 tiếng; trên Pi 5 với NVMe, hãy chuẩn bị tinh thần 14–20 tiếng vì lúc này việc xác minh, chứ không phải tải xuống, mới là điểm thắt cổ chai.
  7. Mở cổng P2P, không phải cổng RPC. Nếu bạn muốn nhận kết nối peer vào (giúp ích cho mạng và cải thiện độ đa dạng peer của chính bạn), mở TCP 18080 trên router hoặc firewall. Tuyệt đối không expose 18081 ra Internet công cộng — đó là endpoint RPC của ví, phải giữ ràng buộc với localhost. Nếu cần truy cập ví từ xa, hãy tunnel qua SSH hoặc Tor, không bao giờ qua port forward thô.
  8. Trỏ ví về daemon cục bộ. Trong GUI wallet chính thức, chọn "Connect to a local node" và điền 127.0.0.1:18081. Trong CLI, truyền --daemon-address=127.0.0.1:18081 cho monero-wallet-cli. Trong Feather Wallet, toggle local node nằm ở Settings → Node, còn Cake Wallet trên desktop hỗ trợ điều này qua Settings → Privacy → Custom node.
Đừng bao giờ chạy monerod với --restricted-rpc=0 trên giao diện public. Trong vòng bốn mươi tám giờ kể từ khi bị Shodan đánh chỉ mục, một endpoint RPC không bị hạn chế sẽ bị các scraper mining-pool, bot quét ví và những thứ tệ hơn nữa tấn công dồn dập. Mặc định bind chỉ localhost được đặt ra là có lý do.

Tùy chỉnh thiết lập cho các nền tảng khác

Raspberry Pi 5 với NVMe

Cấu hình trên hoạt động gần như nguyên vẹn trên Pi 5. Hai điều chỉnh đáng làm: đặt db-sync-mode=fast:async:250000000 trong monerod.conf để giảm write amplification trên NVMe (mặc định an toàn nhưng chậm hơn), và cân nhắc giảm out-peers xuống 16 và in-peers xuống 32 nếu bạn đang dùng kết nối nội địa bị bóp băng thông khi upload liên tục. Quad Cortex-A76 của Pi 5 xác minh block ở tốc độ khoảng 0,6× so với một desktop đời mới, nên đợt sync đầu lâu hơn, nhưng vận hành ổn định vẫn theo kịp đầu chuỗi không vấn đề.

macOS

Cài qua Homebrew với brew install monero, lệnh này đặt monerod tại /opt/homebrew/bin/monerod trên Apple Silicon. Dùng một launchd plist tại ~/Library/LaunchAgents/io.getmonero.monerod.plist thay cho systemd. Nội dung file config vẫn giống — chỉ cần trỏ data-dir tới một vị trí trong thư mục home của bạn, ví dụ ~/Library/Application Support/monero. Firewall của macOS sẽ hiện prompt trong lần chạy đầu; cho phép inbound trên cổng P2P nếu bạn muốn phục vụ peer.

Windows 11

Tải installer Windows 64-bit từ getmonero.org, chạy, và để nó tạo data directory tại C:\ProgramData\bitmonero. Để chạy monerod dưới dạng service thay vì foreground process, dùng NSSM (Non-Sucking Service Manager) và trỏ nó vào monerod.exe với cùng tham số --config-file. Windows Defender thỉnh thoảng gắn cờ monerod là "coin mining" — nó không đào, nhưng heuristic của Defender ngốc nghếch, nên hãy thêm exclusion cho thư mục chứa binary.

Bảo trì, giám sát và phục hồi

Một pruned node cấu hình đúng gần như là set-and-forget, nhưng ba thói quen vận hành sau ngăn được 90% rắc rối.

Thứ nhất, kiểm tra dung lượng đĩa hàng tháng. Pruned chain hiện tăng khoảng 4–6 GB mỗi tháng theo lượng giao dịch hiện tại, và việc đĩa đầy bất ngờ có thể làm LMDB hỏng theo những cách rất khó chịu. Hãy đặt một monit hoặc systemd timer đơn giản để cảnh báo khi /var/lib/monero còn trống dưới 15 GB.

Thứ hai, giữ monerod luôn cập nhật. Các đợt nâng cấp mạng (hard fork) diễn ra khoảng 6–9 tháng một lần, và một node chạy phiên bản giao thức cũ sẽ ngừng chấp nhận block ngay khoảnh khắc fork kích hoạt. Lịch phát hành của Monero được công bố trên trang GitHub releases và được thông báo trên r/Monero cùng mailing list chính thức thường là bốn đến sáu tuần trước. Hãy cập nhật ít nhất hai tuần trước fork height để chừa biên an toàn.

Thứ ba, biết cách resync. Nếu LMDB ném ra "MDB_CORRUPTED" hay daemon từ chối khởi động sau một lần mất điện, quy trình phục hồi tuy thô nhưng đáng tin: dừng service, xóa nội dung trong /var/lib/monero/blockchain, và khởi động lại. Node sẽ resync từ đầu trong 6–12 tiếng. Không có công cụ sửa chữa tăng dần nào vì LMDB không có; một lần resync sạch là cách khắc phục chính thống và đã hoạt động từ năm 2017.

Một ví dụ thực tế: một contributor cho backend của MoneroSwapper vận hành một đội bảy pruned node trải qua ba quốc gia để cung cấp endpoint daemon đa dạng cho dịch vụ swap ẩn danh của chúng tôi. Mỗi node được provision giống hệt nhau — Debian 12, systemd unit nêu trên, lưu trữ NVMe, và expose cổng P2P qua Tor hidden service. Trong ba mươi tám tháng tổng uptime cộng dồn của cả đội, can thiệp duy nhất cần làm là ba lần resync sau những lần datacenter reboot ngoài lịch và việc đổi binary chuẩn vào ngày fork. Đó là trạng thái ổn định bạn nên kỳ vọng từ một deployment được hardening tử tế.

Câu hỏi thường gặp

Tôi có thể chuyển một full node hiện có sang pruned mà không cần resync không?

Có. Dừng monerod, chạy monerod --prune-blockchain một lần duy nhất (không chạy dưới dạng service), và đợi. Thao tác pruning mất 30–90 phút tùy tốc độ đĩa và ghi đè database tại chỗ. Khi xong, khởi động lại service với cấu hình pruned. Không mất dữ liệu, không resync, nhưng hãy sao lưu wallet key trước cho chắc — không cần sao lưu chính blockchain, vì nó có thể tái tạo từ bất kỳ peer nào.

Pruned node có dùng để đào hoặc làm cổng thanh toán Monero cho merchant được không?

Với đào solo hoặc đào pool, có — miner chỉ cần đầu chuỗi, không cần ring signature lịch sử. P2Pool cũng chạy tốt với pruned node và thực ra là cặp đôi được khuyến nghị cho đào theo kiểu solo tự chủ từ năm 2023. Với cổng thanh toán merchant xử lý giao dịch nhận về qua monero-wallet-rpc, pruned node cũng ổn không kém. Các vai trò duy nhất bắt buộc dùng archival node là block explorer và công cụ phân tích chuỗi học thuật.

Pruned node có làm tổn hại quyền riêng tư của ví tôi không?

Không. Việc quét ví dùng database output index và key image, cả hai đều được giữ đầy đủ trên pruned node. Dữ liệu bị loại bỏ — ring signature lịch sử — không hề tham gia vào quá trình quét theo view key của ví, cũng không tham gia vào việc chọn decoy khi ví dựng giao dịch mới. Từ góc độ của ví, daemon cục bộ không khác gì daemon archival, và nó riêng tư hơn nhiều so với bất kỳ remote node nào bất kể operator đó tự nhận đáng tin đến đâu.

Pruning tương tác với FCMP++ thế nào khi membership proof đã hoạt động?

Hard fork tháng 11/2025 đã giới thiệu full chain membership proof song song với cơ chế ring signature hiện có, và pruning đối xử nhất quán với cả hai: nó giữ lại mọi proof và mọi key image cần thiết để xác minh chuỗi, đồng thời chỉ loại bỏ các byte payload chữ ký vòng dư thừa mà các giao dịch cũ vẫn mang theo. Giao dịch hậu FCMP++ có kích thước nhỏ hơn một chút so với giao dịch CLSAG cũ, nên tỷ lệ pruning thực ra hơi thuận lợi hơn ở các block gần đây so với các block lịch sử.

Tôi có thể chạy pruned node hoàn toàn qua Tor không?

Có, và đây là kiểu deployment phổ biến với người dùng vừa muốn tiết kiệm đĩa, vừa muốn riêng tư ở tầng mạng. Thêm tx-proxy=tor,127.0.0.1:9050,32anonymous-inbound=DIACHIONION.onion,127.0.0.1:18083,16 vào monerod.conf, kèm hidden service tương ứng được cấu hình trong /etc/tor/torrc. Đợt sync đầu qua Tor chậm hơn — 24–48 tiếng thay vì 6–12 — nhưng vận hành ổn định thì không vấn đề gì, và bạn có thêm thuộc tính rằng không một giao dịch hay lượt quét ví nào của bạn từng chạm vào clearnet.

Kết luận

Một pruned Monero node mang lại trọn vẹn các bảo đảm riêng tư và xác minh của một archival node ở khoảng 40% dung lượng đĩa, đó là khác biệt giữa "cái này không nhét vừa laptop của tôi" và "thứ này chạy thoải mái cùng với mọi thứ khác". Việc thiết lập là dự án một buổi tối trên bất kỳ máy đời mới nào, gánh nặng bảo trì rơi vào khoảng một tiếng mỗi sáu tháng, và kết quả là một nền tảng tự chủ cho mọi giao dịch Monero bạn từng gửi hay nhận. Kết hợp một pruned node cục bộ với dịch vụ swap không-KYC như MoneroSwapper, bạn có đủ bộ stack: riêng tư ở tầng giao thức nhờ RingCT và FCMP++, riêng tư ở tầng mạng nhờ daemon của chính bạn, và riêng tư ở on-ramp nhờ atomic swap tỷ giá cố định không bao giờ nhìn thấy danh tính bạn. Dung lượng đĩa tiết kiệm được chỉ là phần thưởng phụ; tự chủ trong vận hành mới là chiến thắng thực sự.

Chia sẻ bài viết

Bài viết liên quan

Sàn giao dịch Monero ẩn danh

Không KYC • Không đăng ký • Đổi ngay lập tức

Trao đổi ngay