EVM
A continuación, encontrará una lista de métodos JSON-RPC compatibles con CrossFi, ordenados por espacios de nombres.
Ejemplos de Curl Explicados
Las opciones de curl a continuación podrían devolver una respuesta donde el nodo se queja del tipo de contenido, esto se debe a que la opción --data
establece el tipo de contenido en application/x-www-form-urlencoded
. Si su nodo se queja, configure manualmente el encabezado colocando -H "Content-Type: application/json"
al inicio de la llamada.
Los ejemplos tampoco incluyen la combinación de URL/IP y el puerto que debe ser el último argumento dado a curl, por ejemplo, 127.0.0.1:8545
Puntos finales
Método | Espacio de nombres | Implementado | Público | Notas |
---|---|---|---|---|
web3_clientVersion | Web3 | ✔ | ✔ | |
web3_sha3 | Web3 | ✔ | ✔ | |
net_version | Red | ✔ | ✔ | |
net_peerCount | Red | ✔ | ✔ | |
net_listening | Red | ✔ | ✔ | |
eth_protocolVersion | Eth | ✔ | ✔ | |
eth_syncing | Eth | ✔ | ✔ | |
eth_gasPrice | Eth | ✔ | ✔ | |
eth_accounts | Eth | ✔ | ✔ | |
eth_blockNumber | Eth | ✔ | ✔ | |
eth_getBalance | Eth | ✔ | ✔ | |
eth_getStorageAt | Eth | ✔ | ✔ | |
eth_getTransactionCount | Eth | ✔ | ✔ | |
eth_getBlockTransactionCountByNumber | Eth | ✔ | ✔ | |
eth_getBlockTransactionCountByHash | Eth | ✔ | ✔ | |
eth_getCode | Eth | ✔ | ✔ | |
eth_sign | Eth | ✔ | ✔ | |
eth_sendTransaction | Eth | ✔ | ✔ | |
eth_sendRawTransaction | Eth | ✔ | ✔ | |
eth_call | Eth | ✔ | ✔ | |
eth_estimateGas | Eth | ✔ | ✔ | |
eth_getBlockByNumber | Eth | ✔ | ✔ | |
eth_getBlockByHash | Eth | ✔ | ✔ | |
eth_getTransactionByHash | Eth | ✔ | ✔ | |
eth_getTransactionByBlockHashAndIndex | Eth | ✔ | ✔ | |
eth_getTransactionReceipt | Eth | ✔ | ✔ | |
eth_newFilter | Eth | ✔ | ✔ | |
eth_newBlockFilter | Eth | ✔ | ✔ | |
eth_newPendingTransactionFilter | Eth | ✔ | ✔ | |
eth_uninstallFilter | Eth | ✔ | ✔ | |
eth_getFilterChanges | Eth | ✔ | ✔ | |
eth_getFilterLogs | Eth | ✔ | ✔ | |
eth_getLogs | Eth | ✔ | ✔ | |
eth_getTransactionbyBlockNumberAndIndex | Eth | ✔ | ||
eth_getWork | Eth | N/A | ✔ | Solo PoW |
eth_submitWork | Eth | N/A | ✔ | Solo PoW |
eth_submitHashrate | Eth | |||
eth_getCompilers | Eth | |||
eth_compileLLL | Eth | |||
eth_compileSolidity | Eth | |||
eth_compileSerpent | Eth | |||
eth_signTransaction | Eth | |||
eth_mining | Eth | ❌ | ||
eth_coinbase | Eth | ✔ | ||
eth_hashrate | Eth | N/A | ❌ | Solo PoW |
eth_getUncleCountByBlockHash | Eth | N/A | Solo PoW | |
eth_getUncleCountByBlockNumber | Eth | N/A | Solo PoW | |
eth_getUncleByBlockHashAndIndex | Eth | N/A | Solo PoW | |
eth_getUncleByBlockNumberAndIndex | Eth | N/A | Solo PoW | |
eth_getProof | Eth | ✔ | ||
eth_subscribe | Websocket | ✔ | ||
eth_unsubscribe | Websocket | ✔ | ||
personal_importRawKey | Personal | ✔ | ❌ | |
personal_listAccounts | Personal | ✔ | ❌ | |
personal_lockAccount | Personal | ✔ | ❌ | |
personal_newAccount | Personal | ✔ | ❌ | |
personal_unlockAccount | Personal | ✔ | ❌ | |
personal_sendTransaction | Personal | ✔ | ❌ | |
personal_sign | Personal | ✔ | ❌ | |
personal_ecRecover | Personal | ✔ | ❌ | |
personal_initializeWallet | Personal | ✔ | ❌ | |
personal_unpair | Personal | ✔ | ❌ | |
db_putString | Base de Datos | |||
db_getString | Base de Datos | |||
db_putHex | Base de Datos | |||
db_getHex | Base de Datos | |||
shh_post | SSH | |||
shh_version | SSH | |||
shh_newIdentity | SSH | |||
shh_hasIdentity | SSH | |||
shh_newGroup | SSH | |||
shh_addToGroup | SSH | |||
shh_newFilter | SSH | |||
shh_uninstallFilter | SSH | |||
shh_getFilterChanges | SSH | |||
shh_getMessages | SSH | |||
admin_addPeer | Admin | ❌ | ||
admin_datadir | Admin | ❌ | ||
admin_nodeInfo | Admin | ❌ | ||
admin_peers | Admin | ❌ | ||
admin_startRPC | Admin | ❌ | ||
admin_startWS | Admin | ❌ | ||
admin_stopRPC | Admin | ❌ | ||
admin_stopWS | Admin | ❌ | ||
clique_getSnapshot | Clique | |||
clique_getSnapshotAtHash | Clique | |||
clique_getSigners | Clique | |||
clique_proposals | Clique | |||
clique_propose | Clique | |||
clique_discard | Clique | |||
clique_status | Clique | |||
debug_backtraceAt | Debug | |||
debug_blockProfile | Debug | ✔ | ||
debug_cpuProfile | Debug | ✔ | ||
debug_dumpBlock | Debug | |||
debug_gcStats | Debug | ✔ | ||
debug_getBlockRlp | Debug | |||
debug_goTrace | Debug | ✔ | ||
debug_freeOSMemory | Debug | ✔ | ||
debug_memStats | Debug | ✔ | ||
debug_mutexProfile | Depuración | ✔ | ||
debug_seedHash | Depuración | |||
debug_setHead | Depuración | |||
debug_setBlockProfileRate | Depuración | ✔ | ||
debug_setGCPercent | Depuración | ✔ | ||
debug_setMutexProfileFraction | Depuración | ✔ | ||
debug_stacks | Depuración | ✔ | ||
debug_startCPUProfile | Depuración | ✔ | ||
debug_startGoTrace | Depuración | ✔ | ||
debug_stopCPUProfile | Depuración | ✔ | ||
debug_stopGoTrace | Depuración | ✔ | ||
debug_traceBlock | Depuración | ✔ | ||
debug_traceBlockByNumber | Depuración | ✔ | ||
debug_traceBlockByHash | Depuración | ✔ | ||
debug_traceBlockFromFile | Depuración | |||
debug_standardTraceBlockToFile | Depuración | |||
debug_standardTraceBadBlockToFile | Depuración | |||
debug_traceTransaction | Depuración | ✔ | ||
debug_verbosity | Depuración | |||
debug_vmodule | Depuración | |||
debug_writeBlockProfile | Depuración | ✔ | ||
debug_writeMemProfile | Depuración | ✔ | ||
debug_writeMutexProfile | Depuración | ✔ | ||
les_serverInfo | Les | |||
les_clientInfo | Les | |||
les_priorityClientInfo | Les | |||
les_addBalance | Les | |||
les_setClientParams | Les | |||
les_setDefaultParams | Les | |||
les_latestCheckpoint | Les | |||
les_getCheckpoint | Les | |||
les_getCheckpointContractAddress | Les | |||
miner_getHashrate | Miner | ✔ | ❌ | Sin efecto |
miner_setExtra | Miner | ✔ | ❌ | Sin efecto |
miner_setGasPrice | Miner | ✔ | ❌ | Se requiere reiniciar el nodo |
miner_start | Miner | ✔ | ❌ | Sin efecto |
miner_stop | Miner | ✔ | ❌ | Sin efecto |
miner_setGasLimit | Miner | ✔ | ❌ | Sin efecto |
miner_setEtherbase | Miner | ✔ | ❌ | |
txpool_content | TxPool | ✔ | ||
txpool_inspect | TxPool | ✔ | ||
txpool_status | TxPool | ✔ |
A continuación se encuentra una lista de los métodos RPC, los parámetros y un ejemplo de respuesta de los espacios de nombres.
Métodos Web3
web3_clientVersion
Obtiene la versión del cliente web3.
Parámetros (0)
Ejemplos de clientes
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
web3.clientVersion();
web3_sha3
Devuelve Keccak-256 (no el SHA3-256 estandarizado) de los datos proporcionados.
Parámetros (1)
1: entrada hexutil.Bytes
- Requerido: ✓ Sí
Resultado
Ejemplos de clientes
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
web3.sha3(input);
Métodos de Red
net_version
Devuelve el Id. de red actual.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
net_peerCount
Devuelve el número de pares conectados actualmente al cliente.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
net_listening
Indica si el cliente está escuchando activamente las conexiones de red.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
Métodos de Eth
eth_protocolVersion
Devuelve la versión actual del protocolo ethereum.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_syncing
El objeto de estado de sincronización puede necesitar ser diferente dependiendo de los detalles del protocolo de sincronización de Tendermint. Sin embargo, el resultado 'sincronizado' es simplemente un valor booleano, y puede derivarse fácilmente del estado de sincronización interno de Tendermint.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_gasPrice
Devuelve el precio actual del gas en el parámetro de denominación EVM predeterminado.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_accounts
Devuelve una matriz de todas las cuentas de ethereum.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_blockNumber
Devuelve la altura del bloque actual.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getBalance
Devuelve el saldo de la cuenta para una dirección de cuenta y número de bloque dados.
Parámetros
- Dirección de la cuenta
- Número de bloque o hash de bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getStorageAt
Devuelve la dirección de almacenamiento para una dirección de cuenta dada.
Parámetros
- Dirección de la cuenta
- Número entero de la posición en el almacenamiento
- Número de bloque o hash de bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getTransactionCount
Devuelve la cantidad total de transacciones para una dirección de cuenta y número de bloque dados.
Parámetros
- Dirección de la cuenta
- Número de bloque o hash de bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getBlockTransactionCountByNumber
Devuelve la cantidad total de transacciones para un número de bloque dado.
Parámetros
- Número de bloque
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
}
eth_getBlockTransactionCountByHash
Devuelve la cantidad total de transacciones para un hash de bloque dado.
Parámetros
- Hash de bloque
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getCode
Devuelve el código para una dirección de cuenta y número de bloque dados.
Parámetros
- Dirección de la cuenta
- Número de bloque o hash de bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_sign
El método sign
calcula una firma específica de Ethereum con: sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)))
.
Al agregar un prefijo al mensaje, la firma calculada es reconocible como una firma específica de Ethereum. Esto previene el uso indebido en el que una DApp maliciosa puede firmar datos arbitrarios (por ejemplo, transacciones) y usar la firma para hacerse pasar por la víctima.
La dirección para firmar debe estar desbloqueada.
Parámetros
- Dirección de la cuenta
- Datos a firmar
// Solicitud
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sign","params":["0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "0xdeadbeaf"],"id":1}' -H "Content-Type: application/json" http://localhost:8545
// Resultado
Métodos WebSocket
Lee sobre websockets en Tendermint Events
eth_subscribe
Suscribirse usando notificaciones JSON-RPC. Esto permite que los clientes esperen por eventos en lugar de sondearlos.
Funciona suscribiéndose a eventos particulares. El nodo devolverá un id de suscripción. Por cada evento que coincida con la suscripción se envía una notificación con datos relevantes junto con el id de suscripción.
Parámetros
- Nombre de la Suscripción
- Argumentos Opcionales
// Solicitud
// Resultado
eth_unsubscribe
Darse de baja de un evento usando el id de suscripción.
Parámetros
- ID de suscripción
// Solicitud
// Resultado
eth_coinbase
Devuelve la cuenta a la cual se enviarán las recompensas de minería.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getProof
Devuelve los valores de cuenta y almacenamiento de la cuenta especificada, incluyendo la prueba Merkle.
Parámetros
- Dirección de cuenta o contrato
- Entero de la posición en el almacenamiento
- Número de Bloque o Hash del Bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-type:application/json" http://localhost:8545
// Resultado
Métodos Personales
personal_importRawKey
Privado: Requiere autenticación.
Importa la clave privada dada no cifrada (cadena codificada en hex) en el almacén de claves, cifrándola con la frase de paso.
Devuelve la dirección de la nueva cuenta.
Parámetros (2)
1: claveprivada cadena
- Requerido: ✓ Sí
2: contraseña cadena
- Requerido: ✓ Sí
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
personal_listAccounts
Devuelve una lista de direcciones para las cuentas que gestiona este nodo.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_lockAccount
Elimina la clave privada con la dirección dada de la memoria. La cuenta ya no se puede usar para enviar transacciones.
Parámetros
- Dirección de Cuenta
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_newAccount
Genera una nueva clave privada y la almacena en el directorio de almacén de claves. El archivo de clave se cifra con la frase de paso proporcionada. Devuelve la dirección de la nueva cuenta.
Parámetros
- Frase de paso
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_unlockAccount
Desencripta la clave con la dirección dada desde el almacén de claves.
Ambos, la frase de paso y la duración de desbloqueo son opcionales cuando se usa la consola de JavaScript. La clave no cifrada se mantendrá en memoria hasta que expire la duración de desbloqueo. Si la duración de desbloqueo predeterminada es de 300 segundos. Una duración explícita de cero segundos desbloquea la clave hasta que geth finalice.
La cuenta puede usarse con eth_sign
y eth_sendTransaction
mientras está desbloqueada.
Parámetros
- Dirección de Cuenta
- Frase de paso
- Duración
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_sendTransaction
Valida la frase de paso dada y envía la transacción.
La transacción es el mismo argumento que para eth_sendTransaction
y contiene la dirección from
. Si la frase de paso puede usarse para desencriptar la clave privada perteneciente a tx.from
, la transacción se verifica, firma y envía a la red.
La cuenta no está desbloqueada globalmente en el nodo y no se puede usar en otras llamadas RPC.
Parámetros
-
Objeto que contiene:
from
:DATOS
, 20 Bytes - La dirección desde donde se envía la transacción.to
:DATOS
, 20 Bytes - (opcional al crear un nuevo contrato) La dirección a la que se dirige la transacción.valor
: CANTIDAD - valor enviado con esta transacción -
Frase de paso
// Solicitud
curl -X POST --data ', "frasedepaso"],"id":1}' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_sign
El método de firma calcula una firma específica de Ethereum con: sign(keccack256("\x19Ethereum Signed Message:\n" + len(mensaje) + mensaje)))
,
Parámetros
- Mensaje
- Dirección de la Cuenta
- Contraseña
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_ecRecover
ecRecover
devuelve la dirección asociada con la clave privada que se usó para calcular la firma en personal_sign
.
Parámetros
- Mensaje
- Firma devuelta de
personal_sign
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_initializeWallet
Inicializa una nueva billetera en la URL proporcionada, generando y devolviendo una nueva clave privada.
Parámetros (1)
Los parámetros deben darse por posición.
1: url cadena
- Requerido: ✓ Sí
Ejemplos de Cliente
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
personal.initializeWallet(url);
personal_unpair
Inicializa una nueva billetera en la URL proporcionada, generando y devolviendo una nueva clave privada.
Parámetros (1)
Los parámetros deben darse por posición.
1: url cadena
- Requerido: ✓ Sí
Ejemplos de Cliente
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
javascript
personal.initializeWallet(url);
personal_unpair
Unpair elimina un emparejamiento entre la billetera y el nodo.
Parámetros (2)
- URL
- Contraseña de emparejamiento
Ejemplos de Cliente
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
javascript
personal.unpair(url,pin);
Métodos de Depuración
debug_traceTransaction
El método de depuración traceTransaction
intentará ejecutar la transacción de la misma manera exacta en que fue ejecutada en la red. Reproducirá cualquier transacción que pueda haberse ejecutado antes de esta antes de intentar finalmente ejecutar la transacción que corresponde al hash dado.
Parámetros
- Configuración de Rastro
// Solicitud
curl -X POST --data ', step: function(log) , result: function() }"}],"id":1}' -H "Content-Type: application/json" http://localhost:8545
//Resultado
["68410", "51470"]
debug_traceBlockByNumber
El punto final traceBlockByNumber
acepta un número de bloque y reproducirá el bloque que ya está presente en la base de datos.
Parámetros
- Configuración de Rastreo
// Pedido\ncurl -X POST --data ', step: function(log) , result: function() }"}],"id":1}' -H "Content-Type: application/json" http://localhost:8545\n\n//Resultado\n]}
Métodos de Minería
miner_getHashrate
Obtiene la tasa de hash en H/s (operaciones de hash por segundo).
Específico de Prueba de Trabajo. Este endpoint siempre devuelve 0
.
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
miner_setExtra
Configura los datos extra que un validador puede incluir al proponer bloques. Esto está limitado a 32 bytes.
No compatible. Este endpoint siempre devuelve un error
Parámetros
- Datos
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
miner_setGasPrice
Establece el precio mínimo de gas utilizado para aceptar transacciones. Cualquier transacción por debajo de este límite queda excluida del proceso de propuesta de bloque del validador.
Este método requiere un reinicio del nodo
después de ser llamado porque cambia el archivo de configuración.
Asegúrese de que su llamada crossfid start
no esté utilizando la bandera minimum-gas-prices
porque este valor se utilizará en lugar del configurado en el archivo de configuración.
Parámetros
- Precio de Gas en Hex
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
miner_start
Iniciar el proceso de validación de CPU con el número dado de hilos.
No compatible. Este endpoint siempre devuelve un error
Parámetros
- Número de hilos Hex
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
miner_stop
Detener la operación de validación.
No compatible. Este endpoint siempre realiza una operación sin efecto.
// Pedido\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
miner_setGasLimit
Establece el límite de gas al que el minero apuntará mientras mina.
En redes donde EIP-1559 está activado, esto debe configurarse al doble de lo que desea que sea el objetivo de gas (es decir, el gas efectivo utilizado en promedio por bloque).
No compatible. Este endpoint siempre devuelve false
Parámetros
- Límite de gas Hex
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
miner_setEtherbase
Privado: Requiere autenticación.
Establece la etherbase. Cambia la billetera donde se depositarán las recompensas del validador.
Parámetros
- Dirección de Cuenta
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
Métodos de TxPool
txpool_content
Devuelve una lista de los detalles exactos de todas las transacciones que actualmente están en espera para ser incluidas en el próximo bloque(s), así como aquellas que están programadas para ejecución futura solamente.
Parámetros (0)
Ejemplos de Cliente
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
wscat -c ws://localhost:8546 -x ''
txpool.content();
Resultado
,"queued":{}
txpool_inspect
Devuelve una lista en formato de texto para resumir todas las transacciones que actualmente están en espera para ser incluidas en el próximo bloque(s), así como aquellas que están programadas para ejecución futura solamente. Este es un método diseñado específicamente para desarrolladores para ver rápidamente las transacciones en el pool y detectar cualquier problema potencial.
Parámetros (0)
Ejemplos de Cliente
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
wscat -c ws://localhost:8546 -x ''
txpool.inspect();
Resultado
,"queued":{}
txpool_status
Devuelve el número de transacciones que actualmente están en espera para ser incluidas en el próximo bloque(s), así como aquellas que están programadas para ejecución futura solamente.
Parámetros (0)
Ejemplos de Cliente
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
wscat -c ws://localhost:8546 -x ''
txpool.status();
Resultado