Whiteflag API Connector for Ethereum
The Whiteflag API natively supports the Ethereum blockchain.
Ethereum configuration
The blockchains configuration file config/blockchains.toml
should contain
the Ethereum specific parameters in one of its [[blockchains]]
sections.
name
: the name according to the naming convention:{name}-{network}
, e.g.ethereum-main
orethereum-rinkeby
module
: the Ethereum module inlib/blockchains
, which should be "ethereum"chainID
: the appropriate Chain ID for the Ethereum network that is usedactive
: whether the blockchain is active or should be ignored
These parameters manage Ethereum blockchain accounts:
createAccount
: whether to automatically create an account if none exists; default isfalse
For retrieving transactions containing Whiteflag messages from the blockchain, these parameters may be provided, otherwise default values are used:
blockRetrievalInterval
: the time in milliseconds between data retrieval intervals; the default is6000
msblockRetrievalStart
: the starting block from where to retrieve transactions; if0
(default) the API resumes a number of blocks before the highest block as configured belowblockRetrievalEnd
: the last block from where to retrieve transactions; if0
(default) the API catches up with the highest block on the nodeblockRetrievalRestart
: how many blocks before the current highest block the API should look back when (re)starting the API; this prevents that blocks are missed when the API is stopped for a short periodblockMaxRetries
: how many times the API should retry to process a block if it fails, e.g. because of a node timeout; default is0
, which means unlimited retriestransactionBatchSize
: how many transactions from a single block the API may process in parallel; default is64
transactionValue
: the value of a transaction when sending a Whiteflag message; default is0
ethertraceRawTransaction
: whether to show each individual transaction when the loglevel is set to6
(trace); default isfalse
because this results in massive logging
To send and receive Whiteflag messages, the API must be connected to a Ethereum node exposing the standard Ethereum RPC interface. These parameters are used to configure the connection:
rpcTimeout
: the timeout for an RPC request in milliseconds; the default is10000
rpcProtocol
: the protocol via which the RPC interface is available, usuallyhttp
orhttps
rpcHost
: the hostname of the Ethereum noderpcPort
: the port on which the RPC interface is exposedrpcPath
: optional path to reach the RPC interfaceusername
: an optional username for basic http authorizationpassword
: an optional password for basic http authorization