The Ethereum Reach connector generates a contract that manages one instance of the DApp’s execution. It is guaranteed to use exactly one word of on-chain state, while each piece of consensus state appears as a transaction argument.
During compilation, the connector produces one intermediate output: "input.export.sol", containing the Solidity code implementing the contract.
A few details of Ethereum leak through to Reach. In Ethereum, time corresponds to block numbers. The node that a given participant is connected to does not instantly know that it’s blocks are correctly and may revert past transactions after it reaches consensus with the rest of the network. This means that Reach applications must not make externally observable effects until after such consensus is reached.
Backends must respect the following environment variables:
ETH_NODE_TYPE may be either in_memory_ganache, to use an in memory instance of Ganache, or uri to use a URI.
ETH_NODE_URI is used to contact the Ethereum node. It defaults to http://localhost:8545.
ETH_NODE_NETWORK is used to name the Ethereum network. It defaults to unspecified.