Skip to content

Commit 2596793

Browse files
authored
Merge pull request tronprotocol#2668 from tronprotocol/hotfix/splitDBConfig
Hotfix/split db config
2 parents fed8d25 + f9b5419 commit 2596793

File tree

20 files changed

+161
-209
lines changed

20 files changed

+161
-209
lines changed

actuator/src/main/java/org/tron/core/actuator/FreezeBalanceActuator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.tron.core.store.DelegatedResourceAccountIndexStore;
2121
import org.tron.core.store.DelegatedResourceStore;
2222
import org.tron.core.store.DynamicPropertiesStore;
23+
import org.tron.core.vm.config.VMConfig;
2324
import org.tron.protos.Protocol.AccountType;
2425
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
2526
import org.tron.protos.Protocol.Transaction.Result.code;
@@ -167,7 +168,7 @@ public boolean validate() throws ContractValidateException {
167168
long minFrozenTime = dynamicStore.getMinFrozenTime();
168169
long maxFrozenTime = dynamicStore.getMaxFrozenTime();
169170

170-
boolean needCheckFrozeTime = DBConfig.getCheckFrozenTime() == 1;//for test
171+
boolean needCheckFrozeTime = VMConfig.getCheckFrozenTime() == 1;//for test
171172
if (needCheckFrozeTime && !(frozenDuration >= minFrozenTime
172173
&& frozenDuration <= maxFrozenTime)) {
173174
throw new ContractValidateException(

actuator/src/main/java/org/tron/core/actuator/ShieldedTransferActuator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
import org.tron.core.store.DynamicPropertiesStore;
3636
import org.tron.core.store.NullifierStore;
3737
import org.tron.core.store.ZKProofStore;
38-
import org.tron.core.utils.TransactionUtil;
3938
import org.tron.protos.Protocol.AccountType;
4039
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
4140
import org.tron.protos.Protocol.Transaction.Result.code;

actuator/src/main/java/org/tron/core/actuator/UpdateEnergyLimitContractActuator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import java.util.Arrays;
66
import java.util.Objects;
77
import lombok.extern.slf4j.Slf4j;
8-
import org.tron.common.utils.DBConfig;
98
import org.tron.common.utils.DecodeUtil;
9+
import org.tron.common.utils.StorageUtils;
1010
import org.tron.common.utils.StringUtil;
1111
import org.tron.core.capsule.AccountCapsule;
1212
import org.tron.core.capsule.ContractCapsule;
@@ -56,7 +56,7 @@ public boolean execute(Object object) throws ContractExeException {
5656

5757
@Override
5858
public boolean validate() throws ContractValidateException {
59-
if (!DBConfig.getEnergyLimitHardFork()) {
59+
if (!StorageUtils.getEnergyLimitHardFork()) {
6060
throw new ContractValidateException(
6161
"contract type error, unexpected type [UpdateEnergyLimitContract]");
6262
}

actuator/src/main/java/org/tron/core/actuator/VMActuator.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.tron.common.runtime.InternalTransaction.TrxType;
2424
import org.tron.common.runtime.ProgramResult;
2525
import org.tron.common.utils.DBConfig;
26+
import org.tron.common.utils.StorageUtils;
2627
import org.tron.common.utils.WalletUtil;
2728
import org.tron.core.capsule.AccountCapsule;
2829
import org.tron.core.capsule.BlockCapsule;
@@ -339,7 +340,7 @@ private void create()
339340
long energyLimit;
340341
// according to version
341342

342-
if (VMConfig.getEnergyLimitHardFork()) {
343+
if (StorageUtils.getEnergyLimitHardFork()) {
343344
if (callValue < 0) {
344345
throw new ContractValidateException("callValue must be >= 0");
345346
}
@@ -441,7 +442,7 @@ private void call()
441442
tokenId = contract.getTokenId();
442443
}
443444

444-
if (VMConfig.getEnergyLimitHardFork()) {
445+
if (StorageUtils.getEnergyLimitHardFork()) {
445446
if (callValue < 0) {
446447
throw new ContractValidateException("callValue must be >= 0");
447448
}
@@ -576,7 +577,7 @@ public long getTotalEnergyLimit(AccountCapsule creator, AccountCapsule caller,
576577
return getAccountEnergyLimitWithFixRatio(caller, feeLimit, callValue);
577578
}
578579
// according to version
579-
if (VMConfig.getEnergyLimitHardFork()) {
580+
if (StorageUtils.getEnergyLimitHardFork()) {
580581
return getTotalEnergyLimitWithFixRatio(creator, caller, contract, feeLimit, callValue);
581582
} else {
582583
return getTotalEnergyLimitWithFloatRatio(creator, caller, contract, feeLimit, callValue);
@@ -615,9 +616,9 @@ private double getCpuLimitInUsRatio() {
615616
} else {
616617
// self witness or other witness or fullnode verifies block
617618
if (trx.getRet(0).getContractRet() == contractResult.OUT_OF_TIME) {
618-
cpuLimitRatio = DBConfig.getMinTimeRatio();
619+
cpuLimitRatio = VMConfig.getMinTimeRatio();
619620
} else {
620-
cpuLimitRatio = DBConfig.getMaxTimeRatio();
621+
cpuLimitRatio = VMConfig.getMaxTimeRatio();
621622
}
622623
}
623624
} else {

actuator/src/main/java/org/tron/core/vm/config/VMConfig.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,25 @@
1919

2020
import static org.tron.common.utils.DBConfig.ENERGY_LIMIT_HARD_FORK;
2121

22+
import lombok.Getter;
2223
import lombok.Setter;
2324

2425
/**
2526
* For developer only
2627
*/
2728
public class VMConfig {
2829

29-
public static final int MAX_CODE_LENGTH = 1024 * 1024;
30+
@Getter
31+
@Setter
32+
private static double maxTimeRatio;
33+
34+
@Getter
35+
@Setter
36+
private static double minTimeRatio;
37+
38+
@Getter
39+
@Setter
40+
private static int checkFrozenTime; // for test only
3041

3142
public static final int MAX_FEE_LIMIT = 1_000_000_000; //1000 trx
3243

@@ -83,10 +94,6 @@ public static void initAllowTvmSolidity059(long allow) {
8394
ALLOW_TVM_SOLIDITY_059 = allow == 1;
8495
}
8596

86-
public static boolean getEnergyLimitHardFork() {
87-
return ENERGY_LIMIT_HARD_FORK;
88-
}
89-
9097
public static boolean allowTvmTransferTrc10() {
9198
return ALLOW_TVM_TRANSFER_TRC10;
9299
}
@@ -104,8 +111,6 @@ public static boolean allowTvmSolidity059() {
104111
}
105112

106113
private static class SystemPropertiesInstance {
107-
108114
private static final VMConfig INSTANCE = new VMConfig();
109115
}
110-
111116
}

actuator/src/main/java/org/tron/core/vm/program/Program.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -975,7 +975,7 @@ public void checkCPUTimeLimit(String opName) {
975975
logger.info(
976976
"minTimeRatio: {}, maxTimeRatio: {}, vm should end time in us: {}, "
977977
+ "vm now time in us: {}, vm start time in us: {}",
978-
DBConfig.getMinTimeRatio(), DBConfig.getMaxTimeRatio(),
978+
VMConfig.getMinTimeRatio(), VMConfig.getMaxTimeRatio(),
979979
getVmShouldEndInUs(), vmNowInUs, getVmStartInUs());
980980
throw Exception.notEnoughTime(opName);
981981
}

actuator/src/main/java/org/tron/core/vm/repository/RepositoryImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.tron.common.utils.DBConfig;
1515
import org.tron.common.utils.Hash;
1616
import org.tron.common.utils.Sha256Hash;
17+
import org.tron.common.utils.StorageUtils;
1718
import org.tron.common.utils.StringUtil;
1819
import org.tron.core.ChainBaseManager;
1920
import org.tron.core.capsule.AccountCapsule;
@@ -344,7 +345,7 @@ public Storage getStorage(byte[] address) {
344345
Storage storage;
345346
if (this.parent != null) {
346347
Storage parentStorage = parent.getStorage(address);
347-
if (VMConfig.getEnergyLimitHardFork()) {
348+
if (StorageUtils.getEnergyLimitHardFork()) {
348349
// deep copy
349350
storage = new Storage(parentStorage);
350351
} else {

chainbase/src/main/java/org/tron/common/storage/leveldb/LevelDbDataSourceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.tron.common.storage.WriteOptionsWrapper;
4646
import org.tron.common.utils.DBConfig;
4747
import org.tron.common.utils.FileUtil;
48+
import org.tron.common.utils.StorageUtils;
4849
import org.tron.core.db.common.DbSourceInter;
4950
import org.tron.core.db.common.iterator.StoreIterator;
5051
import org.tron.core.db2.common.Instance;
@@ -457,7 +458,6 @@ public Stream<Entry<byte[], byte[]>> parallelStream() {
457458

458459
@Override
459460
public LevelDbDataSourceImpl newInstance() {
460-
return new LevelDbDataSourceImpl(DBConfig.getOutputDirectoryByDbName(dataBaseName),
461-
dataBaseName, options, writeOptions);
461+
return new LevelDbDataSourceImpl(StorageUtils.getOutputDirectoryByDbName(dataBaseName), dataBaseName, options, writeOptions);
462462
}
463463
}
Lines changed: 13 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,14 @@
11
package org.tron.common.utils;
22

3-
import java.io.File;
43
import java.util.Map;
54
import java.util.Set;
65
import lombok.Getter;
76
import lombok.Setter;
8-
import org.apache.commons.lang3.StringUtils;
9-
import org.iq80.leveldb.CompressionType;
10-
import org.iq80.leveldb.Options;
117
import org.tron.common.setting.RocksDbSettings;
128
import org.tron.common.args.GenesisBlock;
139

1410
public class DBConfig {
1511

16-
private static final CompressionType DEFAULT_COMPRESSION_TYPE = CompressionType.SNAPPY;
17-
private static final int DEFAULT_BLOCK_SIZE = 4 * 1024;
18-
private static final int DEFAULT_WRITE_BUFFER_SIZE = 10 * 1024 * 1024;
19-
private static final long DEFAULT_CACHE_SIZE = 10 * 1024 * 1024L;
20-
private static final int DEFAULT_MAX_OPEN_FILES = 100;
2112
//Odyssey3.2 hard fork -- ForkBlockVersionConsts.ENERGY_LIMIT
2213
@Setter
2314
public static boolean ENERGY_LIMIT_HARD_FORK = false;
@@ -83,39 +74,18 @@ public class DBConfig {
8374
private static long blockNumForEneryLimit;
8475
@Getter
8576
@Setter
86-
private static long proposalExpireTime; // (ms)
87-
@Getter
88-
@Setter
8977
private static long allowProtoFilterNum;
9078
@Getter
9179
@Setter
92-
private static int checkFrozenTime; // for test only
93-
@Getter
94-
@Setter
9580
private static String dbDirectory;
9681
@Getter
9782
@Setter
9883
private static boolean fullNodeAllowShieldedTransaction;
9984
@Getter
10085
@Setter
101-
private static String zenTokenId;
102-
@Getter
103-
@Setter
10486
private static boolean vmTrace;
10587
@Getter
10688
@Setter
107-
private static boolean debug;
108-
@Getter
109-
@Setter
110-
private static double minTimeRatio;
111-
@Getter
112-
@Setter
113-
private static double maxTimeRatio;
114-
@Getter
115-
@Setter
116-
private static boolean solidityNode;
117-
@Getter
118-
@Setter
11989
private static int validContractProtoThreadNum;
12090
@Getter
12191
@Setter
@@ -129,65 +99,22 @@ public class DBConfig {
12999

130100
@Getter
131101
@Setter
132-
private static Set<String> actuatorSet;
133-
134-
public static boolean getEnergyLimitHardFork() {
135-
return ENERGY_LIMIT_HARD_FORK;
136-
}
137-
138-
public static String getOutputDirectoryByDbName(String dbName) {
139-
String path = getPathByDbName(dbName);
140-
if (!StringUtils.isBlank(path)) {
141-
return path;
142-
}
143-
return getOutputDirectory();
144-
}
145-
146-
public static String getPathByDbName(String dbName) {
147-
if (hasProperty(dbName)) {
148-
return getProperty(dbName).getPath();
149-
}
150-
return null;
151-
}
152-
153-
private static boolean hasProperty(String dbName) {
154-
if (propertyMap != null) {
155-
return propertyMap.containsKey(dbName);
156-
}
157-
return false;
158-
}
159-
160-
private static Property getProperty(String dbName) {
161-
return propertyMap.get(dbName);
162-
}
163-
164-
public static String getOutputDirectory() {
165-
if (!outputDirectoryConfig.equals("") && !outputDirectoryConfig.endsWith(File.separator)) {
166-
return outputDirectoryConfig + File.separator;
167-
}
168-
return outputDirectoryConfig;
169-
}
102+
private static String zenTokenId;
170103

171-
public static Options getOptionsByDbName(String dbName) {
172-
if (hasProperty(dbName)) {
173-
return getProperty(dbName).getDbOptions();
174-
}
175-
return createDefaultDbOptions();
176-
}
104+
@Getter
105+
@Setter
106+
private static Set<String> actuatorSet;
177107

178-
private static Options createDefaultDbOptions() {
179-
Options dbOptions = new Options();
108+
@Getter
109+
@Setter
110+
private static boolean debug;
180111

181-
dbOptions.createIfMissing(true);
182-
dbOptions.paranoidChecks(true);
183-
dbOptions.verifyChecksums(true);
112+
@Getter
113+
@Setter
114+
private static boolean solidityNode;
184115

185-
dbOptions.compressionType(DEFAULT_COMPRESSION_TYPE);
186-
dbOptions.blockSize(DEFAULT_BLOCK_SIZE);
187-
dbOptions.writeBufferSize(DEFAULT_WRITE_BUFFER_SIZE);
188-
dbOptions.cacheSize(DEFAULT_CACHE_SIZE);
189-
dbOptions.maxOpenFiles(DEFAULT_MAX_OPEN_FILES);
190116

191-
return dbOptions;
192-
}
117+
@Getter
118+
@Setter
119+
private static long proposalExpireTime; // (ms)
193120
}

0 commit comments

Comments
 (0)