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

Hướng dẫn chi tiết: Tự chạy Nostr Relay bằng Strfry trên VPS cho doanh nghiệp

29 tháng 5, 2026

Giới thiệu về Giao thức Nostr và Tầm quan trọng của Relay

Trong kỷ nguyên số hiện nay, 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ư, kiểm duyệt nội dung và an toàn dữ liệu. Nostr (Notes and Other Stuff Transmitted by Relays) nổi lên như một giải pháp thay thế đột phá. Đây không phải là một ứng dụng đơn lẻ, mà là một giao thức mạng phi tập trung, mã nguồn mở, cho phép tạo ra các mạng xã hội chống kiểm duyệt tuyệt đối.

Hệ sinh thái Nostr hoạt động dựa trên hai thành phần cốt lõi: Clients (giao diện người dùng) và Relays (các nút mạng/node máy chủ). Khác với kiến trúc blockchain phức tạp, Nostr vận hành rất tinh gọn. Khi người dùng đăng một trạng thái, Client của họ sẽ ký số vào dữ liệu đó và gửi đến một hoặc nhiều Relay. Các Relay có nhiệm vụ tiếp nhận, lưu trữ và phân phối lại các sự kiện (events) này đến các Client khác khi có yêu cầu.

Đối với các doanh nghiệp, tổ chức hoặc chuyên gia công nghệ, việc tự vận hành một Nostr Relay riêng mang lại những lợi ích chiến lược:

  • Toàn quyền kiểm soát dữ liệu: Doanh nghiệp sở hữu hoàn toàn hạ tầng lưu trữ thông tin liên lạc nội bộ hoặc cộng đồng của mình.
  • Tối ưu hóa tốc độ: Giảm thiểu độ trễ kết nối cho các thành viên trong cùng khu vực địa lý bằng cách cấu hình node gần họ.
  • Tăng cường bảo mật: Thiết lập các bộ lọc dữ liệu, ngăn chặn thư rác (spam) và các cuộc tấn công mạng hiệu quả theo chính sách riêng.

Tại sao nên chọn Strfry làm Relay Software?

Hiện nay có nhiều phần mềm mã nguồn mở hỗ trợ thiết lập Nostr Relay như Nostr-rs-relay, Relayor, hay Khatru. Tuy nhiên, Strfry được đánh giá là một trong những giải pháp tối ưu nhất dành cho môi trường sản xuất (production) của doanh nghiệp nhờ vào kiến trúc kỹ thuật vượt trội.

Strfry là một Nostr relay được viết bằng ngôn ngữ C++, tối ưu hóa đặc biệt cho hiệu năng cao và mức tiêu thụ tài nguyên cực thấp. Điểm mấu chốt giúp Strfry vượt trội là việc sử dụng cơ sở dữ liệu LMDB (Lightning Memory-Mapped Database). LMDB cho phép đọc dữ liệu với tốc độ cực nhanh trực tiếp từ bộ nhớ đệm của hệ điều hành, giúp hệ thống xử lý hàng nghìn truy vấn đồng thời mà không làm nghẽn CPU hoặc I/O của ổ đĩa.

Strfry không chỉ là một kho lưu trữ dữ liệu đơn thuần; nó là một cỗ máy phân phối thông tin thời gian thực được thiết kế để chịu tải cho các cộng đồng quy mô lớn.

Chuẩn bị hạ tầng VPS và Yêu cầu hệ thống

Để đảm bảo Strfry vận hành ổn định và liên tục (high availability), việc lựa chọn cấu hình máy chủ ảo (VPS) phù hợp là rất quan trọng. Dưới đây là cấu hình khuyến nghị dành cho quy mô doanh nghiệp vừa và nhỏ:

  • Hệ điều hành: Ubuntu 22.04 LTS hoặc Ubuntu 24.04 LTS (đảm bảo tính ổn định và bảo mật dài hạn).
  • CPU: Tối thiểu 2 Cores (Ưu tiên các dòng CPU tối ưu cho compute).
  • RAM: Tối thiểu 4GB (LMDB tận dụng RAM làm bộ đệm, RAM càng lớn tốc độ truy xuất càng cao).
  • Ổ cứng: 50GB đến 100GB SSD NVMe. Tốc độ đọc/ghi của ổ cứng ảnh hưởng trực tiếp đến hiệu năng của cơ sở dữ liệu.
  • Băng thông: Không giới hạn hoặc tối thiểu 2TB/tháng với cổng kết nối 1Gbps.

Hướng dẫn các bước cài đặt Strfry chi tiết

Bước 1: Cập nhật hệ thống và cài đặt các thư viện phụ thuộc

Đầu tiên, bạn cần kết nối SSH vào VPS với quyền root 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:sudo apt update && sudo apt upgrade -y

Tiếp theo, cài đặt các công cụ biên dịch và các thư viện lập trình cần thiết mà Strfry yêu cầu:sudo apt install -y build-essential git g++ liblmdb-dev libssl-dev libz-dev libflatbuffers-dev pkg-config zlib1g-dev

Bước 2: Tải mã nguồn và biên dịch Strfry

Tiến hành tải mã nguồn mới nhất của Strfry từ kho lưu trữ GitHub chính thức, di chuyển vào thư mục dự án và tải các submodules đi kèm:git clone [https://github.com/hoytech/strfry.git](https://github.com/hoytech/strfry.git)
cd strfry
git submodule update --init --recursive

Sau khi chuẩn bị xong mã nguồn, thực hiện lệnh biên dịch phần mềm. Quá trình này có thể mất vài phút tùy thuộc vào hiệu năng CPU của VPS:make -j$(nproc)

Sau khi biên dịch thành công, bạn có thể kiểm tra xem file thực thi đã sẵn sàng chưa bằng lệnh:./strfry info

Bước 3: Cấu hình File strfry.config

Strfry quản lý toàn bộ hoạt động thông qua một file cấu hình định dạng JSON/Config. Hãy tạo một bản sao từ file cấu hình mẫu:cp strfry.config.example strfry.config

Sử dụng trình chỉnh sửa văn bản (như nano) để tùy chỉnh các thông số cốt lõi:nano strfry.config

Trong file này, bạn cần lưu ý và chỉnh sửa các trường thông tin sau để phù hợp với định danh của doanh nghiệp:

  • info.name: Đặt tên cho Relay của bạn (Ví dụ: "Doanh nghiep A Nostr Relay").
  • info.description: Mô tả ngắn gọn về mục đích hoặc quy định của Relay.
  • info.pubkey: Nhập mã khóa công khai (hex format) của quản trị viên hệ thống để người dùng biết ai sở hữu node này.
  • info.contact: Địa chỉ email hoặc thông tin liên hệ khi cần thiết.
  • relay.bind: Mặc định là "127.0.0.1". Nếu bạn muốn chạy trực tiếp không qua Reverse Proxy, đổi thành "0.0.0.0" (Tuy nhiên, chúng tôi khuyến nghị giữ nguyên và sử dụng Nginx).

Cấu hình Reverse Proxy với Nginx và Chứng chỉ SSL Let's Encrypt

Để đảm bảo an toàn cho dữ liệu truyền tải trên môi trường internet, giao thức Nostr bắt buộc phải sử dụng kết nối mã hóa qua WebSocket bảo mật (wss://). Chúng ta sẽ sử dụng Nginx làm Reverse Proxy để điều hướng và mã hóa lượng truy cập.

1. Cài đặt Nginx và Certbot

sudo apt install -y nginx certbot python3-certbot-nginx

2. Tạo cấu hình Server Block cho Nginx

Tạo một file cấu hình mới cho tên miền của bạn (ví dụ: relay.domain.com):

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

Thêm cấu hình điều hướng WebSocket dưới đây vào file:server {
listen 80;
server_name relay.domain.com;

location / {
proxy_pass [http://127.0.0.1:7777](http://127.0.0.1:7777);
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;

# Tối ưu hóa cho kết nối WebSocket lâu dài
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}

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 miễn phí

Sử dụng Certbot để tự động cấu hình chứng chỉ HTTPS/WSS cho tên miền:

sudo certbot --nginx -d relay.domain.com

Quản lý Vận hành Relay bằng Systemd

Để đảm bảo Strfry tự động khởi động cùng hệ thống và tự động chạy lại nếu gặp sự cố, chúng ta cần thiết lập một dịch vụ hệ thống (Systemd Service).

Tạo file dịch vụ:

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

Điền nội dung cấu hình sau (Lưu ý thay đổi đường dẫn chính xác tới thư mục chứa phần mềm của bạn):[Unit]
Description=Strfry Nostr Relay Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/strfry
ExecStart=/root/strfry/strfry relay
Restart=on-failure
RestartSec=5s
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

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

sudo systemctl daemon-reload
sudo systemctl enable strfry
sudo systemctl start strfry

Kiểm tra trạng thái hoạt động để đảm bảo node đang chạy mượt mà:

sudo systemctl status strfry

Kiểm tra hiệu năng và Kết nối thực tế

Khi dịch vụ đã hoạt động ổn định, bạn có thể kiểm tra khả năng kết nối bằng cách sử dụng các Client thông dụng của Nostr như Primal, Coracle, hoặc Amethyst. Trong phần cài đặt mạng lưới (Relays) của ứng dụng, hãy thêm địa chỉ đường dẫn của bạn: wss://relay.domain.com.

Nếu Client kết nối thành công và hiển thị đúng các thông tin tiêu đề (Name, Description) mà bạn đã cấu hình trong file strfry.config, xin chúc mừng: Bạn đã sở hữu một Node mạng xã hội phi tập trung hoàn chỉnh và độc lập.

Kết luận và Khuyến nghị bảo mật nâng cao

Việc tự vận hành một Nostr Relay bằng Strfry là một bước đi chiến lược giúp cá nhân và tổ chức làm chủ hoàn toàn kênh truyền thông của mình. Để đảm bảo hệ thống vận hành an toàn về lâu dài, doanh nghiệp cần lưu ý thêm các giải pháp bảo mật nâng cao sau:

  1. Cấu hình Tường lửa (Firewall): Chỉ mở các cổng thực sự cần thiết như 80, 443 cho lưu lượng web công cộng và cổng SSH (được đổi sang cổng tùy chỉnh) cho quản trị viên.
  2. Bật tính năng White-listing/Anti-spam: Strfry hỗ trợ các bộ lọc (plugins) mạnh mẽ để chặn các mã khóa công khai chuyên gửi tin rác hoặc giới hạn quyền ghi dữ liệu chỉ cho những người dùng được cấp phép.
  3. Giám sát tài nguyên liên tục: Sử dụng các công cụ như Prometheus và Grafana để theo dõi dung lượng ổ cứng và mức độ tiêu thụ RAM của LMDB, tránh tình trạng gián đoạn dịch vụ đột xuất.
Hướng dẫn chi tiết: Tự chạy Nostr Relay bằng Strfry trên VPS cho doanh nghiệp | DPTCloud