Skip to content

Commit 14abdd3

Browse files
modify
1 parent 140847f commit 14abdd3

24 files changed

+1276
-163
lines changed

TransactionConfiguration.xml

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
<property name="end" value="99"/>
2424
<property name="source">
2525
<list>
26+
<ref bean="multiValidateSignContractCreator3"/>
2627
<ref bean="transferTRC20"/>
2728
<ref bean="MultiSignTriggerContract"/>
2829
<ref bean="transferToken"/>
@@ -31,48 +32,59 @@
3132
<ref bean="freezeNet"/>
3233
<ref bean="niceTransferAssetTransaction"/>
3334
<ref bean="niceTransferTransaction"/>
35+
<ref bean="multiValidateSignContractCreator"/>
3436
</list>
3537
</property>
3638
</bean>
3739

40+
<bean id="multiValidateSignContractCreator3" class="org.tron.stresstest.dispatch.creator.contract.multiValidateSignContractCreator3">
41+
<property name="name" value="multiValidateSignContractCreator3"/>
42+
<property name="begin" value="0"/>
43+
<property name="end" value="0"/>
44+
</bean>
3845
<bean id="transferTRC20" class="org.tron.stresstest.dispatch.creator.contract.TransferTrc20Creator">
3946
<property name="name" value="transferTRC20"/>
40-
<property name="begin" value="0"/>
41-
<property name="end" value="24"/>
47+
<property name="begin" value="1"/>
48+
<property name="end" value="25"/>
4249
</bean>
4350
<bean id="MultiSignTriggerContract" class="org.tron.stresstest.dispatch.creator.MultiSign.MultiSignTriggerContract">
4451
<property name="name" value="MultiSignTriggerContract"/>
45-
<property name="begin" value="25"/>
46-
<property name="end" value="34"/>
52+
<property name="begin" value="26"/>
53+
<property name="end" value="35"/>
4754
</bean>
4855
<bean id="transferToken" class="org.tron.stresstest.dispatch.creator.contract.TransferTokenCreator">
4956
<property name="name" value="transferToken"/>
50-
<property name="begin" value="35"/>
51-
<property name="end" value="74"/>
57+
<property name="begin" value="36"/>
58+
<property name="end" value="73"/>
5259
</bean>
5360
<bean id="freezeEnergy" class="org.tron.stresstest.dispatch.creator.freeze.FreezeEnergyCreator">
5461
<property name="name" value="freezeEnergy"/>
55-
<property name="begin" value="75"/>
56-
<property name="end" value="78"/>
62+
<property name="begin" value="74"/>
63+
<property name="end" value="77"/>
5764
</bean>
5865
<bean id="MultiSignSendCoin" class="org.tron.stresstest.dispatch.creator.MultiSign.MultiSignSendCoin">
5966
<property name="name" value="MultiSignSendCoin"/>
60-
<property name="begin" value="79"/>
61-
<property name="end" value="80"/>
67+
<property name="begin" value="78"/>
68+
<property name="end" value="79"/>
6269
</bean>
6370
<bean id="freezeNet" class="org.tron.stresstest.dispatch.creator.freeze.FreezeNetCreator">
6471
<property name="name" value="freezeNet"/>
65-
<property name="begin" value="81"/>
66-
<property name="end" value="84"/>
72+
<property name="begin" value="80"/>
73+
<property name="end" value="83"/>
6774
</bean>
6875
<bean id="niceTransferAssetTransaction" class="org.tron.stresstest.dispatch.creator.asset.NiceTransferAssetTransactionCreator">
6976
<property name="name" value="niceTransferAssetTransaction"/>
70-
<property name="begin" value="85"/>
71-
<property name="end" value="89"/>
77+
<property name="begin" value="84"/>
78+
<property name="end" value="88"/>
7279
</bean>
7380
<bean id="niceTransferTransaction" class="org.tron.stresstest.dispatch.creator.transfer.NiceTransferTransactionCreator">
7481
<property name="name" value="niceTransferTransaction"/>
75-
<property name="begin" value="90"/>
82+
<property name="begin" value="89"/>
83+
<property name="end" value="98"/>
84+
</bean>
85+
<bean id="multiValidateSignContractCreator" class="org.tron.stresstest.dispatch.creator.contract.multiValidateSignContractCreator">
86+
<property name="name" value="multiValidateSignContractCreator"/>
87+
<property name="begin" value="99"/>
7688
<property name="end" value="99"/>
7789
</bean>
7890

src/main/java/org/tron/common/utils/TransactionUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public static Transaction sign(Transaction transaction, ECKey myKey) {
151151
//
152152
// transaction = transactionBuilderSigned.build();
153153
// return transaction;
154-
byte[] chainId = decodeFromBase58Check("TUmGh8c2VcpfmJ7rBYq1FU9hneXhz3P8z3");
154+
byte[] chainId = decodeFromBase58Check("TYYrjz9W9ii98zMEF7KoL24KhGRXqWpjEJ");
155155
Transaction.Builder transactionBuilderSigned = transaction.toBuilder();
156156
byte[] hash = Sha256Hash.hash(transaction.getRawData().toByteArray());
157157

src/main/java/org/tron/core/net/node/NodeImpl.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
import com.google.common.collect.Iterables;
1111
import com.google.common.collect.Lists;
1212
import com.google.common.util.concurrent.ThreadFactoryBuilder;
13-
import io.grpc.ManagedChannel;
14-
import io.grpc.ManagedChannelBuilder;
1513
import java.util.Collection;
1614
import java.util.Comparator;
1715
import java.util.Deque;
@@ -38,8 +36,6 @@
3836
import org.apache.commons.collections4.CollectionUtils;
3937
import org.springframework.beans.factory.annotation.Autowired;
4038
import org.springframework.stereotype.Component;
41-
import org.tron.api.GrpcAPI;
42-
import org.tron.api.WalletGrpc;
4339
import org.tron.common.overlay.discover.node.statistics.MessageCount;
4440
import org.tron.common.overlay.message.Message;
4541
import org.tron.common.overlay.server.Channel.TronState;
@@ -78,7 +74,6 @@
7874
import org.tron.core.net.peer.PeerConnectionDelegate;
7975
import org.tron.core.services.WitnessProductBlockService;
8076
import org.tron.protos.Protocol;
81-
import org.tron.protos.Protocol.Block;
8277
import org.tron.protos.Protocol.Inventory.InventoryType;
8378
import org.tron.protos.Protocol.ReasonCode;
8479

@@ -532,7 +527,7 @@ private void consumerAdvObjToSpread() {
532527
}
533528
logger.info("SPREAD advObjToSpread :{} , peer size: {}", advObjToSpread.size(),
534529
getActivePeer().size());
535-
if (counter1 == 0) {
530+
/*if (counter1 == 0) {
536531
counter1 = 1;
537532
ManagedChannel channelFull = null;
538533
WalletGrpc.WalletBlockingStub blockingStubFull = null;
@@ -550,7 +545,7 @@ private void consumerAdvObjToSpread() {
550545
if (channelFull != null) {
551546
channelFull.shutdown();
552547
}
553-
}
548+
}*/
554549
ConcurrentHashMap<Sha256Hash, InventoryType> spread = new ConcurrentHashMap<>();
555550
AtomicInteger invCount = new AtomicInteger(0);
556551
synchronized (advObjToSpread) {
@@ -569,7 +564,7 @@ private void consumerAdvObjToSpread() {
569564

570565
if (advObjToSpread.size() < spread.size()) {
571566
logger.info("Stress task end.");
572-
System.exit(0);
567+
//System.exit(0);
573568

574569
/* ManagedChannel channelFull = null;
575570
WalletGrpc.WalletBlockingStub blockingStubFull = null;

src/main/java/org/tron/program/FullNode.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import org.tron.common.overlay.message.Message;
2323
import org.tron.common.utils.Sha256Hash;
2424
import org.tron.core.Constant;
25+
import org.tron.core.Wallet;
26+
import org.tron.core.capsule.TransactionCapsule;
2527
import org.tron.core.config.DefaultConfig;
2628
import org.tron.core.config.args.Args;
2729
import org.tron.core.net.message.TransactionMessage;
@@ -37,12 +39,14 @@
3739

3840
@Slf4j
3941
public class FullNode {
40-
private static ExecutorService saveTransactionIDPool = Executors.newFixedThreadPool(1, new ThreadFactory() {
41-
@Override
42-
public Thread newThread(Runnable r) {
43-
return new Thread(r, "save-transaction-id");
44-
}
45-
});
42+
43+
private static ExecutorService saveTransactionIDPool = Executors
44+
.newFixedThreadPool(1, new ThreadFactory() {
45+
@Override
46+
public Thread newThread(Runnable r) {
47+
return new Thread(r, "save-transaction-id");
48+
}
49+
});
4650

4751
private static ConcurrentLinkedQueue<Transaction> transactionIDs = new ConcurrentLinkedQueue<>();
4852
private static volatile boolean isFinishSend = false;
@@ -55,7 +59,9 @@ public static void main(String[] args) throws InterruptedException, FileNotFound
5559
Args.setParam(args, Constant.TESTNET_CONF);
5660
Args cfgArgs = Args.getInstance();
5761

58-
System.out.println("QA " + cfgArgs.isGenerate() + "---" + cfgArgs.getStressCount() + "---" + cfgArgs.getStressTps());
62+
System.out.println(
63+
"QA " + cfgArgs.isGenerate() + "---" + cfgArgs.getStressCount() + "---" + cfgArgs
64+
.getStressTps());
5965

6066
ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) LoggerFactory
6167
.getLogger(Logger.ROOT_LOGGER_NAME);
@@ -87,10 +93,10 @@ public static void main(String[] args) throws InterruptedException, FileNotFound
8793

8894
if (cfgArgs.isReplayGenerate()) {
8995
logger.info("Collect mainnet flow is true");
90-
new ReplayTransactionGenerator(context, cfgArgs.getReplayStartNumber(),cfgArgs.getReplayEndNumber()).start();
96+
new ReplayTransactionGenerator(context, cfgArgs.getReplayStartNumber(),
97+
cfgArgs.getReplayEndNumber()).start();
9198
}
9299

93-
94100
Application appT = ApplicationFactory.create(context);
95101
shutdown(appT);
96102

@@ -150,7 +156,10 @@ public static void main(String[] args) throws InterruptedException, FileNotFound
150156
try {
151157

152158
Sha256Hash id = getID(transaction);
153-
bufferedWriter.write(id.toString());
159+
//bufferedWriter.write(id.toString());
160+
bufferedWriter.write(id.toString() + "," + Wallet
161+
.encode58Check(
162+
TransactionCapsule.getOwner(transaction.getRawData().getContract(0))));
154163
bufferedWriter.newLine();
155164
if (count % 1000 == 0) {
156165
bufferedWriter.flush();

src/main/java/org/tron/stresstest/dispatch/AbstractTransactionCreator.java

Lines changed: 54 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import com.google.protobuf.Any;
66
import com.google.protobuf.ByteString;
77
import java.math.BigInteger;
8+
import java.util.Arrays;
89
import java.util.HashMap;
9-
import java.util.List;
1010
import java.util.Objects;
1111
import java.util.concurrent.atomic.AtomicLong;
1212
import lombok.Getter;
@@ -23,7 +23,6 @@
2323
import org.tron.protos.Contract.FreezeBalanceContract;
2424
import org.tron.protos.Contract.UnfreezeBalanceContract;
2525
import org.tron.protos.Protocol.Transaction;
26-
import org.tron.protos.Protocol.Transaction.Contract;
2726
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
2827
import org.tron.stresstest.dispatch.strategy.Level2Strategy;
2928

@@ -74,8 +73,20 @@ public abstract class AbstractTransactionCreator extends Level2Strategy {
7473
.getString("address.commonContractAddress5");
7574
protected String commonContractAddress6 = Configuration.getByPath("stress.conf")
7675
.getString("address.commonContractAddress6");
76+
protected String commonContractAddress7 = Configuration.getByPath("stress.conf")
77+
.getString("address.commonContractAddress7");
78+
protected String commonContractAddress8 = Configuration.getByPath("stress.conf")
79+
.getString("address.commonContractAddress8");
80+
protected String commonContractAddress9 = Configuration.getByPath("stress.conf")
81+
.getString("address.commonContractAddress9");
82+
protected String commonContractAddress10 = Configuration.getByPath("stress.conf")
83+
.getString("address.commonContractAddress10");
84+
protected String commonContractAddress11 = Configuration.getByPath("stress.conf")
85+
.getString("address.commonContractAddress11");
7786
protected String SideGatewayContractAddress = Configuration.getByPath("stress.conf")
7887
.getString("address.SideGatewayContractAddress");
88+
protected String MainGatewayContractAddress = Configuration.getByPath("stress.conf")
89+
.getString("address.MainGatewayContractAddress");
7990
protected String SideTRC20ContractContractAddress = Configuration.getByPath("stress.conf")
8091
.getString("address.SideTRC20ContractContractAddress");
8192

@@ -93,7 +104,7 @@ public abstract class AbstractTransactionCreator extends Level2Strategy {
93104
long time = System.currentTimeMillis();
94105
AtomicLong count = new AtomicLong();
95106

96-
public Transaction createTransaction(com.google.protobuf.Message message,
107+
public synchronized Transaction createTransaction(com.google.protobuf.Message message,
97108
ContractType contractType) {
98109
Transaction.raw.Builder transactionBuilder = Transaction.raw.newBuilder().addContract(
99110
Transaction.Contract.newBuilder().setType(contractType).setParameter(
@@ -253,36 +264,36 @@ public Transaction setExpiration(Transaction transaction, long expiration) {
253264
}
254265

255266
public static Transaction sign(Transaction transaction, ECKey myKey) {
256-
Transaction.Builder transactionBuilderSigned = transaction.toBuilder();
257-
byte[] hash = Sha256Hash.hash(transaction.getRawData().toByteArray());
258-
List<Contract> listContract = transaction.getRawData().getContractList();
259-
for (int i = 0; i < listContract.size(); i++) {
260-
ECDSASignature signature = myKey.sign(hash);
261-
ByteString bsSign = ByteString.copyFrom(signature.toByteArray());
262-
transactionBuilderSigned.addSignature(
263-
bsSign);
264-
}
265-
266-
transaction = transactionBuilderSigned.build();
267-
return transaction;
268-
// byte[] chainId = decodeFromBase58Check("TUmGh8c2VcpfmJ7rBYq1FU9hneXhz3P8z3");
269267
// Transaction.Builder transactionBuilderSigned = transaction.toBuilder();
270268
// byte[] hash = Sha256Hash.hash(transaction.getRawData().toByteArray());
271-
//
272-
// byte[] newHash;
273-
// if (false) {
274-
// newHash = hash;
275-
// } else {
276-
// byte[] hashWithChainId = Arrays.copyOf(hash, hash.length + chainId.length);
277-
// System.arraycopy(chainId, 0, hashWithChainId, hash.length, chainId.length);
278-
// newHash = Sha256Hash.hash(hashWithChainId);
269+
// List<Contract> listContract = transaction.getRawData().getContractList();
270+
// for (int i = 0; i < listContract.size(); i++) {
271+
// ECDSASignature signature = myKey.sign(hash);
272+
// ByteString bsSign = ByteString.copyFrom(signature.toByteArray());
273+
// transactionBuilderSigned.addSignature(
274+
// bsSign);
279275
// }
280276
//
281-
// ECDSASignature signature = myKey.sign(newHash);
282-
// ByteString bsSign = ByteString.copyFrom(signature.toByteArray());
283-
// transactionBuilderSigned.addSignature(bsSign);
284277
// transaction = transactionBuilderSigned.build();
285278
// return transaction;
279+
byte[] chainId = decodeFromBase58Check("TYYrjz9W9ii98zMEF7KoL24KhGRXqWpjEJ");
280+
Transaction.Builder transactionBuilderSigned = transaction.toBuilder();
281+
byte[] hash = Sha256Hash.hash(transaction.getRawData().toByteArray());
282+
283+
byte[] newHash;
284+
if (false) {
285+
newHash = hash;
286+
} else {
287+
byte[] hashWithChainId = Arrays.copyOf(hash, hash.length + chainId.length);
288+
System.arraycopy(chainId, 0, hashWithChainId, hash.length, chainId.length);
289+
newHash = Sha256Hash.hash(hashWithChainId);
290+
}
291+
292+
ECDSASignature signature = myKey.sign(newHash);
293+
ByteString bsSign = ByteString.copyFrom(signature.toByteArray());
294+
transactionBuilderSigned.addSignature(bsSign);
295+
transaction = transactionBuilderSigned.build();
296+
return transaction;
286297
}
287298

288299
public static Transaction mutiSignNew(Transaction transaction, String[] permissionKeyString) {
@@ -446,7 +457,8 @@ public org.tron.protos.Contract.AssetIssueContract createAssetIssueContract(
446457
return builder.build();
447458
}
448459

449-
public org.tron.protos.Contract.TriggerSmartContract triggerCallContract(byte[] address,
460+
public org.tron.protos.Contract.TriggerSmartContract triggerCallContract(
461+
byte[] address,
450462
byte[] contractAddress,
451463
long callValue, byte[] data) {
452464
org.tron.protos.Contract.TriggerSmartContract.Builder builder = org.tron.protos.Contract.TriggerSmartContract
@@ -460,6 +472,20 @@ public org.tron.protos.Contract.TriggerSmartContract triggerCallContract(byte[]
460472
return builder.build();
461473
}
462474

475+
public org.tron.protos.Contract.TriggerSmartContract triggerCallContract(byte[] address,
476+
byte[] contractAddress,
477+
long callValue, byte[] data, long tokenValue, String tokenId) {
478+
org.tron.protos.Contract.TriggerSmartContract.Builder builder = org.tron.protos.Contract.TriggerSmartContract
479+
.newBuilder();
480+
builder.setOwnerAddress(ByteString.copyFrom(address));
481+
builder.setContractAddress(ByteString.copyFrom(contractAddress));
482+
builder.setData(ByteString.copyFrom(data));
483+
builder.setCallValue(callValue);
484+
builder.setCallTokenValue(tokenValue);
485+
builder.setTokenId(Long.parseLong(tokenId));
486+
return builder.build();
487+
}
488+
463489
public FreezeBalanceContract createFreezeBalanceContract(byte[] ownerAddress, long frozen_balance,
464490
long frozen_duration, int resourceCode, String receiverAddress) {
465491
org.tron.protos.Contract.FreezeBalanceContract.Builder builder = org.tron.protos.Contract.FreezeBalanceContract

0 commit comments

Comments
 (0)