From c60f69eacea6dd3173fc976cac99aebad6a5be57 Mon Sep 17 00:00:00 2001 From: jiangyuanshu <317787106@qq.com> Date: Wed, 8 Apr 2026 15:16:31 +0800 Subject: [PATCH 1/2] remove configuration acurator.whitelist --- .../tron/core/actuator/AbstractActuator.java | 21 +++++-------------- .../core/actuator/TransactionFactory.java | 20 ++---------------- .../common/parameter/CommonParameter.java | 4 ---- .../org/tron/core/config/args/MiscConfig.java | 9 +------- .../org/tron/common/runtime/RuntimeImpl.java | 6 ------ .../java/org/tron/core/config/args/Args.java | 5 ----- .../java/org/tron/common/ParameterTest.java | 2 -- .../core/utils/TransactionRegisterTest.java | 2 -- 8 files changed, 8 insertions(+), 61 deletions(-) diff --git a/actuator/src/main/java/org/tron/core/actuator/AbstractActuator.java b/actuator/src/main/java/org/tron/core/actuator/AbstractActuator.java index c9f83c520bd..64a81e17c58 100644 --- a/actuator/src/main/java/org/tron/core/actuator/AbstractActuator.java +++ b/actuator/src/main/java/org/tron/core/actuator/AbstractActuator.java @@ -2,6 +2,7 @@ import com.google.protobuf.Any; import com.google.protobuf.GeneratedMessageV3; +import lombok.Getter; import org.tron.common.math.Maths; import org.tron.common.utils.Commons; import org.tron.common.utils.ForkController; @@ -16,9 +17,13 @@ public abstract class AbstractActuator implements Actuator { + @Getter protected Any any; + @Getter protected ChainBaseManager chainBaseManager; + @Getter protected Contract contract; + @Getter protected TransactionCapsule tx; protected ForkController forkController; @@ -26,38 +31,22 @@ public AbstractActuator(ContractType type, Class c TransactionFactory.register(type, getClass(), clazz); } - public Any getAny() { - return any; - } - public AbstractActuator setAny(Any any) { this.any = any; return this; } - public ChainBaseManager getChainBaseManager() { - return chainBaseManager; - } - public AbstractActuator setChainBaseManager(ChainBaseManager chainBaseManager) { this.chainBaseManager = chainBaseManager; return this; } - public Contract getContract() { - return contract; - } - public AbstractActuator setContract(Contract contract) { this.contract = contract; this.any = contract.getParameter(); return this; } - public TransactionCapsule getTx() { - return tx; - } - public AbstractActuator setTx(TransactionCapsule tx) { this.tx = tx; return this; diff --git a/chainbase/src/main/java/org/tron/core/actuator/TransactionFactory.java b/chainbase/src/main/java/org/tron/core/actuator/TransactionFactory.java index d151812b19c..6e74f7f8a2b 100644 --- a/chainbase/src/main/java/org/tron/core/actuator/TransactionFactory.java +++ b/chainbase/src/main/java/org/tron/core/actuator/TransactionFactory.java @@ -2,17 +2,15 @@ import com.google.protobuf.GeneratedMessageV3; import java.util.Map; -import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import org.tron.common.parameter.CommonParameter; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.SmartContractOuterClass.CreateSmartContract; import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract; public class TransactionFactory { - private static Map> actuatorMap = new ConcurrentHashMap<>(); - private static Map> contractMap = new ConcurrentHashMap<>(); + private static final Map> actuatorMap = new ConcurrentHashMap<>(); + private static final Map> contractMap = new ConcurrentHashMap<>(); static { register(ContractType.CreateSmartContract, null, CreateSmartContract.class); @@ -21,12 +19,6 @@ public class TransactionFactory { public static void register(ContractType type, Class actuatorClass, Class clazz) { - Set actuatorSet = CommonParameter.getInstance().getActuatorSet(); - if (actuatorClass != null && !actuatorSet.isEmpty() && !actuatorSet - .contains(actuatorClass.getSimpleName())) { - return; - } - if (type != null && actuatorClass != null) { actuatorMap.put(type, actuatorClass); } @@ -42,12 +34,4 @@ public static Class getActuator(ContractType type) { public static Class getContract(ContractType type) { return contractMap.get(type); } - - public static Map> getActuatorMap() { - return actuatorMap; - } - - public static Map> getContractMap() { - return contractMap; - } } diff --git a/common/src/main/java/org/tron/common/parameter/CommonParameter.java b/common/src/main/java/org/tron/common/parameter/CommonParameter.java index a73158a718a..948d73f1095 100644 --- a/common/src/main/java/org/tron/common/parameter/CommonParameter.java +++ b/common/src/main/java/org/tron/common/parameter/CommonParameter.java @@ -5,7 +5,6 @@ import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.List; -import java.util.Set; import lombok.Getter; import lombok.Setter; import org.tron.common.args.GenesisBlock; @@ -367,9 +366,6 @@ public class CommonParameter { public long changedDelegation; @Getter @Setter - public Set actuatorSet; - @Getter - @Setter public RateLimiterInitialization rateLimiterInitialization; @Getter @Setter diff --git a/common/src/main/java/org/tron/core/config/args/MiscConfig.java b/common/src/main/java/org/tron/core/config/args/MiscConfig.java index f6c3b200b80..8da6568cd94 100644 --- a/common/src/main/java/org/tron/core/config/args/MiscConfig.java +++ b/common/src/main/java/org/tron/core/config/args/MiscConfig.java @@ -4,16 +4,14 @@ import com.typesafe.config.ConfigFactory; import java.util.ArrayList; import java.util.Collections; -import java.util.HashSet; import java.util.List; -import java.util.Set; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.tron.core.Constant; /** * Miscellaneous small config domains that don't warrant their own bean class. - * Covers: storage (partial), trx, energy, crypto, seed, actuator. + * Covers: storage (partial), trx, energy, crypto, seed. * *

These use manual reads because they span multiple unrelated config.conf * top-level sections and some have non-standard key naming (e.g. "enery" typo). @@ -29,7 +27,6 @@ public class MiscConfig { private long blockNumForEnergyLimit = 4727890L; private String cryptoEngine = Constant.ECKey_ENGINE; private List seedNodeIpList = new ArrayList<>(); - private Set actuatorWhitelist = Collections.emptySet(); public static MiscConfig fromConfig(Config config) { MiscConfig mc = new MiscConfig(); @@ -61,10 +58,6 @@ public static MiscConfig fromConfig(Config config) { mc.seedNodeIpList = config.hasPath("seed.node.ip.list") ? config.getStringList("seed.node.ip.list") : new ArrayList<>(); - // actuator - mc.actuatorWhitelist = config.hasPath("actuator.whitelist") - ? new HashSet<>(config.getStringList("actuator.whitelist")) : Collections.emptySet(); - return mc; } } diff --git a/framework/src/main/java/org/tron/common/runtime/RuntimeImpl.java b/framework/src/main/java/org/tron/common/runtime/RuntimeImpl.java index 4ba53c7dc92..3dccfc5d146 100644 --- a/framework/src/main/java/org/tron/common/runtime/RuntimeImpl.java +++ b/framework/src/main/java/org/tron/common/runtime/RuntimeImpl.java @@ -2,11 +2,9 @@ import java.util.List; import java.util.Objects; -import java.util.Set; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.tron.common.parameter.CommonParameter; import org.tron.core.actuator.Actuator; import org.tron.core.actuator.Actuator2; import org.tron.core.actuator.ActuatorCreator; @@ -46,10 +44,6 @@ public void execute(TransactionContext context) switch (contractType.getNumber()) { case ContractType.TriggerSmartContract_VALUE: case ContractType.CreateSmartContract_VALUE: - Set actuatorSet = CommonParameter.getInstance().getActuatorSet(); - if (!actuatorSet.isEmpty() && !actuatorSet.contains(VMActuator.class.getSimpleName())) { - throw new ContractValidateException("not exist contract " + "SmartContract"); - } actuator2 = new VMActuator(context.isStatic()); break; default: diff --git a/framework/src/main/java/org/tron/core/config/args/Args.java b/framework/src/main/java/org/tron/core/config/args/Args.java index f91c6a437ac..6425da63b00 100644 --- a/framework/src/main/java/org/tron/core/config/args/Args.java +++ b/framework/src/main/java/org/tron/core/config/args/Args.java @@ -32,7 +32,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -326,8 +325,6 @@ private static void applyMiscConfig(MiscConfig mc) { PARAMETER.trxReferenceBlock = mc.getTrxReferenceBlock(); PARAMETER.trxExpirationTimeInMilliseconds = mc.getTrxExpirationTimeInMilliseconds(); PARAMETER.blockNumForEnergyLimit = mc.getBlockNumForEnergyLimit(); - PARAMETER.actuatorSet = mc.getActuatorWhitelist(); - // seed.node — top-level config section, not under "node" // Config structure is arguably misplaced but preserved for backward compatibility PARAMETER.seedNode = new SeedNode(); @@ -784,8 +781,6 @@ public static void applyConfigParams( // Node backup: from NodeConfig bean applyNodeBackupConfig(nodeConfig); - // actuatorSet already set in applyMiscConfig - // Metrics config: bind from config.conf "node.metrics" section metricsConfig = MetricsConfig.fromConfig(config); applyMetricsConfig(metricsConfig); diff --git a/framework/src/test/java/org/tron/common/ParameterTest.java b/framework/src/test/java/org/tron/common/ParameterTest.java index d5dbced87fe..f37f1936da9 100644 --- a/framework/src/test/java/org/tron/common/ParameterTest.java +++ b/framework/src/test/java/org/tron/common/ParameterTest.java @@ -218,8 +218,6 @@ public void testCommonParameter() { assertEquals(1, parameter.getShieldedTransInPendingMaxCounts()); parameter.setChangedDelegation(1); assertEquals(1, parameter.getChangedDelegation()); - parameter.setActuatorSet(new HashSet<>()); - assertTrue(CollectionUtils.isEmpty(parameter.getActuatorSet())); parameter.setRateLimiterInitialization(new RateLimiterInitialization()); assertNotNull(parameter.getRateLimiterInitialization()); parameter.setRateLimiterGlobalQps(1000); diff --git a/framework/src/test/java/org/tron/core/utils/TransactionRegisterTest.java b/framework/src/test/java/org/tron/core/utils/TransactionRegisterTest.java index 5c365eb3ef0..7bd4edc18ec 100644 --- a/framework/src/test/java/org/tron/core/utils/TransactionRegisterTest.java +++ b/framework/src/test/java/org/tron/core/utils/TransactionRegisterTest.java @@ -8,7 +8,6 @@ import static org.mockito.Mockito.when; import java.util.Collections; -import java.util.HashSet; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; @@ -33,7 +32,6 @@ public class TransactionRegisterTest { @Before public void init() { - Args.getInstance().setActuatorSet(new HashSet<>()); TransactionRegister.resetForTesting(); } From dd7715c9999df380e38df6f1127f00f6c03f05df Mon Sep 17 00:00:00 2001 From: jiangyuanshu <317787106@qq.com> Date: Tue, 28 Apr 2026 15:31:03 +0800 Subject: [PATCH 2/2] add common and crypto depend to plugin --- common/src/main/resources/reference.conf | 5 ----- .../test/java/org/tron/core/config/args/MiscConfigTest.java | 6 +----- plugins/build.gradle | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/common/src/main/resources/reference.conf b/common/src/main/resources/reference.conf index 11970a0a673..5e67ce786a6 100644 --- a/common/src/main/resources/reference.conf +++ b/common/src/main/resources/reference.conf @@ -166,11 +166,6 @@ crypto { # Energy limit block number (config key has typo "enery" preserved for backward compatibility) enery.limit.block.num = 4727890 -# Actuator whitelist — empty means all actuators allowed -actuator { - whitelist = [] -} - node.metrics = { prometheus { enable = false diff --git a/common/src/test/java/org/tron/core/config/args/MiscConfigTest.java b/common/src/test/java/org/tron/core/config/args/MiscConfigTest.java index ed369d6c35f..89a2d6e7b3c 100644 --- a/common/src/test/java/org/tron/core/config/args/MiscConfigTest.java +++ b/common/src/test/java/org/tron/core/config/args/MiscConfigTest.java @@ -32,7 +32,6 @@ public void testDefaults() { assertEquals("eckey", mc.getCryptoEngine()); // reference.conf has seed.node.ip.list with actual IPs assertFalse(mc.getSeedNodeIpList().isEmpty()); - assertTrue(mc.getActuatorWhitelist().isEmpty()); } @Test @@ -42,15 +41,12 @@ public void testFromConfig() { + " balance { history { lookup = true } } }\n" + "trx { reference { block = head } }\n" + "crypto { engine = sm2 }\n" - + "seed.node { ip.list = [\"1.2.3.4:18888\"] }\n" - + "actuator { whitelist = [\"CreateSmartContract\"] }"); + + "seed.node { ip.list = [\"1.2.3.4:18888\"] }"); MiscConfig mc = MiscConfig.fromConfig(config); assertFalse(mc.isNeedToUpdateAsset()); assertTrue(mc.isHistoryBalanceLookup()); assertEquals("head", mc.getTrxReferenceBlock()); assertEquals("sm2", mc.getCryptoEngine()); assertEquals(1, mc.getSeedNodeIpList().size()); - assertEquals(1, mc.getActuatorWhitelist().size()); - assertTrue(mc.getActuatorWhitelist().contains("CreateSmartContract")); } } diff --git a/plugins/build.gradle b/plugins/build.gradle index 2e358a884a3..73edd19905b 100644 --- a/plugins/build.gradle +++ b/plugins/build.gradle @@ -130,7 +130,7 @@ def binaryRelease(taskName, jarName, mainClass) { from(sourceSets.main.output) { include "/**" } - dependsOn (project(':protocol').jar, project(':platform').jar) // explicit_dependency + dependsOn (project(':protocol').jar, project(':platform').jar, project(':common').jar, project(':crypto').jar) // explicit_dependency from { configurations.runtimeClasspath.collect { // https://docs.gradle.org/current/userguide/upgrading_version_6.html#changes_6.3 it.isDirectory() ? it : zipTree(it)