You are reading GoQuorum development version documentation and some displayed features may not be available in the stable release. You can switch to stable version using the version box at screen bottom.

# Istanbul RPC API

## Getting Started

1. Run Istanbul geth with --rpcapi "istanbul"
2. geth attach

## API Reference

### istanbul.candidates

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

istanbul.candidates


#### Returns

map[string] boolean - returns the current candidates map.

Discard drops a currently running candidate, stopping the validator from casting further votes (either for or against).

istanbul.discard(address)


#### Parameters

string - the address of the candidate

### istanbul.getSnapshot

GetSnapshot retrieves the state snapshot at a given block.

istanbul.getSnapshot(blockHashOrBlockNumber)


#### Parameters

String|Number - The block number, the string “latest” or nil. nil is the same with string “latest” and means the latest block

#### Returns

Object - The snapshot object

### istanbul.getSnapshotAtHash

GetSnapshotAtHash retrieves the state snapshot at a given block.

istanbul.getSnapshotAtHash(blockHash)


#### Parameters

String - The block hash

#### Returns

Object - The snapshot object

### istanbul.getValidators

GetValidators retrieves the list of authorized validators at the specified block.

istanbul.getValidators(blockHashOrBlockNumber)


#### Parameters

String|Number - The block number, the string “latest” or nil. nil is the same with string “latest” and means the latest block

#### Returns

[]string - The validator address array

### istanbul.getValidatorsAtHash

GetValidatorsAtHash retrieves the list of authorized validators at the specified block.

istanbul.getValidatorsAtHash(blockHash)


#### Parameters

String - The block hash

#### Returns

[]string - The validator address array

### istanbul.propose

Propose injects a new authorization candidate that the validator will attempt to push through. If the number of vote is larger than ½ of validators to vote in/out, the candidate will be added/removed in validator set.

istanbul.propose(address, auth)


#### Parameters

String - The address of candidate bool - true votes in and false votes out

Retrieves the public address that is used to sign proposals, which is derived from the nodes nodekey.

istanbul.nodeAddress()


#### Returns

string - The nodes public signing address

### istanbul.getSignersFromBlock

Retrieves the public addresses for whose seals are included in the block. This means that they participated in the consensus for this block and attested to its validity. A block number may be optionally given, or else the current block is assumed.

istanbul.getSignersFromBlock(blockNumber)


#### Parameters

Number - The block number to retrieve

#### Returns

Object

• number: Number - The retrieved block’s number
• hash: String - The retrieved block’s hash
• author: String - The address of the block proposer
• committers: []String - The list of all addresses whose seal appears in this block

### istanbul.getSignersFromBlockByHash

Retrieves the public addresses for whose seals are included in the block. This means that they participated in the consensus for this block and attested to its validity. A block hash must be given, and does NOT default to the current latest block.

istanbul.getSignersFromBlockByHash(blockHash)


#### Parameters

String - The hash of the block to retrieve

#### Returns

Object

• number: Number - The retrieved block’s number
• hash: String - The retrieved block’s hash
• author: String - The address of the block proposer
• committers: []String - The list of all addresses whose seal appears in this block