Skip to content

Commit effb2ea

Browse files
authored
Merge pull request tronprotocol#4 from tronprotocol/develop
synchronize code
2 parents 300ae8a + eb5f20b commit effb2ea

File tree

53 files changed

+501
-600
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+501
-600
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.tron.core.actuator;
22

3-
import static org.tron.core.config.args.Parameter.ChainConstant.TRANSFER_FEE;
3+
import static org.tron.core.config.Parameter.ChainConstant.TRANSFER_FEE;
44

55
import com.google.protobuf.ByteString;
66
import com.google.protobuf.InvalidProtocolBufferException;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import static org.tron.core.actuator.ActuatorConstant.ACCOUNT_EXCEPTION_STR;
44
import static org.tron.core.actuator.ActuatorConstant.NOT_EXIST_STR;
55
import static org.tron.core.actuator.ActuatorConstant.WITNESS_EXCEPTION_STR;
6-
import static org.tron.core.config.args.Parameter.ChainConstant.MAX_VOTE_NUMBER;
6+
import static org.tron.core.config.Parameter.ChainConstant.MAX_VOTE_NUMBER;
77

88
import com.google.common.math.LongMath;
99
import com.google.protobuf.ByteString;

actuator/src/main/java/org/tron/core/utils/ProposalUtil.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.tron.core.utils;
22

33
import org.tron.common.utils.ForkUtils;
4-
import org.tron.core.config.args.Parameter.ForkBlockVersionConsts;
5-
import org.tron.core.config.args.Parameter.ForkBlockVersionEnum;
4+
import org.tron.core.config.Parameter.ForkBlockVersionConsts;
5+
import org.tron.core.config.Parameter.ForkBlockVersionEnum;
66
import org.tron.core.exception.ContractValidateException;
77
import org.tron.core.store.DynamicPropertiesStore;
88

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.tron.core.vm.repository;
22

33
import static java.lang.Long.max;
4-
import static org.tron.core.config.args.Parameter.ChainConstant.BLOCK_PRODUCED_INTERVAL;
4+
import static org.tron.core.config.Parameter.ChainConstant.BLOCK_PRODUCED_INTERVAL;
55

66
import com.google.protobuf.ByteString;
77
import java.util.HashMap;

chainbase/src/main/java/org/tron/common/utils/DBConfig.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,8 @@ public class DBConfig {
117117
@Getter
118118
@Setter
119119
private static long proposalExpireTime; // (ms)
120+
121+
@Getter
122+
@Setter
123+
private static String transactionHistoreSwitch;
120124
}

chainbase/src/main/java/org/tron/common/utils/ForkUtils.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import lombok.Getter;
66
import lombok.Setter;
77
import lombok.extern.slf4j.Slf4j;
8-
import org.tron.core.config.args.Parameter.ForkBlockVersionConsts;
9-
import org.tron.core.config.args.Parameter.ForkBlockVersionEnum;
8+
import org.tron.core.config.Parameter.ForkBlockVersionConsts;
9+
import org.tron.core.config.Parameter.ForkBlockVersionEnum;
1010
import org.tron.core.store.DynamicPropertiesStore;
1111
import org.tron.core.store.WitnessStore;
1212

@@ -96,7 +96,6 @@ protected void upgrade(int version, int slotSize) {
9696
}
9797
}
9898

99-
10099
public synchronized void reset() {
101100
for (ForkBlockVersionEnum versionEnum : ForkBlockVersionEnum.values()) {
102101
int versionValue = versionEnum.getValue();

chainbase/src/main/java/org/tron/core/ChainBaseManager.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import lombok.Getter;
44
import lombok.Setter;
5+
import lombok.extern.slf4j.Slf4j;
56
import org.springframework.beans.factory.annotation.Autowired;
67
import org.springframework.stereotype.Component;
78
import org.tron.common.zksnark.MerkleContainer;
89
import org.tron.core.db.BlockIndexStore;
910
import org.tron.core.db.BlockStore;
1011
import org.tron.core.db.DelegationService;
1112
import org.tron.core.db.KhaosDatabase;
13+
import org.tron.core.db2.core.ITronChainBase;
1214
import org.tron.core.store.AccountIdIndexStore;
1315
import org.tron.core.store.AccountIndexStore;
1416
import org.tron.core.store.AccountStore;
@@ -31,6 +33,7 @@
3133
import org.tron.core.store.WitnessStore;
3234
import org.tron.core.store.ZKProofStore;
3335

36+
@Slf4j(topic = "DB")
3437
@Component
3538
public class ChainBaseManager {
3639

@@ -119,4 +122,39 @@ public class ChainBaseManager {
119122
@Getter
120123
private KhaosDatabase khaosDb;
121124

125+
public void closeOneStore(ITronChainBase database) {
126+
logger.info("******** begin to close " + database.getName() + " ********");
127+
try {
128+
database.close();
129+
} catch (Exception e) {
130+
logger.info("failed to close " + database.getName() + ". " + e);
131+
} finally {
132+
logger.info("******** end to close " + database.getName() + " ********");
133+
}
134+
}
135+
136+
public void closeAllStore() {
137+
closeOneStore(accountStore);
138+
closeOneStore(blockStore);
139+
closeOneStore(blockIndexStore);
140+
closeOneStore(accountIdIndexStore);
141+
closeOneStore(accountIndexStore);
142+
closeOneStore(witnessScheduleStore);
143+
closeOneStore(assetIssueStore);
144+
closeOneStore(dynamicPropertiesStore);
145+
closeOneStore(codeStore);
146+
closeOneStore(contractStore);
147+
closeOneStore(storageRowStore);
148+
closeOneStore(exchangeStore);
149+
closeOneStore(proposalStore);
150+
closeOneStore(votesStore);
151+
closeOneStore(delegatedResourceStore);
152+
closeOneStore(delegatedResourceAccountIndexStore);
153+
closeOneStore(assetIssueV2Store);
154+
closeOneStore(exchangeV2Store);
155+
closeOneStore(nullifierStore);
156+
closeOneStore(merkleTreeStore);
157+
closeOneStore(delegationStore);
158+
closeOneStore(proofStore);
159+
}
122160
}

chainbase/src/main/java/org/tron/core/capsule/ProposalCapsule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.tron.core.capsule;
22

3-
import static org.tron.core.config.args.Parameter.ChainConstant.MAX_ACTIVE_WITNESS_NUM;
3+
import static org.tron.core.config.Parameter.ChainConstant.MAX_ACTIVE_WITNESS_NUM;
44

55
import com.google.common.collect.Lists;
66
import com.google.protobuf.ByteString;

chainbase/src/main/java/org/tron/core/capsule/ReceiptCapsule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.tron.common.utils.Sha256Hash;
1010
import org.tron.common.utils.StringUtil;
1111
import org.tron.core.Constant;
12-
import org.tron.core.config.args.Parameter.ForkBlockVersionEnum;
12+
import org.tron.core.config.Parameter.ForkBlockVersionEnum;
1313
import org.tron.core.db.EnergyProcessor;
1414
import org.tron.core.exception.BalanceInsufficientException;
1515
import org.tron.core.store.AccountStore;
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
package org.tron.core.capsule;
2+
3+
import com.google.protobuf.ByteString;
4+
import com.google.protobuf.InvalidProtocolBufferException;
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import lombok.extern.slf4j.Slf4j;
8+
import org.tron.core.exception.BadItemException;
9+
import org.tron.protos.Protocol.TransactionInfo;
10+
import org.tron.protos.Protocol.TransactionInfo.Log;
11+
import org.tron.protos.Protocol.TransactionInfo.code;
12+
13+
@Slf4j(topic = "capsule")
14+
public class TransactionInfoCapsule implements ProtoCapsule<TransactionInfo> {
15+
16+
private TransactionInfo transactionInfo;
17+
18+
/**
19+
* constructor TransactionCapsule.
20+
*/
21+
public TransactionInfoCapsule(TransactionInfo trxRet) {
22+
this.transactionInfo = trxRet;
23+
}
24+
25+
public TransactionInfoCapsule(byte[] data) throws BadItemException {
26+
try {
27+
this.transactionInfo = TransactionInfo.parseFrom(data);
28+
} catch (InvalidProtocolBufferException e) {
29+
throw new BadItemException("TransactionInfoCapsule proto data parse exception");
30+
}
31+
}
32+
33+
public TransactionInfoCapsule() {
34+
this.transactionInfo = TransactionInfo.newBuilder().build();
35+
}
36+
37+
public long getFee() {
38+
return transactionInfo.getFee();
39+
}
40+
41+
public void setFee(long fee) {
42+
this.transactionInfo = this.transactionInfo.toBuilder().setFee(fee).build();
43+
}
44+
45+
public byte[] getId() {
46+
return transactionInfo.getId().toByteArray();
47+
}
48+
49+
public void setId(byte[] id) {
50+
this.transactionInfo = this.transactionInfo.toBuilder()
51+
.setId(ByteString.copyFrom(id)).build();
52+
}
53+
54+
public long getUnfreezeAmount() {
55+
return transactionInfo.getUnfreezeAmount();
56+
}
57+
58+
public void setUnfreezeAmount(long amount) {
59+
this.transactionInfo = this.transactionInfo.toBuilder().setUnfreezeAmount(amount).build();
60+
}
61+
62+
public long getWithdrawAmount() {
63+
return transactionInfo.getWithdrawAmount();
64+
}
65+
66+
public void setWithdrawAmount(long amount) {
67+
this.transactionInfo = this.transactionInfo.toBuilder().setWithdrawAmount(amount).build();
68+
}
69+
70+
public void setResult(code result) {
71+
this.transactionInfo = this.transactionInfo.toBuilder().setResult(result).build();
72+
}
73+
74+
public void setResMessage(String message) {
75+
this.transactionInfo = this.transactionInfo.toBuilder()
76+
.setResMessage(ByteString.copyFromUtf8(message)).build();
77+
}
78+
79+
public void addFee(long fee) {
80+
this.transactionInfo = this.transactionInfo.toBuilder()
81+
.setFee(this.transactionInfo.getFee() + fee).build();
82+
}
83+
84+
public long getBlockNumber() {
85+
return transactionInfo.getBlockNumber();
86+
}
87+
88+
public void setBlockNumber(long num) {
89+
this.transactionInfo = this.transactionInfo.toBuilder().setBlockNumber(num)
90+
.build();
91+
}
92+
93+
public long getBlockTimeStamp() {
94+
return transactionInfo.getBlockTimeStamp();
95+
}
96+
97+
public void setBlockTimeStamp(long time) {
98+
this.transactionInfo = this.transactionInfo.toBuilder().setBlockTimeStamp(time)
99+
.build();
100+
}
101+
102+
public void setContractResult(byte[] ret) {
103+
this.transactionInfo = this.transactionInfo.toBuilder()
104+
.addContractResult(ByteString.copyFrom(ret))
105+
.build();
106+
}
107+
108+
public void setContractAddress(byte[] contractAddress) {
109+
this.transactionInfo = this.transactionInfo.toBuilder()
110+
.setContractAddress(ByteString.copyFrom(contractAddress))
111+
.build();
112+
}
113+
114+
public void setReceipt(ReceiptCapsule receipt) {
115+
this.transactionInfo = this.transactionInfo.toBuilder()
116+
.setReceipt(receipt.getReceipt())
117+
.build();
118+
}
119+
120+
public void addAllLog(List<Log> logs) {
121+
this.transactionInfo = this.transactionInfo.toBuilder()
122+
.addAllLog(logs)
123+
.build();
124+
}
125+
126+
@Override
127+
public byte[] getData() {
128+
return this.transactionInfo.toByteArray();
129+
}
130+
131+
@Override
132+
public TransactionInfo getInstance() {
133+
return this.transactionInfo;
134+
}
135+
}

chainbase/src/main/java/org/tron/core/config/Parameter.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
package org.tron.core.config;
22

3+
import lombok.Getter;
4+
35
public class Parameter {
46

57
public class ChainConstant {
6-
8+
public static final int MAX_ACTIVE_WITNESS_NUM = 27;
9+
public static final long TRANSFER_FEE = 0; // free
10+
public static final int BLOCK_PRODUCED_INTERVAL = 3000; //ms,produce block period, must be divisible by 60. millisecond
11+
public static final int MAX_VOTE_NUMBER = 30;
712
public static final int WITNESS_STANDBY_LENGTH = 127;
813
public static final int SOLIDIFIED_THRESHOLD = 70; // 70%
914
public static final int PRIVATE_KEY_LENGTH = 64;
10-
public static final int MAX_ACTIVE_WITNESS_NUM = 27;
1115
public static final int BLOCK_SIZE = 2_000_000;
1216
public static final long CLOCK_MAX_DELAY = 3600000; // 3600 * 1000 ms
1317
public static final int BLOCK_PRODUCED_TIME_OUT = 50; // 50%
@@ -65,4 +69,27 @@ public class AdaptiveResourceLimitConstants {
6569
public static final int PERIODS_MS = 60_000;
6670
public static final int LIMIT_MULTIPLIER = 1000; //s
6771
}
72+
73+
public enum ForkBlockVersionEnum {
74+
ENERGY_LIMIT(5),
75+
VERSION_3_2_2(6),
76+
VERSION_3_5(7),
77+
VERSION_3_6(8),
78+
VERSION_3_6_5(9),
79+
VERSION_4_0(15);
80+
81+
@Getter
82+
private int value;
83+
84+
ForkBlockVersionEnum(int value) {
85+
this.value = value;
86+
}
87+
}
88+
89+
@Deprecated
90+
public class ForkBlockVersionConsts {
91+
public static final int START_NEW_TRANSACTION = 4;
92+
public static final int ENERGY_LIMIT = 5;
93+
}
94+
6895
}

chainbase/src/main/java/org/tron/core/config/args/Parameter.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.tron.core.db;
22

33
import static java.lang.Long.max;
4-
import static org.tron.core.config.args.Parameter.ChainConstant.BLOCK_PRODUCED_INTERVAL;
4+
import static org.tron.core.config.Parameter.ChainConstant.BLOCK_PRODUCED_INTERVAL;
55

66
import lombok.extern.slf4j.Slf4j;
77
import org.tron.common.utils.DBConfig;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.tron.core.db;
22

3-
import static org.tron.core.config.args.Parameter.ChainConstant.BLOCK_PRODUCED_INTERVAL;
3+
import static org.tron.core.config.Parameter.ChainConstant.BLOCK_PRODUCED_INTERVAL;
44

55
import org.tron.common.utils.Commons;
66
import org.tron.core.capsule.AccountCapsule;

framework/src/main/java/org/tron/core/db/TransactionStore.java renamed to chainbase/src/main/java/org/tron/core/db/TransactionStore.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,4 @@ public TransactionCapsule getUnchecked(byte[] key) {
109109
public long getTotalTransactions() {
110110
return 0; //Streams.stream(iterator()).count();
111111
}
112-
113-
@Override
114-
public void delete(byte[] key) {
115-
super.delete(key);
116-
}
117112
}

0 commit comments

Comments
 (0)