Coin Lab

0 3240 0
Ehtereum — Глава 5 (интерфейсы)

 

Интерфейсы

  • Консоль Javascript: geth можно запустить при помощи интерактивной консоли, обеспечивающей среду выполнения javascript , демонстрирующую приложение javascript API для взаимодействия с вашей нодой.
  • Приложение консоли Javascript Console API включает в себя web3 javascript Ðapp API , также как и дополнительное администрирование API.
  •  JSON-RPC –сервер: geth можно запустить при помощи сервера json-rpc, демонстрирующего JSON-RPC API
  •  Опции командной строки документируют параметры командной строки и суб-команды.

 

 Интерфейс и опции командной строки.

CLI -клиент

Опции клиента командной строки представляют собой в настоящее время постоянно движущуюся и меняющуюся цель. За помощью по geth обращайтесь к клиенту. Ниже представлены выходные файлы output geth help (версия 0.9.19 10/5/2015).

[box]geth [global options] command [command options] [arguments…]
VERSION:
0.9.23
COMMANDS:
blocktest loads a block test file
makedag generate ethash dag (for testing)
version print ethereum version numbers
wallet ethereum presale wallet
account manage accounts
dump dump a specific block from storage
console Geth Console: interactive JavaScript environment
js executes the given JavaScript files in the Geth JavaScript VM
import import a blockchain file
export export blockchain into file
upgradedb upgrade chainblock database
removedb Remove blockchain and state databases
help Shows a list of commands or help for one command

GLOBAL OPTIONS:
—identity   Custom node name
—unlock Unlock the account given until this program exits (prompts for password). ‘—unlock primary’ unlocks the primary account
—password Path to password file to use with options and subcommands needing a password
—bootnodes Space-separated enode URLs for p2p discovery bootstrap
—datadir «/Users/tgerring/Library/Ethereum» Data directory to be used —blockchainversion «2» Blockchain version (integer)
—jspath «.» JS library path to be used with console and js subcommands
—port «30303» Network listening port
—maxpeers «25» Maximum number of network peers (network disabled if set to 0)
—maxpendpeers «0» Maximum number of pending connection attempts (defaults used if set to 0)
—etherbase «primary» Public address for block mining rewards. By default the address of your primary account is used
—gasprice «10000000000000» Sets the minimal gasprice when mining transactions
—minerthreads «4» Number of miner threads
—mine Enable mining
—autodag Enable automatic DAG pregeneration
—nat «any» NAT port mapping mechanism (any|none|upnp|pmp|extip:<IP>)
—natspec Enable NatSpec confirmation notice
—nodekey P2P node key file
—nodekeyhex P2P node key as hex (for testing)
—rpc Enable the JSON-RPC server
—rpcaddr «127.0.0.1» Listening address for the JSON-RPC server
—rpcport «8545» Port on which the JSON-RPC server should listen
—shh Enable whisper
—vmdebug Virtual Machine debug output
—protocolversion «60» ETH protocol version (integer)
—networkid «0» Network Id (integer)
—rpccorsdomain Domain on which to send Access-Control-Allow-Origin header
—verbosity «3» Logging verbosity: 0-6 (0=silent, 1=error, 2=warn, 3=info, 4=core, 5=debug, 6=debug detail)
—backtrace_at «:0» If set to a file and line number (e.g., «block.go:271») holding a logging statement, a stack trace will be logged
—logtostderr Logs are written to standard error instead of to files.
—vmodule «» The syntax of the argument is a comma-separated list of pattern=N, where pattern is a literal file name (minus the «.go» suffix) or «glob» pattern and N is a log verbosity level.
—logfile Send log output to a file
—logjson Send json structured log output to a file or ‘-‘ for standard output (default: no json output)
—pprof Enable the profiling server on localhost
—pprofport «6060» Port on which the profiler should listen
—solc «solc» solidity compiler to be used
—help, -h show help[/box]

Имейте в виду, что значение по умолчанию для datadir является платформо-зависимым. За более подробной информацией обратитесь в раздел резервное копирование и восстановление.

Примеры

Аккаунты

Смотрите раздел Управление аккаунтами Импортируйте предпродажный ether –кошелек в свою ноду (запрашивает пароль):

[box]geth wallet import /path/to/my/etherwallet.json[/box]

Импортируйте закрытый ключ EC в аккаунт ethereum (запрашивает пароль):

[box]geth account import /path/to/key.prv[/box]

Среда выполнения Geth JavaScript

Смотрите раздел Geth javascript консоль

Загрузите консоль geth javascript:

[box]geth —verbosity 5 —logtostderr —jspath /mydapp/js console 2>> /path/to/logfile[/box]

Выполните  test.js javascript, используя js API и журнал Debug-сообщений в /path/to/logfile:

[box]geth —logtostderr —verbosity 6 js test.js 2>> /path/to/logfile [/box]

Импорт/экспорт цепочек (чейнов) и dump-блоков

Импортируйте блокчейн из файла:

[box]geth import blockchain.bin[/box]

Обновление базы данных цепочки блоков

При смене алгоритма согласованности блоки в блокчейне должны быть реимпортированы с новым алгоритмом. При необходимости Geth предоставит пользователю инструкции, когда и как это сделать.

[box]geth upgradedb[/box]

Майнинг и работа сети

Запустите две майнинговых ноды, используя различные директории данных в портах 30303 и 30304, соответственно:

[box]geth —mine —minerthreads 4 —datadir /usr/local/share/ethereum/30303 —port 30303
geth —mine —minerthreads 4 —datadir /usr/local/share/ethereum/30304 —port 30304[/box]

Запустите rpc-клиента в порту 8000:

[box]geth —rpc true —rpcport 8000 —rpccorsdomain ‘»*»‘[/box]

Запустите клиента в частной сети id и соедините со специальными пирами, используя enode urls:

[box]geth —networkid 3301 — bootnodes=»enode://6f8a80d14311c39f35f516fa664deaaaa13e85b2f7493f37f6144d8
6991ec0129[email protected]54.169.166.226:30303
enode://0b2fa1e93dfcd90ce503ab1338332d6a1371b464838b49f37af8534a510992bd4d96b24134ba2
62[email protected]8:30305″ -maxpeers 2 [/box]

Запустите клиента без сети:

[box]geth —maxpeers 0 js justwannarunthis.js[/box]

Сброс блокчейна

В каталоге datadir, удалите директорию блокчейна. Для примера выше:

[box]rm -rf /usr/local/share/ethereum/30303/blockchain[/box]

Примеры использования в тестовой среде

Строки ниже предназначены только для тестовой сети и безопасной среды для не-интерактивного использования по сценарию.

geth —datadir /tmp/eth/42 —password <(echo -n notsosecret) account new 2>> /tmp/eth/42.log
geth —datadir /tmp/eth/42 —port 30342 js <(echo ‘console.log(admin.nodeInfo().NodeUrl)’) > enode 2>> /tmp/eth/42.log
geth —datadir /tmp/eth/42 —port 30342 —password <(echo -n notsosecret) —unlock
primary —minerthreads 4 —mine 2>> /tmp/eth/42.log

 

JSON RPC API

Обзор

JSON представляет собой упрощенный формат обмена данными. Он может представлять числа, ряды, упорядоченные последовательности ценностей, и коллекции имени/пары ценностей. JSON-RPC представляет собой не меняющий состояние, упрощенный протокол дистанционного вызова процедур (RPC). Прежде всего, эта спецификация определяет несколько структур данных и управляет их обработкой. Не зависит от транспорта в том плане, что модели могут использоваться внутри того же процесса, через программные гнезда (сокеты), через HTTP, или в среде прохождения множества различных сообщений. Использует JSON (RFC 4627) в качестве формата данных.

JavaScript API

Для разговора с ethereum-нодой изнутри приложение JavaScript использует библиотеку web3.js , предоставляющую удобный интерфейс для методов RPC. Более подробно читайте в  JavaScript API .

Предельное значение JSON-RPC

Предельные значения JSON-RPC по умолчанию:
C++: http://localhost:8080
Go: http://localhost:8545
Py: http://localhost:4000

Go

Вы можете запустить HTTP JSON-RPC при помощи

[box]geth —rpc[/box]

измените порт по умолчанию (8545) и адрес списка (локальный хост) при помощи:

[box]geth —rpc —rpcaddr <ip> —rpcport <portnumber>[/box]

При осуществлении доступа в RPC из браузера, необходимо обеспечить CORS подходящей областью определения. В противном случае вызовы JavaScript ограничиваются политикой единого домена и запросы не удаются:

[box]geth —rpc —rpccorsdomain «http://localhost:3000″[/box]

JSON RPC можно также запустить из консоли geth, при помощи команды [box] admin.startRPC(addr, port).[/box]

C++

Запуск осуществляется запуском приложения eth при помощи опции -j :

[box]./eth -j[/box]

Также можно определить порт JSON-RPC (по умолчанию 8080):

[box]./eth -j —json-rpc-port 8079[/box]

Python

В python сервер JSONRPC в настоящее время запускается по умолчанию и прослушивается на 127.0.0.1:4000 Вы можете изменить порт и прослушать адрес, добавив опцию config.cpp-ethereum go-ethereum py-ethereum

[box]pyethapp -c jsonrpc.listen_port=4002 -c jsonrpc.listen_host=127.0.0.2 run[/box]

Поддержка JSON-RPC

 

cpp-ethereum go-ethereum py-ethereum
JSON-RPC 1.0
JSON-RPC 2.0
Batch requests
HTTP

Обзор HEX-значений (шестнадцатеричных значений)

В настоящее время существует два ключевых типа данных, которые передаются через JSON: неформатированные байтовые массивы и количества. Оба передаются через шестнадцатеричное кодирование, но с разными требованиями к форматированию:

При кодировании КОЛИЧЕСТВ (целочисленные переменные, числа): кодируйте как шестнадцатеричные, префикс с «0x», самое компактное (небольшое исключение: ноль представляется как «0x0»). Примеры:

  •  0x41 (65 в десятичных знаках)
  • 0x400 (1024 в десятичных знаках)
  • WRONG: 0x (всегда должно иметь по крайней мере одну цифру – ноль — «0x0»)
  • WRONG: 0x0400 (ведущих нолей не предоставлено)
  • WRONG: ff (должен иметь префикс 0x)

При кодировании НЕФОРМАТИРОВАННЫХ ДАННЫХ (байтовые массивы, адреса аккаунтов, хэши, массивы байтовых кодов ): кодируйте как шестнадцатеричное, с префиксом «0x», две шестнадцатеричные цифры на байт. Примеры:

  • 0x41 (размер 1, «A»)
  • 0x004200 (размер 3, «\0B\0»)
  • 0x (размер 0, «»)
  • WRONG: 0xf0f0f (должно быть равное число цифр)
  • WRONG: 004200 (должно иметь префикс 0x)

В настоящее время cpp-ethereum и go-ethereum предоставляют взаимодействие JSON-RPC только через http.

Параметры блока по умолчанию

Следующие методы имеют дополнительный параметр блока по умолчанию:

  •  eth_getBalance
  • eth_getCode
  • eth_getTransactionCount
  • eth_getStorageAt
  • eth_call

 

Когда делаются запросы, это отражается на состоянии ethereum, последний параметр блока по умолчанию определяет высоту блока. Для параметра блока по умолчанию возможны следующие опции:

  • HEX String – целое число блоков
  • String «earliest» для раннего/оригинального блока
  • String «latest» – для последнего майненного блока
  • String «pending» – для промежуточного состояния/транзакций

Методы JSON-RPC

  • web3_clientVersion
  • web3_sha3
  • net_version
  • net_peerCount
  • net_listening
  • eth_protocolVersion
  • eth_coinbase
  • eth_mining
  • eth_hashrate
  • eth_gasPrice
  • eth_accounts
  • eth_blockNumber
  • eth_getBalance
  • eth_getStorageAt
  • eth_getTransactionCount
  • eth_getBlockTransactionCountByHash
  • eth_getBlockTransactionCountByNumber
  • eth_getUncleCountByBlockHash
  • eth_getUncleCountByBlockNumber
  • eth_getCode
  • eth_sign
  • eth_sendTransaction
  • eth_call
  • eth_estimateGas
  • eth_getBlockByHash
  • eth_getBlockByNumber
  • eth_getTransactionByHash
  • eth_getTransactionByBlockHashAndIndex
  • eth_getTransactionByBlockNumberAndIndex
  • eth_getUncleByBlockHashAndIndex
  • eth_getUncleByBlockNumberAndIndex
  • eth_getCompilers
  • eth_compileLLL
  • eth_compileSolidity
  • eth_compileSerpent
  • eth_newFilter
  • eth_newBlockFilter
  • eth_newPendingTransactionFilter
  • eth_uninstallFilter
  • eth_getFilterChanges
  • eth_getFilterLogs
  • eth_getLogs
  • eth_getWork
  • eth_submitWork
  • db_putString
  • db_getString
  • db_putHex
  • db_getHex
  • shh_post
  • shh_version
  • shh_newIdentity
  • shh_hasIdentity
  • shh_newGroup
  • shh_addToGroup
  • shh_newFilter
  • shh_uninstallFilter
  • shh_getFilterChanges
  • shh_getMessages

 

 

API


web3_clientVersion

Возвращает текущую клиентскую версию.

Параметры

отсутствуют

Возврат

String – текущая клиентская версия

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»web3_clientVersion»,»params»:[],»id»:67}’
// Result
{
«id»:67,
«jsonrpc»:»2.0″,
«result»: «Mist/v0.9.3/darwin/go1.4.1»
}[/box]

Возвращает

SHA3 переданных данных.

Параметры

1. String – данные для конвертации в SHA3 хэш

[box]params: [
‘0x68656c6c6f20776f726c64’
][/box]

Возвращает

DATA – Результат SHA3 данной строки.

Пример:

[box]// Request\
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»web3_sha3″,»params»:[«0x68656c6c6f20776f726c64″],»id»:64}’
// Result
{
«id»:64,
«jsonrpc»: «2.0»,
«result»: «0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad»
}[/box]

net_version

Возвращает версию текущего протокола сети.

Параметры

отсутствуют

Возвращает

String – Текущая версия протокола сети

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»net_version»,»params»:[],»id»:67}’
// Result
{
«id»:67,
«jsonrpc»: «2.0»,
«result»: «59»
}[/box]

net_listening

Возвращает true если клиент активно прослушивает соединения сети.

Параметры

отсутствуют

Возвращает

Boolean — true при прослушивании, иначе false.

Пример:

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»net_listening»,»params»:[],»id»:67}’
// Result
{
«id»:67,
«jsonrpc»:»2.0″,
«result»:true
}[/box]

net_peerCount

Возвращает количество пиров, присоединенных к клиенту в данный момент.

Параметры

отсутствуют

Возвращает

QUANTITY – целочисленный тип количества соединенных пиров.

Пример:

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»net_peerCount»,»params»:[],»id»:74}’
// Result
{
«id»:74,
«jsonrpc»: «2.0»,
«result»: «0x2» // 2
}[/box]

eth_protocolVersion

Возвращает текущую версию протокола ethereum.

Параметры

отсутствуют

Возвращает

String – Текущая версия протокола ethereum

Пример:

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_protocolVersion»,»params»:[],»id»:67}’
// Result
{
«id»:67,
«jsonrpc»: «2.0»,
«result»: «54»
}[/box]

eth_coinbase

Возвращает адрес клиентской базы монет.

Параметры

отсутствуют

Возвращает

DATA, 20 байт – текущий адрес базы монет.

Пример:

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_coinbase»,»params»:[],»id»:64}’
// Result
{
«id»:64,
«jsonrpc»: «2.0»,
«result»: «0x407d73d8a49eeb85d32cf465507dd71d507100c1»
}[/box]

eth_mining

Возвращает true если клиент активно майнит новые блоки.

Параметры

отсутствуют

Возвращает

Boolean — возвращает true если клиент майнит, иначе false.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_mining»,»params»:[],»id»:71}’
// Result
{
«id»:71,
«jsonrpc»: «2.0»,
«result»: true
}[/box]

eth_hashrate

Возвращает количество хэшей в секунду, с которыми майнит нода.

Параметры

отсутствуют

Возвращает

QUANTITY – число хэшей в секунду .

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_hashrate»,»params»:[],»id»:71}’
// Result
{
«id»:71,
«jsonrpc»: «2.0»,
«result»: «0x38a»
}[/box]

eth_gasPrice

Возвращает текущую цену на gas в wei.

Параметры

отсутствуют

Возвращает

QUANTITY – целое число текущей цены gas в wei.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_gasPrice»,»params»:[],»id»:73}’
// Result
{
«id»:73,
«jsonrpc»: «2.0»,
«result»: «0x09184e72a000» // 10000000000000
}[/box]

eth_accounts

Возвращает список адресов, принадлежащих клиенты.

Параметры

отсутствуют

Возвращает

Array of DATA, 20 байт – адреса, принадлежащие клиенту.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_accounts»,»params»:[],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: [«0x407d73d8a49eeb85d32cf465507dd71d507100c1»]
}[/box]

eth_blockNumber

Возвращает число самых последних блоков.

Параметры

отсутствуют

Возвращает

QUANTITY – целое значение текущего числа блоков, на которых находится клиент.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_blockNumber»,»params»:[],»id»:83}’
// Result
{
«id»:83,
«jsonrpc»: «2.0»,
«result»: «0x4b7» // 1207
}[/box]

eth_getBalance

Возвращает баланс аккаунта данного адреса.

Параметры

1. DATA, 20 байт – адрес для проверки баланса.
2. QUANTITY|TAG – целое значение числа блоков, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию

params: [‘0x407d73d8a49eeb85d32cf465507dd71d507100c1’, ‘latest’]

Возвращает

QUANTITY – целое значении текущего баланса в wei.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getBalance»,»params»:[«0x407d73d8a49eeb85d32cf465507d
d71d507100c1», «latest»],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x0234c8a3397aab58» // 158972490234375000
}[/box]

Хeth_getStarageAt

Возвращает стоимость из позиции хранилища на данный адрес.

Параметры

1. DATA, 20 байт – адрес хранилища.
2. QUANTITY – целое значение позиции в хранилище.
3. QUANTITY|TAG – целое значение числа блока, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию

params: [‘0x407d73d8a49eeb85d32cf465507dd71d507100c1’,
‘0x0’, // storage position at 0
‘0x2’ // state at block number 2]

Возвращает

DATA – стоимость в данной позиции хранилища.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getStorageAt»,»params»:[«0x407d73d8a49eeb85d32cf46550
7dd71d507100c1», «0x0», «0x2″],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x03»
}[/box]

eth_getTransactionCount

Возвращает число транзакций , отправленных с адреса.

Параметры

1. DATA, 20 байт — адрес.
2. QUANTITY|TAG – целое значение числа блока, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию

params: [‘0x407d73d8a49eeb85d32cf465507dd71d507100c1′,’latest’ // state at the latest block ]

Возвращает

QUANTITY – целое значение числа транзакций, отправленных с этого адреса.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getTransactionCount»,»params»:[«0x407d73d8a49eeb85d32
cf465507dd71d507100c1″,»latest»],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x1» // 1
}[/box]

eth_getBlockTransactionCountByHash

Возвращает число транзакций в блоке из блока, подходящего данному хэшу блока.

Параметры

1. DATA, 32 Bytes – хэш блока

params: [‘0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238’]

Возвращает

QUANTITY – целое значение транзакций в этом блоке.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getBlockTransactionCountByHash»,»params»:[«0xb903239f
8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238″],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0xb» // 11
}[/box]

eth_getBlockTransactionCountByNumber

Возвращает число транзакций из блока, подходящего данному числу блоков.

Параметры

1. QUANTITY|TAG – целое значение числа блока, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию.

params: [ ‘0xe8’, // 232]

Возвращает

QUANTITY – целое значение числа транзакций в данном блоке.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getBlockTransactionCountByNumber»,»params»:[«0xe8″],»
id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0xa» // 10
}[/box]

eth_getUncleCountByBlockHash

Возвращает число uncles в форме блока из блока, подходящего к данному хэшу блока.

Параметры

1. DATA, 32 Bytes – хэш блока

params: [‘0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238’]

Возвращает

QUANTITY – целое значение количества uncles в данном блоке.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getUncleCountByBlockHash»,»params»:[«0xb903239f8543d0
4b5dc1ba6579132b143087c68db1b2168786408fcbce568238»],»id»Block:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x1» // 1
}[/box]

eth_getUncleCountByBlockNumber

Возвращает количество uncles в блоке из блока, подходящего для данного количества блоков.

Параметры

1. QUANTITY – целое значение числа блоков, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию

params: [ ‘0xe8’, // 232 ]

Возвращает

QUANTITY – целое значение числа uncles в данном блоке.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getUncleCountByBlockNumber»,»params»:[«0xe8″],»id»:1}

// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x1» // 1
}[/box]

eth_getCode

Возвращает код на данный адрес.

Параметры

1. DATA, 20 Bytes — адрес
2. QUANTITY|TAG – целое значение числа блоков, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию

params: [‘0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b’,’0x2′ // 2]

Возвращает

DATA – код из данного адреса.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getCode»,»params»:[«0xa94f5374fce5edbc8e2a8697c153316
77e6ebf0b», «0x2″],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»:
«0x600160008035811a818181146012578301005b601b6001356025565b806000526020600
0f25b600060078202905091905056»
}[/box]

eth_sign

Параметры

1. FROM: 20 байтс — адрес
2. DATA: Данные для подписи

Возвращает

1. DATA: Подписанные данные

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_sign»,»params»:[«0xd1ade25ccd3d550a7eb532ac759cac7be0
9c2719», «Schoolbus»],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»:
«0x2ac19db245478a06032e69cdbd2b54e648b78431d0a47bd1fbab18f79f820ba407466e37a
dbe9e84541cab97ab7d290f4a64a5825c876d22109f3bf813254e8601»
}[/box]

eth_sendTransaction

Создает транзакцию вызова нового сообщения или создания контракта, если информационное поле содержит код.

Параметры

1. Object – Объект транзакции o from: DATA, 20 Bytes – Адрес, с которого отправляется транзакция. o to: DATA, 20 Bytes — (дополнительно при создании нового контракта) Адрес направления транзакции. o gas: QUANTITY — (дополнительно, по умолчанию: Подлежит уточнению) Целое значение gas, предоставленного для выполнения. Возвращает неиспользованный gas. o gasPrice: QUANTITY — (дополнительно, по умолчанию: Подлежит уточнению)

Целое значение цены gasPrice, используемое для каждого оплаченного gas o value: QUANTITY — (дополнительно) Целое значение стоимости, отправленное сданной транзакцией o data: DATA — (дополнительно) Компилированный код контракта o nonce: QUANTITY — (дополнительно) Целое значение числа nonce. Это позволяет переписать ваши промежуточные транзакции, использующие это же число nonce.

[box]params: [{
«from»: «0xb60e8dd61c5d32be8058bb8eb970870f07233155»,
«to»: «0xd46e8dd67c5d32be8058bb8eb970870f072445675»,
«gas»: «0x76c0», // 30400,
«gasPrice»: «0x9184e72a000», // 10000000000000
«value»: «0x9184e72a», // 2441406250
«data»:
«0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675»
}]  [/box]

Возвращает

DATA, 20 Bytes – адрес вновь созданного контракта, или 32 –байтовый хэш транзакции.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_sendTransaction»,»params»:[{see
above}],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x7f9fade1c0d57a7af66ab4ead7c2eb7b11a91385»
} [/box]

eth_call

Выполняет вызов нового сообщения немедленно, без создания транзакции в блокчейне.

Параметры

1. Object – Объект вызова транзакции

o from: DATA, 20 Bytes — (дополнительно) Адрес отправления транзакции.

o to: DATA, 20 Bytes – Адрес направления транзакции.

o gas: QUANTITY — (дополнительно)Целое значение gas, предоставленное для выполнения транзакции. eth_call использует нулевой zero gas, но этот параметр может понадобиться для некоторых операций.

o gasPrice: QUANTITY — (дополнительно) Целое значение цены gasPrice, используемое для каждого оплаченного gas

o value: QUANTITY — (дополнительно)Целое значение стоимости, отправленной с данной транзакцией

2. data: DATA — (дополнительно) Компилированный код контракта

3. QUANTITY|TAG – целое значение числа блоков, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию

Возвращает

DATA – возвратная стоимость исполненного контракта.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_call»,»params»:[{see
above}],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x0»
}[/box]

eth_estimateGas

Делает вызов транзакции, которая не будет добавлена в блокчейн,и возвращает использованный gas,что можно использовать для оценки gas.

Параметры

Смотрите параметры  eth_call , при условии, что все характеристики опционы.

Возвращает

QUANTITY – количество использованных gas.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_estimateGas»,»params»:[{see
above}],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x5208» // 21000
} [/box]

eth_getBlockByHash

Возвращает информацию о блоке хэшем..

Параметры

1. DATA, 32 Bytes – Хэш блока.

2. Boolean — Если true , возвращает полные объекты транзакций, если false  — только хэши транзакций.

[box]params: [
‘0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331’,
true
] [/box]

Возвращает

Object – Объект блока, или null , когда не обнаружено транзакции:

  • number: QUANTITY – число блоков. null при промежуточном блоке.
  • hash: DATA, 32 Bytes – хэш блока. null при промежуточном блоке..
  • parentHash: DATA, 32 Bytes – хэш родительского блока.
  • nonce: DATA, 8 Bytes – хэш генерированного доказательства работы. null при промежуточном блоке..
  • sha3Uncles: DATA, 32 Bytes — SHA3 данных uncles в блоке.
  • logsBloom: DATA, 256 Bytes – фильтр bloom filter для логов в блоке. null при промежуточном блоке.transactionsRoot: DATA, 32 Bytes – корень транзакции trie блока
  • stateRoot: DATA, 32 Bytes – корень конечного состояния trie блока.
  • miner: DATA, 20 Bytes – адрес получателя, которому направили награды за майнинг.
  • difficulty: QUANTITY – целое значение трудности для данного блока.
  • totalDifficulty: QUANTITY – целое значение общей сложности чейна до этого блока.
  • extraData: DATA – «дополнительное информационное поле» данного блока .
  • size: QUANTITY — целое значение размера данного блока в байтах.
  • gasLimit: QUANTITY – максимально количество gas, позволенное в данном блоке .
  • gasUsed: QUANTITY – общее количество используемых gasвсеми транзакциями в данном блоке .
  • timestamp: QUANTITY – временная отметка unix , когда блок был скомплектован.
  • transactions: Array – Массив объектов транзакций, или or 32-байтовые хэши транзакций, зависящие от последнего отправленного параметра .
  • uncles: Array – Массив хэшей uncle.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getBlockByHash»,»params»:[«0xe670ec64341771606e55d6b4
ca35a1a6b75ee3d5145a99d05921026d1527331″, true],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: {
«number»: «0x1b4», // 436
«hash»: «0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331»,
«parentHash»:
«0x9646252be9520f6e71339a8df9c55e4d7619deeb018d2a3f2d21fc165dde5eb5»,
«nonce»: «0xe04d296d2460cfb8472af2c5fd05b5a214109c25688d3704aed5484f9a7792f2»,
«sha3Uncles»:
«0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347»,
«logsBloom»: «0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331»,
«transactionsRoot»:
«0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421»,
«stateRoot»:
«0xd5855eb08b3387c0af375e9cdb6acfc05eb8f519e419b874b6ff2ffda7ed1dff»,
«miner»: «0x4e65fda2159562a496f9f3522f89122a3088497a»,
«difficulty»: «0x027f07», // 163591
«totalDifficulty»: «0x027f07», // 163591
«extraData»:
«0x0000000000000000000000000000000000000000000000000000000000000000»,
«size»: «0x027f07», // 163591
«gasLimit»: «0x9f759», // 653145
«minGasPrice»: «0x9f759», // 653145
«gasUsed»: «0x9f759», // 653145
«timestamp»: «0x54e34e8e» // 1424182926
«transactions»: [{…},{ … }]
«uncles»: [«0x1606e5…», «0xd5145a9…»]
}
}[/box]

eth_getBlockByNumber

Возвращает информацию о блоке числом блока.

Параметры

1. QUANTITY|TAG – целое значение числа блоков, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию.

2. Boolean – если true возвращает полные объекты транзакций, если false  — только хэши транзакций.

params: [‘0x1b4’, // 436 true ]

Возвращает

Смотрите eth_getBlockByHash

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getBlockByNumber»,»params»:[«0x1b4″, true],»id»:1}’
[/box]

eth_getTransactionByHash

Возвращает информацию от транзакции, запрошенную хэшем транзакции.

Параметры

1. DATA, 32 Bytes – хэш транзакции
params: [
«0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238»
]

Возвращает

 

Object – Объект транзакции, или null когда транзакции не обнаружено:

  • hash: DATA, 32 Bytes – хэш транзакции.
  • nonce: QUANTITY – число транзакций, сделанных отправителем до данной транзакции.
  • blockHash: DATA, 32 Bytes – хэш блока, в котором данная транзакция была в. Null при ожидании.
  • blockNumber: QUANTITY – количество блоков, где данная транзакция была в. Null при ожидании.
  • transactionIndex: QUANTITY – целое значение индексированного положения транзакций в блоке. null во время ожидания.
  • from: DATA, 20 Bytes – адрес отправителя.
  • to: DATA, 20 Bytes – адрес получателя. null при транзакции создания контракта.
  • value: QUANTITY – стоимость, переведенная в Wei.
  • gasPrice: QUANTITY – цена gas , предоставленная Wei.
  • gas: QUANTITY — gas , предоставленный отправителем.
  • input: DATA – данные, отправленные с транзакцией.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getTransactionByHash»,»params»:[«0xb903239f8543d04b5d
c1ba6579132b143087c68db1b2168786408fcbce568238″],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: {
«hash»:»0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b»,
«nonce»:»0x»,
«blockHash»:
«0xbeab0aa2411b7ab17f30a99d3cb9c6ef2fc5426d6ad6fd9e2a26a6aed1d1055b»,
«blockNumber»: «0x15df», // 5599
«transactionIndex»: «0x1», // 1
«from»:»0x407d73d8a49eeb85d32cf465507dd71d507100c1″,
«to»:»0x85h43d8a49eeb85d32cf465507dd71d507100c1″,
«value»:»0x7f110″ // 520464
«gas»: «0x7f110» // 520464
«gasPrice»:»0x09184e72a000″,
«input»:»0x603880600c6000396000f300603880600c6000396000f3603880600c6000396000f360″,
}
}[/box]

eth_getTransactionByBlockHashAndIndex

Возвращает информацию о транзакции хэша блока и индексированной позиции транзакции.

Параметры

1. DATA, 32 Bytes – хэш блока.
2. QUANTITY – целое значении индексированной позиции транзакции .

params: [‘0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331’,
‘0x0’ // 0
]

Возвращает

Смотрите в  eth_getBlockByHash

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getTransactionByBlockHashAndIndex»,»params»:[0xc6ef2f
c5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b, «0x0″],»id»:1}’
результат смотрите в eth_getTransactionByHash [/box]

eth_getTransactionByBlockNumberAndIndex

Возвращает информацию о транзакции количества блоков и индексированной позиции транзакции.

Параметры

1. QUANTITY|TAG – количество блока, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию
2. QUANTITY – индексированная позиция транзакции.

params: [
‘0x29c’, // 668
‘0x0’ // 0
]

Возращает

Смотрите в eth_getBlockByHash

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getTransactionByBlockNumberAndIndex»,»params»:[«0x29c
«, «0x0″],»id»:1}'[/box]

Результат смотрите в  eth_getTransactionByHash

eth_getUncleByBlockHashAndIndex

Возвращает информацию о uncle блока хэшем и индексированной позицией uncle.

Параметры

1. DATA, 32 Bytes – хэшировать блок.
2. QUANTITY – индексированная позиция uncle.

params: [‘0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b’,
‘0x0’ // 0
]

Возвращает

Смотрите в eth_getBlockByHash

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getUncleByBlockHashAndIndex»,»params»:[«0xc6ef2fc5426
d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b», «0x0″],»id»:1}'[/box]

Результат смотрите в  eth_getBlockByHash

Примечание: uncle не содержит индивидуальных транзакций.

eth_getUncleByBlockNumberAndIndex

Возвращает информацию о uncle бюлока числом индексированной позиции uncle.

Параметры

1. QUANTITY|TAG – количество блоков, или ряд «последний», «ранний» или «промежуточный» смотрите в параметрах блока по умолчанию.
2. QUANTITY – индексированная позиция uncle.

[box]params: [
‘0x29c’, // 668
‘0x0’ // 0
][/box]

Возвращает

Смотри в eth_getBlockByHash
Примечание: uncle не содержит индивидуальных транзакций.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getUncleByBlockNumberAndIndex»,»params»:[«0x29c»,
«0x0″],»id»:1}'[/box]

Смотрите результат:  eth_getBlockByHash

eth_getCompilers

Возвращает список доступных компиляторов в клиенте.

Параметры

отсутствуют

Возвращает

Array – Массив доступных компиляторов.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getCompilers»,»params»:[],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: [«solidity», «lll», «serpent»]
}[/box]

eth_compileSolidity

Возвращает компилированный цельный код compiled solidity code.

Параметры

1. String — The source code.

[box]params: [
«contract test { function multiply(uint a) returns(uint d) { return a * 7; }
}»,
][/box]

Возвращает

DATA – Компилированный код источника.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_compileSolidity»,»params»:[«contract test { function
multiply(uint a) returns(uint d) { return a * 7; } }»],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: {
«code»:
«0x605880600c6000396000f3006000357c01000000000000000000000000000000000000000000000000
0000000090048063c6888fa114602e57005b603d6004803590602001506047565b8060005260206000f35
b60006007820290506053565b91905056»,
«info»: {
«source»: «contract test {\n function multiply(uint a) constant
returns(uint d) {\n return a * 7;\n }\n}\n»,
«language»: «Solidity»,
«languageVersion»: «0»,
«compilerVersion»: «0.9.19»,
«abiDefinition»: [
{
«constant»: true,
«inputs»: [
{
«name»: «a»,
«type»: «uint256»
}
],
«name»: «multiply»,
«outputs»: [
{
«name»: «d»,
«type»: «uint256»
}
],
«type»: «function»
}
],
«userDoc»: {
«methods»: {}
},
«developerDoc»: {
«methods»: {}
}
}
}[/box]

eth_compileLLL

Возвращает компилированный LLL код.

Параметры

1. String – Код источника.

params: [
«(returnlll (suicide (caller)))»,
]

Возвращает

DATA – Компилированный код источника.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_compileSolidity»,»params»:[«(returnlll (suicide
(caller)))»],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»:
«0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b60216004
35602b565b8060005260206000f35b600081600702905091905056» // the compiled source code
}[/box]

eth_compileSerpent

Возвращает компилированный змейковый код serpent code.

Параметры

1. String – Код источника.

params: [
«/* some serpent */»,
]

Возвращает:

DATA – Компилированный источник кода.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_compileSerpent»,»params»:[«/*
some serpent */»],»id»:1}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»:
«0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b60216004
35602b565b8060005260206000f35b600081600702905091905056» // the compiled source code
}[/box]

eth_newFilter

Создает объект фильтра, основанный на опциях фильтра, для уведомления об изменениях состояния (логи). Для проверки изменения состояния, вызов eth_getFilterChanges.

Праметры

1. Object – Опции фильтра:
o fromBlock: QUANTITY|TAG — (дополнительно, по умолчаниюt: «latest») Целое значение числа блоков, или «latest» для последнего замайненного блока или «pending», «earliest»  для еще не майненных транзакций..
o toBlock: QUANTITY|TAG — (дополнительно, по умолчаниюt: «latest») Целое значение числа блоков, или «latest» для последнего замайненного блока или «pending», «earliest»  для еще не майненных транзакций.
o address: DATA|Array, 20 Bytes — (дополнительно) Адрес контракта или список адресов, с которых должны происходить логи.
o topics: Array of DATA, — (дополнительно) Массив 32 байтовых  DATA топиков.

[/box]params: [{
«fromBlock»: «0x1»,
«toBlock»: «0x2»,
«address»: «0x8888f1f195afa192cfee860698584c030f4c9db1»,
«topics»: [«0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b»]
}][/box]

Возвращает

QUANTITY – id фильтра.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_newFilter»,»params»:[{«topics»:[«0x12341234″]}],»id»:
73}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x1» // 1
}[/box]

eth_newBlockFilter

Создает фильтр в ноде, для уведомления о появлении нового блока. Для проверки изменения состояния вызов eth_getFilterChanges.

Параметры

Отсутствуют

Возвращает

QUANTITY – id фильтра.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_newBlockFilter»,»params»:[],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x1» // 1
}[/box]

eth_newPendingTransactionFilter

Создает фильтр в ноде для уведомления о появлении новых промежуточных транзакций. Для прверки изменения состояния вызов  eth_getFilterChanges.

Параметры

Отсутствуют

Возвращает

QUANTITY – id фильтра.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_newPendingTransactionFilter»,»params»:[],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: «0x1» // 1
}[/box]

eth_uninstallFilter

Деинсталлирует фильтр с определенным id. Необходимо вызвать, если наблюдение больше не требуется. Дополнительно при запросе фильтры блокируются при помощи eth_getFilterChanges на определенный период времени..

Параметры

1. QUANTITY – id фильтра.

params: [
«0xb» // 11
]

Возвращает

Boolean — true если был успешно деинсталлирована, иначе false.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_uninstallFilter»,»params»:[«0xb»],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: true
}[/box]

eth_getFilterChanges

Метод опроса для фильтра, который возвращает массив догов, появившихся с момента последнего опроса .

Параметры

1. QUANTITY – id фильтра.

params: [
«0x16» // 22
]

Возвращает

Array – Массив объектов логов, или пустой массив, если ничего не изменилось с момента последнего опроса.

  • Для фильтров, созданных при помощи eth_newBlockFilter возвращаются хэши блоков (DATA, 32 Bytes), e.g.[«0x3454645634534…»].
  • Для фильтров, созданных при помощи eth_newPendingTransactionFilter возвращаются хэши транзакций (DATA, 32 Bytes), e.g. [«0x6345343454645…»].
  • Для фильтров, созданных при помощи eth_newFilter логии – это объекты со следующими паратметрами:
    • logIndex: QUANTITY – целое число индекс позиции лога в блоке. null при ожидании лога.
    • transactionIndex: QUANTITY – iцелое число индекс позиции транзакций, из которых был создан лог. null при ожидании лога..
    • transactionHash: DATA, 32 Bytes – хэш транзакции, из которой был создан данный лог.. nullwhen при ожидании лога..
    • blockHash: DATA, 32 Bytes – хэш блока, в котором находился данный лог . null при ожидании.null при ожидании лога..
    • blockNumber: QUANTITY – число блоков, где находился данный лог. null при ожидании.null при ожидании лога.
    • address: DATA, 32 Bytes – адрес происхождения лога.
    • data: DATA – сожержит один или более 32 юайтовых аргументов лога .
    • topics: Array of DATA — Массив от 0 до 4 32 байт DATA индексированных аргументов лога. (В массивности  solidity: Первая тема – хэш подписи события (e.g.Deposit(address,bytes32,uint256)), при условии, что вы объявили событие определителем the anonymous.)

 

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getFilterChanges»,»params»:[«0x16″],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: [{
«logIndex»: «0x1», // 1
«blockNumber»:»0x1b4″ // 436
«blockHash»: «0x8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d»,
«transactionHash»:
«0xdf829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf»,
«transactionIndex»: «0x0», // 0
«address»: «0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d»,
«data»:»0x0000000000000000000000000000000000000000000000000000000000000000″,
«topics»: [«0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5»]
},{

}]
}[/box]

eth_getFilterLogs

Возвращает массив всех логов, подходящих к фильтру с определенным id.

Параметры

1. QUANTITY – id фильтра.

params: [
«0x16» // 22
]

Возвращает

Смотрите в  eth_getFilterChanges

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getFilterLogs»,»params»:[«0x16″],»id»:74}'[/box]

Результат смотрите в  eth_getFilterChanges

eth_getLogs

Возвращает массив всех логов, подходящих к определенному объекту фильтра.

Параметры

1. Object – объект фильтра, смотрите  eth_newFilter parameters.

params: [{
«topics»: [«0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b»]
}]

Возвращают

Смотрите в eth_getFilterChanges

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»eth_getLogs»,»params»:[{«topics»:[«0x00000000000000000000
0000a94f5374fce5edbc8e2a8697c15331677e6ebf0b»]}],»id»:74}'[/box]

Результат смотрите в  eth_getFilterChanges

eth_getWork

Возвращает хэш текущего блока, seedHash, и пограничное условие для встречи («мишень»).

Параметры

отсутствуют

Возвращает

Array – Массив со следующими свойствами:
1. DATA, 32 Bytes — pow-хэш заголовка текущего блока
2. DATA, 32 Bytes – посевной хэш seed hash , используемый для DAG.
3. DATA, 32 Bytes – пограничное условие («tмишень»), 2^256 / трудность.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_getWork»,»params»:[],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: [
«0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef»,
«0x5EED00000000000000000000000000005EED0000000000000000000000000000»,
«0xd1ff1c01710000000000000000000000d1ff1c01710000000000000000000000»
]
}[/box]

eth_submitWork

Используется для подтверждения решения доказательства работы.

Параметры

1. DATA, 8 Bytes – число nonce найдено (64 bits)
2. DATA, 32 Bytes — pow-хэш заголовка (256 bits)
3. DATA, 32 Bytes – смешанный дайджест (256 bits)

params: [
«0x0000000000000001»,
«0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef»,
«0xD1FE5700000000000000000000000000D1FE5700000000000000000000000000»
]

Возвращает

Boolean — rвозвращает true если предоставленное решение пригодно, иначе false.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″, «method»:»eth_submitWork»,
«params»:[«0x0000000000000001»,
«0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef»,
«0xD1GE5700000000000000000000000000D1GE5700000000000000000000000000″],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: true
}[/box]

db_putString

Хранит ряд в локальной базе данных.
Примечание: данная функция не рекомендуется, и будет исключена в будущем  .

Параметры

1. String – имя базы данных.
2. String – имя ключа.
3. String – ряд для хранения.

params: [
«testDB»,
«myKey»,
«myString»
]

Возвращает

Boolean -возвращает true если стоимость хранилась, иначе false.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»db_putString»,»params»:[«testDB»,»myKey»,»myString»],»id»
:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: true
}[/box]

db_getString

Возвращает ряд из локальной базы данных .
Примечание:  данная функция не рекомендуется, и будет исключена в будущем  .

Параметры

1. String — Database name.
2. String — Key name.
params: [
«testDB»,
«myKey»,
]

Возвращает

String – ранее хранившийся ряд.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»db_getString»,»params»:[«testDB»,»myKey»],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: «myString»
}[/box]

db_putHex

Хранит бинарные(двоичные) данные в локальной базе данных.
Примечание:  данная функция не рекомендуется, и будет исключена в будущем  .

Параметры

1. String – имя базы данных.
2. String – имя ключа.
3. DATA – данные для хранения.

params: [
«testDB»,
«myKey»,
«0x68656c6c6f20776f726c64»
]

Возвращает

Boolean — возвращает true если стоимость хранилась, иначе false.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»db_putHex»,»params»:[«testDB»,»myKey»,»0x68656c6c6f20776f
726c64″],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: true
}[/box]

db_getHex

Возвращает бинарные данные из локальной базы данных.
Примечание:  данная функция не рекомендуется, и будет исключена в будущем  .

Параметры

1. String – имя базы данных.
2. String – имя ключа.

params: [
«testDB»,
«myKey»,
]

Возвращает

DATA – Ранее хранившиеся данные.

Пример
// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»db_getHex»,»params»:[«testDB»,»myKey»],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: «0x68656c6c6f20776f726c64»
}[/box]

shh_version

Возвращает текущую версию whisper протокола.

Параметры

отсутствуют

Возвращает

String – текущая версия whisper протокола

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»shh_version»,»params»:[],»id»:67}’
// Result
{
«id»:67,
«jsonrpc»: «2.0»,
«result»: «2»
}[/box]

shh_post

Отправляет whisper(шепотом) сообщение.

Параметры

1. Object — whisper пост-объект:
o from: DATA, 60 Bytes — (дополнительно) Идентификация пользователя.
o to: DATA, 60 Bytes — (дополнительно) Идентификация получателя. Когда присутствующий whisper закодирует сообщение, так что его может раскодировать только получатель.
o topics: Array of DATA – Массив тем  DATA , для идентификации сообщений получателем.
o payload: DATA – Информационное наполнение сообщения.
o priority: QUANTITY – Целое значение приоритета в окружении из… (?).
o ttl: QUANTITY – целое значение времени для работы в секундах.

params: [{
from:
«0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284
d442460f2998cd41858798ddfd4d661997d3940272b717b1»,
to:
«0x3e245533f97284d442460f2998cd41858798ddf04f96a5e25610293e42a73908e93ccc8c4d4dc0edcf
a9fa872f50cb214e08ebf61a0d4d661997d3940272b717b1»,
topics: [«0x776869737065722d636861742d636c69656e74»,
«0x4d5a695276454c39425154466b61693532»],
payload: «0x7b2274797065223a226d6»,
priority: «0x64»,
ttl: «0x64»,
}]

Возвращает

Boolean — rвозвращает true если сообщение было отправлено, иначе false.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»shh_post»,»params»:[{«from»:»0xc931d93e97ab07fe42d923478b
a2465f2..»,»topics»:
[«0x68656c6c6f20776f726c64″],»payload»:»0x68656c6c6f20776f726c64″,»ttl»:0x64,»priorit
y»:0x64}],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: true
}[/box]

shh_newIdentinty

Создает новую идентификацию whisper в клиенте.

Параметры

Отсутствуют

Возвращает

DATA, 60 Bytes – адрес новой идентификации

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»shh_newIdentinty»,»params»:[],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»:
«0xc931d93e97ab07fe42d923478ba2465f283f440fd6cabea4dd7a2c807108f651b7135d1d6ca9007d5b
68aa497e4619ac10aa3b27726e1863c1fd9b570d99bbaf»
}[/box]

shh_hasIdentity

Проверяет, хранит ли клиент закрытые ключи для данной идентификации.

Параметры

1. DATA, 60 Bytes – Адрес идентификации для проверки.

params: [
«0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284
d442460f2998cd41858798ddfd4d661997d3940272b717b1»
]

Возвращает

Boolean — rвозвращает true если клиент хранит закрытый ключ для той идентификации, иначе false.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»shh_hasIdentity»,»params»:[«0x04f96a5e25610293e42a73908e9
3ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d66
1997d3940272b717b1″],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: true
}[/box]

shh_newGroup

Параметры

отсутствуют

Возвращает

DATA, 60 Bytes – адрес новой группы

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»shh_newIdentinty»,»params»:[],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»:
«0xc65f283f440fd6cabea4dd7a2c807108f651b7135d1d6ca90931d93e97ab07fe42d923478ba2407d5b
68aa497e4619ac10aa3b27726e1863c1fd9b570d99bbaf»
}[/box]

shh_addToGroup

(?)

Параметры

1. DATA, 60 Bytes – идентификационный адрес для добавления в группу (?).

params: [
«0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284
d442460f2998cd41858798ddfd4d661997d3940272b717b1»
]

Возвращает

Boolean — возвращает true если идентификация была успешно добавлена в группу, иначе false (?).

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»shh_hasIdentity»,»params»:[«0x04f96a5e25610293e42a73908e9
3ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d66
1997d3940272b717b1″],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: true
}[/box]

shh_newFilter

Создает фильтр для уведомления получения клиентом сообщения whisper , подходящего к опциям фильтра.

Параметры

1. Object – Опции фильтра:

  •  to: DATA, 60 Bytes — (дополнительно) Идентификация получателя. При наличии он попытается раскодировать входящее сообщение, если клиент хранит закрытый ключ к данной идентификации.
  • topics: Array of DATA – Массив тем DATA , к которым должны подходить темы входящих сообщений. Можно использовать следующие комбинации:
    •  [A, B] = A && B
    • [A, [B, C]] = A && (B || C)
    • [null, A, B] = ANYTHING && A && B null works as a wildcard

params: [{
«topics»: [‘0x12341234bf4b564f’],
«to»:
«0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284
d442460f2998cd41858798ddfd4d661997d3940272b717b1»
}]

Возвращает

QUANTITY – Вновь созданный фильтр.

Пример

[box]// Request
curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»shh_newFilter»,»params»:[{«topics»:
[‘0x12341234bf4b564f’],»to»: «0x2341234bf4b2341234bf4b564f…»}],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: «0x7» // 7
}[/box]

shh_uninstallFilter

Деинсталлирует фильтр с определенным id. Необходимо выхывать, когда наблюдение уже не требуется. Дополнительно фильтры блокируются при запросе при помощи shh_getFilterChanges на период времени.

Параметры

1. QUANTITY — The filter id.
params: [
«0x7» // 7
]

Возвращает

Boolean — true если фильтр был успешно деинсталлирован, иначе false.

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»shh_uninstallFilter»,»params»:[«0x7″],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: true
}[/box]

shh_getFilterChanges

Метод опроса для whisper фильтров. Возвращает новые сообщения после последнего вызова данного метода.
Примечание:  вызов метода shh_getMessages  восстановит буфер для этого метода, так чтобы вы не получали дублирующие сообщения.

Параметры

1. QUANTITY – id фильтра.
params: [
«0x7» // 7
]

Возвращает

Array – Массив сообщений, полученных после последнего опроса:

  •  hash: DATA, 32 Bytes (?) – хэш сообщения.
  • from: DATA, 60 Bytes – Отправитель сообщения, если отправитель был указан .
  • to: DATA, 60 Bytes – Получатель сообщения, если он был указан..
  • expiry: QUANTITY – Целое значение времени в секундах, когда данное сообщение должно истечь (?).
  • ttl: QUANTITY – целое значение времени нахождения сообщения в системе в секундах (?).
  • sent: QUANTITY – целое значение временной отметки unix, когда сообщение было отправлено .
  • topics: Array of DATA – Массив тем DATA , которые содержит сообщение.
  • payload: DATA – информационное наполнение сообщения.
  • workProved: QUANTITY – целое значение работы, которую требовало данное сообщение перед отправкой (?).

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»shh_getFilterChanges»,»params»:[«0x7″],»id»:73}’
// Result
{
«id»:1,
«jsonrpc»:»2.0″,
«result»: [{
«hash»: «0x33eb2da77bf3527e28f8bf493650b1879b08c4f2a362beae4ba2f71bafcd91f9»,
«from»: «0x3ec052fc33..»,
«to»: «0x87gdf76g8d7fgdfg…»,
«expiry»: «0x54caa50a», // 1422566666
«sent»: «0x54ca9ea2», // 1422565026
«ttl»: «0x64» // 100
«topics»: [«0x6578616d»],
«payload»: «0x7b2274797065223a226d657373616765222c2263686…»,
«workProved»: «0x0»
}]
}[/box]

shh_getMessages

Получает все сообщения, подходящие к фильтру, все еще существующие в буфере ноды
Примечание: вызывая данный метод, мы также восстанавливаем буфер для метода shh_getFilterChanges , так чтобы вы не получали дублирующие сообщения.

Параметры

1. QUANTITY – id фильтра.

params: [
«0x7» // 7
]

Возвращает

Смотрите shh_getFilterChanges

Пример

[box]// Request
curl -X POST —data
‘{«jsonrpc»:»2.0″,»method»:»shh_getMessages»,»params»:[«0x7″],»id»:73}'[/box]

Результат смотрите в  shh_getFilterChanges

 

 Консоль JavaScript

Среда выполнения JavaScript Ethereum воплощается в качестве среды выполнения javascript (JSRE), которую можно использовать как в интерактивном (консоль), так и в не-интерактивном (сценарий) режиме. Консоль Ethereum Javascript демонстрирует полное приложение web3 JavaScript Dapp API и admin API.

Интерактивное использование: JSRE REPL — консоль

Интерфейс ethereum CLI выполняемый geth имеет консоль JavaScript ( Read, Evaluate & Print Loop = REPL, демонстрирующий JSRE), который может быть запущен суб- командой console :

[box]$ geth console[/box]

Если вам нужна информация журнала, начните с:

[box]$ geth —verbosity 5 console 2>> /tmp/eth.log[/box]

Либо заглушите свои логи, чтобы они не перегружали консоль:

[box]$ geth console 2>> /dev/null[/box]

или

[box]$ geth —verbosity 0 console[/box]

Примечание: Т.к. доступ к базе данных можно получить только одни процессом, это означаете, что вы не сможете запустить geth console , если копия geth уже запущена.

Не-интерактивное использование: режим сценария JSRE

Также возможно передавать файлы интерпретатору JavaScript. Загрузите и выполните любое количество файлов, выдавая файлы как аргументы для js суб-команды:

[box]$ geth js script1.js script2.js[/box]

Если вы хотите иметь и консоль , и загруженные сценарии (скрипты), используйте loadScript. Пример сценария можно найти здесь

Вы можете сохранить консоль, напечатав exit или просто при помощи CTRL-C. Используйте —jspath <path/to/my/js/root> для установки libdir для ваших сценариев js. Параметры для loadScript() не имеющие абсолютного пути, будут трактоваться в соответствии с данной директорией.

Разъяснение, оговорка

go-ethereum JSRE использует  Otto JS VM , имеющее некоторые ограничения:

  •  «use strict» парсирует, но ничего не делает.
  • Движок регулярных выражений (re2/regexp) не является полностью совместимым со спецификацией ECMA5.

Имейте в виду, что другие известные ограничения Otto (а именно, недостаток таймеров) должны приниматься во внимание. Ethereum JSRE воплощает и setTimeout, и setInterval. В дополнение к этому, консоль предоставляет sleep(seconds) , а также метод «спящий временной блок» «blocktime sleep» waitForBlock(blockNumber) Т.к. ethereum.js использует библиотеку bignumer.js  (Лицензия MIT Expat Licence), он также загружается автоматически.


 

К оглавлению

Теги

Блокчейн глазами IBM: зачем нужен проект HyperLedger и когда мир перейдёт на новую технологию В четверг, 10 ноября, IT-гигант IBM представит своё видение того,…
admin by admin
0 8282 0
Взгляд Microsoft на блокчейн-технологию: от слов к коду Представляем одного из ключевых спикеров Blockchain & Bitcoin Conference Russia…
admin by admin
0 4722 0
Блокчейн в банковской системе: взгляд Сбербанка Сбербанк России – один из лидеров банковского рынка по внедрению…
admin by admin
0 5724 0

Leave a Reply

Войти
Регистрация
Отправить сообщение