Skip to content

Commit ea2b970

Browse files
committed
merge develop
1 parent fa1e580 commit ea2b970

File tree

17 files changed

+328
-656
lines changed

17 files changed

+328
-656
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;
@@ -165,7 +166,7 @@ public boolean validate() throws ContractValidateException {
165166
long minFrozenTime = dynamicStore.getMinFrozenTime();
166167
long maxFrozenTime = dynamicStore.getMaxFrozenTime();
167168

168-
boolean needCheckFrozeTime = DBConfig.getCheckFrozenTime() == 1;//for test
169+
boolean needCheckFrozeTime = VMConfig.getCheckFrozenTime() == 1;//for test
169170
if (needCheckFrozeTime && !(frozenDuration >= minFrozenTime
170171
&& frozenDuration <= maxFrozenTime)) {
171172
throw new ContractValidateException(

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.tron.core.exception.ContractExeException;
1818
import org.tron.core.exception.ContractValidateException;
1919
import org.tron.core.utils.ProposalUtil;
20+
import org.tron.core.vm.config.VMConfig;
2021
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
2122
import org.tron.protos.Protocol.Transaction.Result.code;
2223
import org.tron.protos.contract.ProposalContract.ProposalCreateContract;
@@ -53,7 +54,7 @@ public boolean execute(Object result) throws ContractExeException {
5354

5455
long currentMaintenanceTime =
5556
chainBaseManager.getDynamicPropertiesStore().getNextMaintenanceTime();
56-
long now3 = now + DBConfig.getProposalExpireTime();
57+
long now3 = now + VMConfig.getProposalExpireTime();
5758
long round = (now3 - currentMaintenanceTime) / maintenanceTimeInterval;
5859
long expirationTime =
5960
currentMaintenanceTime + (round + 1) * maintenanceTimeInterval;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.tron.core.store.NullifierStore;
3636
import org.tron.core.store.ZKProofStore;
3737
import org.tron.core.utils.TransactionUtil;
38+
import org.tron.core.vm.config.VMConfig;
3839
import org.tron.protos.Protocol.AccountType;
3940
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
4041
import org.tron.protos.Protocol.Transaction.Result.code;
@@ -51,7 +52,7 @@ public class ShieldedTransferActuator extends AbstractActuator {
5152

5253
public ShieldedTransferActuator() {
5354
super(ContractType.ShieldedTransferContract, ShieldedTransferContract.class);
54-
zenTokenId = DBConfig.getZenTokenId();
55+
zenTokenId = VMConfig.getZenTokenId();
5556
}
5657

5758
@Override

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: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -615,9 +615,9 @@ private double getCpuLimitInUsRatio() {
615615
} else {
616616
// self witness or other witness or fullnode verifies block
617617
if (trx.getRet(0).getContractRet() == contractResult.OUT_OF_TIME) {
618-
cpuLimitRatio = DBConfig.getMinTimeRatio();
618+
cpuLimitRatio = VMConfig.getMinTimeRatio();
619619
} else {
620-
cpuLimitRatio = DBConfig.getMaxTimeRatio();
620+
cpuLimitRatio = VMConfig.getMaxTimeRatio();
621621
}
622622
}
623623
} else {

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

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,41 @@
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 boolean debug;
41+
42+
@Getter
43+
@Setter
44+
private static boolean solidityNode;
45+
46+
@Getter
47+
@Setter
48+
private static String zenTokenId;
49+
50+
@Getter
51+
@Setter
52+
private static int checkFrozenTime; // for test only
53+
54+
@Getter
55+
@Setter
56+
private static long proposalExpireTime; // (ms)
3057

3158
public static final int MAX_FEE_LIMIT = 1_000_000_000; //1000 trx
3259

@@ -104,8 +131,6 @@ public static boolean allowTvmSolidity059() {
104131
}
105132

106133
private static class SystemPropertiesInstance {
107-
108134
private static final VMConfig INSTANCE = new VMConfig();
109135
}
110-
111136
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -962,18 +962,18 @@ public void spendEnergy(long energyValue, String opName) {
962962

963963
public void checkCPUTimeLimit(String opName) {
964964

965-
if (DBConfig.isDebug()) {
965+
if (VMConfig.isDebug()) {
966966
return;
967967
}
968-
if (DBConfig.isSolidityNode()) {
968+
if (VMConfig.isSolidityNode()) {
969969
return;
970970
}
971971
long vmNowInUs = System.nanoTime() / 1000;
972972
if (vmNowInUs > getVmShouldEndInUs()) {
973973
logger.info(
974974
"minTimeRatio: {}, maxTimeRatio: {}, vm should end time in us: {}, "
975975
+ "vm now time in us: {}, vm start time in us: {}",
976-
DBConfig.getMinTimeRatio(), DBConfig.getMaxTimeRatio(),
976+
VMConfig.getMinTimeRatio(), VMConfig.getMaxTimeRatio(),
977977
getVmShouldEndInUs(), vmNowInUs, getVmStartInUs());
978978
throw Exception.notEnoughTime(opName);
979979
}

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: 0 additions & 90 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
@@ -130,64 +100,4 @@ public class DBConfig {
130100
@Getter
131101
@Setter
132102
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-
}
170-
171-
public static Options getOptionsByDbName(String dbName) {
172-
if (hasProperty(dbName)) {
173-
return getProperty(dbName).getDbOptions();
174-
}
175-
return createDefaultDbOptions();
176-
}
177-
178-
private static Options createDefaultDbOptions() {
179-
Options dbOptions = new Options();
180-
181-
dbOptions.createIfMissing(true);
182-
dbOptions.paranoidChecks(true);
183-
dbOptions.verifyChecksums(true);
184-
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);
190-
191-
return dbOptions;
192-
}
193103
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package org.tron.common.utils;
2+
3+
import static org.tron.common.utils.DBConfig.ENERGY_LIMIT_HARD_FORK;
4+
5+
import java.io.File;
6+
import org.apache.commons.lang3.StringUtils;
7+
import org.iq80.leveldb.CompressionType;
8+
import org.iq80.leveldb.Options;
9+
10+
11+
public class StorageUtils {
12+
private static final CompressionType DEFAULT_COMPRESSION_TYPE = CompressionType.SNAPPY;
13+
private static final int DEFAULT_BLOCK_SIZE = 4 * 1024;
14+
private static final int DEFAULT_WRITE_BUFFER_SIZE = 10 * 1024 * 1024;
15+
private static final long DEFAULT_CACHE_SIZE = 10 * 1024 * 1024L;
16+
private static final int DEFAULT_MAX_OPEN_FILES = 100;
17+
18+
public static boolean getEnergyLimitHardFork() {
19+
return ENERGY_LIMIT_HARD_FORK;
20+
}
21+
22+
public static String getOutputDirectoryByDbName(String dbName) {
23+
String path = getPathByDbName(dbName);
24+
if (!StringUtils.isBlank(path)) {
25+
return path;
26+
}
27+
return getOutputDirectory();
28+
}
29+
30+
public static String getPathByDbName(String dbName) {
31+
if (hasProperty(dbName)) {
32+
return getProperty(dbName).getPath();
33+
}
34+
return null;
35+
}
36+
37+
private static boolean hasProperty(String dbName) {
38+
if (DBConfig.getPropertyMap() != null) {
39+
return DBConfig.getPropertyMap().containsKey(dbName);
40+
}
41+
return false;
42+
}
43+
44+
private static Property getProperty(String dbName) {
45+
return DBConfig.getPropertyMap().get(dbName);
46+
}
47+
48+
public static String getOutputDirectory() {
49+
if (!DBConfig.getOutputDirectoryConfig().equals("") && !DBConfig.getOutputDirectoryConfig().endsWith(File.separator)) {
50+
return DBConfig.getOutputDirectoryConfig() + File.separator;
51+
}
52+
return DBConfig.getOutputDirectoryConfig();
53+
}
54+
55+
public static Options getOptionsByDbName(String dbName) {
56+
if (hasProperty(dbName)) {
57+
return getProperty(dbName).getDbOptions();
58+
}
59+
return createDefaultDbOptions();
60+
}
61+
62+
private static Options createDefaultDbOptions() {
63+
Options dbOptions = new Options();
64+
65+
dbOptions.createIfMissing(true);
66+
dbOptions.paranoidChecks(true);
67+
dbOptions.verifyChecksums(true);
68+
69+
dbOptions.compressionType(DEFAULT_COMPRESSION_TYPE);
70+
dbOptions.blockSize(DEFAULT_BLOCK_SIZE);
71+
dbOptions.writeBufferSize(DEFAULT_WRITE_BUFFER_SIZE);
72+
dbOptions.cacheSize(DEFAULT_CACHE_SIZE);
73+
dbOptions.maxOpenFiles(DEFAULT_MAX_OPEN_FILES);
74+
75+
return dbOptions;
76+
}
77+
}

chainbase/src/main/java/org/tron/core/db/AbstractRevokingStore.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.tron.common.utils.Commons;
2828
import org.tron.common.utils.DBConfig;
2929
import org.tron.common.utils.FileUtil;
30+
import org.tron.common.utils.StorageUtils;
3031
import org.tron.core.db.common.SourceInter;
3132
import org.tron.core.db2.ISession;
3233
import org.tron.core.db2.common.IRevokingDB;
@@ -80,7 +81,7 @@ public void setMode(boolean mode) {
8081
@Override
8182
public synchronized void check() {
8283
LevelDbDataSourceImpl check =
83-
new LevelDbDataSourceImpl(DBConfig.getOutputDirectoryByDbName("tmp"), "tmp", new Options(),
84+
new LevelDbDataSourceImpl(StorageUtils.getOutputDirectoryByDbName("tmp"), "tmp", new Options(),
8485
new WriteOptions());
8586
check.initDB();
8687

0 commit comments

Comments
 (0)