# istanbul

The following API method provide access to the IBFT consensus engine.

#### `istanbul_candidates`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_candidates) <a href="#istanbul_candidates" id="istanbul_candidates"></a>

Returns the current candidates which the node tries to vote in or out.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-7)

None

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-7)

`result`: *map* of *strings* to *booleans* - current candidates map

* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_candidates","id":1}' --header "Content-Type: application/json"
```

#### `istanbul_discard`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_discard) <a href="#istanbul_discard" id="istanbul_discard"></a>

Drops a currently running candidate, stopping further votes from being cast either for or against the candidate.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-8)

`address`: *string* - address of the candidate

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-8)

`result`: `null`

* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_discard","params":["0xfff7ac99c8e4feb60c9750054bdc14ce1857f181"],"id":1}' --header "Content-Type: application/json"
```

#### `istanbul_getSignersFromBlock`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_getsignersfromblock) <a href="#istanbul_getsignersfromblock" id="istanbul_getsignersfromblock"></a>

Retrieves the public addresses whose seals are included in the specified block number. This means that they participated in the consensus for this block and attested to its validity.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-9)

`blockNumber`: *number* - (optional) block number to retrieve; defaults to current block

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-9)

`result`: *object* - result object with the following fields:

* `number`: *number* - retrieved block's number
* `hash`: *string* - retrieved block's hash
* `author`: *string* - address of the block proposer
* `committers`: *array* of *strings* - list of all addresses whose seal appears in this block
* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_getSignersFromBlock","params":[10],"id":1}' --header "Content-Type: application/json"
```

#### `istanbul_getSignersFromBlockByHash`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_getsignersfromblockbyhash) <a href="#istanbul_getsignersfromblockbyhash" id="istanbul_getsignersfromblockbyhash"></a>

Retrieves the public addresses whose seals are included in the specified block number. This means that they participated in the consensus for this block and attested to its validity.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-10)

`blockHash`: *string* - hash of the block to retrieve (required)

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-10)

`result`: *object* - result object with the following fields:

* `number`: *number* - retrieved block's number
* `hash`: *string* - retrieved block's hash
* `author`: *string* - address of the block proposer
* `committers`: *array* of *strings* - list of all addresses whose seal appears in this block
* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_getSignersFromBlockByHash","params":["0xfe88c94d860f01a17f961bf4bdfb6e0c6cd10d3fda5cc861e805ca1240c58553"],"id":1}' --header "Content-Type: application/json"
```

#### `istanbul_getSnapshot`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_getsnapshot) <a href="#istanbul_getsnapshot" id="istanbul_getsnapshot"></a>

Retrieves the state snapshot at the specified block number.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-11)

`blockNumber`: *number* or *string* - (optional) integer representing a block number or the string tag `latest` (the last block mined); defaults to `latest`

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-11)

`result`: *object* - snapshot object

* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_getSnapshot","params":[10],"id":1}' --header "Content-Type: application/json"
```

#### `istanbul_getSnapshotAtHash`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_getsnapshotathash) <a href="#istanbul_getsnapshotathash" id="istanbul_getsnapshotathash"></a>

Retrieves the state snapshot at the specified block hash.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-12)

`blockHash`: *string* - block hash

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-12)

`result`: *object* - snapshot object

* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_getSnapshotAtHash","params":["0xfe88c94d860f01a17f961bf4bdfb6e0c6cd10d3fda5cc861e805ca1240c58553"],"id":1}' --header "Content-Type: application/json"
```

#### `istanbul_getValidators`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_getvalidators) <a href="#istanbul_getvalidators" id="istanbul_getvalidators"></a>

Retrieves the list of authorized validators at the specified block number.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-13)

`blockNumber`: *number* or *string* - (optional) integer representing a block number or the string tag `latest` (the last block mined); defaults to `latest`

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-13)

`result`: *array* of *strings* - list of validator addresses

* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_getValidators","params":[10],"id":1}' --header "Content-Type: application/json"
```

#### `istanbul_getValidatorsAtHash`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_getvalidatorsathash) <a href="#istanbul_getvalidatorsathash" id="istanbul_getvalidatorsathash"></a>

Retrieves the list of authorized validators at the specified block hash.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-14)

`blockHash`: *string* - block hash

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-14)

`result`: *array* of *strings* - list of validator addresses

* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_getValidatorsAtHash","params":["0xfe88c94d860f01a17f961bf4bdfb6e0c6cd10d3fda5cc861e805ca1240c58553"],"id":1}' --header "Content-Type: application/json"
```

#### `istanbul_isValidator`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_isvalidator) <a href="#istanbul_isvalidator" id="istanbul_isvalidator"></a>

Indicates if this node is the validator for the specified block number.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-15)

`blockNumber`: *number* - (optional) block number; defaults to latest block number

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-15)

`result`: *boolean* - `true` if this node is the validator for the given `blockNumber`, otherwise `false`

* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_isValidator","params":[10],"id":1}' --header "Content-Type: application/json"
```

#### `istanbul_nodeAddress`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_nodeaddress) <a href="#istanbul_nodeaddress" id="istanbul_nodeaddress"></a>

Retrieves the public address that is used to sign proposals, which is derived from the node's `nodekey`.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-16)

None

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-16)

`result`: *string* - node's public signing address

* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_nodeAddress","id":1}' --header "Content-Type: application/json"
```

#### `istanbul_propose`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_propose) <a href="#istanbul_propose" id="istanbul_propose"></a>

Injects a new authorization candidate that the validator attempts to push through. If a majority of the validators vote the candidate in/out, the candidate is added/removed in the validator set.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-17)

* `address`: *string* - address of candidate
* `auth`: *boolean* - `true` votes the candidate in and `false` votes out

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-17)

`result`: `null`

* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_propose","params":["0x9811ebc35d7b06b3fa8dc5809a1f9c52751e1deb",true],"id":1}' --header "Content-Type: application/json"
```

#### `istanbul_status`[​](https://docs.goquorum.consensys.io/reference/api-methods#istanbul_status) <a href="#istanbul_status" id="istanbul_status"></a>

Returns the signing status of blocks for the specified block range.

**Parameters**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#parameters-18)

* `startBlockNumber`: *number* - start block number
* `endBlockNumber`: *number* - end block number

If the start block and end block numbers are not provided, the status of the last 64 blocks is returned.

**Returns**[**​**](https://docs.goquorum.consensys.io/reference/api-methods#returns-18)

`result`: *object* - result object with the following fields:

* `numBlocks`: *number* - number of blocks for which sealer activity is retrieved
* `sealerActivity`: *map* of *strings* to *numbers* - key is the validator and value is the number of blocks sealed by the validator
* curl HTTP request
* JSON result
* geth console request
* geth console result

```
curl -X POST http://localhost:8545 --data '{"jsonrpc":"2.0","method":"istanbul_status","params":[1,10],"id":1}' --header "Content-Type: application/json"
```

<br>
