When you send an Ethereum transaction, there are at least 3 types of factors that will influence how long it takes to be mined:User-defined Transaction Variables: Mainly ‘gas price’ and ‘gas offered’. Higher gas price will make it confirm faster (up to a point) and providing more gas than needed will make it confirm slower.Network Demand Variables: No surprise — when you send a transaction the block after a major ICO has started, its going to take longer to confirm.Black Box Variables: These are variables that an average user running a full node can’t monitor. These include whether your transaction has propagated to the miner node’s transaction pool and what algorithm the miner is using to make blocks, and other chance factors.
When I first launched ETHGasStation- I built it to analyze the impact of the first group of variables (gas price and gas offered/used) on confirmation times. This provided useful information when the network conditions were stable over a long period of time but was completely inadequate during times of sudden shifts in network demand (which is exactly when users are most interested in gas prices and confirmation times). It was a problem of looking backwards to describe what had happened, but what people really cared about was what would happen to the transaction they were sending now.
Today, I am happy to launch what I believe will be a major improvement in forecasting ETH confirmation times and recommended gas prices in the face of fluctuating network demand.
The advance consisted of the following: I was finally able to figure out how to snapshot my node’s transaction pool at the time of incoming transactions. Using this data, I could define a set of baseline covariates for each transaction received by my node (at the time of current model, the database consisted of 600,000 transactions collected at times of both heavy and average network demand). These covariates includ...