Quay lại danh sách
Tin tức công nghệ

Triển Khai 'Nostrelt' Trên VPS: Tự Dựng Relay Cho Mạng Xã Hội Phi Tập Trung Nostr

30 tháng 5, 2026

Giới thiệu về Giao thức Nostr và Vai trò của Relay

Trong kỷ nguyên số hiện đại, sự phụ thuộc vào các nền tảng mạng xã hội tập trung đang bộc lộ nhiều hạn chế về quyền riêng tư, bảo mật dữ liệu và quyền tự do ngôn luận. Nostr (Notes and Other Stuff Transmitted by Relays) xuất hiện như một giải pháp thay thế đột phá. Đây là một giao thức nguồn mở, phi tập trung, cho phép người dùng truyền tải thông tin mà không cần thông qua bất kỳ máy chủ trung tâm nào.

Kiến trúc của Nostr vận hành dựa trên hai thành phần cốt lõi: Clients (Ứng dụng phía người dùng) và Relays (Máy chủ chuyển tiếp dữ liệu). Khác với mô hình truyền thống, Relay trong mạng lưới Nostr không lưu trữ thông tin tài khoản hay kiểm soát danh tính của bạn; chúng chỉ đơn thuần làm nhiệm vụ tiếp nhận, lưu trữ và phân phối các thông điệp (events) được ký số. Việc sở hữu một Relay riêng không chỉ giúp bạn tối ưu hóa tốc độ kết nối mà còn đóng góp vào sự bền vững và tính phi tập trung của toàn bộ mạng lưới.

Nostrelt là gì? Tại sao nên chọn Nostrelt?

Khi quyết định tự vận hành một Nostr Relay, việc lựa chọn phần mềm nền tảng là yếu tố quyết định đến hiệu năng và chi phí duy trì. Nostrelt là một giải pháp triển khai Relay tối ưu được viết bằng ngôn ngữ lập trình Rust – nổi tiếng với khả năng quản lý bộ nhớ an toàn và hiệu suất vượt trội.

Dưới đây là các lý do khiến Nostrelt trở thành lựa chọn hàng đầu cho các nhà phát triển và doanh nghiệp:

  • Hiệu năng cực cao: Tận dụng sức mạnh của Rust, Nostrelt có khả năng xử lý hàng nghìn kết nối đồng thời (Concurrent Connections) với mức tiêu thụ tài nguyên phần cứng (CPU/RAM) cực thấp.
  • Cơ sở dữ liệu tối ưu: Thường tích hợp với SQLite hoặc RocksDB, giúp việc truy vấn dữ liệu sự kiện diễn ra gần như ngay lập tức.
  • Dễ dàng cấu hình: Cung cấp tệp cấu hình rõ ràng, cho phép tùy chỉnh linh hoạt các quy tắc lọc tin nhắn (whitelist, blacklist, giới hạn kích thước event).

Chuẩn bị tài nguyên trước khi triển khai

Để quá trình cài đặt diễn ra suôn sẻ, bạn cần chuẩn bị một môi trường máy chủ ảo (VPS) với các thông số cơ bản sau:

  1. Cấu hình VPS khuyến nghị: 1 vCPU, 2GB RAM, và ổ cứng SSD từ 20GB trở lên (Ưu tiên các nhà cung cấp như DigitalOcean, Linode, hoặc Vultr).
  2. Hệ điều hành: Ubuntu 22.04 LTS hoặc Ubuntu 24.04 LTS để đảm bảo tính ổn định và tương thích phần mềm.
  3. Tên miền (Domain Name): Một tên miền hoặc tên miền phụ (subdomain) đã được trỏ bản ghi A về địa chỉ IP của VPS (Ví dụ: relay.domain.com).
  4. Quyền truy cập: Quyền root hoặc tài khoản có đặc quyền sudo trên VPS.

Hướng dẫn chi tiết các bước cài đặt Nostrelt trên VPS

Bước 1: Cập nhật hệ thống và cài đặt các công cụ bổ trợ

Đầu tiên, hãy kết nối với VPS của bạn qua SSH và tiến hành cập nhật toàn bộ các gói phần mềm hệ thống lên phiên bản mới nhất bằng lệnh sau:

sudo apt update && sudo apt upgrade -y
sudo apt install git curl build-essential libssl-dev pkg-config -y

Bước 2: Cài đặt Rust Môi trường (Rust toolchain)

Vì Nostrelt được xây dựng trên Rust, chúng ta cần cài đặt rustup – trình quản lý phiên bản Rust chính thức:

curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh

Sau khi hệ thống hoàn thành cài đặt, hãy kích hoạt môi trường Rust hiện tại bằng lệnh:

source $HOME/.cargo/env

Kiểm tra xem Rust đã được cài đặt thành công hay chưa bằng cách kiểm tra phiên bản: rustc --version.

Bước 3: Tải mã nguồn Nostrelt và Biên dịch

Tiến hành sao chép kho lưu trữ mã nguồn của Nostrelt từ GitHub về máy chủ của bạn:

git clone [https://github.com/scsibug/nostr-rs-relay.git](https://github.com/scsibug/nostr-rs-relay.git)
cd nostr-rs-relay
Note: Tùy thuộc vào phiên bản fork hoặc nhánh phát triển cụ thể của Nostrelt bạn chọn, đường dẫn git có thể thay đổi. Hãy đảm bảo bạn sử dụng mã nguồn từ nguồn uy tín.

Tiếp theo, thực hiện biên dịch mã nguồn sang định dạng nhị phân tối ưu (Release mode):

cargo build --release

Quá trình này có thể mất vài phút tùy thuộc vào cấu hình CPU của VPS của bạn. Sau khi hoàn tất, tệp thực thi sẽ nằm tại đường dẫn target/release/nostr-rs-relay.

Bước 4: Cấu hình Nostrelt

Sao chép tệp cấu hình mẫu sang thư mục làm việc chính thức để chỉnh sửa:

cp config-example.toml config.toml
nano config.toml

Trong tệp config.toml, bạn cần lưu ý điều chỉnh các thông số quan trọng sau:

  • [info]: Cập nhật tên relay, mô tả, thông tin liên hệ và pubkey của bạn (quản trị viên).
  • [network]: Đặt địa chỉ bind mặc định, thông thường là 127.0.0.1:8080 để chạy phía sau một Reverse Proxy như Nginx.
  • [limits]: Giới hạn kích thước tin nhắn và số lượng kết nối để tránh các cuộc tấn công từ chối dịch vụ (DoS).

Cấu hình Nginx làm Reverse Proxy và Cài đặt SSL (Certbot)

Để đảm bảo an toàn dữ liệu và cho phép các Client kết nối qua giao thức bảo mật wss:// (WebSocket Secure), chúng ta cần thiết lập Nginx đóng vai trò là Reverse Proxy và cài đặt chứng chỉ SSL mã hóa.

1. Cài đặt Nginx

sudo apt install nginx -y

2. Cấu hình Nginx Block cho Relay

Tạo một tệp cấu hình mới cho tên miền của bạn:

sudo nano /etc/nginx/sites-available/nostr-relay

Thêm đoạn cấu hình sau vào tệp (thay thế relay.domain.com bằng tên miền thực tế của bạn):

server {
    server_name relay.domain.com;

    location / {
        proxy_pass [http://127.0.0.1:8080](http://127.0.0.1:8080);
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Kích hoạt cấu hình và khởi động lại Nginx:

sudo ln -s /etc/nginx/sites-available/nostr-relay /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

3. Cài đặt Chứng chỉ SSL Let's Encrypt

Sử dụng Certbot để tự động cấu hình và cấp phát SSL miễn phí:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d relay.domain.com

Chọn tùy chọn tự động chuyển hướng toàn bộ lưu lượng truy cập từ HTTP sang HTTPS để đảm bảo tính bảo mật tuyệt đối.

Khởi chạy Nostrelt dưới dạng Systemd Service

Để đảm bảo Nostrelt luôn chạy ngầm và tự động khởi động lại khi VPS bị reboot, chúng ta cần tạo một Systemd Service.

sudo nano /etc/systemd/system/nostrelt.service

Dán nội dung cấu hình sau vào:

[Unit]
Description=Nostrelt - Nostr Relay Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/nostr-rs-relay
ExecStart=/root/nostr-rs-relay/target/release/nostr-rs-relay --config /root/nostr-rs-relay/config.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Kích hoạt và khởi chạy dịch vụ:

sudo systemctl daemon-reload
sudo systemctl enable nostrelt
sudo systemctl start nostrelt

Kiểm tra trạng thái hoạt động của dịch vụ bằng lệnh: sudo systemctl status nostrelt. Nếu hiển thị màu xanh active (running), chúc mừng bạn đã triển khai thành công!

Kiểm tra và Kết nối tới Relay của bạn

Bây giờ, Relay của bạn đã sẵn sàng trực tuyến tại địa chỉ wss://relay.domain.com. Để kiểm tra hiệu năng và khả năng kết nối, bạn có thể thực hiện các bước sau:

  • Sử dụng các công cụ kiểm tra trực tuyến như Nostr.watch để quét trạng thái và thời gian phản hồi (uptime/ping) của relay.
  • Mở các ứng dụng Nostr Client phổ biến (ví dụ: Damus trên iOS, Amethyst trên Android, hoặc Primal trên Web).
  • Tru cập vào phần cài đặt mạng lưới (Relays) trong Client, thêm địa chỉ wss://relay.domain.com của bạn vào danh sách và nhấn lưu.

Thử đăng một bài viết mới (Note), bạn sẽ nhận thấy tốc độ đồng bộ và tải dữ liệu diễn ra vô cùng nhanh chóng do dữ liệu được định tuyến trực tiếp qua máy chủ VPS riêng của bạn.

Kết luận

Việc tự vận hành một Nostr Relay thông qua Nostrelt trên VPS không chỉ là bài thực hành kỹ thuật thú vị mà còn mang lại giá trị thực tiễn lớn. Bạn hoàn toàn làm chủ dữ liệu cá nhân, không bị giới hạn bởi các bộ lọc của bên thứ ba, và trực tiếp đóng góp vào hạ tầng mạng xã hội phi tập trung của tương lai. Hãy bắt đầu tối ưu hóa trải nghiệm Nostr của bạn ngay hôm nay bằng một hạ tầng độc lập và bảo mật.

Triển Khai 'Nostrelt' Trên VPS: Tự Dựng Relay Cho Mạng Xã Hội Phi Tập Trung Nostr | DPTCloud