use of org.tron.common.crypto.ECKey in project java-tron by tronprotocol.
the class Args method getGeneratedNodePrivateKey.
private static String getGeneratedNodePrivateKey() {
String nodeId;
try {
File file = new File(INSTANCE.outputDirectory + File.separator + INSTANCE.storage.getDirectory(), "nodeId.properties");
Properties props = new Properties();
if (file.canRead()) {
try (Reader r = new FileReader(file)) {
props.load(r);
}
} else {
ECKey key = new ECKey();
props.setProperty("nodeIdPrivateKey", Hex.toHexString(key.getPrivKeyBytes()));
props.setProperty("nodeId", Hex.toHexString(key.getNodeId()));
file.getParentFile().mkdirs();
try (Writer w = new FileWriter(file)) {
props.store(w, "Generated NodeID. To use your own nodeId please refer to 'peer.privateKey' config option.");
}
logger.info("New nodeID generated: " + props.getProperty("nodeId"));
logger.info("Generated nodeID and its private key stored in " + file);
}
nodeId = props.getProperty("nodeIdPrivateKey");
} catch (IOException e) {
throw new RuntimeException(e);
}
return nodeId;
}
use of org.tron.common.crypto.ECKey in project java-tron by tronprotocol.
the class ManagerTest method fork.
@Test
public void fork() {
Args.setParam(new String[] { "--witness" }, Configuration.getByPath(Constant.NORMAL_CONF));
long size = dbManager.getBlockStore().dbSource.allKeys().size();
String key = "00f31db24bfbd1a2ef19beddca0a0fa37632eded9ac666a05d3bd925f01dde1f62";
byte[] privateKey = ByteArray.fromHexString(key);
final ECKey ecKey = ECKey.fromPrivate(privateKey);
byte[] address = ecKey.getAddress();
WitnessCapsule witnessCapsule = new WitnessCapsule(ByteString.copyFrom(address));
dbManager.addWitness(witnessCapsule);
dbManager.addWitness(witnessCapsule);
dbManager.addWitness(witnessCapsule);
IntStream.range(0, 5).forEach(i -> {
try {
dbManager.generateBlock(witnessCapsule, System.currentTimeMillis(), privateKey);
} catch (ValidateSignatureException | ContractValidateException | ContractExeException | UnLinkedBlockException e) {
logger.debug(e.getMessage(), e);
}
});
try {
long num = dbManager.getDynamicPropertiesStore().getLatestBlockHeaderNumber();
BlockCapsule blockCapsule1 = new BlockCapsule(num, dbManager.getHead().getParentHash().getByteString(), System.currentTimeMillis(), witnessCapsule.getAddress());
blockCapsule1.generatedByMyself = true;
BlockCapsule blockCapsule2 = new BlockCapsule(num + 1, blockCapsule1.getBlockId().getByteString(), System.currentTimeMillis(), witnessCapsule.getAddress());
blockCapsule2.generatedByMyself = true;
logger.error("******1*******" + "block1 id:" + blockCapsule1.getBlockId());
logger.error("******2*******" + "block2 id:" + blockCapsule2.getBlockId());
dbManager.pushBlock(blockCapsule1);
dbManager.pushBlock(blockCapsule2);
logger.error("******in blockStore block size:" + dbManager.getBlockStore().dbSource.allKeys().size());
logger.error("******in blockStore block:" + dbManager.getBlockStore().dbSource.allKeys().stream().map(ByteArray::toHexString).collect(Collectors.toList()));
Assert.assertNotNull(dbManager.getBlockStore().get(blockCapsule1.getBlockId().getBytes()));
Assert.assertNotNull(dbManager.getBlockStore().get(blockCapsule2.getBlockId().getBytes()));
Assert.assertEquals(dbManager.getBlockStore().get(blockCapsule2.getBlockId().getBytes()).getParentHash(), blockCapsule1.getBlockId());
Assert.assertEquals(dbManager.getBlockStore().dbSource.allKeys().size(), size + 6);
Assert.assertEquals(dbManager.getBlockIdByNum(dbManager.getHead().getNum() - 1), blockCapsule1.getBlockId());
Assert.assertEquals(dbManager.getBlockIdByNum(dbManager.getHead().getNum() - 2), blockCapsule1.getParentHash());
Assert.assertEquals(blockCapsule2.getBlockId().getByteString(), dbManager.getDynamicPropertiesStore().getLatestBlockHeaderHash());
Assert.assertEquals(dbManager.getHead().getBlockId().getByteString(), dbManager.getDynamicPropertiesStore().getLatestBlockHeaderHash());
} catch (ValidateSignatureException | ContractValidateException | ContractExeException | UnLinkedBlockException e) {
logger.debug(e.getMessage(), e);
}
dbManager.getWitnesses().clear();
}
use of org.tron.common.crypto.ECKey in project java-tron by tronprotocol.
the class WalletTest method testGetAddress.
@Test
public void testGetAddress() {
ECKey ecKey = new ECKey(Utils.getRandom());
Wallet wallet = new Wallet(ecKey);
logger.info("ecKey address = {}", ByteArray.toHexString(ecKey.getAddress()));
logger.info("wallet address = {}", ByteArray.toHexString(wallet.getAddress()));
assertArrayEquals(wallet.getAddress(), ecKey.getAddress());
}
use of org.tron.common.crypto.ECKey in project java-tron by tronprotocol.
the class WitnessService method init.
/**
* Initialize the local witnesses
*/
@Override
public void init() {
Args.getInstance().getLocalWitnesses().getPrivateKeys().forEach(key -> {
byte[] privateKey = ByteArray.fromHexString(key);
final ECKey ecKey = ECKey.fromPrivate(privateKey);
byte[] address = ecKey.getAddress();
WitnessCapsule witnessCapsule = this.db.getWitnessStore().get(address);
// need handle init witness
if (null == witnessCapsule) {
logger.warn("WitnessCapsule[" + address + "] is not in witnessStore");
witnessCapsule = new WitnessCapsule(ByteString.copyFrom(address));
}
this.privateKeyMap.put(witnessCapsule.getAddress(), privateKey);
this.localWitnessStateMap.put(witnessCapsule.getAddress(), witnessCapsule);
});
}
use of org.tron.common.crypto.ECKey in project java-tron by tronprotocol.
the class ConfigurationTest method testGetEcKey.
@Test
public void testGetEcKey() {
ECKey key = ECKey.fromPrivate(Hex.decode("1cd5a70741c6e583d2dd3c5f17231e608eb1e52437210d948c5085e141c2d830"));
// log.debug("address = {}", ByteArray.toHexString(key.getOwnerAddress()));
assertEquals("125b6c87b3d67114b3873977888c34582f27bbb0", ByteArray.toHexString(key.getAddress()));
}
Aggregations