> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/vi/tai-nguyen/faq.md).

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

Các câu hỏi thường gặp về Rome Protocol — Rome là cầu nối hay rollup, khả năng tương thích Solidity, oracle, token gas, và tương tác Solana.

## Chung

**Rome Protocol là gì?** Rome là một môi trường thực thi EVM chạy nguyên bản bên trong runtime của Solana. Các hợp đồng Solidity triển khai trên Solana với quyền truy cập CPI trực tiếp tới tất cả các chương trình Solana. Xem [Rome là gì?](/vi/bat-dau/what-is-rome.md)

**Rome có phải là cầu nối không?** Không. Rome EVM chạy bên trong runtime của Solana như một chương trình hạng nhất. Không có truyền thông điệp giữa các chuỗi riêng biệt. Trạng thái EVM CHÍNH LÀ trạng thái Solana.

**Rome có phải là rollup không?** Không phải các chuỗi Rome EVM (Rubicon và Hadrian). Một bộ index block (Hercules) tạo ra các block tương thích với Ethereum cho ví và trình khám phá, nhưng việc thực thi EVM diễn ra bên trong một chương trình Solana — không phải trên một chuỗi rollup riêng biệt. Phần [Rome ZK EVM](/vi/rome-zk-evm/zk-evm.md) là một sản phẩm khác: các nhà vận hành chạy các rollup gửi các lô giao dịch lên Solana và quyết toán các gốc đã được chứng minh tại đó.

## Phát triển

**Tôi có thể dùng các hợp đồng Solidity hiện có của mình không?** Có. Các hợp đồng Solidity tiêu chuẩn triển khai trên Rome mà không cần thay đổi. Nếu hợp đồng của bạn dùng oracle Chainlink, Oracle Gateway cung cấp cùng `AggregatorV3Interface`. Một điều mới đối với người dùng, không phải đối với hợp đồng: trước khi một wrapper có thể di chuyển token của ví, ví đó cấp quyền cho wrapper một lần (`approve_spl` trên precompile Helper). Một hợp đồng kéo một token wrapper bằng `transferFrom` đòi hỏi mỗi người dùng đã thực hiện việc này. Xem [Cấp quyền một lần cho mỗi ví](/vi/cac-khai-niem-cot-loi/token-interop.md#one-time-grant-per-wallet).

**Tôi nên dùng phiên bản Solidity nào?** Khuyến nghị dùng 0.8.28 (khớp với Rome Solidity SDK). Các phiên bản trước đó vẫn hoạt động.

**Tôi có thể dùng Hardhat? Foundry?** Cả hai đều hoạt động. Cấu hình mạng của bạn với URL RPC của Rome và chain ID. Xem [Triển khai Solidity](/vi/huong-dan-cho-nha-phat-trien/deploy-solidity.md).

**Tôi có thể dùng MetaMask?** Có. Thêm Rome làm mạng tùy chỉnh trong MetaMask với URL RPC và chain ID phù hợp. Xem [Bắt đầu nhanh](/vi/bat-dau/quickstart.md).

**Một giao dịch dùng bao nhiêu gas?** Hãy hỏi chuỗi: dùng `eth_estimateGas`, như các công cụ tiêu chuẩn vẫn làm, và không bao giờ cố định cứng 21.000. Phần lớn chi phí của một thao tác ghi là tạo các tài khoản Solana, chẳng hạn người nhận chưa từng dùng, một tài khoản token mới hoặc một hợp đồng đã triển khai, và ước tính đã bao gồm điều đó. Đo trên Hadrian, một lần chuyển gốc tới một địa chỉ chưa từng dùng được ước tính 1.086.961 gas, trong khi một lần chuyển tới địa chỉ đã tồn tại được ước tính 21.000 và thực tế dùng 10.001. Rome tính gas đúng theo mức giao dịch thực sự dùng, và trong các phép đo này chưa bao giờ vượt quá ước tính. Với các lời gọi vào chương trình Solana, hãy cộng thêm biên an toàn, như phần đệm 1,3x của SDK, và đặt trần gas nếu bản thân ước tính bị revert. Xem [Hỗ trợ JSON-RPC](/vi/tai-lieu-tham-khao/json-rpc.md).

**Làm thế nào để gọi các chương trình Solana từ Solidity?** Sử dụng precompile CPI (`0xFF...08`) thông qua Rome Solidity SDK. Xem [Gọi Solana từ EVM](/vi/huong-dan-cho-nha-phat-trien/call-solana-from-evm.md).

## Hiệu năng

**Thời gian hoàn tất giao dịch là bao lâu?** Một giao dịch được xác nhận trong khoảng một slot Solana, tức một phần nhỏ của giây. Đó là xác nhận trên chuỗi Rome, không phải finality trên Solana, vốn mất lâu hơn.

**Ngân sách compute là bao nhiêu?** \~1,4 triệu đơn vị compute cho mỗi giao dịch nguyên tử. Các thao tác vượt quá mức này sẽ dùng chế độ lặp (chia thành nhiều giao dịch Solana). Xem [Ngân sách tính toán](/vi/cac-khai-niem-cot-loi/compute-budget.md).

## Token

**Rome dùng token gas nào?** Mỗi chuỗi chọn token gas riêng — bất kỳ SPL token nào, được định giá qua các pool Meteora. Các chuỗi công khai (Rubicon và Hadrian) dùng USDC làm gas. Trên Hadrian, đó là USDC thử nghiệm; trên [Rubicon](/vi/mang/rubicon.md) đó là USDC thật.

**ERC-20 hoạt động như thế nào trên Rome?** Token ERC-20 trên Rome là các wrapper trên SPL token. Với một địa chỉ ví, `balanceOf()` đọc tài khoản token SPL trên Solana. Với một địa chỉ hợp đồng, wrapper giữ số dư trong sổ cái riêng của nó, vì token của hợp đồng nằm trong tài khoản token của wrapper. `allowance()` được lưu trong bộ nhớ EVM, tách biệt với các delegate của Solana, và wrapper di chuyển token của người dùng như delegate SPL của chính người dùng đó sau khi cấp quyền một lần. Xem [Tương tác token](/vi/cac-khai-niem-cot-loi/token-interop.md).

**Một khoản nạp hoặc chuyển cầu nối phía Solana thất bại với "insufficient SOL," nhưng ví của tôi vẫn có tiền — tại sao?** Testnet công khai của Rome, Hadrian, quyết toán trên Solana Devnet, nên ví Solana của bạn phải ở chế độ mạng tương ứng (Rubicon quyết toán trên Solana mainnet). Trong Phantom, mở Settings → Developer Settings → bật Testnet Mode với mạng đặt là Devnet, sau đó ngắt kết nối và kết nối lại cả hai ví rồi thử lại. Nếu số dư token không xuất hiện sau khi nạp, hãy nhập token vào ví của bạn theo cách thủ công.

## Hạ tầng

**Tôi có cần tự chạy node của mình không?** Không — hãy kết nối tới RPC của một chuỗi công khai (xem [Mạng](/vi/mang/networks.md)). Tự chạy chuỗi của bạn nghĩa là vận hành Proxy và Hercules.

**Rome cần những cơ sở dữ liệu nào?** PostgreSQL, được Hercules dùng để lập chỉ mục block và Proxy dùng cho truy vấn block.

**Tôi có thể chạy Rome cục bộ không?** Không phải dưới dạng một bộ local stack sẵn có; hiện không có bản công khai. Hãy phát triển trên một chuỗi công khai — [Bắt đầu nhanh](/vi/bat-dau/quickstart.md) triển khai lên Hadrian (testnet) trong vài phút.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/vi/tai-nguyen/faq.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
