- Organized 252 files across project - Root directory: 187 → 2 files (98.9% reduction) - Moved configuration guides to docs/04-configuration/ - Moved troubleshooting guides to docs/09-troubleshooting/ - Moved quick start guides to docs/01-getting-started/ - Moved reports to reports/ directory - Archived temporary files - Generated comprehensive reports and documentation - Created maintenance scripts and guides All files organized according to established standards.
7.6 KiB
Supported API Methods - RPC Translator 138
Date: 2026-01-05
References:
Overview
The RPC Translator supports both public network and private network JSON-RPC API methods from Hyperledger Besu. All methods are passed through to the upstream Besu node(s), with the exception of eth_sendTransaction which is intercepted for signing.
Public Network API Methods
All standard Ethereum JSON-RPC methods are supported and passed through to Besu:
Standard Methods
-
eth_*: Standard Ethereum methodseth_chainId,eth_getBalance,eth_blockNumbereth_call,eth_getCode,eth_getStorageAteth_getTransactionReceipt,eth_getTransactionByHasheth_getTransactionCount,eth_estimateGaseth_gasPrice,eth_feeHistory,eth_maxPriorityFeePerGaseth_getBlockByNumber,eth_getBlockByHasheth_getLogs,eth_getBlockTransactionCountByNumbereth_getBlockTransactionCountByHasheth_getTransactionByBlockNumberAndIndexeth_getTransactionByBlockHashAndIndex- And other standard
eth_*methods
-
net_*: Network methodsnet_version,net_listening,net_peerCount
-
web3_*: Web3 utility methodsweb3_clientVersion,web3_sha3
-
eth_subscribe/eth_unsubscribe: WebSocket subscriptionsnewHeads,logs,newPendingTransactions,syncing
Private Network API Methods
Private network methods are enabled by default for ChainID 138 (private network):
CLIQUE Methods (Proof of Authority)
clique_discard- Discard a proposal to add/remove signerclique_getSigners- List signers for a blockclique_getSignerMetrics- Get validator metricsclique_getSignersAtHash- List signers by block hashclique_proposals- Get current proposalsclique_propose- Propose to add/remove signer
Reference: Besu CLIQUE API
IBFT 2.0 Methods
ibft_discardValidatorVote- Discard a validator voteibft_getPendingVotes- Get pending validator votesibft_getSignerMetrics- Get validator metricsibft_getValidatorsByBlockHash- Get validators by block hashibft_getValidatorsByBlockNumber- Get validators by block numberibft_proposeValidatorVote- Propose to add/remove validator
Reference: Besu IBFT 2.0 API
QBFT Methods
qbft_discardValidatorVote- Discard a validator voteqbft_getPendingVotes- Get pending validator votesqbft_getSignerMetrics- Get validator metricsqbft_getValidatorsByBlockHash- Get validators by block hashqbft_getValidatorsByBlockNumber- Get validators by block numberqbft_proposeValidatorVote- Propose to add/remove validator
Reference: Besu QBFT API
PERM Methods (Permissioning)
perm_addAccountsToAllowlist- Add accounts to allowlistperm_addNodesToAllowlist- Add nodes to allowlistperm_getAccountsAllowlist- Get accounts allowlistperm_getNodesAllowlist- Get nodes allowlistperm_reloadPermissionsFromFile- Reload permissions from fileperm_removeAccountsFromAllowlist- Remove accounts from allowlistperm_removeNodesFromAllowlist- Remove nodes from allowlist
Reference: Besu Permissioning API
Intercepted Methods
eth_sendTransaction
Status: Intercepted and processed by the translator
Behavior:
- Validates transaction (allowlist, chain ID, gas limits)
- Fills missing fields (nonce, gas, fees)
- Signs transaction via Web3Signer
- Submits as
eth_sendRawTransactionto Besu - Returns transaction hash
Note: The unsigned transaction is never sent to Besu. It is signed locally first.
Denied Methods (Security)
The following methods are denied for security reasons:
Admin Methods
admin_*- All admin methods (node management)
Debug Methods
debug_*- All debug methods (tracing, inspection)
Miner Methods
miner_*- Miner control methods
TxPool Methods
txpool_*- Transaction pool inspection methods
Configuration
Enable/Disable Private Network Methods
Private network methods are enabled by default. To disable them, set in .env:
ALLOW_PRIVATE_NETWORK_METHODS=false
This will deny all clique_*, ibft_*, qbft_*, and perm_* methods.
Method Routing
Client Request
↓
RPC Translator
↓
┌─────────────────────────────────────────┐
│ Method Check │
├─────────────────────────────────────────┤
│ Is denied? (admin_, debug_, etc.) │ → Deny (Method not found)
│ Is intercepted? (eth_sendTransaction) │ → Intercept & Sign
│ Is private network? (configurable) │ → Pass through if enabled
│ Otherwise │ → Pass through to Besu
└─────────────────────────────────────────┘
↓
Besu Node(s)
Examples
Public Network Method
curl -X POST http://192.168.11.240:9545 \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "eth_chainId",
"params": [],
"id": 1
}'
Private Network Method (CLIQUE)
curl -X POST http://192.168.11.240:9545 \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "clique_getSigners",
"params": ["latest"],
"id": 1
}'
Private Network Method (Permissioning)
curl -X POST http://192.168.11.240:9545 \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "perm_getAccountsAllowlist",
"params": [],
"id": 1
}'
Intercepted Method
curl -X POST http://192.168.11.240:9545 \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "eth_sendTransaction",
"params": [{
"from": "0x...",
"to": "0x...",
"value": "0x0",
"gas": "0x5208"
}],
"id": 1
}'
Enabling Private Network Methods in Besu
To use private network methods, ensure Besu is configured with:
# Enable CLIQUE API
rpc-http-api=["CLIQUE", "ETH", "NET", "WEB3"]
# Enable IBFT/QBFT API
rpc-http-api=["IBFT", "QBFT", "ETH", "NET", "WEB3"]
# Enable Permissioning API
rpc-http-api=["PERM", "ETH", "NET", "WEB3"]
Testing
Test Public Network Method
./scripts/test-rpc.sh 192.168.11.240 eth_chainId
Test Private Network Method
curl -X POST http://192.168.11.240:9545 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"clique_getSigners","params":["latest"],"id":1}'
Summary
✅ Public Network Methods: Fully supported (all standard Ethereum methods)
✅ Private Network Methods: Enabled by default (CLIQUE, IBFT, QBFT, PERM)
✅ Intercepted Methods: eth_sendTransaction (signed automatically)
❌ Denied Methods: admin_*, debug_*, txpool_*, miner_*
Configuration: ALLOW_PRIVATE_NETWORK_METHODS=true (default) in .env