> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Cách sử dụng getBlockTime

> Tìm hiểu các trường hợp sử dụng getBlockTime, ví dụ mã, tham số yêu cầu, cấu trúc phản hồi và các mẹo.

Phương thức RPC [`getBlockTime`](https://www.helius.dev/docs/api-reference/rpc/http/getblocktime) cung cấp thời gian tạo ước tính của một khối cụ thể, được xác định bằng số slot. Thời gian được trả về dưới dạng dấu thời gian Unix (số giây kể từ Unix epoch).

Phương thức này hữu ích khi cần đối chiếu quá trình tạo khối với thời gian thực tế.

<Warning>
  **Tránh gộp lô để có hiệu suất tốt hơn**

  Việc gộp lô các phương thức lưu trữ làm tăng đáng kể độ trễ. Không cho phép các lô có hơn 10 yêu cầu.
</Warning>

## Các trường hợp sử dụng phổ biến

* **Gắn dấu thời gian cho sự kiện:** Xác định thời điểm một khối cụ thể được tạo để gắn dấu thời gian cho các sự kiện on-chain.
* **Phân tích khoảng thời gian tạo khối:** Tính chênh lệch thời gian giữa các khối (tuy nhiên, để phân tích chi tiết hơn, có thể cần kết hợp với các phương thức khác).
* **Đối chiếu dữ liệu off-chain:** Đồng bộ các sự kiện hoặc dữ liệu off-chain với hoạt động on-chain bằng cách khớp thời gian tạo khối.

## Tham số yêu cầu

Phương thức `getBlockTime` nhận một tham số duy nhất:

1. **`slot`** (u64, bắt buộc): Số slot của khối cần truy xuất thời gian tạo ước tính.

## Cấu trúc phản hồi

Trường `result` của phản hồi JSON-RPC sẽ là một trong các giá trị sau:

* **`timestamp`** (i64): Thời gian tạo ước tính dưới dạng dấu thời gian Unix (số giây kể từ Unix epoch).
* **`null`**: Nếu không có dấu thời gian cho khối được chỉ định (ví dụ: khối quá cũ và dữ liệu đã bị loại bỏ, hoặc khối đã bị bỏ qua và không có dấu thời gian liên quan).

## Ví dụ

### 1. Lấy thời gian ước tính của một khối cụ thể

Ví dụ này truy xuất thời gian tạo ước tính cho một slot cụ thể. Hãy nhớ thay `SLOT_NUMBER_TO_QUERY` bằng một slot thực tế, gần đây và đã được xác nhận trên mạng mục tiêu (ví dụ: Mainnet Beta hoặc Devnet).

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace SLOT_NUMBER_TO_QUERY with a valid slot, e.g., a recent one from an explorer
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlockTime",
      "params": [
        SLOT_NUMBER_TO_QUERY 
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getSpecificBlockTime(slotToQuery) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const blockTime = await connection.getBlockTime(slotToQuery);
      if (blockTime !== null) {
        console.log(`Estimated time for slot ${slotToQuery}: ${new Date(blockTime * 1000).toISOString()} (Unix: ${blockTime})`);
      } else {
        console.log(`Timestamp not available for slot ${slotToQuery}.`);
      }
    } catch (error) {
      console.error('Error fetching block time:', error);
    }
  }

  // Example usage: Replace with a recent, valid slot number from Mainnet Beta
  // You can find recent slots on Solana explorers like Solscan or SolanaFM
  const slotToQuery = 300000000; // Replace with an actual slot number
  getSpecificBlockTime(slotToQuery);
  ```
</CodeGroup>

## Mẹo dành cho nhà phát triển

* **Khả dụng của dấu thời gian:** Dấu thời gian có thể không khả dụng cho tất cả các khối, đặc biệt là những khối rất cũ hoặc các slot đã bị bỏ qua. Trong những trường hợp đó, phương thức trả về `null`.
* **Ước tính:** Thời gian là một giá trị *ước tính*. Giá trị này được tính từ giá trị trung bình có trọng số theo stake của các dấu thời gian Vote từ trình xác thực. Mặc dù nhìn chung chính xác, đây không phải là dấu thời gian được đảm bảo an toàn bằng mật mã cho từng khối theo cách tương tự như blockhash.
* **Phụ thuộc vào node:** Khả năng cung cấp và độ chính xác có thể khác nhau đôi chút tùy thuộc vào node RPC được truy vấn, đặc biệt đối với các khối rất gần đây (chưa được hoàn tất).

Hướng dẫn này giải thích cách sử dụng `getBlockTime` để truy xuất dấu thời gian tạo ước tính cho bất kỳ khối nào trên mạng Solana.
