Skip to content

Commit aa79111

Browse files
authored
Merge pull request #2833 from rsksmart/vovchyk/arrowhead640-master-merge
arrowhead-6.4.0 -> master merge
2 parents 31fdae2 + d9af9ef commit aa79111

File tree

5 files changed

+32
-7
lines changed

5 files changed

+32
-7
lines changed

rskj-core/src/main/java/co/rsk/RskContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1863,7 +1863,7 @@ private MinGasPriceProvider getMinGasPriceProvider() {
18631863
StableMinGasPriceSystemConfig stableGasPriceSystemConfig = getRskSystemProperties().getStableGasPriceSystemConfig();
18641864
minGasPriceProvider = MinGasPriceProviderFactory.create(minGasPrice, stableGasPriceSystemConfig, this::getEthModule);
18651865
}
1866-
logger.debug("MinGasPriceProvider type: {}", minGasPriceProvider.getType().name());
1866+
18671867
return minGasPriceProvider;
18681868
}
18691869

rskj-core/src/main/java/co/rsk/mine/BlockGasPriceRange.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,9 @@ public Coin getUpperLimit() {
5151
public Coin getLowerLimit() {
5252
return lowerLimit;
5353
}
54+
55+
@Override
56+
public String toString() {
57+
return "[" + lowerLimit + "; " + upperLimit + "]";
58+
}
5459
}

rskj-core/src/main/java/co/rsk/mine/MinimumGasPriceCalculator.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,18 @@
2020

2121
import co.rsk.core.Coin;
2222
import co.rsk.mine.gas.provider.MinGasPriceProvider;
23+
import org.slf4j.Logger;
24+
import org.slf4j.LoggerFactory;
2325

2426
/**
2527
* This is the implementation of RSKIP-09
2628
* Created by mario on 22/12/16.
2729
*/
2830
public class MinimumGasPriceCalculator {
2931

30-
private MinGasPriceProvider minGasPriceProvider;
32+
private static final Logger logger = LoggerFactory.getLogger(MinimumGasPriceCalculator.class);
33+
34+
private final MinGasPriceProvider minGasPriceProvider;
3135

3236
public MinimumGasPriceCalculator(MinGasPriceProvider minGasPriceProvider) {
3337
this.minGasPriceProvider = minGasPriceProvider;
@@ -37,14 +41,16 @@ public Coin calculate(Coin previousMGP) {
3741
BlockGasPriceRange priceRange = new BlockGasPriceRange(previousMGP);
3842
Coin targetMGP = minGasPriceProvider.getMinGasPriceAsCoin();
3943
if (priceRange.inRange(targetMGP)) {
44+
logger.debug("Previous MGP: {}. Target MGP: {} is in range: {}. Returning target MGP", previousMGP, targetMGP, priceRange);
4045
return targetMGP;
4146
}
4247

4348
if (previousMGP.compareTo(targetMGP) < 0) {
49+
logger.debug("Previous MGP: {}. Target MGP: {} is not in range: {}. Returning upper boundary: {}", previousMGP, targetMGP, priceRange, priceRange.getUpperLimit());
4450
return priceRange.getUpperLimit();
4551
}
4652

53+
logger.debug("Previous MGP: {}. Target MGP: {} is not in range: {}. Returning lower boundary: {}", previousMGP, targetMGP, priceRange, priceRange.getLowerLimit());
4754
return priceRange.getLowerLimit();
4855
}
49-
5056
}

rskj-core/src/main/java/co/rsk/mine/gas/provider/MinGasPriceProviderFactory.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,28 +37,32 @@ public static MinGasPriceProvider create(long fixedMinGasPrice, StableMinGasPric
3737
FixedMinGasPriceProvider fixedMinGasPriceProvider = new FixedMinGasPriceProvider(fixedMinGasPrice);
3838

3939
if (stableMinGasPriceSystemConfig == null) {
40-
logger.warn("Could not find stable min gas price system config, using {} provider", fixedMinGasPriceProvider.getType().name());
40+
logger.warn("Could not find stable min gas price config. Falling back to {} with fixedMinGasPrice: {}", fixedMinGasPriceProvider.getType(), fixedMinGasPrice);
4141
return fixedMinGasPriceProvider;
4242
}
4343
if (!stableMinGasPriceSystemConfig.isEnabled()) {
44+
logger.info("Stable min gas price is disabled. Falling back to {} with fixedMinGasPrice: {}", fixedMinGasPriceProvider.getType(), fixedMinGasPrice);
4445
return fixedMinGasPriceProvider;
4546
}
4647

4748
MinGasPriceProviderType method = stableMinGasPriceSystemConfig.getMethod();
4849
if (method == null) {
49-
logger.error("Could not find valid method in config, using fallback provider: {}", fixedMinGasPriceProvider.getType().name());
50+
logger.warn("Could not find valid method in config. Falling back to {} with fixedMinGasPrice: {}", fixedMinGasPriceProvider.getType(), fixedMinGasPrice);
5051
return fixedMinGasPriceProvider;
5152
}
5253

5354
switch (method) {
5455
case HTTP_GET:
56+
logger.info("Creating 'Http-Get' stable min gas price provider");
5557
return new HttpGetMinGasPriceProvider(stableMinGasPriceSystemConfig, fixedMinGasPriceProvider);
5658
case ETH_CALL:
59+
logger.info("Creating 'Eth-Call' stable min gas price provider");
5760
return new EthCallMinGasPriceProvider(fixedMinGasPriceProvider, stableMinGasPriceSystemConfig, ethModuleSupplier);
5861
case FIXED:
62+
logger.info("Creating 'Fixed' min gas price provider with fixedMinGasPrice: {}", fixedMinGasPrice);
5963
return fixedMinGasPriceProvider;
6064
default:
61-
logger.debug("Could not find a valid implementation for the method {}. Returning fallback provider {}", method, fixedMinGasPriceProvider.getType().name());
65+
logger.warn("Could not find a valid implementation for the method {}. Creating {} fallback provider with fixedMinGasPrice: {}", method, fixedMinGasPriceProvider.getType(), fixedMinGasPrice);
6266
return fixedMinGasPriceProvider;
6367
}
6468
}

rskj-core/src/main/java/co/rsk/mine/gas/provider/StableMinGasPriceProvider.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public long getMinGasPrice(boolean wait) {
6363
Future<Long> priceFuture = fetchPriceAsync();
6464
if (wait || priceFuture.isDone()) {
6565
try {
66+
logger.debug("getMinGasPrice returning fetched minGasPrice: {}", priceFuture.get());
6667
return priceFuture.get();
6768
} catch (InterruptedException e) {
6869
logger.error("Min gas price fetching was interrupted", e);
@@ -73,7 +74,10 @@ public long getMinGasPrice(boolean wait) {
7374
}
7475
}
7576

76-
return getLastMinGasPrice();
77+
long minGasPrice = getLastMinGasPrice();
78+
logger.debug("getMinGasPrice returning cached minGasPrice: {}", minGasPrice);
79+
80+
return minGasPrice;
7781
}
7882

7983
@Override
@@ -104,12 +108,14 @@ private long calculateMinGasPriceBasedOnBtcPrice(long btcValue) {
104108
private synchronized Future<Long> fetchPriceAsync() {
105109
Future<Long> future = priceFuture.get();
106110
if (future != null) {
111+
logger.debug("fetchPriceAsync skipped as there is already price fetching in progress...");
107112
return future;
108113
}
109114

110115
CompletableFuture<Long> newFuture = new CompletableFuture<>();
111116
priceFuture.set(newFuture);
112117

118+
logger.debug("fetchPriceAsync...");
113119
new Thread(() -> {
114120
Optional<Long> priceResponse = fetchPriceSync();
115121
newFuture.complete(priceResponse.orElse(getLastMinGasPrice()));
@@ -120,12 +126,16 @@ private synchronized Future<Long> fetchPriceAsync() {
120126
}
121127

122128
private Optional<Long> fetchPriceSync() {
129+
logger.debug("fetchPriceSync...");
123130
Optional<Long> priceResponse = getBtcExchangeRate();
124131
if (priceResponse.isPresent() && priceResponse.get() > 0) {
125132
long result = calculateMinGasPriceBasedOnBtcPrice(priceResponse.get());
126133
lastMinGasPrice = result;
127134
lastUpdateTimeMillis = System.currentTimeMillis();
128135
numOfFailures.set(0);
136+
137+
logger.debug("fetchPriceSync completed with priceResponse: {}, lastMinGasPrice: {}", priceResponse, lastMinGasPrice);
138+
129139
return Optional.of(result);
130140
}
131141

0 commit comments

Comments
 (0)