forked from tronprotocol/java-tron
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfiger.java
More file actions
93 lines (78 loc) · 3.05 KB
/
Configer.java
File metadata and controls
93 lines (78 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
* java-tron is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* java-tron is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.tron.config;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.util.encoders.Hex;
import org.tron.core.Constant;
import org.tron.crypto.ECKey;
import org.tron.utils.ByteArray;
import java.io.*;
import java.util.Properties;
public class Configer {
private static final Logger logger = LoggerFactory.getLogger("Configer");
public static String TRON_CONF = Constant.NORMAL_CONF;
private final static String DATABASE_DIRECTORY = Constant.DATABASE_DIR;
private static String generatedNodePrivateKey;
static {
try {
File file = new File(Configer.getConf().getString
(DATABASE_DIRECTORY), "nodeId.properties");
Properties props = new Properties();
if (file.canRead()) {
try (Reader r = new FileReader(file)) {
props.load(r);
}
} else {
ECKey key = new ECKey();
byte[] privKeyBytes = key.getPrivKeyBytes();
String nodeIdPrivateKey = ByteArray.toHexString(privKeyBytes);
props.setProperty("nodeIdPrivateKey", nodeIdPrivateKey);
props.setProperty("nodeId", Hex.toHexString(key.getNodeId
()));
file.getParentFile().mkdirs();
try (Writer w = new FileWriter(file)) {
props.store(w, "Generated NodeID.");
}
logger.info("New nodeID generated: " + props.getProperty
("nodeId"));
logger.info("Generated nodeID and its private key stored " +
"in " + file);
}
generatedNodePrivateKey = props.getProperty("nodeIdPrivateKey");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static Config getConf() {
return ConfigFactory.load(TRON_CONF);
}
public static Config getConf(String conf) {
if (conf==null||"".equals(conf)){
return ConfigFactory.load(TRON_CONF);
}
else {
return ConfigFactory.load(conf);
}
}
public static ECKey getMyKey() {
return ECKey.fromPrivate(Hex.decode(generatedNodePrivateKey));
}
public static String getGNPK() {
return generatedNodePrivateKey;
}
}