Skip to content

Commit 4533088

Browse files
committed
rename config item to maxBlockFilterNum; delete new exception
1 parent 7267c01 commit 4533088

File tree

13 files changed

+60
-36
lines changed

13 files changed

+60
-36
lines changed

common/src/main/java/org/tron/common/parameter/CommonParameter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ public class CommonParameter {
529529
public int jsonRpcMaxSubTopics = 1000;
530530
@Getter
531531
@Setter
532-
public int jsonRpcMaxFilterNum = 50000;
532+
public int jsonRpcMaxBlockFilterNum = 50000;
533533

534534
@Getter
535535
@Setter

common/src/main/java/org/tron/core/Constant.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public class Constant {
154154
public static final String NODE_JSONRPC_HTTP_PBFT_PORT = "node.jsonrpc.httpPBFTPort";
155155
public static final String NODE_JSONRPC_MAX_BLOCK_RANGE = "node.jsonrpc.maxBlockRange";
156156
public static final String NODE_JSONRPC_MAX_SUB_TOPICS = "node.jsonrpc.maxSubTopics";
157-
public static final String NODE_JSONRPC_MAX_FILTER_NUM = "node.jsonrpc.maxFilterNum";
157+
public static final String NODE_JSONRPC_MAX_BLOCK_FILTER_NUM = "node.jsonrpc.maxBlockFilterNum";
158158

159159
public static final String NODE_DISABLED_API_LIST = "node.disabledApi";
160160

common/src/main/java/org/tron/core/exception/jsonrpc/JsonRpcTooManyFilterException.java

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

framework/src/main/java/org/tron/core/config/args/Args.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ public static void clearParam() {
207207
PARAMETER.jsonRpcHttpPBFTNodeEnable = false;
208208
PARAMETER.jsonRpcMaxBlockRange = 5000;
209209
PARAMETER.jsonRpcMaxSubTopics = 1000;
210-
PARAMETER.jsonRpcMaxFilterNum = 50000;
210+
PARAMETER.jsonRpcMaxBlockFilterNum = 50000;
211211
PARAMETER.nodeMetricsEnable = false;
212212
PARAMETER.metricsStorageEnable = false;
213213
PARAMETER.metricsPrometheusEnable = false;
@@ -492,9 +492,9 @@ public static void setParam(final Config config) {
492492
config.getInt(Constant.NODE_JSONRPC_MAX_SUB_TOPICS);
493493
}
494494

495-
if (config.hasPath(Constant.NODE_JSONRPC_MAX_FILTER_NUM)) {
496-
PARAMETER.jsonRpcMaxFilterNum =
497-
config.getInt(Constant.NODE_JSONRPC_MAX_FILTER_NUM);
495+
if (config.hasPath(Constant.NODE_JSONRPC_MAX_BLOCK_FILTER_NUM)) {
496+
PARAMETER.jsonRpcMaxBlockFilterNum =
497+
config.getInt(Constant.NODE_JSONRPC_MAX_BLOCK_FILTER_NUM);
498498
}
499499

500500
if (config.hasPath(Constant.VM_MIN_TIME_RATIO)) {

framework/src/main/java/org/tron/core/services/jsonrpc/TronJsonRpc.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.tron.core.exception.jsonrpc.JsonRpcInvalidParamsException;
2424
import org.tron.core.exception.jsonrpc.JsonRpcInvalidRequestException;
2525
import org.tron.core.exception.jsonrpc.JsonRpcMethodNotFoundException;
26-
import org.tron.core.exception.jsonrpc.JsonRpcTooManyFilterException;
2726
import org.tron.core.exception.jsonrpc.JsonRpcTooManyResultException;
2827
import org.tron.core.services.jsonrpc.types.BlockResult;
2928
import org.tron.core.services.jsonrpc.types.BuildArguments;
@@ -297,10 +296,10 @@ String newFilter(FilterRequest fr) throws JsonRpcInvalidParamsException,
297296

298297
@JsonRpcMethod("eth_newBlockFilter")
299298
@JsonRpcErrors({
300-
@JsonRpcError(exception = JsonRpcTooManyFilterException.class, code = -32005, data = "{}"),
299+
@JsonRpcError(exception = JsonRpcInvalidRequestException.class, code = -32600, data = "{}"),
301300
@JsonRpcError(exception = JsonRpcMethodNotFoundException.class, code = -32601, data = "{}"),
302301
})
303-
String newBlockFilter() throws JsonRpcTooManyFilterException, JsonRpcMethodNotFoundException;
302+
String newBlockFilter() throws JsonRpcInvalidRequestException, JsonRpcMethodNotFoundException;
304303

305304
@JsonRpcMethod("eth_uninstallFilter")
306305
@JsonRpcErrors({

framework/src/main/java/org/tron/core/services/jsonrpc/TronJsonRpcImpl.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
import org.tron.core.exception.jsonrpc.JsonRpcInvalidParamsException;
6767
import org.tron.core.exception.jsonrpc.JsonRpcInvalidRequestException;
6868
import org.tron.core.exception.jsonrpc.JsonRpcMethodNotFoundException;
69-
import org.tron.core.exception.jsonrpc.JsonRpcTooManyFilterException;
7069
import org.tron.core.exception.jsonrpc.JsonRpcTooManyResultException;
7170
import org.tron.core.services.NodeInfoService;
7271
import org.tron.core.services.http.JsonFormat;
@@ -114,7 +113,7 @@ public enum RequestSource {
114113

115114
private static final String FILTER_NOT_FOUND = "filter not found";
116115
public static final int EXPIRE_SECONDS = 5 * 60;
117-
private static final int maxFilterNum = Args.getInstance().getJsonRpcMaxFilterNum();
116+
private static final int maxBlockFilterNum = Args.getInstance().getJsonRpcMaxBlockFilterNum();
118117
private static final Cache<LogFilterElement, LogFilterElement> logElementCache =
119118
CacheBuilder.newBuilder()
120119
.maximumSize(300_000L) // 300s * tps(1000) * 1 log/tx ≈ 300_000
@@ -1428,7 +1427,7 @@ public String newFilter(FilterRequest fr) throws JsonRpcInvalidParamsException,
14281427

14291428
@Override
14301429
public String newBlockFilter() throws JsonRpcMethodNotFoundException,
1431-
JsonRpcTooManyFilterException {
1430+
JsonRpcInvalidRequestException {
14321431
disableInPBFT("eth_newBlockFilter");
14331432

14341433
Map<String, BlockFilterAndResult> blockFilter2Result;
@@ -1437,8 +1436,9 @@ public String newBlockFilter() throws JsonRpcMethodNotFoundException,
14371436
} else {
14381437
blockFilter2Result = blockFilter2ResultSolidity;
14391438
}
1440-
if (blockFilter2Result.size() >= maxFilterNum) {
1441-
throw new JsonRpcTooManyFilterException("exceed max block filters: " + maxFilterNum);
1439+
if (blockFilter2Result.size() >= maxBlockFilterNum) {
1440+
throw new JsonRpcInvalidRequestException(
1441+
"exceed max block filters: " + maxBlockFilterNum + ", try later again");
14421442
}
14431443

14441444
BlockFilterAndResult filterAndResult = new BlockFilterAndResult();
@@ -1570,6 +1570,7 @@ public static Object[] getFilterResult(String filterId, Map<String, BlockFilterA
15701570
@Override
15711571
public void close() throws IOException {
15721572
logElementCache.invalidateAll();
1573+
blockHashCache.invalidateAll();
15731574
ExecutorServiceManager.shutdownAndAwaitTermination(sectionExecutor, esName);
15741575
}
15751576

framework/src/main/resources/config-localtest.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ node {
163163
# httpPBFTPort = 8565
164164
# maxBlockRange = 5000
165165
# maxSubTopics = 1000
166-
# maxFilterNum = 50000
166+
# maxBlockFilterNum = 30000
167167
}
168168

169169
}

framework/src/main/resources/config.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ node {
376376
# should be > 0, otherwise means no limit.
377377
maxSubTopics = 1000
378378
# Allowed maximum number for blockFilter
379-
maxFilterNum = 50000
379+
maxBlockFilterNum = 50000
380380
}
381381

382382
# Disabled api list, it will work for http, rpc and pbft, both FullNode and SolidityNode,
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package org.tron.core.net.service.nodepersist;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import javax.annotation.Resource;
6+
import org.junit.Assert;
7+
import org.junit.BeforeClass;
8+
import org.junit.Test;
9+
import org.tron.common.BaseTest;
10+
import org.tron.common.utils.JsonUtil;
11+
import org.tron.core.Constant;
12+
import org.tron.core.capsule.BytesCapsule;
13+
import org.tron.core.config.args.Args;
14+
15+
16+
public class NodePersistServiceTest extends BaseTest {
17+
18+
@Resource
19+
private NodePersistService nodePersistService;
20+
21+
@BeforeClass
22+
public static void init() {
23+
Args.setParam(new String[] {"--output-directory", dbPath(), "--debug"},
24+
Constant.TEST_CONF);
25+
}
26+
27+
@Test
28+
public void testDbRead() {
29+
byte[] DB_KEY_PEERS = "peers".getBytes();
30+
DBNode dbNode = new DBNode("localhost", 3306);
31+
List<DBNode> dbNodeList = new ArrayList<>();
32+
dbNodeList.add(dbNode);
33+
DBNodes dbNodes = new DBNodes();
34+
dbNodes.setNodes(dbNodeList);
35+
chainBaseManager.getCommonStore().put(DB_KEY_PEERS, new BytesCapsule(
36+
JsonUtil.obj2Json(dbNodes).getBytes()));
37+
38+
Assert.assertEquals(1, nodePersistService.dbRead().size());
39+
}
40+
}

framework/src/test/resources/config-localtest.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ node {
167167
# httpPBFTPort = 8565
168168
# maxBlockRange = 5000
169169
# maxSubTopics = 1000
170-
# maxFilterNum = 50000
170+
# maxBlockFilterNum = 30000
171171
}
172172

173173
}

0 commit comments

Comments
 (0)